01: package org.andromda.cartridges.jsf.metafacades;
02:
03: import java.util.ArrayList;
04: import java.util.Iterator;
05: import java.util.List;
06:
07: import org.andromda.cartridges.jsf.JSFGlobals;
08: import org.andromda.metafacades.uml.DependencyFacade;
09: import org.andromda.metafacades.uml.ModelElementFacade;
10: import org.andromda.utils.StringUtilsHelper;
11: import org.apache.commons.lang.ObjectUtils;
12: import org.apache.commons.lang.StringUtils;
13:
14: /**
15: * MetafacadeLogic implementation for org.andromda.cartridges.jsf.metafacades.JSFController.
16: *
17: * @see org.andromda.cartridges.jsf.metafacades.JSFController
18: */
19: public class JSFControllerLogicImpl extends JSFControllerLogic {
20:
21: public JSFControllerLogicImpl(Object metaObject, String context) {
22: super (metaObject, context);
23: }
24:
25: /**
26: * @see org.andromda.cartridges.jsf.metafacades.JSFController#getImplementationName()
27: */
28: protected java.lang.String handleGetImplementationName() {
29: final String pattern = ObjectUtils
30: .toString(this
31: .getConfiguredProperty(JSFGlobals.CONTROLLER_IMPLEMENTATION_PATTERN));
32: return pattern.replaceFirst("\\{0\\}", StringUtils
33: .capitalize(this .getName()));
34: }
35:
36: /**
37: * @see org.andromda.cartridges.jsf.metafacades.JSFController#getFullyQualifiedImplementationName()
38: */
39: protected java.lang.String handleGetFullyQualifiedImplementationName() {
40: final StringBuffer fullyQualifiedName = new StringBuffer();
41: final String packageName = this .getPackageName();
42: if (StringUtils.isNotBlank(packageName)) {
43: fullyQualifiedName.append(packageName + '.');
44: }
45: return fullyQualifiedName.append(this .getImplementationName())
46: .toString();
47: }
48:
49: /**
50: * @see org.andromda.cartridges.jsf.metafacades.JSFController#getFullyQualifiedImplementationPath()
51: */
52: protected String handleGetFullyQualifiedImplementationPath() {
53: return this .getFullyQualifiedImplementationName().replace('.',
54: '/');
55: }
56:
57: /**
58: * @see org.andromda.cartridges.jsf.metafacades.JSFController#getBeanName()
59: */
60: protected String handleGetBeanName() {
61: return StringUtilsHelper.lowerCamelCaseName(this .getName());
62: }
63:
64: /**
65: * @see org.andromda.cartridges.jsf.metafacades.JSFController#getSessionObjectReferences()
66: */
67: protected List handleGetSessionObjectReferences() {
68: final List references = new ArrayList(this
69: .getSourceDependencies());
70: for (final Iterator iterator = references.iterator(); iterator
71: .hasNext();) {
72: final ModelElementFacade targetElement = ((DependencyFacade) iterator
73: .next()).getTargetElement();
74: if (!(targetElement instanceof JSFSessionObject)) {
75: iterator.remove();
76: }
77: }
78: return references;
79: }
80: }
|