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