View Javadoc

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          // - hack until a solution is found to workaround the JMI multiple inheritance (through interfaces)
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  }