01: package org.andromda.cartridges.bpm4struts.metafacades;
02:
03: import java.util.ArrayList;
04: import java.util.Collection;
05: import java.util.Iterator;
06: import java.util.LinkedHashSet;
07: import java.util.List;
08:
09: import org.andromda.metafacades.uml.DependencyFacade;
10: import org.andromda.metafacades.uml.ModelElementFacade;
11: import org.andromda.metafacades.uml.OperationFacade;
12: import org.andromda.metafacades.uml.ParameterFacade;
13:
14: /**
15: * MetafacadeLogic implementation.
16: *
17: * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsController
18: */
19: public class StrutsControllerLogicImpl extends StrutsControllerLogic {
20: public StrutsControllerLogicImpl(java.lang.Object metaObject,
21: java.lang.String context) {
22: super (metaObject, context);
23: }
24:
25: /**
26: * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsController#getFullPath()
27: */
28: protected java.lang.String handleGetFullPath() {
29: return '/' + getPackageName().replace('.', '/') + '/'
30: + getName();
31: }
32:
33: /**
34: * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsController#getDeferringActions()
35: */
36: public List getDeferringActions() {
37: final Collection deferringActions = new LinkedHashSet();
38:
39: final Collection operations = getOperations();
40: for (final Iterator operationIterator = operations.iterator(); operationIterator
41: .hasNext();) {
42: final StrutsControllerOperation operation = (StrutsControllerOperation) operationIterator
43: .next();
44: deferringActions.addAll(operation.getDeferringActions());
45: }
46: return new ArrayList(deferringActions);
47: }
48:
49: /**
50: * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsController#getSessionObjects()
51: */
52: protected List handleGetSessionObjects() {
53: final List objectsList = new ArrayList();
54:
55: final Collection dependencies = this .getSourceDependencies();
56: for (final Iterator iterator = dependencies.iterator(); iterator
57: .hasNext();) {
58: final DependencyFacade dependency = (DependencyFacade) iterator
59: .next();
60: final ModelElementFacade modelElement = dependency
61: .getTargetElement();
62: if (modelElement instanceof StrutsSessionObject)
63: objectsList.add(modelElement);
64: }
65:
66: return objectsList;
67: }
68:
69: /**
70: * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsController#getAllArguments()
71: */
72: protected List handleGetAllArguments() {
73: final List allArguments = new ArrayList();
74: final Collection operations = this .getOperations();
75:
76: for (final Iterator operationIterator = operations.iterator(); operationIterator
77: .hasNext();) {
78: final OperationFacade operationFacade = (OperationFacade) operationIterator
79: .next();
80: final Collection arguments = operationFacade.getArguments();
81: for (final Iterator argumentIterator = arguments.iterator(); argumentIterator
82: .hasNext();) {
83: final ParameterFacade parameterFacade = (ParameterFacade) argumentIterator
84: .next();
85: allArguments.add(parameterFacade);
86: }
87: }
88:
89: return allArguments;
90: }
91: }
|