View Javadoc

1   //
2   // Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
3   //
4   package org.andromda.metafacades.uml14;
5   
6   /***
7    * MetafacadeLogic for org.andromda.metafacades.uml.AssociationFacade
8    *
9    * @see org.andromda.metafacades.uml.AssociationFacade
10   */
11  public abstract class AssociationFacadeLogic
12      extends org.andromda.metafacades.uml14.GeneralizableElementFacadeLogicImpl
13      implements org.andromda.metafacades.uml.AssociationFacade
14  {
15  
16      protected org.omg.uml.foundation.core.UmlAssociation metaObject;
17  
18      public AssociationFacadeLogic(org.omg.uml.foundation.core.UmlAssociation metaObject, String context)
19      {
20          super(metaObject, getContext(context));
21          this.metaObject = metaObject;
22      }
23  
24      /***
25       * Gets the context for this metafacade logic instance.
26       */
27      private static String getContext(String context)
28      {
29          if (context == null)
30          {
31              context = "org.andromda.metafacades.uml.AssociationFacade";
32          }
33          return context;
34      }
35  
36      /***
37       * @see org.andromda.core.metafacade.MetafacadeBase
38       */
39      public void resetMetafacadeContext(String context)
40      {
41          if (!this.contextRoot) // reset context only for non-root metafacades
42          {
43              context = getContext(context);  // to have same value as in original constructor call
44              setMetafacadeContext (context);
45          }
46      }
47  
48      /***
49       * @see org.andromda.metafacades.uml.AssociationFacade
50       */
51      public boolean isAssociationFacadeMetaType()
52      {
53          return true;
54      }
55      
56      // --------------- attributes ---------------------
57  
58     /***
59      * @see org.andromda.metafacades.uml.AssociationFacade#getRelationName()
60      */
61      protected abstract java.lang.String handleGetRelationName();
62  
63      private void handleGetRelationName1aPreCondition()
64      {
65      }
66  
67      private void handleGetRelationName1aPostCondition()
68      {
69      }
70  
71      private java.lang.String __relationName1a;
72      private boolean __relationName1aSet = false;
73  
74      public final java.lang.String getRelationName()
75      {
76          java.lang.String relationName1a = this.__relationName1a;
77          if (!this.__relationName1aSet)
78          {
79              handleGetRelationName1aPreCondition();
80              relationName1a = handleGetRelationName();
81              handleGetRelationName1aPostCondition();
82              this.__relationName1a = relationName1a;
83              if (isMetafacadePropertyCachingEnabled())
84              {
85                  this.__relationName1aSet = true;
86              }
87          }
88          return relationName1a;
89      }
90  
91     /***
92      * @see org.andromda.metafacades.uml.AssociationFacade#isMany2Many()
93      */
94      protected abstract boolean handleIsMany2Many();
95  
96      private void handleIsMany2Many2aPreCondition()
97      {
98      }
99  
100     private void handleIsMany2Many2aPostCondition()
101     {
102     }
103 
104     private boolean __many2Many2a;
105     private boolean __many2Many2aSet = false;
106 
107     public final boolean isMany2Many()
108     {
109         boolean many2Many2a = this.__many2Many2a;
110         if (!this.__many2Many2aSet)
111         {
112             handleIsMany2Many2aPreCondition();
113             many2Many2a = handleIsMany2Many();
114             handleIsMany2Many2aPostCondition();
115             this.__many2Many2a = many2Many2a;
116             if (isMetafacadePropertyCachingEnabled())
117             {
118                 this.__many2Many2aSet = true;
119             }
120         }
121         return many2Many2a;
122     }
123 
124    /***
125     * @see org.andromda.metafacades.uml.AssociationFacade#isAssociationClass()
126     */
127     protected abstract boolean handleIsAssociationClass();
128 
129     private void handleIsAssociationClass3aPreCondition()
130     {
131     }
132 
133     private void handleIsAssociationClass3aPostCondition()
134     {
135     }
136 
137     private boolean __associationClass3a;
138     private boolean __associationClass3aSet = false;
139 
140     public final boolean isAssociationClass()
141     {
142         boolean associationClass3a = this.__associationClass3a;
143         if (!this.__associationClass3aSet)
144         {
145             handleIsAssociationClass3aPreCondition();
146             associationClass3a = handleIsAssociationClass();
147             handleIsAssociationClass3aPostCondition();
148             this.__associationClass3a = associationClass3a;
149             if (isMetafacadePropertyCachingEnabled())
150             {
151                 this.__associationClass3aSet = true;
152             }
153         }
154         return associationClass3a;
155     }
156 
157    /***
158     * @see org.andromda.metafacades.uml.AssociationFacade#isAbstract()
159     */
160     protected abstract boolean handleIsAbstract();
161 
162     private void handleIsAbstract4aPreCondition()
163     {
164     }
165 
166     private void handleIsAbstract4aPostCondition()
167     {
168     }
169 
170     private boolean __abstract4a;
171     private boolean __abstract4aSet = false;
172 
173     public final boolean isAbstract()
174     {
175         boolean abstract4a = this.__abstract4a;
176         if (!this.__abstract4aSet)
177         {
178             handleIsAbstract4aPreCondition();
179             abstract4a = handleIsAbstract();
180             handleIsAbstract4aPostCondition();
181             this.__abstract4a = abstract4a;
182             if (isMetafacadePropertyCachingEnabled())
183             {
184                 this.__abstract4aSet = true;
185             }
186         }
187         return abstract4a;
188     }
189 
190    /***
191     * @see org.andromda.metafacades.uml.AssociationFacade#isLeaf()
192     */
193     protected abstract boolean handleIsLeaf();
194 
195     private void handleIsLeaf5aPreCondition()
196     {
197     }
198 
199     private void handleIsLeaf5aPostCondition()
200     {
201     }
202 
203     private boolean __leaf5a;
204     private boolean __leaf5aSet = false;
205 
206     public final boolean isLeaf()
207     {
208         boolean leaf5a = this.__leaf5a;
209         if (!this.__leaf5aSet)
210         {
211             handleIsLeaf5aPreCondition();
212             leaf5a = handleIsLeaf();
213             handleIsLeaf5aPostCondition();
214             this.__leaf5a = leaf5a;
215             if (isMetafacadePropertyCachingEnabled())
216             {
217                 this.__leaf5aSet = true;
218             }
219         }
220         return leaf5a;
221     }
222 
223     // ------------- associations ------------------
224 
225     private void handleGetAssociationEnds1rPreCondition()
226     {
227     }
228 
229     private void handleGetAssociationEnds1rPostCondition()
230     {
231     }
232 
233     public final java.util.List getAssociationEnds()
234     {
235         java.util.List getAssociationEnds1r = null;
236         handleGetAssociationEnds1rPreCondition();
237         Object result = this.shieldedElements(handleGetAssociationEnds());
238         try
239         {
240             getAssociationEnds1r = (java.util.List)result;
241         }
242         catch (ClassCastException ex)
243         {
244             // ignore since the metafacade shouldn't
245             // be set if its not of the correct type
246         }
247         handleGetAssociationEnds1rPostCondition();
248         return getAssociationEnds1r;
249     }
250 
251     protected abstract java.util.List handleGetAssociationEnds();
252 
253     private void handleGetAssociationEndA2rPreCondition()
254     {
255     }
256 
257     private void handleGetAssociationEndA2rPostCondition()
258     {
259     }
260 
261     private org.andromda.metafacades.uml.AssociationEndFacade __getAssociationEndA2r;
262     private boolean __getAssociationEndA2rSet = false;
263 
264     public final org.andromda.metafacades.uml.AssociationEndFacade getAssociationEndA()
265     {
266         org.andromda.metafacades.uml.AssociationEndFacade getAssociationEndA2r = this.__getAssociationEndA2r;
267         if (!this.__getAssociationEndA2rSet)
268         {
269             handleGetAssociationEndA2rPreCondition();
270             Object result = this.shieldedElement(handleGetAssociationEndA());
271             try
272             {
273                 getAssociationEndA2r = (org.andromda.metafacades.uml.AssociationEndFacade)result;
274             }
275             catch (ClassCastException ex)
276             {
277                 // ignore since the metafacade shouldn't
278                 // be set if its not of the correct type
279             }
280             handleGetAssociationEndA2rPostCondition();
281             this.__getAssociationEndA2r = getAssociationEndA2r;
282             if (isMetafacadePropertyCachingEnabled())
283             {
284                 this.__getAssociationEndA2rSet = true;
285             }
286         }
287         return getAssociationEndA2r;
288     }
289 
290     protected abstract java.lang.Object handleGetAssociationEndA();
291 
292     private void handleGetAssociationEndB3rPreCondition()
293     {
294     }
295 
296     private void handleGetAssociationEndB3rPostCondition()
297     {
298     }
299 
300     private org.andromda.metafacades.uml.AssociationEndFacade __getAssociationEndB3r;
301     private boolean __getAssociationEndB3rSet = false;
302 
303     public final org.andromda.metafacades.uml.AssociationEndFacade getAssociationEndB()
304     {
305         org.andromda.metafacades.uml.AssociationEndFacade getAssociationEndB3r = this.__getAssociationEndB3r;
306         if (!this.__getAssociationEndB3rSet)
307         {
308             handleGetAssociationEndB3rPreCondition();
309             Object result = this.shieldedElement(handleGetAssociationEndB());
310             try
311             {
312                 getAssociationEndB3r = (org.andromda.metafacades.uml.AssociationEndFacade)result;
313             }
314             catch (ClassCastException ex)
315             {
316                 // ignore since the metafacade shouldn't
317                 // be set if its not of the correct type
318             }
319             handleGetAssociationEndB3rPostCondition();
320             this.__getAssociationEndB3r = getAssociationEndB3r;
321             if (isMetafacadePropertyCachingEnabled())
322             {
323                 this.__getAssociationEndB3rSet = true;
324             }
325         }
326         return getAssociationEndB3r;
327     }
328 
329     protected abstract java.lang.Object handleGetAssociationEndB();
330 
331     /***
332      * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(java.util.Collection)
333      */
334     public void validateInvariants(java.util.Collection validationMessages)
335     {
336         super.validateInvariants(validationMessages);
337     }
338     
339     /***
340      * The property that stores the name of the metafacade.
341      */
342     private static final String NAME_PROPERTY = "name";
343     
344     /***
345      * @see java.lang.Object#toString()
346      */
347     public String toString()
348     {
349         final StringBuffer toString = new StringBuffer(this.getClass().getName());
350         toString.append("[");
351         try
352         {
353             toString.append(org.andromda.core.common.Introspector.instance().getProperty(this, NAME_PROPERTY));
354         }
355         catch (final Throwable throwable)
356         {
357             // - just ignore when the metafacade doesn't have a name property
358         }
359         toString.append("]");
360         return toString.toString();
361     }
362 }