1 package org.andromda.metafacades.uml14;
2
3 import java.lang.reflect.Method;
4 import java.util.Collections;
5 import java.util.List;
6
7 import org.andromda.metafacades.uml.FrontEndAction;
8 import org.andromda.metafacades.uml.FrontEndForward;
9 import org.andromda.metafacades.uml.TransitionFacade;
10
11
12 /***
13 * MetafacadeLogic implementation for org.andromda.metafacades.uml.FrontEndEvent.
14 *
15 * @see org.andromda.metafacades.uml.FrontEndEvent
16 */
17 public class FrontEndEventLogicImpl
18 extends FrontEndEventLogic
19 {
20
21 public FrontEndEventLogicImpl (Object metaObject, String context)
22 {
23 super (metaObject, context);
24 }
25
26 /***
27 * @see org.andromda.metafacades.uml.FrontEndEvent#isContainedInFrontEndUseCase()
28 */
29 protected boolean handleIsContainedInFrontEndUseCase()
30 {
31 return this.getTransition() instanceof FrontEndForward;
32 }
33
34 /***
35 * @see org.andromda.metafacades.uml.FrontEndEvent#getControllerCall()
36 */
37 protected Object handleGetControllerCall()
38 {
39
40 try
41 {
42 final Method method = metaObject.getClass().getMethod("getOperation", (Class[])null);
43 return method.invoke(metaObject, (Object[])null);
44 }
45 catch (Exception ex)
46 {
47 return null;
48 }
49 }
50
51 /***
52 * @see org.andromda.metafacades.uml.FrontEndEvent#getAction()
53 */
54 protected Object handleGetAction()
55 {
56 FrontEndAction action = null;
57 TransitionFacade transition = getTransition();
58 if (transition instanceof FrontEndAction)
59 {
60 action = (FrontEndAction)transition;
61 }
62 return action;
63 }
64
65 /***
66 * @see org.andromda.metafacades.uml14.FrontEndEvent#getControllerCalls()
67 */
68 protected List handleGetControllerCalls()
69 {
70 Object controllerCall = this.getControllerCall();
71 return controllerCall == null ? Collections.EMPTY_LIST : Collections.singletonList(controllerCall);
72 }
73
74 }