View Javadoc
1   // license-header java merge-point
2   //
3   // Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
4   //
5   package org.andromda.cartridges.spring.metafacades;
6   
7   import java.util.Collection;
8   import org.andromda.core.common.Introspector;
9   import org.andromda.core.metafacade.MetafacadeBase;
10  import org.andromda.core.metafacade.MetafacadeFactory;
11  import org.andromda.core.metafacade.ModelValidationMessage;
12  import org.andromda.metafacades.uml.ConstraintFacade;
13  import org.andromda.metafacades.uml.DependencyFacade;
14  import org.andromda.metafacades.uml.ModelElementFacade;
15  import org.andromda.metafacades.uml.ModelFacade;
16  import org.andromda.metafacades.uml.PackageFacade;
17  import org.andromda.metafacades.uml.StateMachineFacade;
18  import org.andromda.metafacades.uml.StereotypeFacade;
19  import org.andromda.metafacades.uml.TaggedValueFacade;
20  import org.andromda.metafacades.uml.TemplateParameterFacade;
21  import org.andromda.metafacades.uml.TypeMappings;
22  
23  /**
24   * Represents a dependency between spring objects.
25   * MetafacadeLogic for SpringDependency
26   *
27   * @see SpringDependency
28   */
29  public abstract class SpringDependencyLogic
30      extends MetafacadeBase
31      implements SpringDependency
32  {
33      /**
34       * The underlying UML object
35       * @see Object
36       */
37      protected Object metaObject;
38  
39      /** Create Metafacade implementation instance using the MetafacadeFactory from the context
40       * @param metaObjectIn
41       * @param context
42       */
43      protected SpringDependencyLogic(Object metaObjectIn, String context)
44      {
45          super(metaObjectIn, getContext(context));
46          this.superDependencyFacade =
47             (DependencyFacade)
48              MetafacadeFactory.getInstance().createFacadeImpl(
49                      "org.andromda.metafacades.uml.DependencyFacade",
50                      metaObjectIn,
51                      getContext(context));
52          this.metaObject = metaObjectIn;
53      }
54  
55      /**
56       * Gets the context for this metafacade logic instance.
57       * @param context String. Set to SpringDependency if null
58       * @return context String
59       */
60      private static String getContext(String context)
61      {
62          if (context == null)
63          {
64              context = "org.andromda.cartridges.spring.metafacades.SpringDependency";
65          }
66          return context;
67      }
68  
69      private DependencyFacade superDependencyFacade;
70      private boolean superDependencyFacadeInitialized = false;
71  
72      /**
73       * Gets the DependencyFacade parent instance.
74       * @return this.superDependencyFacade DependencyFacade
75       */
76      private DependencyFacade getSuperDependencyFacade()
77      {
78          if (!this.superDependencyFacadeInitialized)
79          {
80              ((MetafacadeBase)this.superDependencyFacade).setMetafacadeContext(this.getMetafacadeContext());
81              this.superDependencyFacadeInitialized = true;
82          }
83          return this.superDependencyFacade;
84      }
85  
86      /** Reset context only for non-root metafacades
87       * @param context
88       * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
89       */
90      @Override
91      public void resetMetafacadeContext(String context)
92      {
93          if (!this.contextRoot) // reset context only for non-root metafacades
94          {
95              context = getContext(context);  // to have same value as in original constructor call
96              setMetafacadeContext (context);
97              if (this.superDependencyFacadeInitialized)
98              {
99                  ((MetafacadeBase)this.superDependencyFacade).resetMetafacadeContext(context);
100             }
101         }
102     }
103 
104     /**
105      * @return boolean true always
106      * @see SpringDependency
107      */
108     public boolean isSpringDependencyMetaType()
109     {
110         return true;
111     }
112 
113     // --------------- attributes ---------------------
114 
115    /**
116     * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationConstantName()
117     * @return String
118     */
119     protected abstract String handleGetTransformationConstantName();
120 
121     private String __transformationConstantName1a;
122     private boolean __transformationConstantName1aSet = false;
123 
124     /**
125      * The name of the constant designated for use as a transformation flag for value objects (only
126      * makes sense when this dependency goes into a value object).
127      * @return (String)handleGetTransformationConstantName()
128      */
129     public final String getTransformationConstantName()
130     {
131         String transformationConstantName1a = this.__transformationConstantName1a;
132         if (!this.__transformationConstantName1aSet)
133         {
134             // transformationConstantName has no pre constraints
135             transformationConstantName1a = handleGetTransformationConstantName();
136             // transformationConstantName has no post constraints
137             this.__transformationConstantName1a = transformationConstantName1a;
138             if (isMetafacadePropertyCachingEnabled())
139             {
140                 this.__transformationConstantName1aSet = true;
141             }
142         }
143         return transformationConstantName1a;
144     }
145 
146    /**
147     * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationMethodName()
148     * @return String
149     */
150     protected abstract String handleGetTransformationMethodName();
151 
152     private String __transformationMethodName2a;
153     private boolean __transformationMethodName2aSet = false;
154 
155     /**
156      * The name of the method use for transformation into a value object (only makes sense when this
157      * dependency goes into a value object).
158      * @return (String)handleGetTransformationMethodName()
159      */
160     public final String getTransformationMethodName()
161     {
162         String transformationMethodName2a = this.__transformationMethodName2a;
163         if (!this.__transformationMethodName2aSet)
164         {
165             // transformationMethodName has no pre constraints
166             transformationMethodName2a = handleGetTransformationMethodName();
167             // transformationMethodName has no post constraints
168             this.__transformationMethodName2a = transformationMethodName2a;
169             if (isMetafacadePropertyCachingEnabled())
170             {
171                 this.__transformationMethodName2aSet = true;
172             }
173         }
174         return transformationMethodName2a;
175     }
176 
177    /**
178     * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationAnonymousName()
179     * @return String
180     */
181     protected abstract String handleGetTransformationAnonymousName();
182 
183     private String __transformationAnonymousName3a;
184     private boolean __transformationAnonymousName3aSet = false;
185 
186     /**
187      * TODO: Model Documentation for
188      * org.andromda.cartridges.spring.metafacades.SpringDependency.transformationAnonymousName
189      * @return (String)handleGetTransformationAnonymousName()
190      */
191     public final String getTransformationAnonymousName()
192     {
193         String transformationAnonymousName3a = this.__transformationAnonymousName3a;
194         if (!this.__transformationAnonymousName3aSet)
195         {
196             // transformationAnonymousName has no pre constraints
197             transformationAnonymousName3a = handleGetTransformationAnonymousName();
198             // transformationAnonymousName has no post constraints
199             this.__transformationAnonymousName3a = transformationAnonymousName3a;
200             if (isMetafacadePropertyCachingEnabled())
201             {
202                 this.__transformationAnonymousName3aSet = true;
203             }
204         }
205         return transformationAnonymousName3a;
206     }
207 
208    /**
209     * @see org.andromda.cartridges.spring.metafacades.SpringDependency#isCircularReference()
210     * @return boolean
211     */
212     protected abstract boolean handleIsCircularReference();
213 
214     private boolean __circularReference4a;
215     private boolean __circularReference4aSet = false;
216 
217     /**
218      * Indicates if this dependency is part of a circular reference (meaning that both entities
219      * reference each other).
220      * @return (boolean)handleIsCircularReference()
221      */
222     public final boolean isCircularReference()
223     {
224         boolean circularReference4a = this.__circularReference4a;
225         if (!this.__circularReference4aSet)
226         {
227             // circularReference has no pre constraints
228             circularReference4a = handleIsCircularReference();
229             // circularReference has no post constraints
230             this.__circularReference4a = circularReference4a;
231             if (isMetafacadePropertyCachingEnabled())
232             {
233                 this.__circularReference4aSet = true;
234             }
235         }
236         return circularReference4a;
237     }
238 
239    /**
240     * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationToCollectionMethodName()
241     * @return String
242     */
243     protected abstract String handleGetTransformationToCollectionMethodName();
244 
245     private String __transformationToCollectionMethodName5a;
246     private boolean __transformationToCollectionMethodName5aSet = false;
247 
248     /**
249      * Returns the name of the method for transforming the contents of a collection.
250      * @return (String)handleGetTransformationToCollectionMethodName()
251      */
252     public final String getTransformationToCollectionMethodName()
253     {
254         String transformationToCollectionMethodName5a = this.__transformationToCollectionMethodName5a;
255         if (!this.__transformationToCollectionMethodName5aSet)
256         {
257             // transformationToCollectionMethodName has no pre constraints
258             transformationToCollectionMethodName5a = handleGetTransformationToCollectionMethodName();
259             // transformationToCollectionMethodName has no post constraints
260             this.__transformationToCollectionMethodName5a = transformationToCollectionMethodName5a;
261             if (isMetafacadePropertyCachingEnabled())
262             {
263                 this.__transformationToCollectionMethodName5aSet = true;
264             }
265         }
266         return transformationToCollectionMethodName5a;
267     }
268 
269    /**
270     * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getDaoName()
271     * @return String
272     */
273     protected abstract String handleGetDaoName();
274 
275     private String __daoName6a;
276     private boolean __daoName6aSet = false;
277 
278     /**
279      * The name given to a DAO reference.
280      * @return (String)handleGetDaoName()
281      */
282     public final String getDaoName()
283     {
284         String daoName6a = this.__daoName6a;
285         if (!this.__daoName6aSet)
286         {
287             // daoName has no pre constraints
288             daoName6a = handleGetDaoName();
289             // daoName has no post constraints
290             this.__daoName6a = daoName6a;
291             if (isMetafacadePropertyCachingEnabled())
292             {
293                 this.__daoName6aSet = true;
294             }
295         }
296         return daoName6a;
297     }
298 
299    /**
300     * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getDaoGetterName()
301     * @return String
302     */
303     protected abstract String handleGetDaoGetterName();
304 
305     private String __daoGetterName7a;
306     private boolean __daoGetterName7aSet = false;
307 
308     /**
309      * The name of the DAO reference getter name.
310      * @return (String)handleGetDaoGetterName()
311      */
312     public final String getDaoGetterName()
313     {
314         String daoGetterName7a = this.__daoGetterName7a;
315         if (!this.__daoGetterName7aSet)
316         {
317             // daoGetterName has no pre constraints
318             daoGetterName7a = handleGetDaoGetterName();
319             // daoGetterName has no post constraints
320             this.__daoGetterName7a = daoGetterName7a;
321             if (isMetafacadePropertyCachingEnabled())
322             {
323                 this.__daoGetterName7aSet = true;
324             }
325         }
326         return daoGetterName7a;
327     }
328 
329    /**
330     * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getDaoSetterName()
331     * @return String
332     */
333     protected abstract String handleGetDaoSetterName();
334 
335     private String __daoSetterName8a;
336     private boolean __daoSetterName8aSet = false;
337 
338     /**
339      * The DAO reference setter's name.
340      * @return (String)handleGetDaoSetterName()
341      */
342     public final String getDaoSetterName()
343     {
344         String daoSetterName8a = this.__daoSetterName8a;
345         if (!this.__daoSetterName8aSet)
346         {
347             // daoSetterName has no pre constraints
348             daoSetterName8a = handleGetDaoSetterName();
349             // daoSetterName has no post constraints
350             this.__daoSetterName8a = daoSetterName8a;
351             if (isMetafacadePropertyCachingEnabled())
352             {
353                 this.__daoSetterName8aSet = true;
354             }
355         }
356         return daoSetterName8a;
357     }
358 
359    /**
360     * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationConstantValue()
361     * @return int
362     */
363     protected abstract int handleGetTransformationConstantValue();
364 
365     private int __transformationConstantValue9a;
366     private boolean __transformationConstantValue9aSet = false;
367 
368     /**
369      * Stores the transformation constrant name.
370      * @return (int)handleGetTransformationConstantValue()
371      */
372     public final int getTransformationConstantValue()
373     {
374         int transformationConstantValue9a = this.__transformationConstantValue9a;
375         if (!this.__transformationConstantValue9aSet)
376         {
377             // transformationConstantValue has no pre constraints
378             transformationConstantValue9a = handleGetTransformationConstantValue();
379             // transformationConstantValue has no post constraints
380             this.__transformationConstantValue9a = transformationConstantValue9a;
381             if (isMetafacadePropertyCachingEnabled())
382             {
383                 this.__transformationConstantValue9aSet = true;
384             }
385         }
386         return transformationConstantValue9a;
387     }
388 
389    /**
390     * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationToEntityCollectionMethodName()
391     * @return String
392     */
393     protected abstract String handleGetTransformationToEntityCollectionMethodName();
394 
395     private String __transformationToEntityCollectionMethodName10a;
396     private boolean __transformationToEntityCollectionMethodName10aSet = false;
397 
398     /**
399      * The method name that performs the value object collection to entity collection
400      * transformation.
401      * @return (String)handleGetTransformationToEntityCollectionMethodName()
402      */
403     public final String getTransformationToEntityCollectionMethodName()
404     {
405         String transformationToEntityCollectionMethodName10a = this.__transformationToEntityCollectionMethodName10a;
406         if (!this.__transformationToEntityCollectionMethodName10aSet)
407         {
408             // transformationToEntityCollectionMethodName has no pre constraints
409             transformationToEntityCollectionMethodName10a = handleGetTransformationToEntityCollectionMethodName();
410             // transformationToEntityCollectionMethodName has no post constraints
411             this.__transformationToEntityCollectionMethodName10a = transformationToEntityCollectionMethodName10a;
412             if (isMetafacadePropertyCachingEnabled())
413             {
414                 this.__transformationToEntityCollectionMethodName10aSet = true;
415             }
416         }
417         return transformationToEntityCollectionMethodName10a;
418     }
419 
420    /**
421     * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationToEntityMethodName()
422     * @return String
423     */
424     protected abstract String handleGetTransformationToEntityMethodName();
425 
426     private String __transformationToEntityMethodName11a;
427     private boolean __transformationToEntityMethodName11aSet = false;
428 
429     /**
430      * The name of the "to entity" transformation method name.
431      * @return (String)handleGetTransformationToEntityMethodName()
432      */
433     public final String getTransformationToEntityMethodName()
434     {
435         String transformationToEntityMethodName11a = this.__transformationToEntityMethodName11a;
436         if (!this.__transformationToEntityMethodName11aSet)
437         {
438             // transformationToEntityMethodName has no pre constraints
439             transformationToEntityMethodName11a = handleGetTransformationToEntityMethodName();
440             // transformationToEntityMethodName has no post constraints
441             this.__transformationToEntityMethodName11a = transformationToEntityMethodName11a;
442             if (isMetafacadePropertyCachingEnabled())
443             {
444                 this.__transformationToEntityMethodName11aSet = true;
445             }
446         }
447         return transformationToEntityMethodName11a;
448     }
449 
450    /**
451     * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getValueObjectToEntityTransformerName()
452     * @return String
453     */
454     protected abstract String handleGetValueObjectToEntityTransformerName();
455 
456     private String __valueObjectToEntityTransformerName12a;
457     private boolean __valueObjectToEntityTransformerName12aSet = false;
458 
459     /**
460      * The name of the class that performs the value object to entity transformation.
461      * @return (String)handleGetValueObjectToEntityTransformerName()
462      */
463     public final String getValueObjectToEntityTransformerName()
464     {
465         String valueObjectToEntityTransformerName12a = this.__valueObjectToEntityTransformerName12a;
466         if (!this.__valueObjectToEntityTransformerName12aSet)
467         {
468             // valueObjectToEntityTransformerName has no pre constraints
469             valueObjectToEntityTransformerName12a = handleGetValueObjectToEntityTransformerName();
470             // valueObjectToEntityTransformerName has no post constraints
471             this.__valueObjectToEntityTransformerName12a = valueObjectToEntityTransformerName12a;
472             if (isMetafacadePropertyCachingEnabled())
473             {
474                 this.__valueObjectToEntityTransformerName12aSet = true;
475             }
476         }
477         return valueObjectToEntityTransformerName12a;
478     }
479 
480    /**
481     * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationToArrayMethodName()
482     * @return String
483     */
484     protected abstract String handleGetTransformationToArrayMethodName();
485 
486     private String __transformationToArrayMethodName13a;
487     private boolean __transformationToArrayMethodName13aSet = false;
488 
489     /**
490      * Returns the name of the method for transforming the contents of a collection to an array.
491      * @return (String)handleGetTransformationToArrayMethodName()
492      */
493     public final String getTransformationToArrayMethodName()
494     {
495         String transformationToArrayMethodName13a = this.__transformationToArrayMethodName13a;
496         if (!this.__transformationToArrayMethodName13aSet)
497         {
498             // transformationToArrayMethodName has no pre constraints
499             transformationToArrayMethodName13a = handleGetTransformationToArrayMethodName();
500             // transformationToArrayMethodName has no post constraints
501             this.__transformationToArrayMethodName13a = transformationToArrayMethodName13a;
502             if (isMetafacadePropertyCachingEnabled())
503             {
504                 this.__transformationToArrayMethodName13aSet = true;
505             }
506         }
507         return transformationToArrayMethodName13a;
508     }
509 
510     /**
511      * @return true
512      * @see DependencyFacade
513      */
514     public boolean isDependencyFacadeMetaType()
515     {
516         return true;
517     }
518 
519     /**
520      * @return true
521      * @see ModelElementFacade
522      */
523     public boolean isModelElementFacadeMetaType()
524     {
525         return true;
526     }
527 
528     // ----------- delegates to DependencyFacade ------------
529     /**
530      * The "getter" name for this dependency.
531      * @see DependencyFacade#getGetterName()
532      */
533     public String getGetterName()
534     {
535         return this.getSuperDependencyFacade().getGetterName();
536     }
537 
538     /**
539      * The "setter" name for this dependency.
540      * @see DependencyFacade#getSetterName()
541      */
542     public String getSetterName()
543     {
544         return this.getSuperDependencyFacade().getSetterName();
545     }
546 
547     /**
548      * The source element of this dependency.
549      * @see DependencyFacade#getSourceElement()
550      */
551     public ModelElementFacade getSourceElement()
552     {
553         return this.getSuperDependencyFacade().getSourceElement();
554     }
555 
556     /**
557      * Gets the element to which the dependencies belong.
558      * @see DependencyFacade#getTargetElement()
559      */
560     public ModelElementFacade getTargetElement()
561     {
562         return this.getSuperDependencyFacade().getTargetElement();
563     }
564 
565     /**
566      * Copies all tagged values from the given ModelElementFacade to this model element facade.
567      * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
568      */
569     public void copyTaggedValues(ModelElementFacade element)
570     {
571         this.getSuperDependencyFacade().copyTaggedValues(element);
572     }
573 
574     /**
575      * Finds the tagged value with the specified 'tagName'. In case there are more values the first
576      * one found will be returned.
577      * @see ModelElementFacade#findTaggedValue(String tagName)
578      */
579     public Object findTaggedValue(String tagName)
580     {
581         return this.getSuperDependencyFacade().findTaggedValue(tagName);
582     }
583 
584     /**
585      * Returns all the values for the tagged value with the specified name. The returned collection
586      * will contains only String instances, or will be empty. Never null.
587      * @see ModelElementFacade#findTaggedValues(String tagName)
588      */
589     public Collection<Object> findTaggedValues(String tagName)
590     {
591         return this.getSuperDependencyFacade().findTaggedValues(tagName);
592     }
593 
594     /**
595      * Returns the fully qualified name of the model element. The fully qualified name includes
596      * complete package qualified name of the underlying model element. The templates parameter will
597      * be replaced by the correct one given the binding relation of the parameter to this element.
598      * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
599      */
600     public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
601     {
602         return this.getSuperDependencyFacade().getBindedFullyQualifiedName(bindedElement);
603     }
604 
605     /**
606      * Gets all constraints belonging to the model element.
607      * @see ModelElementFacade#getConstraints()
608      */
609     public Collection<ConstraintFacade> getConstraints()
610     {
611         return this.getSuperDependencyFacade().getConstraints();
612     }
613 
614     /**
615      * Returns the constraints of the argument kind that have been placed onto this model. Typical
616      * kinds are "inv", "pre" and "post". Other kinds are possible.
617      * @see ModelElementFacade#getConstraints(String kind)
618      */
619     public Collection<ConstraintFacade> getConstraints(String kind)
620     {
621         return this.getSuperDependencyFacade().getConstraints(kind);
622     }
623 
624     /**
625      * Gets the documentation for the model element, The indent argument is prefixed to each line.
626      * By default this method wraps lines after 64 characters.
627      * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
628      * @see ModelElementFacade#getDocumentation(String indent)
629      */
630     public String getDocumentation(String indent)
631     {
632         return this.getSuperDependencyFacade().getDocumentation(indent);
633     }
634 
635     /**
636      * This method returns the documentation for this model element, with the lines wrapped after
637      * the specified number of characters, values of less than 1 will indicate no line wrapping is
638      * required. By default paragraphs are returned as HTML.
639      * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
640      * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
641      */
642     public String getDocumentation(String indent, int lineLength)
643     {
644         return this.getSuperDependencyFacade().getDocumentation(indent, lineLength);
645     }
646 
647     /**
648      * This method returns the documentation for this model element, with the lines wrapped after
649      * the specified number of characters, values of less than 1 will indicate no line wrapping is
650      * required. HTML style determines if HTML Escaping is applied.
651      * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
652      */
653     public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
654     {
655         return this.getSuperDependencyFacade().getDocumentation(indent, lineLength, htmlStyle);
656     }
657 
658     /**
659      * The fully qualified name of this model element.
660      * @see ModelElementFacade#getFullyQualifiedName()
661      */
662     public String getFullyQualifiedName()
663     {
664         return this.getSuperDependencyFacade().getFullyQualifiedName();
665     }
666 
667     /**
668      * Returns the fully qualified name of the model element. The fully qualified name includes
669      * complete package qualified name of the underlying model element.  If modelName is true, then
670      * the original name of the model element (the name contained within the model) will be the name
671      * returned, otherwise a name from a language mapping will be returned.
672      * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
673      */
674     public String getFullyQualifiedName(boolean modelName)
675     {
676         return this.getSuperDependencyFacade().getFullyQualifiedName(modelName);
677     }
678 
679     /**
680      * Returns the fully qualified name as a path, the returned value always starts with out a slash
681      * '/'.
682      * @see ModelElementFacade#getFullyQualifiedNamePath()
683      */
684     public String getFullyQualifiedNamePath()
685     {
686         return this.getSuperDependencyFacade().getFullyQualifiedNamePath();
687     }
688 
689     /**
690      * Gets the unique identifier of the underlying model element.
691      * @see ModelElementFacade#getId()
692      */
693     public String getId()
694     {
695         return this.getSuperDependencyFacade().getId();
696     }
697 
698     /**
699      * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
700      * are not represented by other properties, i.e. native, transient, volatile, synchronized,
701      * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
702      * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
703      * JDK5 compiler level.
704      * @see ModelElementFacade#getKeywords()
705      */
706     public Collection<String> getKeywords()
707     {
708         return this.getSuperDependencyFacade().getKeywords();
709     }
710 
711     /**
712      * UML2: Retrieves a localized label for this named element.
713      * @see ModelElementFacade#getLabel()
714      */
715     public String getLabel()
716     {
717         return this.getSuperDependencyFacade().getLabel();
718     }
719 
720     /**
721      * The language mappings that have been set for this model element.
722      * @see ModelElementFacade#getLanguageMappings()
723      */
724     public TypeMappings getLanguageMappings()
725     {
726         return this.getSuperDependencyFacade().getLanguageMappings();
727     }
728 
729     /**
730      * Return the model containing this model element (multiple models may be loaded and processed
731      * at the same time).
732      * @see ModelElementFacade#getModel()
733      */
734     public ModelFacade getModel()
735     {
736         return this.getSuperDependencyFacade().getModel();
737     }
738 
739     /**
740      * The name of the model element.
741      * @see ModelElementFacade#getName()
742      */
743     public String getName()
744     {
745         return this.getSuperDependencyFacade().getName();
746     }
747 
748     /**
749      * Gets the package to which this model element belongs.
750      * @see ModelElementFacade#getPackage()
751      */
752     public ModelElementFacade getPackage()
753     {
754         return this.getSuperDependencyFacade().getPackage();
755     }
756 
757     /**
758      * The name of this model element's package.
759      * @see ModelElementFacade#getPackageName()
760      */
761     public String getPackageName()
762     {
763         return this.getSuperDependencyFacade().getPackageName();
764     }
765 
766     /**
767      * Gets the package name (optionally providing the ability to retrieve the model name and not
768      * the mapped name).
769      * @see ModelElementFacade#getPackageName(boolean modelName)
770      */
771     public String getPackageName(boolean modelName)
772     {
773         return this.getSuperDependencyFacade().getPackageName(modelName);
774     }
775 
776     /**
777      * Returns the package as a path, the returned value always starts with out a slash '/'.
778      * @see ModelElementFacade#getPackagePath()
779      */
780     public String getPackagePath()
781     {
782         return this.getSuperDependencyFacade().getPackagePath();
783     }
784 
785     /**
786      * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
787      * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
788      * the names of the containing namespaces starting at the root of the hierarchy and ending with
789      * the name of the NamedElement itself.
790      * @see ModelElementFacade#getQualifiedName()
791      */
792     public String getQualifiedName()
793     {
794         return this.getSuperDependencyFacade().getQualifiedName();
795     }
796 
797     /**
798      * Gets the root package for the model element.
799      * @see ModelElementFacade#getRootPackage()
800      */
801     public PackageFacade getRootPackage()
802     {
803         return this.getSuperDependencyFacade().getRootPackage();
804     }
805 
806     /**
807      * Gets the dependencies for which this model element is the source.
808      * @see ModelElementFacade#getSourceDependencies()
809      */
810     public Collection<DependencyFacade> getSourceDependencies()
811     {
812         return this.getSuperDependencyFacade().getSourceDependencies();
813     }
814 
815     /**
816      * If this model element is the context of an activity graph, this represents that activity
817      * graph.
818      * @see ModelElementFacade#getStateMachineContext()
819      */
820     public StateMachineFacade getStateMachineContext()
821     {
822         return this.getSuperDependencyFacade().getStateMachineContext();
823     }
824 
825     /**
826      * The collection of ALL stereotype names for this model element.
827      * @see ModelElementFacade#getStereotypeNames()
828      */
829     public Collection<String> getStereotypeNames()
830     {
831         return this.getSuperDependencyFacade().getStereotypeNames();
832     }
833 
834     /**
835      * Gets all stereotypes for this model element.
836      * @see ModelElementFacade#getStereotypes()
837      */
838     public Collection<StereotypeFacade> getStereotypes()
839     {
840         return this.getSuperDependencyFacade().getStereotypes();
841     }
842 
843     /**
844      * Return the TaggedValues associated with this model element, under all stereotypes.
845      * @see ModelElementFacade#getTaggedValues()
846      */
847     public Collection<TaggedValueFacade> getTaggedValues()
848     {
849         return this.getSuperDependencyFacade().getTaggedValues();
850     }
851 
852     /**
853      * Gets the dependencies for which this model element is the target.
854      * @see ModelElementFacade#getTargetDependencies()
855      */
856     public Collection<DependencyFacade> getTargetDependencies()
857     {
858         return this.getSuperDependencyFacade().getTargetDependencies();
859     }
860 
861     /**
862      * Get the template parameter for this model element having the parameterName
863      * @see ModelElementFacade#getTemplateParameter(String parameterName)
864      */
865     public Object getTemplateParameter(String parameterName)
866     {
867         return this.getSuperDependencyFacade().getTemplateParameter(parameterName);
868     }
869 
870     /**
871      * Get the template parameters for this model element
872      * @see ModelElementFacade#getTemplateParameters()
873      */
874     public Collection<TemplateParameterFacade> getTemplateParameters()
875     {
876         return this.getSuperDependencyFacade().getTemplateParameters();
877     }
878 
879     /**
880      * The visibility (i.e. public, private, protected or package) of the model element, will
881      * attempt a lookup for these values in the language mappings (if any).
882      * @see ModelElementFacade#getVisibility()
883      */
884     public String getVisibility()
885     {
886         return this.getSuperDependencyFacade().getVisibility();
887     }
888 
889     /**
890      * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
891      * is taken into account when searching for the stereotype), false otherwise.
892      * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
893      */
894     public boolean hasExactStereotype(String stereotypeName)
895     {
896         return this.getSuperDependencyFacade().hasExactStereotype(stereotypeName);
897     }
898 
899     /**
900      * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
901      * pipe, semicolon, or << >>
902      * @see ModelElementFacade#hasKeyword(String keywordName)
903      */
904     public boolean hasKeyword(String keywordName)
905     {
906         return this.getSuperDependencyFacade().hasKeyword(keywordName);
907     }
908 
909     /**
910      * Returns true if the model element has the specified stereotype.  If the stereotype itself
911      * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
912      * one of the stereotype's ancestors has a matching name this method will return true, false
913      * otherwise.
914      * For example, if we have a certain stereotype called <<exception>> and a model element has a
915      * stereotype called <<applicationException>> which extends <<exception>>, when calling this
916      * method with 'stereotypeName' defined as 'exception' the method would return true since
917      * <<applicationException>> inherits from <<exception>>.  If you want to check if the model
918      * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
919      * @see ModelElementFacade#hasStereotype(String stereotypeName)
920      */
921     public boolean hasStereotype(String stereotypeName)
922     {
923         return this.getSuperDependencyFacade().hasStereotype(stereotypeName);
924     }
925 
926     /**
927      * True if there are target dependencies from this element that are instances of BindingFacade.
928      * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
929      * @see ModelElementFacade#isBindingDependenciesPresent()
930      */
931     public boolean isBindingDependenciesPresent()
932     {
933         return this.getSuperDependencyFacade().isBindingDependenciesPresent();
934     }
935 
936     /**
937      * Indicates if any constraints are present on this model element.
938      * @see ModelElementFacade#isConstraintsPresent()
939      */
940     public boolean isConstraintsPresent()
941     {
942         return this.getSuperDependencyFacade().isConstraintsPresent();
943     }
944 
945     /**
946      * Indicates if any documentation is present on this model element.
947      * @see ModelElementFacade#isDocumentationPresent()
948      */
949     public boolean isDocumentationPresent()
950     {
951         return this.getSuperDependencyFacade().isDocumentationPresent();
952     }
953 
954     /**
955      * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
956      * @see ModelElementFacade#isReservedWord()
957      */
958     public boolean isReservedWord()
959     {
960         return this.getSuperDependencyFacade().isReservedWord();
961     }
962 
963     /**
964      * True is there are template parameters on this model element. For UML2, applies to Class,
965      * Operation, Property, and Parameter.
966      * @see ModelElementFacade#isTemplateParametersPresent()
967      */
968     public boolean isTemplateParametersPresent()
969     {
970         return this.getSuperDependencyFacade().isTemplateParametersPresent();
971     }
972 
973     /**
974      * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
975      * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
976      * Enumerations and Interfaces, optionally applies on other model elements.
977      * @see ModelElementFacade#isValidIdentifierName()
978      */
979     public boolean isValidIdentifierName()
980     {
981         return this.getSuperDependencyFacade().isValidIdentifierName();
982     }
983 
984     /**
985      * Searches for the constraint with the specified 'name' on this model element, and if found
986      * translates it using the specified 'translation' from a translation library discovered by the
987      * framework.
988      * @see ModelElementFacade#translateConstraint(String name, String translation)
989      */
990     public String translateConstraint(String name, String translation)
991     {
992         return this.getSuperDependencyFacade().translateConstraint(name, translation);
993     }
994 
995     /**
996      * Translates all constraints belonging to this model element with the given 'translation'.
997      * @see ModelElementFacade#translateConstraints(String translation)
998      */
999     public String[] translateConstraints(String translation)
1000     {
1001         return this.getSuperDependencyFacade().translateConstraints(translation);
1002     }
1003 
1004     /**
1005      * Translates the constraints of the specified 'kind' belonging to this model element.
1006      * @see ModelElementFacade#translateConstraints(String kind, String translation)
1007      */
1008     public String[] translateConstraints(String kind, String translation)
1009     {
1010         return this.getSuperDependencyFacade().translateConstraints(kind, translation);
1011     }
1012 
1013     /**
1014      * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
1015      */
1016     @Override
1017     public void initialize()
1018     {
1019         this.getSuperDependencyFacade().initialize();
1020     }
1021 
1022     /**
1023      * @return Object getSuperDependencyFacade().getValidationOwner()
1024      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
1025      */
1026     @Override
1027     public Object getValidationOwner()
1028     {
1029         Object owner = this.getSuperDependencyFacade().getValidationOwner();
1030         return owner;
1031     }
1032 
1033     /**
1034      * @return String getSuperDependencyFacade().getValidationName()
1035      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
1036      */
1037     @Override
1038     public String getValidationName()
1039     {
1040         String name = this.getSuperDependencyFacade().getValidationName();
1041         return name;
1042     }
1043 
1044     /**
1045      * @param validationMessages Collection<ModelValidationMessage>
1046      * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
1047      */
1048     @Override
1049     public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
1050     {
1051         this.getSuperDependencyFacade().validateInvariants(validationMessages);
1052     }
1053 
1054     /**
1055      * The property that stores the name of the metafacade.
1056      */
1057     private static final String NAME_PROPERTY = "name";
1058     private static final String FQNAME_PROPERTY = "fullyQualifiedName";
1059 
1060     /**
1061      * @see Object#toString()
1062      */
1063     @Override
1064     public String toString()
1065     {
1066         final StringBuilder toString = new StringBuilder(this.getClass().getName());
1067         toString.append("[");
1068         try
1069         {
1070             toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
1071         }
1072         catch (final Throwable tryAgain)
1073         {
1074             try
1075             {
1076                 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
1077             }
1078             catch (final Throwable ignore)
1079             {
1080                 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
1081             }
1082         }
1083         toString.append("]");
1084         return toString.toString();
1085     }
1086 }