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.jsf2.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.ClassifierFacade;
13  import org.andromda.metafacades.uml.ConstraintFacade;
14  import org.andromda.metafacades.uml.DependencyFacade;
15  import org.andromda.metafacades.uml.EnumerationFacade;
16  import org.andromda.metafacades.uml.ManageableEntityAttribute;
17  import org.andromda.metafacades.uml.ModelElementFacade;
18  import org.andromda.metafacades.uml.ModelFacade;
19  import org.andromda.metafacades.uml.PackageFacade;
20  import org.andromda.metafacades.uml.ParameterFacade;
21  import org.andromda.metafacades.uml.StateMachineFacade;
22  import org.andromda.metafacades.uml.StereotypeFacade;
23  import org.andromda.metafacades.uml.TaggedValueFacade;
24  import org.andromda.metafacades.uml.TemplateParameterFacade;
25  import org.andromda.metafacades.uml.TypeMappings;
26  
27  /**
28   * TODO: Model Documentation for
29   * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute
30   * MetafacadeLogic for JSFManageableEntityAttribute
31   *
32   * @see JSFManageableEntityAttribute
33   */
34  public abstract class JSFManageableEntityAttributeLogic
35      extends MetafacadeBase
36      implements JSFManageableEntityAttribute
37  {
38      /**
39       * The underlying UML object
40       * @see Object
41       */
42      protected Object metaObject;
43  
44      /** Create Metafacade implementation instance using the MetafacadeFactory from the context
45       * @param metaObjectIn
46       * @param context
47       */
48      protected JSFManageableEntityAttributeLogic(Object metaObjectIn, String context)
49      {
50          super(metaObjectIn, getContext(context));
51          this.superManageableEntityAttribute =
52             (ManageableEntityAttribute)
53              MetafacadeFactory.getInstance().createFacadeImpl(
54                      "org.andromda.metafacades.uml.ManageableEntityAttribute",
55                      metaObjectIn,
56                      getContext(context));
57          this.metaObject = metaObjectIn;
58      }
59  
60      /**
61       * Gets the context for this metafacade logic instance.
62       * @param context String. Set to JSFManageableEntityAttribute if null
63       * @return context String
64       */
65      private static String getContext(String context)
66      {
67          if (context == null)
68          {
69              context = "org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute";
70          }
71          return context;
72      }
73  
74      private ManageableEntityAttribute superManageableEntityAttribute;
75      private boolean superManageableEntityAttributeInitialized = false;
76  
77      /**
78       * Gets the ManageableEntityAttribute parent instance.
79       * @return this.superManageableEntityAttribute ManageableEntityAttribute
80       */
81      private ManageableEntityAttribute getSuperManageableEntityAttribute()
82      {
83          if (!this.superManageableEntityAttributeInitialized)
84          {
85              ((MetafacadeBase)this.superManageableEntityAttribute).setMetafacadeContext(this.getMetafacadeContext());
86              this.superManageableEntityAttributeInitialized = true;
87          }
88          return this.superManageableEntityAttribute;
89      }
90  
91      /** Reset context only for non-root metafacades
92       * @param context
93       * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
94       */
95      @Override
96      public void resetMetafacadeContext(String context)
97      {
98          if (!this.contextRoot) // reset context only for non-root metafacades
99          {
100             context = getContext(context);  // to have same value as in original constructor call
101             setMetafacadeContext (context);
102             if (this.superManageableEntityAttributeInitialized)
103             {
104                 ((MetafacadeBase)this.superManageableEntityAttribute).resetMetafacadeContext(context);
105             }
106         }
107     }
108 
109     /**
110      * @return boolean true always
111      * @see JSFManageableEntityAttribute
112      */
113     public boolean isJSFManageableEntityAttributeMetaType()
114     {
115         return true;
116     }
117 
118     // --------------- attributes ---------------------
119 
120    /**
121     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getMessageKey()
122     * @return String
123     */
124     protected abstract String handleGetMessageKey();
125 
126     private String __messageKey1a;
127     private boolean __messageKey1aSet = false;
128 
129     /**
130      * TODO: Model Documentation for
131      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.messageKey
132      * @return (String)handleGetMessageKey()
133      */
134     public final String getMessageKey()
135     {
136         String messageKey1a = this.__messageKey1a;
137         if (!this.__messageKey1aSet)
138         {
139             // messageKey has no pre constraints
140             messageKey1a = handleGetMessageKey();
141             // messageKey has no post constraints
142             this.__messageKey1a = messageKey1a;
143             if (isMetafacadePropertyCachingEnabled())
144             {
145                 this.__messageKey1aSet = true;
146             }
147         }
148         return messageKey1a;
149     }
150 
151    /**
152     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getMessageValue()
153     * @return String
154     */
155     protected abstract String handleGetMessageValue();
156 
157     private String __messageValue2a;
158     private boolean __messageValue2aSet = false;
159 
160     /**
161      * TODO: Model Documentation for
162      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.messageValue
163      * @return (String)handleGetMessageValue()
164      */
165     public final String getMessageValue()
166     {
167         String messageValue2a = this.__messageValue2a;
168         if (!this.__messageValue2aSet)
169         {
170             // messageValue has no pre constraints
171             messageValue2a = handleGetMessageValue();
172             // messageValue has no post constraints
173             this.__messageValue2a = messageValue2a;
174             if (isMetafacadePropertyCachingEnabled())
175             {
176                 this.__messageValue2aSet = true;
177             }
178         }
179         return messageValue2a;
180     }
181 
182    /**
183     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getDateFormat()
184     * @return String
185     */
186     protected abstract String handleGetDateFormat();
187 
188     private String __dateFormat3a;
189     private boolean __dateFormat3aSet = false;
190 
191     /**
192      * The String format to use when referring to this date, only makes sense when the type is a
193      * date type.
194      * @return (String)handleGetDateFormat()
195      */
196     public final String getDateFormat()
197     {
198         String dateFormat3a = this.__dateFormat3a;
199         if (!this.__dateFormat3aSet)
200         {
201             // dateFormat has no pre constraints
202             dateFormat3a = handleGetDateFormat();
203             // dateFormat has no post constraints
204             this.__dateFormat3a = dateFormat3a;
205             if (isMetafacadePropertyCachingEnabled())
206             {
207                 this.__dateFormat3aSet = true;
208             }
209         }
210         return dateFormat3a;
211     }
212 
213    /**
214     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isNeedsFileUpload()
215     * @return boolean
216     */
217     protected abstract boolean handleIsNeedsFileUpload();
218 
219     private boolean __needsFileUpload4a;
220     private boolean __needsFileUpload4aSet = false;
221 
222     /**
223      * True if this attribute is of a type that cannot easily be represented as a textual string and
224      * would be an ideal candidate for HTTP's support for file-upload.
225      * @return (boolean)handleIsNeedsFileUpload()
226      */
227     public final boolean isNeedsFileUpload()
228     {
229         boolean needsFileUpload4a = this.__needsFileUpload4a;
230         if (!this.__needsFileUpload4aSet)
231         {
232             // needsFileUpload has no pre constraints
233             needsFileUpload4a = handleIsNeedsFileUpload();
234             // needsFileUpload has no post constraints
235             this.__needsFileUpload4a = needsFileUpload4a;
236             if (isMetafacadePropertyCachingEnabled())
237             {
238                 this.__needsFileUpload4aSet = true;
239             }
240         }
241         return needsFileUpload4a;
242     }
243 
244    /**
245     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isHidden()
246     * @return boolean
247     */
248     protected abstract boolean handleIsHidden();
249 
250     private boolean __hidden5a;
251     private boolean __hidden5aSet = false;
252 
253     /**
254      * Whether or not this attribute should be hidden from the view
255      * @return (boolean)handleIsHidden()
256      */
257     public final boolean isHidden()
258     {
259         boolean hidden5a = this.__hidden5a;
260         if (!this.__hidden5aSet)
261         {
262             // hidden has no pre constraints
263             hidden5a = handleIsHidden();
264             // hidden has no post constraints
265             this.__hidden5a = hidden5a;
266             if (isMetafacadePropertyCachingEnabled())
267             {
268                 this.__hidden5aSet = true;
269             }
270         }
271         return hidden5a;
272     }
273 
274    /**
275     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getWidgetType()
276     * @return String
277     */
278     protected abstract String handleGetWidgetType();
279 
280     private String __widgetType6a;
281     private boolean __widgetType6aSet = false;
282 
283     /**
284      * The widget to use when rendering this attribute
285      * @return (String)handleGetWidgetType()
286      */
287     public final String getWidgetType()
288     {
289         String widgetType6a = this.__widgetType6a;
290         if (!this.__widgetType6aSet)
291         {
292             // widgetType has no pre constraints
293             widgetType6a = handleGetWidgetType();
294             // widgetType has no post constraints
295             this.__widgetType6a = widgetType6a;
296             if (isMetafacadePropertyCachingEnabled())
297             {
298                 this.__widgetType6aSet = true;
299             }
300         }
301         return widgetType6a;
302     }
303 
304    /**
305     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isStrictDateFormat()
306     * @return boolean
307     */
308     protected abstract boolean handleIsStrictDateFormat();
309 
310     private boolean __strictDateFormat7a;
311     private boolean __strictDateFormat7aSet = false;
312 
313     /**
314      * True if this field is a date type and the date format is not be interpreted strictly.
315      * @return (boolean)handleIsStrictDateFormat()
316      */
317     public final boolean isStrictDateFormat()
318     {
319         boolean strictDateFormat7a = this.__strictDateFormat7a;
320         if (!this.__strictDateFormat7aSet)
321         {
322             // strictDateFormat has no pre constraints
323             strictDateFormat7a = handleIsStrictDateFormat();
324             // strictDateFormat has no post constraints
325             this.__strictDateFormat7a = strictDateFormat7a;
326             if (isMetafacadePropertyCachingEnabled())
327             {
328                 this.__strictDateFormat7aSet = true;
329             }
330         }
331         return strictDateFormat7a;
332     }
333 
334    /**
335     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getOnlineHelpKey()
336     * @return String
337     */
338     protected abstract String handleGetOnlineHelpKey();
339 
340     private String __onlineHelpKey8a;
341     private boolean __onlineHelpKey8aSet = false;
342 
343     /**
344      * The key to lookup the online help documentation. This documentation is gathered from the
345      * documentation entered by the user, as well as analyzing the model.
346      * @return (String)handleGetOnlineHelpKey()
347      */
348     public final String getOnlineHelpKey()
349     {
350         String onlineHelpKey8a = this.__onlineHelpKey8a;
351         if (!this.__onlineHelpKey8aSet)
352         {
353             // onlineHelpKey has no pre constraints
354             onlineHelpKey8a = handleGetOnlineHelpKey();
355             // onlineHelpKey has no post constraints
356             this.__onlineHelpKey8a = onlineHelpKey8a;
357             if (isMetafacadePropertyCachingEnabled())
358             {
359                 this.__onlineHelpKey8aSet = true;
360             }
361         }
362         return onlineHelpKey8a;
363     }
364 
365    /**
366     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getOnlineHelpValue()
367     * @return String
368     */
369     protected abstract String handleGetOnlineHelpValue();
370 
371     private String __onlineHelpValue9a;
372     private boolean __onlineHelpValue9aSet = false;
373 
374     /**
375      * The online help documentation. This documentation is gathered from the documentation entered
376      * by the user, as well as analyzing the model. The format is HTML without any style.
377      * @return (String)handleGetOnlineHelpValue()
378      */
379     public final String getOnlineHelpValue()
380     {
381         String onlineHelpValue9a = this.__onlineHelpValue9a;
382         if (!this.__onlineHelpValue9aSet)
383         {
384             // onlineHelpValue has no pre constraints
385             onlineHelpValue9a = handleGetOnlineHelpValue();
386             // onlineHelpValue has no post constraints
387             this.__onlineHelpValue9a = onlineHelpValue9a;
388             if (isMetafacadePropertyCachingEnabled())
389             {
390                 this.__onlineHelpValue9aSet = true;
391             }
392         }
393         return onlineHelpValue9a;
394     }
395 
396    /**
397     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getFormat()
398     * @return String
399     */
400     protected abstract String handleGetFormat();
401 
402     private String __format10a;
403     private boolean __format10aSet = false;
404 
405     /**
406      * TODO: Model Documentation for
407      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.format
408      * @return (String)handleGetFormat()
409      */
410     public final String getFormat()
411     {
412         String format10a = this.__format10a;
413         if (!this.__format10aSet)
414         {
415             // format has no pre constraints
416             format10a = handleGetFormat();
417             // format has no post constraints
418             this.__format10a = format10a;
419             if (isMetafacadePropertyCachingEnabled())
420             {
421                 this.__format10aSet = true;
422             }
423         }
424         return format10a;
425     }
426 
427    /**
428     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getDefaultDateFormat()
429     * @return String
430     */
431     protected abstract String handleGetDefaultDateFormat();
432 
433     private String __defaultDateFormat11a;
434     private boolean __defaultDateFormat11aSet = false;
435 
436     /**
437      * TODO: Model Documentation for
438      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.defaultDateFormat
439      * @return (String)handleGetDefaultDateFormat()
440      */
441     public final String getDefaultDateFormat()
442     {
443         String defaultDateFormat11a = this.__defaultDateFormat11a;
444         if (!this.__defaultDateFormat11aSet)
445         {
446             // defaultDateFormat has no pre constraints
447             defaultDateFormat11a = handleGetDefaultDateFormat();
448             // defaultDateFormat has no post constraints
449             this.__defaultDateFormat11a = defaultDateFormat11a;
450             if (isMetafacadePropertyCachingEnabled())
451             {
452                 this.__defaultDateFormat11aSet = true;
453             }
454         }
455         return defaultDateFormat11a;
456     }
457 
458    /**
459     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getDefaultTimeFormat()
460     * @return String
461     */
462     protected abstract String handleGetDefaultTimeFormat();
463 
464     private String __defaultTimeFormat12a;
465     private boolean __defaultTimeFormat12aSet = false;
466 
467     /**
468      * TODO: Model Documentation for
469      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.defaultTimeFormat
470      * @return (String)handleGetDefaultTimeFormat()
471      */
472     public final String getDefaultTimeFormat()
473     {
474         String defaultTimeFormat12a = this.__defaultTimeFormat12a;
475         if (!this.__defaultTimeFormat12aSet)
476         {
477             // defaultTimeFormat has no pre constraints
478             defaultTimeFormat12a = handleGetDefaultTimeFormat();
479             // defaultTimeFormat has no post constraints
480             this.__defaultTimeFormat12a = defaultTimeFormat12a;
481             if (isMetafacadePropertyCachingEnabled())
482             {
483                 this.__defaultTimeFormat12aSet = true;
484             }
485         }
486         return defaultTimeFormat12a;
487     }
488 
489    /**
490     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getDateFormatter()
491     * @return String
492     */
493     protected abstract String handleGetDateFormatter();
494 
495     private String __dateFormatter13a;
496     private boolean __dateFormatter13aSet = false;
497 
498     /**
499      * TODO: Model Documentation for
500      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.dateFormatter
501      * @return (String)handleGetDateFormatter()
502      */
503     public final String getDateFormatter()
504     {
505         String dateFormatter13a = this.__dateFormatter13a;
506         if (!this.__dateFormatter13aSet)
507         {
508             // dateFormatter has no pre constraints
509             dateFormatter13a = handleGetDateFormatter();
510             // dateFormatter has no post constraints
511             this.__dateFormatter13a = dateFormatter13a;
512             if (isMetafacadePropertyCachingEnabled())
513             {
514                 this.__dateFormatter13aSet = true;
515             }
516         }
517         return dateFormatter13a;
518     }
519 
520    /**
521     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getTimeFormatter()
522     * @return String
523     */
524     protected abstract String handleGetTimeFormatter();
525 
526     private String __timeFormatter14a;
527     private boolean __timeFormatter14aSet = false;
528 
529     /**
530      * TODO: Model Documentation for
531      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.timeFormatter
532      * @return (String)handleGetTimeFormatter()
533      */
534     public final String getTimeFormatter()
535     {
536         String timeFormatter14a = this.__timeFormatter14a;
537         if (!this.__timeFormatter14aSet)
538         {
539             // timeFormatter has no pre constraints
540             timeFormatter14a = handleGetTimeFormatter();
541             // timeFormatter has no post constraints
542             this.__timeFormatter14a = timeFormatter14a;
543             if (isMetafacadePropertyCachingEnabled())
544             {
545                 this.__timeFormatter14aSet = true;
546             }
547         }
548         return timeFormatter14a;
549     }
550 
551    /**
552     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getBackingListName()
553     * @return String
554     */
555     protected abstract String handleGetBackingListName();
556 
557     private String __backingListName15a;
558     private boolean __backingListName15aSet = false;
559 
560     /**
561      * TODO: Model Documentation for
562      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.backingListName
563      * @return (String)handleGetBackingListName()
564      */
565     public final String getBackingListName()
566     {
567         String backingListName15a = this.__backingListName15a;
568         if (!this.__backingListName15aSet)
569         {
570             // backingListName has no pre constraints
571             backingListName15a = handleGetBackingListName();
572             // backingListName has no post constraints
573             this.__backingListName15a = backingListName15a;
574             if (isMetafacadePropertyCachingEnabled())
575             {
576                 this.__backingListName15aSet = true;
577             }
578         }
579         return backingListName15a;
580     }
581 
582    /**
583     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getValueListName()
584     * @return String
585     */
586     protected abstract String handleGetValueListName();
587 
588     private String __valueListName16a;
589     private boolean __valueListName16aSet = false;
590 
591     /**
592      * TODO: Model Documentation for
593      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.valueListName
594      * @return (String)handleGetValueListName()
595      */
596     public final String getValueListName()
597     {
598         String valueListName16a = this.__valueListName16a;
599         if (!this.__valueListName16aSet)
600         {
601             // valueListName has no pre constraints
602             valueListName16a = handleGetValueListName();
603             // valueListName has no post constraints
604             this.__valueListName16a = valueListName16a;
605             if (isMetafacadePropertyCachingEnabled())
606             {
607                 this.__valueListName16aSet = true;
608             }
609         }
610         return valueListName16a;
611     }
612 
613    /**
614     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getLabelListName()
615     * @return String
616     */
617     protected abstract String handleGetLabelListName();
618 
619     private String __labelListName17a;
620     private boolean __labelListName17aSet = false;
621 
622     /**
623      * TODO: Model Documentation for
624      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.labelListName
625      * @return (String)handleGetLabelListName()
626      */
627     public final String getLabelListName()
628     {
629         String labelListName17a = this.__labelListName17a;
630         if (!this.__labelListName17aSet)
631         {
632             // labelListName has no pre constraints
633             labelListName17a = handleGetLabelListName();
634             // labelListName has no post constraints
635             this.__labelListName17a = labelListName17a;
636             if (isMetafacadePropertyCachingEnabled())
637             {
638                 this.__labelListName17aSet = true;
639             }
640         }
641         return labelListName17a;
642     }
643 
644    /**
645     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getValidatorTypes()
646     * @return Collection
647     */
648     protected abstract Collection handleGetValidatorTypes();
649 
650     private Collection __validatorTypes18a;
651     private boolean __validatorTypes18aSet = false;
652 
653     /**
654      * All validator types for this attribute.
655      * @return (Collection)handleGetValidatorTypes()
656      */
657     public final Collection getValidatorTypes()
658     {
659         Collection validatorTypes18a = this.__validatorTypes18a;
660         if (!this.__validatorTypes18aSet)
661         {
662             // validatorTypes has no pre constraints
663             validatorTypes18a = handleGetValidatorTypes();
664             // validatorTypes has no post constraints
665             this.__validatorTypes18a = validatorTypes18a;
666             if (isMetafacadePropertyCachingEnabled())
667             {
668                 this.__validatorTypes18aSet = true;
669             }
670         }
671         return validatorTypes18a;
672     }
673 
674    /**
675     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isValidationRequired()
676     * @return boolean
677     */
678     protected abstract boolean handleIsValidationRequired();
679 
680     private boolean __validationRequired19a;
681     private boolean __validationRequired19aSet = false;
682 
683     /**
684      * Indicates whether or not this attribute requires some kind of validation (the collection of
685      * validator types is not empty).
686      * @return (boolean)handleIsValidationRequired()
687      */
688     public final boolean isValidationRequired()
689     {
690         boolean validationRequired19a = this.__validationRequired19a;
691         if (!this.__validationRequired19aSet)
692         {
693             // validationRequired has no pre constraints
694             validationRequired19a = handleIsValidationRequired();
695             // validationRequired has no post constraints
696             this.__validationRequired19a = validationRequired19a;
697             if (isMetafacadePropertyCachingEnabled())
698             {
699                 this.__validationRequired19aSet = true;
700             }
701         }
702         return validationRequired19a;
703     }
704 
705    /**
706     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getValidWhen()
707     * @return String
708     */
709     protected abstract String handleGetValidWhen();
710 
711     private String __validWhen20a;
712     private boolean __validWhen20aSet = false;
713 
714     /**
715      * TODO: Model Documentation for
716      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.validWhen
717      * @return (String)handleGetValidWhen()
718      */
719     public final String getValidWhen()
720     {
721         String validWhen20a = this.__validWhen20a;
722         if (!this.__validWhen20aSet)
723         {
724             // validWhen has no pre constraints
725             validWhen20a = handleGetValidWhen();
726             // validWhen has no post constraints
727             this.__validWhen20a = validWhen20a;
728             if (isMetafacadePropertyCachingEnabled())
729             {
730                 this.__validWhen20aSet = true;
731             }
732         }
733         return validWhen20a;
734     }
735 
736    /**
737     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isInputCheckbox()
738     * @return boolean
739     */
740     protected abstract boolean handleIsInputCheckbox();
741 
742     private boolean __inputCheckbox21a;
743     private boolean __inputCheckbox21aSet = false;
744 
745     /**
746      * TODO: Model Documentation for
747      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.inputCheckbox
748      * @return (boolean)handleIsInputCheckbox()
749      */
750     public final boolean isInputCheckbox()
751     {
752         boolean inputCheckbox21a = this.__inputCheckbox21a;
753         if (!this.__inputCheckbox21aSet)
754         {
755             // inputCheckbox has no pre constraints
756             inputCheckbox21a = handleIsInputCheckbox();
757             // inputCheckbox has no post constraints
758             this.__inputCheckbox21a = inputCheckbox21a;
759             if (isMetafacadePropertyCachingEnabled())
760             {
761                 this.__inputCheckbox21aSet = true;
762             }
763         }
764         return inputCheckbox21a;
765     }
766 
767    /**
768     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isInputFile()
769     * @return boolean
770     */
771     protected abstract boolean handleIsInputFile();
772 
773     private boolean __inputFile22a;
774     private boolean __inputFile22aSet = false;
775 
776     /**
777      * TODO: Model Documentation for
778      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.inputFile
779      * @return (boolean)handleIsInputFile()
780      */
781     public final boolean isInputFile()
782     {
783         boolean inputFile22a = this.__inputFile22a;
784         if (!this.__inputFile22aSet)
785         {
786             // inputFile has no pre constraints
787             inputFile22a = handleIsInputFile();
788             // inputFile has no post constraints
789             this.__inputFile22a = inputFile22a;
790             if (isMetafacadePropertyCachingEnabled())
791             {
792                 this.__inputFile22aSet = true;
793             }
794         }
795         return inputFile22a;
796     }
797 
798    /**
799     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isInputHidden()
800     * @return boolean
801     */
802     protected abstract boolean handleIsInputHidden();
803 
804     private boolean __inputHidden23a;
805     private boolean __inputHidden23aSet = false;
806 
807     /**
808      * TODO: Model Documentation for
809      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.inputHidden
810      * @return (boolean)handleIsInputHidden()
811      */
812     public final boolean isInputHidden()
813     {
814         boolean inputHidden23a = this.__inputHidden23a;
815         if (!this.__inputHidden23aSet)
816         {
817             // inputHidden has no pre constraints
818             inputHidden23a = handleIsInputHidden();
819             // inputHidden has no post constraints
820             this.__inputHidden23a = inputHidden23a;
821             if (isMetafacadePropertyCachingEnabled())
822             {
823                 this.__inputHidden23aSet = true;
824             }
825         }
826         return inputHidden23a;
827     }
828 
829    /**
830     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isInputMultibox()
831     * @return boolean
832     */
833     protected abstract boolean handleIsInputMultibox();
834 
835     private boolean __inputMultibox24a;
836     private boolean __inputMultibox24aSet = false;
837 
838     /**
839      * TODO: Model Documentation for
840      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.inputMultibox
841      * @return (boolean)handleIsInputMultibox()
842      */
843     public final boolean isInputMultibox()
844     {
845         boolean inputMultibox24a = this.__inputMultibox24a;
846         if (!this.__inputMultibox24aSet)
847         {
848             // inputMultibox has no pre constraints
849             inputMultibox24a = handleIsInputMultibox();
850             // inputMultibox has no post constraints
851             this.__inputMultibox24a = inputMultibox24a;
852             if (isMetafacadePropertyCachingEnabled())
853             {
854                 this.__inputMultibox24aSet = true;
855             }
856         }
857         return inputMultibox24a;
858     }
859 
860    /**
861     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isInputRadio()
862     * @return boolean
863     */
864     protected abstract boolean handleIsInputRadio();
865 
866     private boolean __inputRadio25a;
867     private boolean __inputRadio25aSet = false;
868 
869     /**
870      * TODO: Model Documentation for
871      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.inputRadio
872      * @return (boolean)handleIsInputRadio()
873      */
874     public final boolean isInputRadio()
875     {
876         boolean inputRadio25a = this.__inputRadio25a;
877         if (!this.__inputRadio25aSet)
878         {
879             // inputRadio has no pre constraints
880             inputRadio25a = handleIsInputRadio();
881             // inputRadio has no post constraints
882             this.__inputRadio25a = inputRadio25a;
883             if (isMetafacadePropertyCachingEnabled())
884             {
885                 this.__inputRadio25aSet = true;
886             }
887         }
888         return inputRadio25a;
889     }
890 
891    /**
892     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isInputSecret()
893     * @return boolean
894     */
895     protected abstract boolean handleIsInputSecret();
896 
897     private boolean __inputSecret26a;
898     private boolean __inputSecret26aSet = false;
899 
900     /**
901      * TODO: Model Documentation for
902      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.inputSecret
903      * @return (boolean)handleIsInputSecret()
904      */
905     public final boolean isInputSecret()
906     {
907         boolean inputSecret26a = this.__inputSecret26a;
908         if (!this.__inputSecret26aSet)
909         {
910             // inputSecret has no pre constraints
911             inputSecret26a = handleIsInputSecret();
912             // inputSecret has no post constraints
913             this.__inputSecret26a = inputSecret26a;
914             if (isMetafacadePropertyCachingEnabled())
915             {
916                 this.__inputSecret26aSet = true;
917             }
918         }
919         return inputSecret26a;
920     }
921 
922    /**
923     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isInputSelect()
924     * @return boolean
925     */
926     protected abstract boolean handleIsInputSelect();
927 
928     private boolean __inputSelect27a;
929     private boolean __inputSelect27aSet = false;
930 
931     /**
932      * TODO: Model Documentation for
933      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.inputSelect
934      * @return (boolean)handleIsInputSelect()
935      */
936     public final boolean isInputSelect()
937     {
938         boolean inputSelect27a = this.__inputSelect27a;
939         if (!this.__inputSelect27aSet)
940         {
941             // inputSelect has no pre constraints
942             inputSelect27a = handleIsInputSelect();
943             // inputSelect has no post constraints
944             this.__inputSelect27a = inputSelect27a;
945             if (isMetafacadePropertyCachingEnabled())
946             {
947                 this.__inputSelect27aSet = true;
948             }
949         }
950         return inputSelect27a;
951     }
952 
953    /**
954     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isInputTable()
955     * @return boolean
956     */
957     protected abstract boolean handleIsInputTable();
958 
959     private boolean __inputTable28a;
960     private boolean __inputTable28aSet = false;
961 
962     /**
963      * TODO: Model Documentation for
964      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.inputTable
965      * @return (boolean)handleIsInputTable()
966      */
967     public final boolean isInputTable()
968     {
969         boolean inputTable28a = this.__inputTable28a;
970         if (!this.__inputTable28aSet)
971         {
972             // inputTable has no pre constraints
973             inputTable28a = handleIsInputTable();
974             // inputTable has no post constraints
975             this.__inputTable28a = inputTable28a;
976             if (isMetafacadePropertyCachingEnabled())
977             {
978                 this.__inputTable28aSet = true;
979             }
980         }
981         return inputTable28a;
982     }
983 
984    /**
985     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getInputTableIdentifierColumns()
986     * @return String
987     */
988     protected abstract String handleGetInputTableIdentifierColumns();
989 
990     private String __inputTableIdentifierColumns29a;
991     private boolean __inputTableIdentifierColumns29aSet = false;
992 
993     /**
994      * TODO: Model Documentation for
995      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.inputTableIdentifierColumns
996      * @return (String)handleGetInputTableIdentifierColumns()
997      */
998     public final String getInputTableIdentifierColumns()
999     {
1000         String inputTableIdentifierColumns29a = this.__inputTableIdentifierColumns29a;
1001         if (!this.__inputTableIdentifierColumns29aSet)
1002         {
1003             // inputTableIdentifierColumns has no pre constraints
1004             inputTableIdentifierColumns29a = handleGetInputTableIdentifierColumns();
1005             // inputTableIdentifierColumns has no post constraints
1006             this.__inputTableIdentifierColumns29a = inputTableIdentifierColumns29a;
1007             if (isMetafacadePropertyCachingEnabled())
1008             {
1009                 this.__inputTableIdentifierColumns29aSet = true;
1010             }
1011         }
1012         return inputTableIdentifierColumns29a;
1013     }
1014 
1015    /**
1016     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isInputText()
1017     * @return boolean
1018     */
1019     protected abstract boolean handleIsInputText();
1020 
1021     private boolean __inputText30a;
1022     private boolean __inputText30aSet = false;
1023 
1024     /**
1025      * TODO: Model Documentation for
1026      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.inputText
1027      * @return (boolean)handleIsInputText()
1028      */
1029     public final boolean isInputText()
1030     {
1031         boolean inputText30a = this.__inputText30a;
1032         if (!this.__inputText30aSet)
1033         {
1034             // inputText has no pre constraints
1035             inputText30a = handleIsInputText();
1036             // inputText has no post constraints
1037             this.__inputText30a = inputText30a;
1038             if (isMetafacadePropertyCachingEnabled())
1039             {
1040                 this.__inputText30aSet = true;
1041             }
1042         }
1043         return inputText30a;
1044     }
1045 
1046    /**
1047     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isInputTextarea()
1048     * @return boolean
1049     */
1050     protected abstract boolean handleIsInputTextarea();
1051 
1052     private boolean __inputTextarea31a;
1053     private boolean __inputTextarea31aSet = false;
1054 
1055     /**
1056      * TODO: Model Documentation for
1057      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.inputTextarea
1058      * @return (boolean)handleIsInputTextarea()
1059      */
1060     public final boolean isInputTextarea()
1061     {
1062         boolean inputTextarea31a = this.__inputTextarea31a;
1063         if (!this.__inputTextarea31aSet)
1064         {
1065             // inputTextarea has no pre constraints
1066             inputTextarea31a = handleIsInputTextarea();
1067             // inputTextarea has no post constraints
1068             this.__inputTextarea31a = inputTextarea31a;
1069             if (isMetafacadePropertyCachingEnabled())
1070             {
1071                 this.__inputTextarea31aSet = true;
1072             }
1073         }
1074         return inputTextarea31a;
1075     }
1076 
1077    /**
1078     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isInputTypePresent()
1079     * @return boolean
1080     */
1081     protected abstract boolean handleIsInputTypePresent();
1082 
1083     private boolean __inputTypePresent32a;
1084     private boolean __inputTypePresent32aSet = false;
1085 
1086     /**
1087      * TODO: Model Documentation for
1088      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.inputTypePresent
1089      * @return (boolean)handleIsInputTypePresent()
1090      */
1091     public final boolean isInputTypePresent()
1092     {
1093         boolean inputTypePresent32a = this.__inputTypePresent32a;
1094         if (!this.__inputTypePresent32aSet)
1095         {
1096             // inputTypePresent has no pre constraints
1097             inputTypePresent32a = handleIsInputTypePresent();
1098             // inputTypePresent has no post constraints
1099             this.__inputTypePresent32a = inputTypePresent32a;
1100             if (isMetafacadePropertyCachingEnabled())
1101             {
1102                 this.__inputTypePresent32aSet = true;
1103             }
1104         }
1105         return inputTypePresent32a;
1106     }
1107 
1108    /**
1109     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getDummyValue()
1110     * @return String
1111     */
1112     protected abstract String handleGetDummyValue();
1113 
1114     private String __dummyValue33a;
1115     private boolean __dummyValue33aSet = false;
1116 
1117     /**
1118      * TODO: Model Documentation for
1119      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.dummyValue
1120      * @return (String)handleGetDummyValue()
1121      */
1122     public final String getDummyValue()
1123     {
1124         String dummyValue33a = this.__dummyValue33a;
1125         if (!this.__dummyValue33aSet)
1126         {
1127             // dummyValue has no pre constraints
1128             dummyValue33a = handleGetDummyValue();
1129             // dummyValue has no post constraints
1130             this.__dummyValue33a = dummyValue33a;
1131             if (isMetafacadePropertyCachingEnabled())
1132             {
1133                 this.__dummyValue33aSet = true;
1134             }
1135         }
1136         return dummyValue33a;
1137     }
1138 
1139    /**
1140     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isEqualValidator()
1141     * @return boolean
1142     */
1143     protected abstract boolean handleIsEqualValidator();
1144 
1145     private boolean __equalValidator34a;
1146     private boolean __equalValidator34aSet = false;
1147 
1148     /**
1149      * TODO: Model Documentation for
1150      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.equalValidator
1151      * @return (boolean)handleIsEqualValidator()
1152      */
1153     public final boolean isEqualValidator()
1154     {
1155         boolean equalValidator34a = this.__equalValidator34a;
1156         if (!this.__equalValidator34aSet)
1157         {
1158             // equalValidator has no pre constraints
1159             equalValidator34a = handleIsEqualValidator();
1160             // equalValidator has no post constraints
1161             this.__equalValidator34a = equalValidator34a;
1162             if (isMetafacadePropertyCachingEnabled())
1163             {
1164                 this.__equalValidator34aSet = true;
1165             }
1166         }
1167         return equalValidator34a;
1168     }
1169 
1170    /**
1171     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isPlaintext()
1172     * @return boolean
1173     */
1174     protected abstract boolean handleIsPlaintext();
1175 
1176     private boolean __plaintext35a;
1177     private boolean __plaintext35aSet = false;
1178 
1179     /**
1180      * TODO: Model Documentation for
1181      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.plaintext
1182      * @return (boolean)handleIsPlaintext()
1183      */
1184     public final boolean isPlaintext()
1185     {
1186         boolean plaintext35a = this.__plaintext35a;
1187         if (!this.__plaintext35aSet)
1188         {
1189             // plaintext has no pre constraints
1190             plaintext35a = handleIsPlaintext();
1191             // plaintext has no post constraints
1192             this.__plaintext35a = plaintext35a;
1193             if (isMetafacadePropertyCachingEnabled())
1194             {
1195                 this.__plaintext35aSet = true;
1196             }
1197         }
1198         return plaintext35a;
1199     }
1200 
1201    /**
1202     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getValueListDummyValue()
1203     * @return String
1204     */
1205     protected abstract String handleGetValueListDummyValue();
1206 
1207     private String __valueListDummyValue36a;
1208     private boolean __valueListDummyValue36aSet = false;
1209 
1210     /**
1211      * TODO: Model Documentation for
1212      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.valueListDummyValue
1213      * @return (String)handleGetValueListDummyValue()
1214      */
1215     public final String getValueListDummyValue()
1216     {
1217         String valueListDummyValue36a = this.__valueListDummyValue36a;
1218         if (!this.__valueListDummyValue36aSet)
1219         {
1220             // valueListDummyValue has no pre constraints
1221             valueListDummyValue36a = handleGetValueListDummyValue();
1222             // valueListDummyValue has no post constraints
1223             this.__valueListDummyValue36a = valueListDummyValue36a;
1224             if (isMetafacadePropertyCachingEnabled())
1225             {
1226                 this.__valueListDummyValue36aSet = true;
1227             }
1228         }
1229         return valueListDummyValue36a;
1230     }
1231 
1232    /**
1233     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getValidatorVars()
1234     * @return Collection
1235     */
1236     protected abstract Collection handleGetValidatorVars();
1237 
1238     private Collection __validatorVars37a;
1239     private boolean __validatorVars37aSet = false;
1240 
1241     /**
1242      * The validator variables.
1243      * @return (Collection)handleGetValidatorVars()
1244      */
1245     public final Collection getValidatorVars()
1246     {
1247         Collection validatorVars37a = this.__validatorVars37a;
1248         if (!this.__validatorVars37aSet)
1249         {
1250             // validatorVars has no pre constraints
1251             validatorVars37a = handleGetValidatorVars();
1252             // validatorVars has no post constraints
1253             this.__validatorVars37a = validatorVars37a;
1254             if (isMetafacadePropertyCachingEnabled())
1255             {
1256                 this.__validatorVars37aSet = true;
1257             }
1258         }
1259         return validatorVars37a;
1260     }
1261 
1262    /**
1263     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#getMaxLength()
1264     * @return String
1265     */
1266     protected abstract String handleGetMaxLength();
1267 
1268     private String __maxLength38a;
1269     private boolean __maxLength38aSet = false;
1270 
1271     /**
1272      * The max length allowed in the input component
1273      * @return (String)handleGetMaxLength()
1274      */
1275     public final String getMaxLength()
1276     {
1277         String maxLength38a = this.__maxLength38a;
1278         if (!this.__maxLength38aSet)
1279         {
1280             // maxLength has no pre constraints
1281             maxLength38a = handleGetMaxLength();
1282             // maxLength has no post constraints
1283             this.__maxLength38a = maxLength38a;
1284             if (isMetafacadePropertyCachingEnabled())
1285             {
1286                 this.__maxLength38aSet = true;
1287             }
1288         }
1289         return maxLength38a;
1290     }
1291 
1292    /**
1293     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute#isEditable()
1294     * @return boolean
1295     */
1296     protected abstract boolean handleIsEditable();
1297 
1298     private boolean __editable39a;
1299     private boolean __editable39aSet = false;
1300 
1301     /**
1302      * Whether or not this attribute should be put in the view
1303      * @return (boolean)handleIsEditable()
1304      */
1305     public final boolean isEditable()
1306     {
1307         boolean editable39a = this.__editable39a;
1308         if (!this.__editable39aSet)
1309         {
1310             // editable has no pre constraints
1311             editable39a = handleIsEditable();
1312             // editable has no post constraints
1313             this.__editable39a = editable39a;
1314             if (isMetafacadePropertyCachingEnabled())
1315             {
1316                 this.__editable39aSet = true;
1317             }
1318         }
1319         return editable39a;
1320     }
1321 
1322     // ---------------- business methods ----------------------
1323 
1324     /**
1325      * Method to be implemented in descendants
1326      * TODO: Model Documentation for
1327      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.getValidatorArgs
1328      * @param validatorType
1329      * @return Collection
1330      */
1331     protected abstract Collection handleGetValidatorArgs(String validatorType);
1332 
1333     /**
1334      * TODO: Model Documentation for
1335      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.getValidatorArgs
1336      * @param validatorType String
1337      * TODO: Model Documentation for
1338      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntityAttribute.getValidatorArgs(validatorType)
1339      * @return handleGetValidatorArgs(validatorType)
1340      */
1341     public Collection getValidatorArgs(String validatorType)
1342     {
1343         // getValidatorArgs has no pre constraints
1344         Collection returnValue = handleGetValidatorArgs(validatorType);
1345         // getValidatorArgs has no post constraints
1346         return returnValue;
1347     }
1348 
1349     /**
1350      * Method to be implemented in descendants
1351      * Gets the unique id of this attribute on the form.
1352      * @param ownerParameter
1353      * @return String
1354      */
1355     protected abstract String handleGetFormPropertyId(ParameterFacade ownerParameter);
1356 
1357     /**
1358      * Gets the unique id of this attribute on the form.
1359      * @param ownerParameter ParameterFacade
1360      * The parameter that is the owner of this attribute.
1361      * @return handleGetFormPropertyId(ownerParameter)
1362      */
1363     public String getFormPropertyId(ParameterFacade ownerParameter)
1364     {
1365         // getFormPropertyId has no pre constraints
1366         String returnValue = handleGetFormPropertyId(ownerParameter);
1367         // getFormPropertyId has no post constraints
1368         return returnValue;
1369     }
1370 
1371     /**
1372      * Method to be implemented in descendants
1373      * Retrieves the name of the form property for this attribute by taking the name of the owner
1374      * property.
1375      * @param ownerParameter
1376      * @return String
1377      */
1378     protected abstract String handleGetFormPropertyName(ParameterFacade ownerParameter);
1379 
1380     /**
1381      * Retrieves the name of the form property for this attribute by taking the name of the owner
1382      * property.
1383      * @param ownerParameter ParameterFacade
1384      * The parent that is the owner of this parameter.
1385      * @return handleGetFormPropertyName(ownerParameter)
1386      */
1387     public String getFormPropertyName(ParameterFacade ownerParameter)
1388     {
1389         // getFormPropertyName has no pre constraints
1390         String returnValue = handleGetFormPropertyName(ownerParameter);
1391         // getFormPropertyName has no post constraints
1392         return returnValue;
1393     }
1394 
1395     /**
1396      * @return true
1397      * @see ManageableEntityAttribute
1398      */
1399     public boolean isManageableEntityAttributeMetaType()
1400     {
1401         return true;
1402     }
1403 
1404     /**
1405      * @return true
1406      * @see org.andromda.metafacades.uml.EntityAttribute
1407      */
1408     public boolean isEntityAttributeMetaType()
1409     {
1410         return true;
1411     }
1412 
1413     /**
1414      * @return true
1415      * @see org.andromda.metafacades.uml.AttributeFacade
1416      */
1417     public boolean isAttributeFacadeMetaType()
1418     {
1419         return true;
1420     }
1421 
1422     /**
1423      * @return true
1424      * @see ModelElementFacade
1425      */
1426     public boolean isModelElementFacadeMetaType()
1427     {
1428         return true;
1429     }
1430 
1431     // ----------- delegates to ManageableEntityAttribute ------------
1432     /**
1433      * Searches the given feature for the specified tag.
1434      * If the follow boolean is set to true then the search will continue from the class attribute
1435      * to the class itself and then up the class hierarchy.
1436      * @see org.andromda.metafacades.uml.AttributeFacade#findTaggedValue(String name, boolean follow)
1437      */
1438     public Object findTaggedValue(String name, boolean follow)
1439     {
1440         return this.getSuperManageableEntityAttribute().findTaggedValue(name, follow);
1441     }
1442 
1443     /**
1444      * The default value of the attribute.  This is the value given if no value is defined.
1445      * @see org.andromda.metafacades.uml.AttributeFacade#getDefaultValue()
1446      */
1447     public String getDefaultValue()
1448     {
1449         return this.getSuperManageableEntityAttribute().getDefaultValue();
1450     }
1451 
1452     /**
1453      * If the attribute is an enumeration literal this represents the owning enumeration. Can be
1454      * empty.
1455      * @see org.andromda.metafacades.uml.AttributeFacade#getEnumeration()
1456      */
1457     public EnumerationFacade getEnumeration()
1458     {
1459         return this.getSuperManageableEntityAttribute().getEnumeration();
1460     }
1461 
1462     /**
1463      * Returns the enumeration literal parameters defined by tagged value as a comma separated list.
1464      * @see org.andromda.metafacades.uml.AttributeFacade#getEnumerationLiteralParameters()
1465      */
1466     public String getEnumerationLiteralParameters()
1467     {
1468         return this.getSuperManageableEntityAttribute().getEnumerationLiteralParameters();
1469     }
1470 
1471     /**
1472      * The value for this attribute if it is an enumeration literal, null otherwise. The default
1473      * value is returned as a String if it has been specified, if it's not specified this
1474      * attribute's name is assumed.
1475      * @see org.andromda.metafacades.uml.AttributeFacade#getEnumerationValue()
1476      */
1477     public String getEnumerationValue()
1478     {
1479         return this.getSuperManageableEntityAttribute().getEnumerationValue();
1480     }
1481 
1482     /**
1483      * The name of the accessor operation that would retrieve this attribute's value.
1484      * @see org.andromda.metafacades.uml.AttributeFacade#getGetterName()
1485      */
1486     public String getGetterName()
1487     {
1488         return this.getSuperManageableEntityAttribute().getGetterName();
1489     }
1490 
1491     /**
1492      * The name of the type that is returned on the accessor and mutator operations,  determined in
1493      * part by the multiplicity.
1494      * @see org.andromda.metafacades.uml.AttributeFacade#getGetterSetterTypeName()
1495      */
1496     public String getGetterSetterTypeName()
1497     {
1498         return this.getSuperManageableEntityAttribute().getGetterSetterTypeName();
1499     }
1500 
1501     /**
1502      * the lower value for the multiplicity
1503      * -only applicable for UML2
1504      * @see org.andromda.metafacades.uml.AttributeFacade#getLower()
1505      */
1506     public int getLower()
1507     {
1508         return this.getSuperManageableEntityAttribute().getLower();
1509     }
1510 
1511     /**
1512      * Gets the classifier who is the owner of the attributes.
1513      * @see org.andromda.metafacades.uml.AttributeFacade#getOwner()
1514      */
1515     public ClassifierFacade getOwner()
1516     {
1517         return this.getSuperManageableEntityAttribute().getOwner();
1518     }
1519 
1520     /**
1521      * The name of the mutator operation that would retrieve this attribute's value.
1522      * @see org.andromda.metafacades.uml.AttributeFacade#getSetterName()
1523      */
1524     public String getSetterName()
1525     {
1526         return this.getSuperManageableEntityAttribute().getSetterName();
1527     }
1528 
1529     /**
1530      * The classifier owning this attribute.
1531      * @see org.andromda.metafacades.uml.AttributeFacade#getType()
1532      */
1533     public ClassifierFacade getType()
1534     {
1535         return this.getSuperManageableEntityAttribute().getType();
1536     }
1537 
1538     /**
1539      * the upper value for the multiplicity (will be -1 for *)
1540      * -only applicable for UML2
1541      * @see org.andromda.metafacades.uml.AttributeFacade#getUpper()
1542      */
1543     public int getUpper()
1544     {
1545         return this.getSuperManageableEntityAttribute().getUpper();
1546     }
1547 
1548     /**
1549      * True if this attribute can only be set.
1550      * @see org.andromda.metafacades.uml.AttributeFacade#isAddOnly()
1551      */
1552     public boolean isAddOnly()
1553     {
1554         return this.getSuperManageableEntityAttribute().isAddOnly();
1555     }
1556 
1557     /**
1558      * True if this attribute can be modified.
1559      * @see org.andromda.metafacades.uml.AttributeFacade#isChangeable()
1560      */
1561     public boolean isChangeable()
1562     {
1563         return this.getSuperManageableEntityAttribute().isChangeable();
1564     }
1565 
1566     /**
1567      * Indicates if the default value is present.
1568      * @see org.andromda.metafacades.uml.AttributeFacade#isDefaultValuePresent()
1569      */
1570     public boolean isDefaultValuePresent()
1571     {
1572         return this.getSuperManageableEntityAttribute().isDefaultValuePresent();
1573     }
1574 
1575     /**
1576      * If the attribute is derived (its value is computed). UML2 only. UML14 always returns false.
1577      * Default=false.
1578      * @see org.andromda.metafacades.uml.AttributeFacade#isDerived()
1579      */
1580     public boolean isDerived()
1581     {
1582         return this.getSuperManageableEntityAttribute().isDerived();
1583     }
1584 
1585     /**
1586      * True if this attribute is owned by an enumeration.
1587      * @see org.andromda.metafacades.uml.AttributeFacade#isEnumerationLiteral()
1588      */
1589     public boolean isEnumerationLiteral()
1590     {
1591         return this.getSuperManageableEntityAttribute().isEnumerationLiteral();
1592     }
1593 
1594     /**
1595      * Returns true if enumeration literal parameters exist (defined by tagged value) for the
1596      * literal.
1597      * @see org.andromda.metafacades.uml.AttributeFacade#isEnumerationLiteralParametersExist()
1598      */
1599     public boolean isEnumerationLiteralParametersExist()
1600     {
1601         return this.getSuperManageableEntityAttribute().isEnumerationLiteralParametersExist();
1602     }
1603 
1604     /**
1605      * True if this attribute is owned by an enumeration but is defined as a member variable (NOT a
1606      * literal).
1607      * @see org.andromda.metafacades.uml.AttributeFacade#isEnumerationMember()
1608      */
1609     public boolean isEnumerationMember()
1610     {
1611         return this.getSuperManageableEntityAttribute().isEnumerationMember();
1612     }
1613 
1614     /**
1615      * IsLeaf property in the operation. If true, operation is final, cannot be extended or
1616      * implemented by a descendant.
1617      * @see org.andromda.metafacades.uml.AttributeFacade#isLeaf()
1618      */
1619     public boolean isLeaf()
1620     {
1621         return this.getSuperManageableEntityAttribute().isLeaf();
1622     }
1623 
1624     /**
1625      * Whether or not this attribute has a multiplicity greater than 1.
1626      * @see org.andromda.metafacades.uml.AttributeFacade#isMany()
1627      */
1628     public boolean isMany()
1629     {
1630         return this.getSuperManageableEntityAttribute().isMany();
1631     }
1632 
1633     /**
1634      * Indicates whether or not the attributes are ordered (if multiplicity is greater than 1).
1635      * @see org.andromda.metafacades.uml.AttributeFacade#isOrdered()
1636      */
1637     public boolean isOrdered()
1638     {
1639         return this.getSuperManageableEntityAttribute().isOrdered();
1640     }
1641 
1642     /**
1643      * Whether or not this attribute can be modified.
1644      * @see org.andromda.metafacades.uml.AttributeFacade#isReadOnly()
1645      */
1646     public boolean isReadOnly()
1647     {
1648         return this.getSuperManageableEntityAttribute().isReadOnly();
1649     }
1650 
1651     /**
1652      * Whether or not the multiplicity of this attribute is 1.
1653      * @see org.andromda.metafacades.uml.AttributeFacade#isRequired()
1654      */
1655     public boolean isRequired()
1656     {
1657         return this.getSuperManageableEntityAttribute().isRequired();
1658     }
1659 
1660     /**
1661      * Indicates if this attribute is 'static', meaning it has a classifier scope.
1662      * @see org.andromda.metafacades.uml.AttributeFacade#isStatic()
1663      */
1664     public boolean isStatic()
1665     {
1666         return this.getSuperManageableEntityAttribute().isStatic();
1667     }
1668 
1669     /**
1670      * If the attribute is unique within the Collection type. UML2 only. UML14 always returns false.
1671      * Unique+Ordered determines the implementation Collection type. Default=false.
1672      * @see org.andromda.metafacades.uml.AttributeFacade#isUnique()
1673      */
1674     public boolean isUnique()
1675     {
1676         return this.getSuperManageableEntityAttribute().isUnique();
1677     }
1678 
1679     /**
1680      * The name of the index to create on a column that persists the entity attribute.
1681      * @see org.andromda.metafacades.uml.EntityAttribute#getColumnIndex()
1682      */
1683     public String getColumnIndex()
1684     {
1685         return this.getSuperManageableEntityAttribute().getColumnIndex();
1686     }
1687 
1688     /**
1689      * The length of the column that persists this entity attribute.
1690      * @see org.andromda.metafacades.uml.EntityAttribute#getColumnLength()
1691      */
1692     public String getColumnLength()
1693     {
1694         return this.getSuperManageableEntityAttribute().getColumnLength();
1695     }
1696 
1697     /**
1698      * The name of the table column to which this entity is mapped.
1699      * @see org.andromda.metafacades.uml.EntityAttribute#getColumnName()
1700      */
1701     public String getColumnName()
1702     {
1703         return this.getSuperManageableEntityAttribute().getColumnName();
1704     }
1705 
1706     /**
1707      * The PIM to language specific mappings for JDBC.
1708      * @see org.andromda.metafacades.uml.EntityAttribute#getJdbcMappings()
1709      */
1710     public TypeMappings getJdbcMappings()
1711     {
1712         return this.getSuperManageableEntityAttribute().getJdbcMappings();
1713     }
1714 
1715     /**
1716      * The JDBC type for this entity attribute.
1717      * @see org.andromda.metafacades.uml.EntityAttribute#getJdbcType()
1718      */
1719     public String getJdbcType()
1720     {
1721         return this.getSuperManageableEntityAttribute().getJdbcType();
1722     }
1723 
1724     /**
1725      * The SQL mappings (i.e. the mappings which provide PIM to SQL mappings).
1726      * @see org.andromda.metafacades.uml.EntityAttribute#getSqlMappings()
1727      */
1728     public TypeMappings getSqlMappings()
1729     {
1730         return this.getSuperManageableEntityAttribute().getSqlMappings();
1731     }
1732 
1733     /**
1734      * The SQL type for this attribute.
1735      * @see org.andromda.metafacades.uml.EntityAttribute#getSqlType()
1736      */
1737     public String getSqlType()
1738     {
1739         return this.getSuperManageableEntityAttribute().getSqlType();
1740     }
1741 
1742     /**
1743      * The name of the unique-key that this unique attribute belongs
1744      * @see org.andromda.metafacades.uml.EntityAttribute#getUniqueGroup()
1745      */
1746     public String getUniqueGroup()
1747     {
1748         return this.getSuperManageableEntityAttribute().getUniqueGroup();
1749     }
1750 
1751     /**
1752      * True if this attribute is an identifier for its entity.
1753      * @see org.andromda.metafacades.uml.EntityAttribute#isIdentifier()
1754      */
1755     public boolean isIdentifier()
1756     {
1757         return this.getSuperManageableEntityAttribute().isIdentifier();
1758     }
1759 
1760     /**
1761      * Indicates this attribute should be ignored by the persistence layer.
1762      * @see org.andromda.metafacades.uml.EntityAttribute#isTransient()
1763      */
1764     public boolean isTransient()
1765     {
1766         return this.getSuperManageableEntityAttribute().isTransient();
1767     }
1768 
1769     /**
1770      * Whether or not this attribute should be displayed.
1771      * @see ManageableEntityAttribute#isDisplay()
1772      */
1773     public boolean isDisplay()
1774     {
1775         return this.getSuperManageableEntityAttribute().isDisplay();
1776     }
1777 
1778     /**
1779      * Whether or not this attribute can be read in a call isolated from the rest (for example when
1780      * downloading binary fields).
1781      * @see ManageableEntityAttribute#isManageableGetterAvailable()
1782      */
1783     public boolean isManageableGetterAvailable()
1784     {
1785         return this.getSuperManageableEntityAttribute().isManageableGetterAvailable();
1786     }
1787 
1788     /**
1789      * Copies all tagged values from the given ModelElementFacade to this model element facade.
1790      * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
1791      */
1792     public void copyTaggedValues(ModelElementFacade element)
1793     {
1794         this.getSuperManageableEntityAttribute().copyTaggedValues(element);
1795     }
1796 
1797     /**
1798      * Finds the tagged value with the specified 'tagName'. In case there are more values the first
1799      * one found will be returned.
1800      * @see ModelElementFacade#findTaggedValue(String tagName)
1801      */
1802     public Object findTaggedValue(String tagName)
1803     {
1804         return this.getSuperManageableEntityAttribute().findTaggedValue(tagName);
1805     }
1806 
1807     /**
1808      * Returns all the values for the tagged value with the specified name. The returned collection
1809      * will contains only String instances, or will be empty. Never null.
1810      * @see ModelElementFacade#findTaggedValues(String tagName)
1811      */
1812     public Collection<Object> findTaggedValues(String tagName)
1813     {
1814         return this.getSuperManageableEntityAttribute().findTaggedValues(tagName);
1815     }
1816 
1817     /**
1818      * Returns the fully qualified name of the model element. The fully qualified name includes
1819      * complete package qualified name of the underlying model element. The templates parameter will
1820      * be replaced by the correct one given the binding relation of the parameter to this element.
1821      * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
1822      */
1823     public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
1824     {
1825         return this.getSuperManageableEntityAttribute().getBindedFullyQualifiedName(bindedElement);
1826     }
1827 
1828     /**
1829      * Gets all constraints belonging to the model element.
1830      * @see ModelElementFacade#getConstraints()
1831      */
1832     public Collection<ConstraintFacade> getConstraints()
1833     {
1834         return this.getSuperManageableEntityAttribute().getConstraints();
1835     }
1836 
1837     /**
1838      * Returns the constraints of the argument kind that have been placed onto this model. Typical
1839      * kinds are "inv", "pre" and "post". Other kinds are possible.
1840      * @see ModelElementFacade#getConstraints(String kind)
1841      */
1842     public Collection<ConstraintFacade> getConstraints(String kind)
1843     {
1844         return this.getSuperManageableEntityAttribute().getConstraints(kind);
1845     }
1846 
1847     /**
1848      * Gets the documentation for the model element, The indent argument is prefixed to each line.
1849      * By default this method wraps lines after 64 characters.
1850      * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
1851      * @see ModelElementFacade#getDocumentation(String indent)
1852      */
1853     public String getDocumentation(String indent)
1854     {
1855         return this.getSuperManageableEntityAttribute().getDocumentation(indent);
1856     }
1857 
1858     /**
1859      * This method returns the documentation for this model element, with the lines wrapped after
1860      * the specified number of characters, values of less than 1 will indicate no line wrapping is
1861      * required. By default paragraphs are returned as HTML.
1862      * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
1863      * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
1864      */
1865     public String getDocumentation(String indent, int lineLength)
1866     {
1867         return this.getSuperManageableEntityAttribute().getDocumentation(indent, lineLength);
1868     }
1869 
1870     /**
1871      * This method returns the documentation for this model element, with the lines wrapped after
1872      * the specified number of characters, values of less than 1 will indicate no line wrapping is
1873      * required. HTML style determines if HTML Escaping is applied.
1874      * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
1875      */
1876     public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
1877     {
1878         return this.getSuperManageableEntityAttribute().getDocumentation(indent, lineLength, htmlStyle);
1879     }
1880 
1881     /**
1882      * The fully qualified name of this model element.
1883      * @see ModelElementFacade#getFullyQualifiedName()
1884      */
1885     public String getFullyQualifiedName()
1886     {
1887         return this.getSuperManageableEntityAttribute().getFullyQualifiedName();
1888     }
1889 
1890     /**
1891      * Returns the fully qualified name of the model element. The fully qualified name includes
1892      * complete package qualified name of the underlying model element.  If modelName is true, then
1893      * the original name of the model element (the name contained within the model) will be the name
1894      * returned, otherwise a name from a language mapping will be returned.
1895      * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
1896      */
1897     public String getFullyQualifiedName(boolean modelName)
1898     {
1899         return this.getSuperManageableEntityAttribute().getFullyQualifiedName(modelName);
1900     }
1901 
1902     /**
1903      * Returns the fully qualified name as a path, the returned value always starts with out a slash
1904      * '/'.
1905      * @see ModelElementFacade#getFullyQualifiedNamePath()
1906      */
1907     public String getFullyQualifiedNamePath()
1908     {
1909         return this.getSuperManageableEntityAttribute().getFullyQualifiedNamePath();
1910     }
1911 
1912     /**
1913      * Gets the unique identifier of the underlying model element.
1914      * @see ModelElementFacade#getId()
1915      */
1916     public String getId()
1917     {
1918         return this.getSuperManageableEntityAttribute().getId();
1919     }
1920 
1921     /**
1922      * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
1923      * are not represented by other properties, i.e. native, transient, volatile, synchronized,
1924      * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
1925      * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
1926      * JDK5 compiler level.
1927      * @see ModelElementFacade#getKeywords()
1928      */
1929     public Collection<String> getKeywords()
1930     {
1931         return this.getSuperManageableEntityAttribute().getKeywords();
1932     }
1933 
1934     /**
1935      * UML2: Retrieves a localized label for this named element.
1936      * @see ModelElementFacade#getLabel()
1937      */
1938     public String getLabel()
1939     {
1940         return this.getSuperManageableEntityAttribute().getLabel();
1941     }
1942 
1943     /**
1944      * The language mappings that have been set for this model element.
1945      * @see ModelElementFacade#getLanguageMappings()
1946      */
1947     public TypeMappings getLanguageMappings()
1948     {
1949         return this.getSuperManageableEntityAttribute().getLanguageMappings();
1950     }
1951 
1952     /**
1953      * Return the model containing this model element (multiple models may be loaded and processed
1954      * at the same time).
1955      * @see ModelElementFacade#getModel()
1956      */
1957     public ModelFacade getModel()
1958     {
1959         return this.getSuperManageableEntityAttribute().getModel();
1960     }
1961 
1962     /**
1963      * The name of the model element.
1964      * @see ModelElementFacade#getName()
1965      */
1966     public String getName()
1967     {
1968         return this.getSuperManageableEntityAttribute().getName();
1969     }
1970 
1971     /**
1972      * Gets the package to which this model element belongs.
1973      * @see ModelElementFacade#getPackage()
1974      */
1975     public ModelElementFacade getPackage()
1976     {
1977         return this.getSuperManageableEntityAttribute().getPackage();
1978     }
1979 
1980     /**
1981      * The name of this model element's package.
1982      * @see ModelElementFacade#getPackageName()
1983      */
1984     public String getPackageName()
1985     {
1986         return this.getSuperManageableEntityAttribute().getPackageName();
1987     }
1988 
1989     /**
1990      * Gets the package name (optionally providing the ability to retrieve the model name and not
1991      * the mapped name).
1992      * @see ModelElementFacade#getPackageName(boolean modelName)
1993      */
1994     public String getPackageName(boolean modelName)
1995     {
1996         return this.getSuperManageableEntityAttribute().getPackageName(modelName);
1997     }
1998 
1999     /**
2000      * Returns the package as a path, the returned value always starts with out a slash '/'.
2001      * @see ModelElementFacade#getPackagePath()
2002      */
2003     public String getPackagePath()
2004     {
2005         return this.getSuperManageableEntityAttribute().getPackagePath();
2006     }
2007 
2008     /**
2009      * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
2010      * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
2011      * the names of the containing namespaces starting at the root of the hierarchy and ending with
2012      * the name of the NamedElement itself.
2013      * @see ModelElementFacade#getQualifiedName()
2014      */
2015     public String getQualifiedName()
2016     {
2017         return this.getSuperManageableEntityAttribute().getQualifiedName();
2018     }
2019 
2020     /**
2021      * Gets the root package for the model element.
2022      * @see ModelElementFacade#getRootPackage()
2023      */
2024     public PackageFacade getRootPackage()
2025     {
2026         return this.getSuperManageableEntityAttribute().getRootPackage();
2027     }
2028 
2029     /**
2030      * Gets the dependencies for which this model element is the source.
2031      * @see ModelElementFacade#getSourceDependencies()
2032      */
2033     public Collection<DependencyFacade> getSourceDependencies()
2034     {
2035         return this.getSuperManageableEntityAttribute().getSourceDependencies();
2036     }
2037 
2038     /**
2039      * If this model element is the context of an activity graph, this represents that activity
2040      * graph.
2041      * @see ModelElementFacade#getStateMachineContext()
2042      */
2043     public StateMachineFacade getStateMachineContext()
2044     {
2045         return this.getSuperManageableEntityAttribute().getStateMachineContext();
2046     }
2047 
2048     /**
2049      * The collection of ALL stereotype names for this model element.
2050      * @see ModelElementFacade#getStereotypeNames()
2051      */
2052     public Collection<String> getStereotypeNames()
2053     {
2054         return this.getSuperManageableEntityAttribute().getStereotypeNames();
2055     }
2056 
2057     /**
2058      * Gets all stereotypes for this model element.
2059      * @see ModelElementFacade#getStereotypes()
2060      */
2061     public Collection<StereotypeFacade> getStereotypes()
2062     {
2063         return this.getSuperManageableEntityAttribute().getStereotypes();
2064     }
2065 
2066     /**
2067      * Return the TaggedValues associated with this model element, under all stereotypes.
2068      * @see ModelElementFacade#getTaggedValues()
2069      */
2070     public Collection<TaggedValueFacade> getTaggedValues()
2071     {
2072         return this.getSuperManageableEntityAttribute().getTaggedValues();
2073     }
2074 
2075     /**
2076      * Gets the dependencies for which this model element is the target.
2077      * @see ModelElementFacade#getTargetDependencies()
2078      */
2079     public Collection<DependencyFacade> getTargetDependencies()
2080     {
2081         return this.getSuperManageableEntityAttribute().getTargetDependencies();
2082     }
2083 
2084     /**
2085      * Get the template parameter for this model element having the parameterName
2086      * @see ModelElementFacade#getTemplateParameter(String parameterName)
2087      */
2088     public Object getTemplateParameter(String parameterName)
2089     {
2090         return this.getSuperManageableEntityAttribute().getTemplateParameter(parameterName);
2091     }
2092 
2093     /**
2094      * Get the template parameters for this model element
2095      * @see ModelElementFacade#getTemplateParameters()
2096      */
2097     public Collection<TemplateParameterFacade> getTemplateParameters()
2098     {
2099         return this.getSuperManageableEntityAttribute().getTemplateParameters();
2100     }
2101 
2102     /**
2103      * The visibility (i.e. public, private, protected or package) of the model element, will
2104      * attempt a lookup for these values in the language mappings (if any).
2105      * @see ModelElementFacade#getVisibility()
2106      */
2107     public String getVisibility()
2108     {
2109         return this.getSuperManageableEntityAttribute().getVisibility();
2110     }
2111 
2112     /**
2113      * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
2114      * is taken into account when searching for the stereotype), false otherwise.
2115      * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
2116      */
2117     public boolean hasExactStereotype(String stereotypeName)
2118     {
2119         return this.getSuperManageableEntityAttribute().hasExactStereotype(stereotypeName);
2120     }
2121 
2122     /**
2123      * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
2124      * pipe, semicolon, or << >>
2125      * @see ModelElementFacade#hasKeyword(String keywordName)
2126      */
2127     public boolean hasKeyword(String keywordName)
2128     {
2129         return this.getSuperManageableEntityAttribute().hasKeyword(keywordName);
2130     }
2131 
2132     /**
2133      * Returns true if the model element has the specified stereotype.  If the stereotype itself
2134      * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
2135      * one of the stereotype's ancestors has a matching name this method will return true, false
2136      * otherwise.
2137      * For example, if we have a certain stereotype called <<exception>> and a model element has a
2138      * stereotype called <<applicationException>> which extends <<exception>>, when calling this
2139      * method with 'stereotypeName' defined as 'exception' the method would return true since
2140      * <<applicationException>> inherits from <<exception>>.  If you want to check if the model
2141      * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
2142      * @see ModelElementFacade#hasStereotype(String stereotypeName)
2143      */
2144     public boolean hasStereotype(String stereotypeName)
2145     {
2146         return this.getSuperManageableEntityAttribute().hasStereotype(stereotypeName);
2147     }
2148 
2149     /**
2150      * True if there are target dependencies from this element that are instances of BindingFacade.
2151      * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
2152      * @see ModelElementFacade#isBindingDependenciesPresent()
2153      */
2154     public boolean isBindingDependenciesPresent()
2155     {
2156         return this.getSuperManageableEntityAttribute().isBindingDependenciesPresent();
2157     }
2158 
2159     /**
2160      * Indicates if any constraints are present on this model element.
2161      * @see ModelElementFacade#isConstraintsPresent()
2162      */
2163     public boolean isConstraintsPresent()
2164     {
2165         return this.getSuperManageableEntityAttribute().isConstraintsPresent();
2166     }
2167 
2168     /**
2169      * Indicates if any documentation is present on this model element.
2170      * @see ModelElementFacade#isDocumentationPresent()
2171      */
2172     public boolean isDocumentationPresent()
2173     {
2174         return this.getSuperManageableEntityAttribute().isDocumentationPresent();
2175     }
2176 
2177     /**
2178      * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
2179      * @see ModelElementFacade#isReservedWord()
2180      */
2181     public boolean isReservedWord()
2182     {
2183         return this.getSuperManageableEntityAttribute().isReservedWord();
2184     }
2185 
2186     /**
2187      * True is there are template parameters on this model element. For UML2, applies to Class,
2188      * Operation, Property, and Parameter.
2189      * @see ModelElementFacade#isTemplateParametersPresent()
2190      */
2191     public boolean isTemplateParametersPresent()
2192     {
2193         return this.getSuperManageableEntityAttribute().isTemplateParametersPresent();
2194     }
2195 
2196     /**
2197      * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
2198      * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
2199      * Enumerations and Interfaces, optionally applies on other model elements.
2200      * @see ModelElementFacade#isValidIdentifierName()
2201      */
2202     public boolean isValidIdentifierName()
2203     {
2204         return this.getSuperManageableEntityAttribute().isValidIdentifierName();
2205     }
2206 
2207     /**
2208      * Searches for the constraint with the specified 'name' on this model element, and if found
2209      * translates it using the specified 'translation' from a translation library discovered by the
2210      * framework.
2211      * @see ModelElementFacade#translateConstraint(String name, String translation)
2212      */
2213     public String translateConstraint(String name, String translation)
2214     {
2215         return this.getSuperManageableEntityAttribute().translateConstraint(name, translation);
2216     }
2217 
2218     /**
2219      * Translates all constraints belonging to this model element with the given 'translation'.
2220      * @see ModelElementFacade#translateConstraints(String translation)
2221      */
2222     public String[] translateConstraints(String translation)
2223     {
2224         return this.getSuperManageableEntityAttribute().translateConstraints(translation);
2225     }
2226 
2227     /**
2228      * Translates the constraints of the specified 'kind' belonging to this model element.
2229      * @see ModelElementFacade#translateConstraints(String kind, String translation)
2230      */
2231     public String[] translateConstraints(String kind, String translation)
2232     {
2233         return this.getSuperManageableEntityAttribute().translateConstraints(kind, translation);
2234     }
2235 
2236     /**
2237      * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
2238      */
2239     @Override
2240     public void initialize()
2241     {
2242         this.getSuperManageableEntityAttribute().initialize();
2243     }
2244 
2245     /**
2246      * @return Object getSuperManageableEntityAttribute().getValidationOwner()
2247      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
2248      */
2249     @Override
2250     public Object getValidationOwner()
2251     {
2252         Object owner = this.getSuperManageableEntityAttribute().getValidationOwner();
2253         return owner;
2254     }
2255 
2256     /**
2257      * @return String getSuperManageableEntityAttribute().getValidationName()
2258      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
2259      */
2260     @Override
2261     public String getValidationName()
2262     {
2263         String name = this.getSuperManageableEntityAttribute().getValidationName();
2264         return name;
2265     }
2266 
2267     /**
2268      * @param validationMessages Collection<ModelValidationMessage>
2269      * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
2270      */
2271     @Override
2272     public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
2273     {
2274         this.getSuperManageableEntityAttribute().validateInvariants(validationMessages);
2275     }
2276 
2277     /**
2278      * The property that stores the name of the metafacade.
2279      */
2280     private static final String NAME_PROPERTY = "name";
2281     private static final String FQNAME_PROPERTY = "fullyQualifiedName";
2282 
2283     /**
2284      * @see Object#toString()
2285      */
2286     @Override
2287     public String toString()
2288     {
2289         final StringBuilder toString = new StringBuilder(this.getClass().getName());
2290         toString.append("[");
2291         try
2292         {
2293             toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
2294         }
2295         catch (final Throwable tryAgain)
2296         {
2297             try
2298             {
2299                 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
2300             }
2301             catch (final Throwable ignore)
2302             {
2303                 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
2304             }
2305         }
2306         toString.append("]");
2307         return toString.toString();
2308     }
2309 }