View Javadoc
1   // license-header java merge-point
2   //
3   // Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
4   //
5   package org.andromda.metafacades.emf.uml22;
6   
7   import java.util.Collection;
8   import org.andromda.core.metafacade.MetafacadeBase;
9   import org.andromda.core.metafacade.ModelValidationMessage;
10  import org.andromda.metafacades.uml.GeneralizableElementFacade;
11  import org.andromda.metafacades.uml.GeneralizationFacade;
12  import org.apache.log4j.Logger;
13  import org.eclipse.uml2.uml.Generalization;
14  
15  /**
16   * A taxonomic relationship between a more general classifier and a more specific classifier. Each
17   * instance of the specific classifier is also an indirect instance of the general classifier. Thus,
18   * the specific classifier inherits the features of the more general classifier. A generalization
19   * relates a specific classifier to a more general classifier, and is owned by the specific
20   * classifier.
21   * MetafacadeLogic for GeneralizationFacade
22   *
23   * @see GeneralizationFacade
24   */
25  public abstract class GeneralizationFacadeLogic
26      extends ModelElementFacadeLogicImpl
27      implements GeneralizationFacade
28  {
29      /**
30       * The underlying UML object
31       * @see Generalization
32       */
33      protected Generalization metaObject;
34  
35      /** Create Metafacade implementation instance using the MetafacadeFactory from the context
36       * @param metaObjectIn
37       * @param context
38       */
39      protected GeneralizationFacadeLogic(Generalization metaObjectIn, String context)
40      {
41          super(metaObjectIn, getContext(context));
42          this.metaObject = metaObjectIn;
43      }
44  
45      /**
46       * The logger instance.
47       */
48      private static final Logger logger = Logger.getLogger(GeneralizationFacadeLogic.class);
49  
50      /**
51       * Gets the context for this metafacade logic instance.
52       * @param context String. Set to GeneralizationFacade if null
53       * @return context String
54       */
55      private static String getContext(String context)
56      {
57          if (context == null)
58          {
59              context = "org.andromda.metafacades.uml.GeneralizationFacade";
60          }
61          return context;
62      }
63  
64      /** Reset context only for non-root metafacades
65       * @param context
66       */
67      @Override
68      public void resetMetafacadeContext(String context)
69      {
70          if (!this.contextRoot) // reset context only for non-root metafacades
71          {
72              context = getContext(context);  // to have same value as in original constructor call
73              setMetafacadeContext (context);
74          }
75      }
76  
77      /**
78       * @return boolean true always
79       * @see GeneralizationFacade
80       */
81      public boolean isGeneralizationFacadeMetaType()
82      {
83          return true;
84      }
85  
86      // ------------- associations ------------------
87  
88      /**
89       * A taxonomic relationship between a more general classifier and a more specific classifier.
90       * Each
91       * instance of the specific classifier is also an indirect instance of the general classifier.
92       * Thus,
93       * the specific classifier inherits the features of the more general classifier. A
94       * generalization
95       * relates a specific classifier to a more general classifier, and is owned by the specific
96       * classifier.
97       * @return (GeneralizableElementFacade)handleGetParent()
98       */
99      public final GeneralizableElementFacade getParent()
100     {
101         GeneralizableElementFacade getParent1r = null;
102         // generalizationFacade has no pre constraints
103         Object result = handleGetParent();
104         MetafacadeBase shieldedResult = this.shieldedElement(result);
105         try
106         {
107             getParent1r = (GeneralizableElementFacade)shieldedResult;
108         }
109         catch (ClassCastException ex)
110         {
111             // Bad things happen if the metafacade type mapping in metafacades.xml is wrong - Warn
112             GeneralizationFacadeLogic.logger.warn("incorrect metafacade cast for GeneralizationFacadeLogic.getParent GeneralizableElementFacade " + result + ": " + shieldedResult);
113         }
114         // generalizationFacade has no post constraints
115         return getParent1r;
116     }
117 
118     /**
119      * UML Specific type is transformed by shieldedElements to AndroMDA Metafacade type
120      * @return Object
121      */
122     protected abstract Object handleGetParent();
123 
124     /**
125      * A taxonomic relationship between a more general classifier and a more specific classifier.
126      * Each
127      * instance of the specific classifier is also an indirect instance of the general classifier.
128      * Thus,
129      * the specific classifier inherits the features of the more general classifier. A
130      * generalization
131      * relates a specific classifier to a more general classifier, and is owned by the specific
132      * classifier.
133      * @return (GeneralizableElementFacade)handleGetChild()
134      */
135     public final GeneralizableElementFacade getChild()
136     {
137         GeneralizableElementFacade getChild2r = null;
138         // generalizationFacade has no pre constraints
139         Object result = handleGetChild();
140         MetafacadeBase shieldedResult = this.shieldedElement(result);
141         try
142         {
143             getChild2r = (GeneralizableElementFacade)shieldedResult;
144         }
145         catch (ClassCastException ex)
146         {
147             // Bad things happen if the metafacade type mapping in metafacades.xml is wrong - Warn
148             GeneralizationFacadeLogic.logger.warn("incorrect metafacade cast for GeneralizationFacadeLogic.getChild GeneralizableElementFacade " + result + ": " + shieldedResult);
149         }
150         // generalizationFacade has no post constraints
151         return getChild2r;
152     }
153 
154     /**
155      * UML Specific type is transformed by shieldedElements to AndroMDA Metafacade type
156      * @return Object
157      */
158     protected abstract Object handleGetChild();
159 
160     /**
161      * @param validationMessages Collection<ModelValidationMessage>
162      * @see ModelElementFacadeLogicImpl#validateInvariants(Collection validationMessages)
163      */
164     @Override
165     public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
166     {
167         super.validateInvariants(validationMessages);
168     }
169 }