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 java.util.List;
9   import org.andromda.core.common.Introspector;
10  import org.andromda.core.metafacade.MetafacadeBase;
11  import org.andromda.core.metafacade.MetafacadeFactory;
12  import org.andromda.core.metafacade.ModelValidationMessage;
13  import org.andromda.metafacades.uml.ActorFacade;
14  import org.andromda.metafacades.uml.AssociationEndFacade;
15  import org.andromda.metafacades.uml.AttributeFacade;
16  import org.andromda.metafacades.uml.ClassifierFacade;
17  import org.andromda.metafacades.uml.ConstraintFacade;
18  import org.andromda.metafacades.uml.DependencyFacade;
19  import org.andromda.metafacades.uml.EntityAssociationEnd;
20  import org.andromda.metafacades.uml.EntityQueryOperation;
21  import org.andromda.metafacades.uml.GeneralizableElementFacade;
22  import org.andromda.metafacades.uml.GeneralizationFacade;
23  import org.andromda.metafacades.uml.ManageableEntity;
24  import org.andromda.metafacades.uml.ManageableEntityAssociationEnd;
25  import org.andromda.metafacades.uml.ManageableEntityAttribute;
26  import org.andromda.metafacades.uml.ModelElementFacade;
27  import org.andromda.metafacades.uml.ModelFacade;
28  import org.andromda.metafacades.uml.OperationFacade;
29  import org.andromda.metafacades.uml.PackageFacade;
30  import org.andromda.metafacades.uml.Role;
31  import org.andromda.metafacades.uml.StateMachineFacade;
32  import org.andromda.metafacades.uml.StereotypeFacade;
33  import org.andromda.metafacades.uml.TaggedValueFacade;
34  import org.andromda.metafacades.uml.TemplateParameterFacade;
35  import org.andromda.metafacades.uml.TypeMappings;
36  import org.apache.log4j.Logger;
37  
38  /**
39   * TODO: Model Documentation for org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity
40   * MetafacadeLogic for JSFManageableEntity
41   *
42   * @see JSFManageableEntity
43   */
44  public abstract class JSFManageableEntityLogic
45      extends MetafacadeBase
46      implements JSFManageableEntity
47  {
48      /**
49       * The underlying UML object
50       * @see Object
51       */
52      protected Object metaObject;
53  
54      /** Create Metafacade implementation instance using the MetafacadeFactory from the context
55       * @param metaObjectIn
56       * @param context
57       */
58      protected JSFManageableEntityLogic(Object metaObjectIn, String context)
59      {
60          super(metaObjectIn, getContext(context));
61          this.superManageableEntity =
62             (ManageableEntity)
63              MetafacadeFactory.getInstance().createFacadeImpl(
64                      "org.andromda.metafacades.uml.ManageableEntity",
65                      metaObjectIn,
66                      getContext(context));
67          this.metaObject = metaObjectIn;
68      }
69  
70      /**
71       * The logger instance.
72       */
73      private static final Logger logger = Logger.getLogger(JSFManageableEntityLogic.class);
74  
75      /**
76       * Gets the context for this metafacade logic instance.
77       * @param context String. Set to JSFManageableEntity if null
78       * @return context String
79       */
80      private static String getContext(String context)
81      {
82          if (context == null)
83          {
84              context = "org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity";
85          }
86          return context;
87      }
88  
89      private ManageableEntity superManageableEntity;
90      private boolean superManageableEntityInitialized = false;
91  
92      /**
93       * Gets the ManageableEntity parent instance.
94       * @return this.superManageableEntity ManageableEntity
95       */
96      private ManageableEntity getSuperManageableEntity()
97      {
98          if (!this.superManageableEntityInitialized)
99          {
100             ((MetafacadeBase)this.superManageableEntity).setMetafacadeContext(this.getMetafacadeContext());
101             this.superManageableEntityInitialized = true;
102         }
103         return this.superManageableEntity;
104     }
105 
106     /** Reset context only for non-root metafacades
107      * @param context
108      * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
109      */
110     @Override
111     public void resetMetafacadeContext(String context)
112     {
113         if (!this.contextRoot) // reset context only for non-root metafacades
114         {
115             context = getContext(context);  // to have same value as in original constructor call
116             setMetafacadeContext (context);
117             if (this.superManageableEntityInitialized)
118             {
119                 ((MetafacadeBase)this.superManageableEntity).resetMetafacadeContext(context);
120             }
121         }
122     }
123 
124     /**
125      * @return boolean true always
126      * @see JSFManageableEntity
127      */
128     public boolean isJSFManageableEntityMetaType()
129     {
130         return true;
131     }
132 
133     // --------------- attributes ---------------------
134 
135    /**
136     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getViewName()
137     * @return String
138     */
139     protected abstract String handleGetViewName();
140 
141     private String __viewName1a;
142     private boolean __viewName1aSet = false;
143 
144     /**
145      * TODO: Model Documentation for
146      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.viewName
147      * @return (String)handleGetViewName()
148      */
149     public final String getViewName()
150     {
151         String viewName1a = this.__viewName1a;
152         if (!this.__viewName1aSet)
153         {
154             // viewName has no pre constraints
155             viewName1a = handleGetViewName();
156             // viewName has no post constraints
157             this.__viewName1a = viewName1a;
158             if (isMetafacadePropertyCachingEnabled())
159             {
160                 this.__viewName1aSet = true;
161             }
162         }
163         return viewName1a;
164     }
165 
166    /**
167     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getViewTitleKey()
168     * @return String
169     */
170     protected abstract String handleGetViewTitleKey();
171 
172     private String __viewTitleKey2a;
173     private boolean __viewTitleKey2aSet = false;
174 
175     /**
176      * TODO: Model Documentation for
177      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.viewTitleKey
178      * @return (String)handleGetViewTitleKey()
179      */
180     public final String getViewTitleKey()
181     {
182         String viewTitleKey2a = this.__viewTitleKey2a;
183         if (!this.__viewTitleKey2aSet)
184         {
185             // viewTitleKey has no pre constraints
186             viewTitleKey2a = handleGetViewTitleKey();
187             // viewTitleKey has no post constraints
188             this.__viewTitleKey2a = viewTitleKey2a;
189             if (isMetafacadePropertyCachingEnabled())
190             {
191                 this.__viewTitleKey2aSet = true;
192             }
193         }
194         return viewTitleKey2a;
195     }
196 
197    /**
198     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getViewTitleValue()
199     * @return String
200     */
201     protected abstract String handleGetViewTitleValue();
202 
203     private String __viewTitleValue3a;
204     private boolean __viewTitleValue3aSet = false;
205 
206     /**
207      * TODO: Model Documentation for
208      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.viewTitleValue
209      * @return (String)handleGetViewTitleValue()
210      */
211     public final String getViewTitleValue()
212     {
213         String viewTitleValue3a = this.__viewTitleValue3a;
214         if (!this.__viewTitleValue3aSet)
215         {
216             // viewTitleValue has no pre constraints
217             viewTitleValue3a = handleGetViewTitleValue();
218             // viewTitleValue has no post constraints
219             this.__viewTitleValue3a = viewTitleValue3a;
220             if (isMetafacadePropertyCachingEnabled())
221             {
222                 this.__viewTitleValue3aSet = true;
223             }
224         }
225         return viewTitleValue3a;
226     }
227 
228    /**
229     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getListName()
230     * @return String
231     */
232     protected abstract String handleGetListName();
233 
234     private String __listName4a;
235     private boolean __listName4aSet = false;
236 
237     /**
238      * TODO: Model Documentation for
239      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.listName
240      * @return (String)handleGetListName()
241      */
242     public final String getListName()
243     {
244         String listName4a = this.__listName4a;
245         if (!this.__listName4aSet)
246         {
247             // listName has no pre constraints
248             listName4a = handleGetListName();
249             // listName has no post constraints
250             this.__listName4a = listName4a;
251             if (isMetafacadePropertyCachingEnabled())
252             {
253                 this.__listName4aSet = true;
254             }
255         }
256         return listName4a;
257     }
258 
259    /**
260     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getFormBeanType()
261     * @return String
262     */
263     protected abstract String handleGetFormBeanType();
264 
265     private String __formBeanType5a;
266     private boolean __formBeanType5aSet = false;
267 
268     /**
269      * TODO: Model Documentation for
270      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.formBeanType
271      * @return (String)handleGetFormBeanType()
272      */
273     public final String getFormBeanType()
274     {
275         String formBeanType5a = this.__formBeanType5a;
276         if (!this.__formBeanType5aSet)
277         {
278             // formBeanType has no pre constraints
279             formBeanType5a = handleGetFormBeanType();
280             // formBeanType has no post constraints
281             this.__formBeanType5a = formBeanType5a;
282             if (isMetafacadePropertyCachingEnabled())
283             {
284                 this.__formBeanType5aSet = true;
285             }
286         }
287         return formBeanType5a;
288     }
289 
290    /**
291     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getFormBeanName()
292     * @return String
293     */
294     protected abstract String handleGetFormBeanName();
295 
296     private String __formBeanName6a;
297     private boolean __formBeanName6aSet = false;
298 
299     /**
300      * TODO: Model Documentation for
301      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.formBeanName
302      * @return (String)handleGetFormBeanName()
303      */
304     public final String getFormBeanName()
305     {
306         String formBeanName6a = this.__formBeanName6a;
307         if (!this.__formBeanName6aSet)
308         {
309             // formBeanName has no pre constraints
310             formBeanName6a = handleGetFormBeanName();
311             // formBeanName has no post constraints
312             this.__formBeanName6a = formBeanName6a;
313             if (isMetafacadePropertyCachingEnabled())
314             {
315                 this.__formBeanName6aSet = true;
316             }
317         }
318         return formBeanName6a;
319     }
320 
321    /**
322     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getExceptionKey()
323     * @return String
324     */
325     protected abstract String handleGetExceptionKey();
326 
327     private String __exceptionKey7a;
328     private boolean __exceptionKey7aSet = false;
329 
330     /**
331      * TODO: Model Documentation for
332      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.exceptionKey
333      * @return (String)handleGetExceptionKey()
334      */
335     public final String getExceptionKey()
336     {
337         String exceptionKey7a = this.__exceptionKey7a;
338         if (!this.__exceptionKey7aSet)
339         {
340             // exceptionKey has no pre constraints
341             exceptionKey7a = handleGetExceptionKey();
342             // exceptionKey has no post constraints
343             this.__exceptionKey7a = exceptionKey7a;
344             if (isMetafacadePropertyCachingEnabled())
345             {
346                 this.__exceptionKey7aSet = true;
347             }
348         }
349         return exceptionKey7a;
350     }
351 
352    /**
353     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getActionType()
354     * @return String
355     */
356     protected abstract String handleGetActionType();
357 
358     private String __actionType8a;
359     private boolean __actionType8aSet = false;
360 
361     /**
362      * The fully qualified name of the action class that execute the manageable actions.
363      * @return (String)handleGetActionType()
364      */
365     public final String getActionType()
366     {
367         String actionType8a = this.__actionType8a;
368         if (!this.__actionType8aSet)
369         {
370             // actionType has no pre constraints
371             actionType8a = handleGetActionType();
372             // actionType has no post constraints
373             this.__actionType8a = actionType8a;
374             if (isMetafacadePropertyCachingEnabled())
375             {
376                 this.__actionType8aSet = true;
377             }
378         }
379         return actionType8a;
380     }
381 
382    /**
383     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getActionFullPath()
384     * @return String
385     */
386     protected abstract String handleGetActionFullPath();
387 
388     private String __actionFullPath9a;
389     private boolean __actionFullPath9aSet = false;
390 
391     /**
392      * The fully qualified path to the action class that execute the manageable actions.
393      * @return (String)handleGetActionFullPath()
394      */
395     public final String getActionFullPath()
396     {
397         String actionFullPath9a = this.__actionFullPath9a;
398         if (!this.__actionFullPath9aSet)
399         {
400             // actionFullPath has no pre constraints
401             actionFullPath9a = handleGetActionFullPath();
402             // actionFullPath has no post constraints
403             this.__actionFullPath9a = actionFullPath9a;
404             if (isMetafacadePropertyCachingEnabled())
405             {
406                 this.__actionFullPath9aSet = true;
407             }
408         }
409         return actionFullPath9a;
410     }
411 
412    /**
413     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getActionPath()
414     * @return String
415     */
416     protected abstract String handleGetActionPath();
417 
418     private String __actionPath10a;
419     private boolean __actionPath10aSet = false;
420 
421     /**
422      * The path to the action class that execute the manageable actions.
423      * @return (String)handleGetActionPath()
424      */
425     public final String getActionPath()
426     {
427         String actionPath10a = this.__actionPath10a;
428         if (!this.__actionPath10aSet)
429         {
430             // actionPath has no pre constraints
431             actionPath10a = handleGetActionPath();
432             // actionPath has no post constraints
433             this.__actionPath10a = actionPath10a;
434             if (isMetafacadePropertyCachingEnabled())
435             {
436                 this.__actionPath10aSet = true;
437             }
438         }
439         return actionPath10a;
440     }
441 
442    /**
443     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getActionClassName()
444     * @return String
445     */
446     protected abstract String handleGetActionClassName();
447 
448     private String __actionClassName11a;
449     private boolean __actionClassName11aSet = false;
450 
451     /**
452      * The name of the action class that executes the manageable actions.
453      * @return (String)handleGetActionClassName()
454      */
455     public final String getActionClassName()
456     {
457         String actionClassName11a = this.__actionClassName11a;
458         if (!this.__actionClassName11aSet)
459         {
460             // actionClassName has no pre constraints
461             actionClassName11a = handleGetActionClassName();
462             // actionClassName has no post constraints
463             this.__actionClassName11a = actionClassName11a;
464             if (isMetafacadePropertyCachingEnabled())
465             {
466                 this.__actionClassName11aSet = true;
467             }
468         }
469         return actionClassName11a;
470     }
471 
472    /**
473     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getExceptionPath()
474     * @return String
475     */
476     protected abstract String handleGetExceptionPath();
477 
478     private String __exceptionPath12a;
479     private boolean __exceptionPath12aSet = false;
480 
481     /**
482      * TODO: Model Documentation for
483      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.exceptionPath
484      * @return (String)handleGetExceptionPath()
485      */
486     public final String getExceptionPath()
487     {
488         String exceptionPath12a = this.__exceptionPath12a;
489         if (!this.__exceptionPath12aSet)
490         {
491             // exceptionPath has no pre constraints
492             exceptionPath12a = handleGetExceptionPath();
493             // exceptionPath has no post constraints
494             this.__exceptionPath12a = exceptionPath12a;
495             if (isMetafacadePropertyCachingEnabled())
496             {
497                 this.__exceptionPath12aSet = true;
498             }
499         }
500         return exceptionPath12a;
501     }
502 
503    /**
504     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#isPreload()
505     * @return boolean
506     */
507     protected abstract boolean handleIsPreload();
508 
509     private boolean __preload13a;
510     private boolean __preload13aSet = false;
511 
512     /**
513      * TODO: Model Documentation for
514      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.preload
515      * @return (boolean)handleIsPreload()
516      */
517     public final boolean isPreload()
518     {
519         boolean preload13a = this.__preload13a;
520         if (!this.__preload13aSet)
521         {
522             // preload has no pre constraints
523             preload13a = handleIsPreload();
524             // preload has no post constraints
525             this.__preload13a = preload13a;
526             if (isMetafacadePropertyCachingEnabled())
527             {
528                 this.__preload13aSet = true;
529             }
530         }
531         return preload13a;
532     }
533 
534    /**
535     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getFormBeanClassName()
536     * @return String
537     */
538     protected abstract String handleGetFormBeanClassName();
539 
540     private String __formBeanClassName14a;
541     private boolean __formBeanClassName14aSet = false;
542 
543     /**
544      * TODO: Model Documentation for
545      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.formBeanClassName
546      * @return (String)handleGetFormBeanClassName()
547      */
548     public final String getFormBeanClassName()
549     {
550         String formBeanClassName14a = this.__formBeanClassName14a;
551         if (!this.__formBeanClassName14aSet)
552         {
553             // formBeanClassName has no pre constraints
554             formBeanClassName14a = handleGetFormBeanClassName();
555             // formBeanClassName has no post constraints
556             this.__formBeanClassName14a = formBeanClassName14a;
557             if (isMetafacadePropertyCachingEnabled())
558             {
559                 this.__formBeanClassName14aSet = true;
560             }
561         }
562         return formBeanClassName14a;
563     }
564 
565    /**
566     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getFormBeanFullPath()
567     * @return String
568     */
569     protected abstract String handleGetFormBeanFullPath();
570 
571     private String __formBeanFullPath15a;
572     private boolean __formBeanFullPath15aSet = false;
573 
574     /**
575      * TODO: Model Documentation for
576      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.formBeanFullPath
577      * @return (String)handleGetFormBeanFullPath()
578      */
579     public final String getFormBeanFullPath()
580     {
581         String formBeanFullPath15a = this.__formBeanFullPath15a;
582         if (!this.__formBeanFullPath15aSet)
583         {
584             // formBeanFullPath has no pre constraints
585             formBeanFullPath15a = handleGetFormBeanFullPath();
586             // formBeanFullPath has no post constraints
587             this.__formBeanFullPath15a = formBeanFullPath15a;
588             if (isMetafacadePropertyCachingEnabled())
589             {
590                 this.__formBeanFullPath15aSet = true;
591             }
592         }
593         return formBeanFullPath15a;
594     }
595 
596    /**
597     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getListGetterName()
598     * @return String
599     */
600     protected abstract String handleGetListGetterName();
601 
602     private String __listGetterName16a;
603     private boolean __listGetterName16aSet = false;
604 
605     /**
606      * TODO: Model Documentation for
607      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.listGetterName
608      * @return (String)handleGetListGetterName()
609      */
610     public final String getListGetterName()
611     {
612         String listGetterName16a = this.__listGetterName16a;
613         if (!this.__listGetterName16aSet)
614         {
615             // listGetterName has no pre constraints
616             listGetterName16a = handleGetListGetterName();
617             // listGetterName has no post constraints
618             this.__listGetterName16a = listGetterName16a;
619             if (isMetafacadePropertyCachingEnabled())
620             {
621                 this.__listGetterName16aSet = true;
622             }
623         }
624         return listGetterName16a;
625     }
626 
627    /**
628     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getListSetterName()
629     * @return String
630     */
631     protected abstract String handleGetListSetterName();
632 
633     private String __listSetterName17a;
634     private boolean __listSetterName17aSet = false;
635 
636     /**
637      * TODO: Model Documentation for
638      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.listSetterName
639      * @return (String)handleGetListSetterName()
640      */
641     public final String getListSetterName()
642     {
643         String listSetterName17a = this.__listSetterName17a;
644         if (!this.__listSetterName17aSet)
645         {
646             // listSetterName has no pre constraints
647             listSetterName17a = handleGetListSetterName();
648             // listSetterName has no post constraints
649             this.__listSetterName17a = listSetterName17a;
650             if (isMetafacadePropertyCachingEnabled())
651             {
652                 this.__listSetterName17aSet = true;
653             }
654         }
655         return listSetterName17a;
656     }
657 
658    /**
659     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getMessageKey()
660     * @return String
661     */
662     protected abstract String handleGetMessageKey();
663 
664     private String __messageKey18a;
665     private boolean __messageKey18aSet = false;
666 
667     /**
668      * TODO: Model Documentation for
669      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.messageKey
670      * @return (String)handleGetMessageKey()
671      */
672     public final String getMessageKey()
673     {
674         String messageKey18a = this.__messageKey18a;
675         if (!this.__messageKey18aSet)
676         {
677             // messageKey has no pre constraints
678             messageKey18a = handleGetMessageKey();
679             // messageKey has no post constraints
680             this.__messageKey18a = messageKey18a;
681             if (isMetafacadePropertyCachingEnabled())
682             {
683                 this.__messageKey18aSet = true;
684             }
685         }
686         return messageKey18a;
687     }
688 
689    /**
690     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getMessageValue()
691     * @return String
692     */
693     protected abstract String handleGetMessageValue();
694 
695     private String __messageValue19a;
696     private boolean __messageValue19aSet = false;
697 
698     /**
699      * TODO: Model Documentation for
700      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.messageValue
701      * @return (String)handleGetMessageValue()
702      */
703     public final String getMessageValue()
704     {
705         String messageValue19a = this.__messageValue19a;
706         if (!this.__messageValue19aSet)
707         {
708             // messageValue has no pre constraints
709             messageValue19a = handleGetMessageValue();
710             // messageValue has no post constraints
711             this.__messageValue19a = messageValue19a;
712             if (isMetafacadePropertyCachingEnabled())
713             {
714                 this.__messageValue19aSet = true;
715             }
716         }
717         return messageValue19a;
718     }
719 
720    /**
721     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getOnlineHelpKey()
722     * @return String
723     */
724     protected abstract String handleGetOnlineHelpKey();
725 
726     private String __onlineHelpKey20a;
727     private boolean __onlineHelpKey20aSet = false;
728 
729     /**
730      * The key to lookup the online help documentation.
731      * @return (String)handleGetOnlineHelpKey()
732      */
733     public final String getOnlineHelpKey()
734     {
735         String onlineHelpKey20a = this.__onlineHelpKey20a;
736         if (!this.__onlineHelpKey20aSet)
737         {
738             // onlineHelpKey has no pre constraints
739             onlineHelpKey20a = handleGetOnlineHelpKey();
740             // onlineHelpKey has no post constraints
741             this.__onlineHelpKey20a = onlineHelpKey20a;
742             if (isMetafacadePropertyCachingEnabled())
743             {
744                 this.__onlineHelpKey20aSet = true;
745             }
746         }
747         return onlineHelpKey20a;
748     }
749 
750    /**
751     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getOnlineHelpValue()
752     * @return String
753     */
754     protected abstract String handleGetOnlineHelpValue();
755 
756     private String __onlineHelpValue21a;
757     private boolean __onlineHelpValue21aSet = false;
758 
759     /**
760      * The online help documentation. The format is HTML without any style.
761      * @return (String)handleGetOnlineHelpValue()
762      */
763     public final String getOnlineHelpValue()
764     {
765         String onlineHelpValue21a = this.__onlineHelpValue21a;
766         if (!this.__onlineHelpValue21aSet)
767         {
768             // onlineHelpValue has no pre constraints
769             onlineHelpValue21a = handleGetOnlineHelpValue();
770             // onlineHelpValue has no post constraints
771             this.__onlineHelpValue21a = onlineHelpValue21a;
772             if (isMetafacadePropertyCachingEnabled())
773             {
774                 this.__onlineHelpValue21aSet = true;
775             }
776         }
777         return onlineHelpValue21a;
778     }
779 
780    /**
781     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getOnlineHelpActionPath()
782     * @return String
783     */
784     protected abstract String handleGetOnlineHelpActionPath();
785 
786     private String __onlineHelpActionPath22a;
787     private boolean __onlineHelpActionPath22aSet = false;
788 
789     /**
790      * The full path to this entity's online help action. The returned String does not have a suffix
791      * such as '.do'.
792      * @return (String)handleGetOnlineHelpActionPath()
793      */
794     public final String getOnlineHelpActionPath()
795     {
796         String onlineHelpActionPath22a = this.__onlineHelpActionPath22a;
797         if (!this.__onlineHelpActionPath22aSet)
798         {
799             // onlineHelpActionPath has no pre constraints
800             onlineHelpActionPath22a = handleGetOnlineHelpActionPath();
801             // onlineHelpActionPath has no post constraints
802             this.__onlineHelpActionPath22a = onlineHelpActionPath22a;
803             if (isMetafacadePropertyCachingEnabled())
804             {
805                 this.__onlineHelpActionPath22aSet = true;
806             }
807         }
808         return onlineHelpActionPath22a;
809     }
810 
811    /**
812     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getOnlineHelpPagePath()
813     * @return String
814     */
815     protected abstract String handleGetOnlineHelpPagePath();
816 
817     private String __onlineHelpPagePath23a;
818     private boolean __onlineHelpPagePath23aSet = false;
819 
820     /**
821      * The full path to this entitiy's online help page. The returned String does not have a suffix
822      * such as '.jsp'.
823      * @return (String)handleGetOnlineHelpPagePath()
824      */
825     public final String getOnlineHelpPagePath()
826     {
827         String onlineHelpPagePath23a = this.__onlineHelpPagePath23a;
828         if (!this.__onlineHelpPagePath23aSet)
829         {
830             // onlineHelpPagePath has no pre constraints
831             onlineHelpPagePath23a = handleGetOnlineHelpPagePath();
832             // onlineHelpPagePath has no post constraints
833             this.__onlineHelpPagePath23a = onlineHelpPagePath23a;
834             if (isMetafacadePropertyCachingEnabled())
835             {
836                 this.__onlineHelpPagePath23aSet = true;
837             }
838         }
839         return onlineHelpPagePath23a;
840     }
841 
842    /**
843     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#isTableExportable()
844     * @return boolean
845     */
846     protected abstract boolean handleIsTableExportable();
847 
848     private boolean __tableExportable24a;
849     private boolean __tableExportable24aSet = false;
850 
851     /**
852      * True if it is possible to export the table data to XML, CSV, PDF or Excel format.
853      * @return (boolean)handleIsTableExportable()
854      */
855     public final boolean isTableExportable()
856     {
857         boolean tableExportable24a = this.__tableExportable24a;
858         if (!this.__tableExportable24aSet)
859         {
860             // tableExportable has no pre constraints
861             tableExportable24a = handleIsTableExportable();
862             // tableExportable has no post constraints
863             this.__tableExportable24a = tableExportable24a;
864             if (isMetafacadePropertyCachingEnabled())
865             {
866                 this.__tableExportable24aSet = true;
867             }
868         }
869         return tableExportable24a;
870     }
871 
872    /**
873     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getTableExportTypes()
874     * @return String
875     */
876     protected abstract String handleGetTableExportTypes();
877 
878     private String __tableExportTypes25a;
879     private boolean __tableExportTypes25aSet = false;
880 
881     /**
882      * Tthe available types of export in a single String instance.
883      * @return (String)handleGetTableExportTypes()
884      */
885     public final String getTableExportTypes()
886     {
887         String tableExportTypes25a = this.__tableExportTypes25a;
888         if (!this.__tableExportTypes25aSet)
889         {
890             // tableExportTypes has no pre constraints
891             tableExportTypes25a = handleGetTableExportTypes();
892             // tableExportTypes has no post constraints
893             this.__tableExportTypes25a = tableExportTypes25a;
894             if (isMetafacadePropertyCachingEnabled())
895             {
896                 this.__tableExportTypes25aSet = true;
897             }
898         }
899         return tableExportTypes25a;
900     }
901 
902    /**
903     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getTableMaxRows()
904     * @return int
905     */
906     protected abstract int handleGetTableMaxRows();
907 
908     private int __tableMaxRows26a;
909     private boolean __tableMaxRows26aSet = false;
910 
911     /**
912      * The maximum number of rows to be displayed in the table at the same time. This is also known
913      * as the page size. A value of zero or less will display all data in the same table (therefore
914      * also on the same page).
915      * @return (int)handleGetTableMaxRows()
916      */
917     public final int getTableMaxRows()
918     {
919         int tableMaxRows26a = this.__tableMaxRows26a;
920         if (!this.__tableMaxRows26aSet)
921         {
922             // tableMaxRows has no pre constraints
923             tableMaxRows26a = handleGetTableMaxRows();
924             // tableMaxRows has no post constraints
925             this.__tableMaxRows26a = tableMaxRows26a;
926             if (isMetafacadePropertyCachingEnabled())
927             {
928                 this.__tableMaxRows26aSet = true;
929             }
930         }
931         return tableMaxRows26a;
932     }
933 
934    /**
935     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#isTableSortable()
936     * @return boolean
937     */
938     protected abstract boolean handleIsTableSortable();
939 
940     private boolean __tableSortable27a;
941     private boolean __tableSortable27aSet = false;
942 
943     /**
944      * True if it is possible to sort the columns of the table.
945      * @return (boolean)handleIsTableSortable()
946      */
947     public final boolean isTableSortable()
948     {
949         boolean tableSortable27a = this.__tableSortable27a;
950         if (!this.__tableSortable27aSet)
951         {
952             // tableSortable has no pre constraints
953             tableSortable27a = handleIsTableSortable();
954             // tableSortable has no post constraints
955             this.__tableSortable27a = tableSortable27a;
956             if (isMetafacadePropertyCachingEnabled())
957             {
958                 this.__tableSortable27aSet = true;
959             }
960         }
961         return tableSortable27a;
962     }
963 
964    /**
965     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getControllerType()
966     * @return String
967     */
968     protected abstract String handleGetControllerType();
969 
970     private String __controllerType28a;
971     private boolean __controllerType28aSet = false;
972 
973     /**
974      * Fully qualified name of this manageable controller.
975      * @return (String)handleGetControllerType()
976      */
977     public final String getControllerType()
978     {
979         String controllerType28a = this.__controllerType28a;
980         if (!this.__controllerType28aSet)
981         {
982             // controllerType has no pre constraints
983             controllerType28a = handleGetControllerType();
984             // controllerType has no post constraints
985             this.__controllerType28a = controllerType28a;
986             if (isMetafacadePropertyCachingEnabled())
987             {
988                 this.__controllerType28aSet = true;
989             }
990         }
991         return controllerType28a;
992     }
993 
994    /**
995     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getControllerBeanName()
996     * @return String
997     */
998     protected abstract String handleGetControllerBeanName();
999 
1000     private String __controllerBeanName29a;
1001     private boolean __controllerBeanName29aSet = false;
1002 
1003     /**
1004      * The bean name of this manageable controller (this is what is stored in the JSF configuration
1005      * file).
1006      * @return (String)handleGetControllerBeanName()
1007      */
1008     public final String getControllerBeanName()
1009     {
1010         String controllerBeanName29a = this.__controllerBeanName29a;
1011         if (!this.__controllerBeanName29aSet)
1012         {
1013             // controllerBeanName has no pre constraints
1014             controllerBeanName29a = handleGetControllerBeanName();
1015             // controllerBeanName has no post constraints
1016             this.__controllerBeanName29a = controllerBeanName29a;
1017             if (isMetafacadePropertyCachingEnabled())
1018             {
1019                 this.__controllerBeanName29aSet = true;
1020             }
1021         }
1022         return controllerBeanName29a;
1023     }
1024 
1025    /**
1026     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getControllerFullPath()
1027     * @return String
1028     */
1029     protected abstract String handleGetControllerFullPath();
1030 
1031     private String __controllerFullPath30a;
1032     private boolean __controllerFullPath30aSet = false;
1033 
1034     /**
1035      * Full path of this manageable controller.
1036      * @return (String)handleGetControllerFullPath()
1037      */
1038     public final String getControllerFullPath()
1039     {
1040         String controllerFullPath30a = this.__controllerFullPath30a;
1041         if (!this.__controllerFullPath30aSet)
1042         {
1043             // controllerFullPath has no pre constraints
1044             controllerFullPath30a = handleGetControllerFullPath();
1045             // controllerFullPath has no post constraints
1046             this.__controllerFullPath30a = controllerFullPath30a;
1047             if (isMetafacadePropertyCachingEnabled())
1048             {
1049                 this.__controllerFullPath30aSet = true;
1050             }
1051         }
1052         return controllerFullPath30a;
1053     }
1054 
1055    /**
1056     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getControllerName()
1057     * @return String
1058     */
1059     protected abstract String handleGetControllerName();
1060 
1061     private String __controllerName31a;
1062     private boolean __controllerName31aSet = false;
1063 
1064     /**
1065      * Manageable controller class name.
1066      * @return (String)handleGetControllerName()
1067      */
1068     public final String getControllerName()
1069     {
1070         String controllerName31a = this.__controllerName31a;
1071         if (!this.__controllerName31aSet)
1072         {
1073             // controllerName has no pre constraints
1074             controllerName31a = handleGetControllerName();
1075             // controllerName has no post constraints
1076             this.__controllerName31a = controllerName31a;
1077             if (isMetafacadePropertyCachingEnabled())
1078             {
1079                 this.__controllerName31aSet = true;
1080             }
1081         }
1082         return controllerName31a;
1083     }
1084 
1085    /**
1086     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getValueObjectClassName()
1087     * @return String
1088     */
1089     protected abstract String handleGetValueObjectClassName();
1090 
1091     private String __valueObjectClassName32a;
1092     private boolean __valueObjectClassName32aSet = false;
1093 
1094     /**
1095      * TODO: Model Documentation for
1096      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.valueObjectClassName
1097      * @return (String)handleGetValueObjectClassName()
1098      */
1099     public final String getValueObjectClassName()
1100     {
1101         String valueObjectClassName32a = this.__valueObjectClassName32a;
1102         if (!this.__valueObjectClassName32aSet)
1103         {
1104             // valueObjectClassName has no pre constraints
1105             valueObjectClassName32a = handleGetValueObjectClassName();
1106             // valueObjectClassName has no post constraints
1107             this.__valueObjectClassName32a = valueObjectClassName32a;
1108             if (isMetafacadePropertyCachingEnabled())
1109             {
1110                 this.__valueObjectClassName32aSet = true;
1111             }
1112         }
1113         return valueObjectClassName32a;
1114     }
1115 
1116    /**
1117     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getFormSerialVersionUID()
1118     * @return String
1119     */
1120     protected abstract String handleGetFormSerialVersionUID();
1121 
1122     private String __formSerialVersionUID33a;
1123     private boolean __formSerialVersionUID33aSet = false;
1124 
1125     /**
1126      * The calcuated serial version UID for this action's form.
1127      * @return (String)handleGetFormSerialVersionUID()
1128      */
1129     public final String getFormSerialVersionUID()
1130     {
1131         String formSerialVersionUID33a = this.__formSerialVersionUID33a;
1132         if (!this.__formSerialVersionUID33aSet)
1133         {
1134             // formSerialVersionUID has no pre constraints
1135             formSerialVersionUID33a = handleGetFormSerialVersionUID();
1136             // formSerialVersionUID has no post constraints
1137             this.__formSerialVersionUID33a = formSerialVersionUID33a;
1138             if (isMetafacadePropertyCachingEnabled())
1139             {
1140                 this.__formSerialVersionUID33aSet = true;
1141             }
1142         }
1143         return formSerialVersionUID33a;
1144     }
1145 
1146    /**
1147     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getActionSerialVersionUID()
1148     * @return String
1149     */
1150     protected abstract String handleGetActionSerialVersionUID();
1151 
1152     private String __actionSerialVersionUID34a;
1153     private boolean __actionSerialVersionUID34aSet = false;
1154 
1155     /**
1156      * The calcuated serial version UID for this manageable actions.
1157      * @return (String)handleGetActionSerialVersionUID()
1158      */
1159     public final String getActionSerialVersionUID()
1160     {
1161         String actionSerialVersionUID34a = this.__actionSerialVersionUID34a;
1162         if (!this.__actionSerialVersionUID34aSet)
1163         {
1164             // actionSerialVersionUID has no pre constraints
1165             actionSerialVersionUID34a = handleGetActionSerialVersionUID();
1166             // actionSerialVersionUID has no post constraints
1167             this.__actionSerialVersionUID34a = actionSerialVersionUID34a;
1168             if (isMetafacadePropertyCachingEnabled())
1169             {
1170                 this.__actionSerialVersionUID34aSet = true;
1171             }
1172         }
1173         return actionSerialVersionUID34a;
1174     }
1175 
1176    /**
1177     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getPopulatorName()
1178     * @return String
1179     */
1180     protected abstract String handleGetPopulatorName();
1181 
1182     private String __populatorName35a;
1183     private boolean __populatorName35aSet = false;
1184 
1185     /**
1186      * TODO: Model Documentation for
1187      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.populatorName
1188      * @return (String)handleGetPopulatorName()
1189      */
1190     public final String getPopulatorName()
1191     {
1192         String populatorName35a = this.__populatorName35a;
1193         if (!this.__populatorName35aSet)
1194         {
1195             // populatorName has no pre constraints
1196             populatorName35a = handleGetPopulatorName();
1197             // populatorName has no post constraints
1198             this.__populatorName35a = populatorName35a;
1199             if (isMetafacadePropertyCachingEnabled())
1200             {
1201                 this.__populatorName35aSet = true;
1202             }
1203         }
1204         return populatorName35a;
1205     }
1206 
1207    /**
1208     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getPopulatorFullPath()
1209     * @return String
1210     */
1211     protected abstract String handleGetPopulatorFullPath();
1212 
1213     private String __populatorFullPath36a;
1214     private boolean __populatorFullPath36aSet = false;
1215 
1216     /**
1217      * TODO: Model Documentation for
1218      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.populatorFullPath
1219      * @return (String)handleGetPopulatorFullPath()
1220      */
1221     public final String getPopulatorFullPath()
1222     {
1223         String populatorFullPath36a = this.__populatorFullPath36a;
1224         if (!this.__populatorFullPath36aSet)
1225         {
1226             // populatorFullPath has no pre constraints
1227             populatorFullPath36a = handleGetPopulatorFullPath();
1228             // populatorFullPath has no post constraints
1229             this.__populatorFullPath36a = populatorFullPath36a;
1230             if (isMetafacadePropertyCachingEnabled())
1231             {
1232                 this.__populatorFullPath36aSet = true;
1233             }
1234         }
1235         return populatorFullPath36a;
1236     }
1237 
1238    /**
1239     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getPopulatorType()
1240     * @return String
1241     */
1242     protected abstract String handleGetPopulatorType();
1243 
1244     private String __populatorType37a;
1245     private boolean __populatorType37aSet = false;
1246 
1247     /**
1248      * TODO: Model Documentation for
1249      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.populatorType
1250      * @return (String)handleGetPopulatorType()
1251      */
1252     public final String getPopulatorType()
1253     {
1254         String populatorType37a = this.__populatorType37a;
1255         if (!this.__populatorType37aSet)
1256         {
1257             // populatorType has no pre constraints
1258             populatorType37a = handleGetPopulatorType();
1259             // populatorType has no post constraints
1260             this.__populatorType37a = populatorType37a;
1261             if (isMetafacadePropertyCachingEnabled())
1262             {
1263                 this.__populatorType37aSet = true;
1264             }
1265         }
1266         return populatorType37a;
1267     }
1268 
1269    /**
1270     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getViewFullPath()
1271     * @return String
1272     */
1273     protected abstract String handleGetViewFullPath();
1274 
1275     private String __viewFullPath38a;
1276     private boolean __viewFullPath38aSet = false;
1277 
1278     /**
1279      * TODO: Model Documentation for
1280      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.viewFullPath
1281      * @return (String)handleGetViewFullPath()
1282      */
1283     public final String getViewFullPath()
1284     {
1285         String viewFullPath38a = this.__viewFullPath38a;
1286         if (!this.__viewFullPath38aSet)
1287         {
1288             // viewFullPath has no pre constraints
1289             viewFullPath38a = handleGetViewFullPath();
1290             // viewFullPath has no post constraints
1291             this.__viewFullPath38a = viewFullPath38a;
1292             if (isMetafacadePropertyCachingEnabled())
1293             {
1294                 this.__viewFullPath38aSet = true;
1295             }
1296         }
1297         return viewFullPath38a;
1298     }
1299 
1300    /**
1301     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#isValidationRequired()
1302     * @return boolean
1303     */
1304     protected abstract boolean handleIsValidationRequired();
1305 
1306     private boolean __validationRequired39a;
1307     private boolean __validationRequired39aSet = false;
1308 
1309     /**
1310      * TODO: Model Documentation for
1311      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.validationRequired
1312      * @return (boolean)handleIsValidationRequired()
1313      */
1314     public final boolean isValidationRequired()
1315     {
1316         boolean validationRequired39a = this.__validationRequired39a;
1317         if (!this.__validationRequired39aSet)
1318         {
1319             // validationRequired has no pre constraints
1320             validationRequired39a = handleIsValidationRequired();
1321             // validationRequired has no post constraints
1322             this.__validationRequired39a = validationRequired39a;
1323             if (isMetafacadePropertyCachingEnabled())
1324             {
1325                 this.__validationRequired39aSet = true;
1326             }
1327         }
1328         return validationRequired39a;
1329     }
1330 
1331    /**
1332     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getSearchFormBeanName()
1333     * @return String
1334     */
1335     protected abstract String handleGetSearchFormBeanName();
1336 
1337     private String __searchFormBeanName40a;
1338     private boolean __searchFormBeanName40aSet = false;
1339 
1340     /**
1341      * TODO: Model Documentation for
1342      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.searchFormBeanName
1343      * @return (String)handleGetSearchFormBeanName()
1344      */
1345     public final String getSearchFormBeanName()
1346     {
1347         String searchFormBeanName40a = this.__searchFormBeanName40a;
1348         if (!this.__searchFormBeanName40aSet)
1349         {
1350             // searchFormBeanName has no pre constraints
1351             searchFormBeanName40a = handleGetSearchFormBeanName();
1352             // searchFormBeanName has no post constraints
1353             this.__searchFormBeanName40a = searchFormBeanName40a;
1354             if (isMetafacadePropertyCachingEnabled())
1355             {
1356                 this.__searchFormBeanName40aSet = true;
1357             }
1358         }
1359         return searchFormBeanName40a;
1360     }
1361 
1362    /**
1363     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getSearchFormBeanType()
1364     * @return String
1365     */
1366     protected abstract String handleGetSearchFormBeanType();
1367 
1368     private String __searchFormBeanType41a;
1369     private boolean __searchFormBeanType41aSet = false;
1370 
1371     /**
1372      * TODO: Model Documentation for
1373      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.searchFormBeanType
1374      * @return (String)handleGetSearchFormBeanType()
1375      */
1376     public final String getSearchFormBeanType()
1377     {
1378         String searchFormBeanType41a = this.__searchFormBeanType41a;
1379         if (!this.__searchFormBeanType41aSet)
1380         {
1381             // searchFormBeanType has no pre constraints
1382             searchFormBeanType41a = handleGetSearchFormBeanType();
1383             // searchFormBeanType has no post constraints
1384             this.__searchFormBeanType41a = searchFormBeanType41a;
1385             if (isMetafacadePropertyCachingEnabled())
1386             {
1387                 this.__searchFormBeanType41aSet = true;
1388             }
1389         }
1390         return searchFormBeanType41a;
1391     }
1392 
1393    /**
1394     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getSearchFormBeanFullPath()
1395     * @return String
1396     */
1397     protected abstract String handleGetSearchFormBeanFullPath();
1398 
1399     private String __searchFormBeanFullPath42a;
1400     private boolean __searchFormBeanFullPath42aSet = false;
1401 
1402     /**
1403      * TODO: Model Documentation for
1404      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.searchFormBeanFullPath
1405      * @return (String)handleGetSearchFormBeanFullPath()
1406      */
1407     public final String getSearchFormBeanFullPath()
1408     {
1409         String searchFormBeanFullPath42a = this.__searchFormBeanFullPath42a;
1410         if (!this.__searchFormBeanFullPath42aSet)
1411         {
1412             // searchFormBeanFullPath has no pre constraints
1413             searchFormBeanFullPath42a = handleGetSearchFormBeanFullPath();
1414             // searchFormBeanFullPath has no post constraints
1415             this.__searchFormBeanFullPath42a = searchFormBeanFullPath42a;
1416             if (isMetafacadePropertyCachingEnabled())
1417             {
1418                 this.__searchFormBeanFullPath42aSet = true;
1419             }
1420         }
1421         return searchFormBeanFullPath42a;
1422     }
1423 
1424    /**
1425     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getSearchFormBeanClassName()
1426     * @return String
1427     */
1428     protected abstract String handleGetSearchFormBeanClassName();
1429 
1430     private String __searchFormBeanClassName43a;
1431     private boolean __searchFormBeanClassName43aSet = false;
1432 
1433     /**
1434      * TODO: Model Documentation for
1435      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.searchFormBeanClassName
1436      * @return (String)handleGetSearchFormBeanClassName()
1437      */
1438     public final String getSearchFormBeanClassName()
1439     {
1440         String searchFormBeanClassName43a = this.__searchFormBeanClassName43a;
1441         if (!this.__searchFormBeanClassName43aSet)
1442         {
1443             // searchFormBeanClassName has no pre constraints
1444             searchFormBeanClassName43a = handleGetSearchFormBeanClassName();
1445             // searchFormBeanClassName has no post constraints
1446             this.__searchFormBeanClassName43a = searchFormBeanClassName43a;
1447             if (isMetafacadePropertyCachingEnabled())
1448             {
1449                 this.__searchFormBeanClassName43aSet = true;
1450             }
1451         }
1452         return searchFormBeanClassName43a;
1453     }
1454 
1455    /**
1456     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getManageableSearchAttributes()
1457     * @return Collection
1458     */
1459     protected abstract Collection handleGetManageableSearchAttributes();
1460 
1461     private Collection __manageableSearchAttributes44a;
1462     private boolean __manageableSearchAttributes44aSet = false;
1463 
1464     /**
1465      * TODO: Model Documentation for
1466      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.manageableSearchAttributes
1467      * @return (Collection)handleGetManageableSearchAttributes()
1468      */
1469     public final Collection getManageableSearchAttributes()
1470     {
1471         Collection manageableSearchAttributes44a = this.__manageableSearchAttributes44a;
1472         if (!this.__manageableSearchAttributes44aSet)
1473         {
1474             // manageableSearchAttributes has no pre constraints
1475             manageableSearchAttributes44a = handleGetManageableSearchAttributes();
1476             // manageableSearchAttributes has no post constraints
1477             this.__manageableSearchAttributes44a = manageableSearchAttributes44a;
1478             if (isMetafacadePropertyCachingEnabled())
1479             {
1480                 this.__manageableSearchAttributes44aSet = true;
1481             }
1482         }
1483         return manageableSearchAttributes44a;
1484     }
1485 
1486    /**
1487     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getManageableSearchAssociationEnds()
1488     * @return Collection
1489     */
1490     protected abstract Collection handleGetManageableSearchAssociationEnds();
1491 
1492     private Collection __manageableSearchAssociationEnds45a;
1493     private boolean __manageableSearchAssociationEnds45aSet = false;
1494 
1495     /**
1496      * TODO: Model Documentation for
1497      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.manageableSearchAssociationEnds
1498      * @return (Collection)handleGetManageableSearchAssociationEnds()
1499      */
1500     public final Collection getManageableSearchAssociationEnds()
1501     {
1502         Collection manageableSearchAssociationEnds45a = this.__manageableSearchAssociationEnds45a;
1503         if (!this.__manageableSearchAssociationEnds45aSet)
1504         {
1505             // manageableSearchAssociationEnds has no pre constraints
1506             manageableSearchAssociationEnds45a = handleGetManageableSearchAssociationEnds();
1507             // manageableSearchAssociationEnds has no post constraints
1508             this.__manageableSearchAssociationEnds45a = manageableSearchAssociationEnds45a;
1509             if (isMetafacadePropertyCachingEnabled())
1510             {
1511                 this.__manageableSearchAssociationEnds45aSet = true;
1512             }
1513         }
1514         return manageableSearchAssociationEnds45a;
1515     }
1516 
1517    /**
1518     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#isNeedsFileUpload()
1519     * @return boolean
1520     */
1521     protected abstract boolean handleIsNeedsFileUpload();
1522 
1523     private boolean __needsFileUpload46a;
1524     private boolean __needsFileUpload46aSet = false;
1525 
1526     /**
1527      * TODO: Model Documentation for
1528      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.needsFileUpload
1529      * @return (boolean)handleIsNeedsFileUpload()
1530      */
1531     public final boolean isNeedsFileUpload()
1532     {
1533         boolean needsFileUpload46a = this.__needsFileUpload46a;
1534         if (!this.__needsFileUpload46aSet)
1535         {
1536             // needsFileUpload has no pre constraints
1537             needsFileUpload46a = handleIsNeedsFileUpload();
1538             // needsFileUpload has no post constraints
1539             this.__needsFileUpload46a = needsFileUpload46a;
1540             if (isMetafacadePropertyCachingEnabled())
1541             {
1542                 this.__needsFileUpload46aSet = true;
1543             }
1544         }
1545         return needsFileUpload46a;
1546     }
1547 
1548    /**
1549     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getConverterFullPath()
1550     * @return String
1551     */
1552     protected abstract String handleGetConverterFullPath();
1553 
1554     private String __converterFullPath47a;
1555     private boolean __converterFullPath47aSet = false;
1556 
1557     /**
1558      * TODO: Model Documentation for
1559      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.converterFullPath
1560      * @return (String)handleGetConverterFullPath()
1561      */
1562     public final String getConverterFullPath()
1563     {
1564         String converterFullPath47a = this.__converterFullPath47a;
1565         if (!this.__converterFullPath47aSet)
1566         {
1567             // converterFullPath has no pre constraints
1568             converterFullPath47a = handleGetConverterFullPath();
1569             // converterFullPath has no post constraints
1570             this.__converterFullPath47a = converterFullPath47a;
1571             if (isMetafacadePropertyCachingEnabled())
1572             {
1573                 this.__converterFullPath47aSet = true;
1574             }
1575         }
1576         return converterFullPath47a;
1577     }
1578 
1579    /**
1580     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getConverterType()
1581     * @return String
1582     */
1583     protected abstract String handleGetConverterType();
1584 
1585     private String __converterType48a;
1586     private boolean __converterType48aSet = false;
1587 
1588     /**
1589      * TODO: Model Documentation for
1590      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.converterType
1591      * @return (String)handleGetConverterType()
1592      */
1593     public final String getConverterType()
1594     {
1595         String converterType48a = this.__converterType48a;
1596         if (!this.__converterType48aSet)
1597         {
1598             // converterType has no pre constraints
1599             converterType48a = handleGetConverterType();
1600             // converterType has no post constraints
1601             this.__converterType48a = converterType48a;
1602             if (isMetafacadePropertyCachingEnabled())
1603             {
1604                 this.__converterType48aSet = true;
1605             }
1606         }
1607         return converterType48a;
1608     }
1609 
1610    /**
1611     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getConverterClassName()
1612     * @return String
1613     */
1614     protected abstract String handleGetConverterClassName();
1615 
1616     private String __converterClassName49a;
1617     private boolean __converterClassName49aSet = false;
1618 
1619     /**
1620      * TODO: Model Documentation for
1621      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.converterClassName
1622      * @return (String)handleGetConverterClassName()
1623      */
1624     public final String getConverterClassName()
1625     {
1626         String converterClassName49a = this.__converterClassName49a;
1627         if (!this.__converterClassName49aSet)
1628         {
1629             // converterClassName has no pre constraints
1630             converterClassName49a = handleGetConverterClassName();
1631             // converterClassName has no post constraints
1632             this.__converterClassName49a = converterClassName49a;
1633             if (isMetafacadePropertyCachingEnabled())
1634             {
1635                 this.__converterClassName49aSet = true;
1636             }
1637         }
1638         return converterClassName49a;
1639     }
1640 
1641    /**
1642     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getOdsExportFullPath()
1643     * @return String
1644     */
1645     protected abstract String handleGetOdsExportFullPath();
1646 
1647     private String __odsExportFullPath50a;
1648     private boolean __odsExportFullPath50aSet = false;
1649 
1650     /**
1651      * TODO: Model Documentation for
1652      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.odsExportFullPath
1653      * @return (String)handleGetOdsExportFullPath()
1654      */
1655     public final String getOdsExportFullPath()
1656     {
1657         String odsExportFullPath50a = this.__odsExportFullPath50a;
1658         if (!this.__odsExportFullPath50aSet)
1659         {
1660             // odsExportFullPath has no pre constraints
1661             odsExportFullPath50a = handleGetOdsExportFullPath();
1662             // odsExportFullPath has no post constraints
1663             this.__odsExportFullPath50a = odsExportFullPath50a;
1664             if (isMetafacadePropertyCachingEnabled())
1665             {
1666                 this.__odsExportFullPath50aSet = true;
1667             }
1668         }
1669         return odsExportFullPath50a;
1670     }
1671 
1672    /**
1673     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#isNeedsUserInterface()
1674     * @return boolean
1675     */
1676     protected abstract boolean handleIsNeedsUserInterface();
1677 
1678     private boolean __needsUserInterface51a;
1679     private boolean __needsUserInterface51aSet = false;
1680 
1681     /**
1682      * TODO: Model Documentation for
1683      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.needsUserInterface
1684      * @return (boolean)handleIsNeedsUserInterface()
1685      */
1686     public final boolean isNeedsUserInterface()
1687     {
1688         boolean needsUserInterface51a = this.__needsUserInterface51a;
1689         if (!this.__needsUserInterface51aSet)
1690         {
1691             // needsUserInterface has no pre constraints
1692             needsUserInterface51a = handleIsNeedsUserInterface();
1693             // needsUserInterface has no post constraints
1694             this.__needsUserInterface51a = needsUserInterface51a;
1695             if (isMetafacadePropertyCachingEnabled())
1696             {
1697                 this.__needsUserInterface51aSet = true;
1698             }
1699         }
1700         return needsUserInterface51a;
1701     }
1702 
1703    /**
1704     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#isNeedsImplementation()
1705     * @return boolean
1706     */
1707     protected abstract boolean handleIsNeedsImplementation();
1708 
1709     private boolean __needsImplementation52a;
1710     private boolean __needsImplementation52aSet = false;
1711 
1712     /**
1713      * Returns true if the user needs to modify the standard behavior and a Impl.java file will be
1714      * created in web/src/main/java.
1715      * @return (boolean)handleIsNeedsImplementation()
1716      */
1717     public final boolean isNeedsImplementation()
1718     {
1719         boolean needsImplementation52a = this.__needsImplementation52a;
1720         if (!this.__needsImplementation52aSet)
1721         {
1722             // needsImplementation has no pre constraints
1723             needsImplementation52a = handleIsNeedsImplementation();
1724             // needsImplementation has no post constraints
1725             this.__needsImplementation52a = needsImplementation52a;
1726             if (isMetafacadePropertyCachingEnabled())
1727             {
1728                 this.__needsImplementation52aSet = true;
1729             }
1730         }
1731         return needsImplementation52a;
1732     }
1733 
1734    /**
1735     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getSearchFilterFullPath()
1736     * @return String
1737     */
1738     protected abstract String handleGetSearchFilterFullPath();
1739 
1740     private String __searchFilterFullPath53a;
1741     private boolean __searchFilterFullPath53aSet = false;
1742 
1743     /**
1744      * Full path of this manageable search filter.
1745      * @return (String)handleGetSearchFilterFullPath()
1746      */
1747     public final String getSearchFilterFullPath()
1748     {
1749         String searchFilterFullPath53a = this.__searchFilterFullPath53a;
1750         if (!this.__searchFilterFullPath53aSet)
1751         {
1752             // searchFilterFullPath has no pre constraints
1753             searchFilterFullPath53a = handleGetSearchFilterFullPath();
1754             // searchFilterFullPath has no post constraints
1755             this.__searchFilterFullPath53a = searchFilterFullPath53a;
1756             if (isMetafacadePropertyCachingEnabled())
1757             {
1758                 this.__searchFilterFullPath53aSet = true;
1759             }
1760         }
1761         return searchFilterFullPath53a;
1762     }
1763 
1764    /**
1765     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getSearchFilterName()
1766     * @return String
1767     */
1768     protected abstract String handleGetSearchFilterName();
1769 
1770     private String __searchFilterName54a;
1771     private boolean __searchFilterName54aSet = false;
1772 
1773     /**
1774      * Search filter class name.
1775      * @return (String)handleGetSearchFilterName()
1776      */
1777     public final String getSearchFilterName()
1778     {
1779         String searchFilterName54a = this.__searchFilterName54a;
1780         if (!this.__searchFilterName54aSet)
1781         {
1782             // searchFilterName has no pre constraints
1783             searchFilterName54a = handleGetSearchFilterName();
1784             // searchFilterName has no post constraints
1785             this.__searchFilterName54a = searchFilterName54a;
1786             if (isMetafacadePropertyCachingEnabled())
1787             {
1788                 this.__searchFilterName54aSet = true;
1789             }
1790         }
1791         return searchFilterName54a;
1792     }
1793 
1794    /**
1795     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getSearchFilterSerialVersionUID()
1796     * @return String
1797     */
1798     protected abstract String handleGetSearchFilterSerialVersionUID();
1799 
1800     private String __searchFilterSerialVersionUID55a;
1801     private boolean __searchFilterSerialVersionUID55aSet = false;
1802 
1803     /**
1804      * The calculated serial version UID for this controller.
1805      * @return (String)handleGetSearchFilterSerialVersionUID()
1806      */
1807     public final String getSearchFilterSerialVersionUID()
1808     {
1809         String searchFilterSerialVersionUID55a = this.__searchFilterSerialVersionUID55a;
1810         if (!this.__searchFilterSerialVersionUID55aSet)
1811         {
1812             // searchFilterSerialVersionUID has no pre constraints
1813             searchFilterSerialVersionUID55a = handleGetSearchFilterSerialVersionUID();
1814             // searchFilterSerialVersionUID has no post constraints
1815             this.__searchFilterSerialVersionUID55a = searchFilterSerialVersionUID55a;
1816             if (isMetafacadePropertyCachingEnabled())
1817             {
1818                 this.__searchFilterSerialVersionUID55aSet = true;
1819             }
1820         }
1821         return searchFilterSerialVersionUID55a;
1822     }
1823 
1824    /**
1825     * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getManageableEditAttributes()
1826     * @return Collection
1827     */
1828     protected abstract Collection handleGetManageableEditAttributes();
1829 
1830     private Collection __manageableEditAttributes56a;
1831     private boolean __manageableEditAttributes56aSet = false;
1832 
1833     /**
1834      * returns all editable attributes
1835      * @return (Collection)handleGetManageableEditAttributes()
1836      */
1837     public final Collection getManageableEditAttributes()
1838     {
1839         Collection manageableEditAttributes56a = this.__manageableEditAttributes56a;
1840         if (!this.__manageableEditAttributes56aSet)
1841         {
1842             // manageableEditAttributes has no pre constraints
1843             manageableEditAttributes56a = handleGetManageableEditAttributes();
1844             // manageableEditAttributes has no post constraints
1845             this.__manageableEditAttributes56a = manageableEditAttributes56a;
1846             if (isMetafacadePropertyCachingEnabled())
1847             {
1848                 this.__manageableEditAttributes56aSet = true;
1849             }
1850         }
1851         return manageableEditAttributes56a;
1852     }
1853 
1854     // ---------------- business methods ----------------------
1855 
1856     /**
1857      * Method to be implemented in descendants
1858      * TODO: Model Documentation for
1859      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.isSearchable
1860      * @param element
1861      * @return boolean
1862      */
1863     protected abstract boolean handleIsSearchable(Object element);
1864 
1865     /**
1866      * TODO: Model Documentation for
1867      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.isSearchable
1868      * @param element Object
1869      * TODO: Model Documentation for
1870      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.isSearchable(element)
1871      * @return handleIsSearchable(element)
1872      */
1873     public boolean isSearchable(Object element)
1874     {
1875         // isSearchable has no pre constraints
1876         boolean returnValue = handleIsSearchable(element);
1877         // isSearchable has no post constraints
1878         return returnValue;
1879     }
1880 
1881     /**
1882      * Method to be implemented in descendants
1883      * TODO: Model Documentation for
1884      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.getActionRoles
1885      * @return String
1886      */
1887     protected abstract String handleGetActionRoles();
1888 
1889     /**
1890      * TODO: Model Documentation for
1891      * org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity.getActionRoles
1892      * @return handleGetActionRoles()
1893      */
1894     public String getActionRoles()
1895     {
1896         // getActionRoles has no pre constraints
1897         String returnValue = handleGetActionRoles();
1898         // getActionRoles has no post constraints
1899         return returnValue;
1900     }
1901 
1902     // ------------- associations ------------------
1903 
1904     /**
1905      * TODO: Model Documentation for org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity
1906      * @return (Collection<Role>)handleGetRoles()
1907      */
1908     public final Collection<Role> getRoles()
1909     {
1910         Collection<Role> getRoles1r = null;
1911         // jSFManageableEntity has no pre constraints
1912         Collection result = handleGetRoles();
1913         List shieldedResult = this.shieldedElements(result);
1914         try
1915         {
1916             getRoles1r = (Collection<Role>)shieldedResult;
1917         }
1918         catch (ClassCastException ex)
1919         {
1920             // Bad things happen if the metafacade type mapping in metafacades.xml is wrong - Warn
1921             JSFManageableEntityLogic.logger.warn("incorrect metafacade cast for JSFManageableEntityLogic.getRoles Collection<Role> " + result + ": " + shieldedResult);
1922         }
1923         // jSFManageableEntity has no post constraints
1924         return getRoles1r;
1925     }
1926 
1927     /**
1928      * UML Specific type is returned in Collection, transformed by shieldedElements to AndroMDA Metafacade type
1929      * @return  Collection
1930      */
1931     protected abstract Collection handleGetRoles();
1932 
1933     /**
1934      * @return true
1935      * @see ManageableEntity
1936      */
1937     public boolean isManageableEntityMetaType()
1938     {
1939         return true;
1940     }
1941 
1942     /**
1943      * @return true
1944      * @see org.andromda.metafacades.uml.Entity
1945      */
1946     public boolean isEntityMetaType()
1947     {
1948         return true;
1949     }
1950 
1951     /**
1952      * @return true
1953      * @see ClassifierFacade
1954      */
1955     public boolean isClassifierFacadeMetaType()
1956     {
1957         return true;
1958     }
1959 
1960     /**
1961      * @return true
1962      * @see GeneralizableElementFacade
1963      */
1964     public boolean isGeneralizableElementFacadeMetaType()
1965     {
1966         return true;
1967     }
1968 
1969     /**
1970      * @return true
1971      * @see ModelElementFacade
1972      */
1973     public boolean isModelElementFacadeMetaType()
1974     {
1975         return true;
1976     }
1977 
1978     // ----------- delegates to ManageableEntity ------------
1979     /**
1980      * Return the attribute which name matches the parameter
1981      * @see ClassifierFacade#findAttribute(String name)
1982      */
1983     public AttributeFacade findAttribute(String name)
1984     {
1985         return this.getSuperManageableEntity().findAttribute(name);
1986     }
1987 
1988     /**
1989      * Those abstraction dependencies for which this classifier is the client.
1990      * @see ClassifierFacade#getAbstractions()
1991      */
1992     public Collection<ClassifierFacade> getAbstractions()
1993     {
1994         return this.getSuperManageableEntity().getAbstractions();
1995     }
1996 
1997     /**
1998      * Lists all classes associated to this one and any ancestor classes (through generalization).
1999      * There will be no duplicates. The order of the elements is predictable.
2000      * @see ClassifierFacade#getAllAssociatedClasses()
2001      */
2002     public Collection<ClassifierFacade> getAllAssociatedClasses()
2003     {
2004         return this.getSuperManageableEntity().getAllAssociatedClasses();
2005     }
2006 
2007     /**
2008      * A collection containing all 'properties' of the classifier and its ancestors.  Properties are
2009      * any attributes and navigable connecting association ends.
2010      * @see ClassifierFacade#getAllProperties()
2011      */
2012     public Collection<ModelElementFacade> getAllProperties()
2013     {
2014         return this.getSuperManageableEntity().getAllProperties();
2015     }
2016 
2017     /**
2018      * A collection containing all required and/or read-only 'properties' of the classifier and its
2019      * ancestors. Properties are any attributes and navigable connecting association ends.
2020      * @see ClassifierFacade#getAllRequiredConstructorParameters()
2021      */
2022     public Collection<ModelElementFacade> getAllRequiredConstructorParameters()
2023     {
2024         return this.getSuperManageableEntity().getAllRequiredConstructorParameters();
2025     }
2026 
2027     /**
2028      * Gets the array type for this classifier.  If this classifier already represents an array, it
2029      * just returns itself.
2030      * @see ClassifierFacade#getArray()
2031      */
2032     public ClassifierFacade getArray()
2033     {
2034         return this.getSuperManageableEntity().getArray();
2035     }
2036 
2037     /**
2038      * The name of the classifier as an array.
2039      * @see ClassifierFacade#getArrayName()
2040      */
2041     public String getArrayName()
2042     {
2043         return this.getSuperManageableEntity().getArrayName();
2044     }
2045 
2046     /**
2047      * Lists the classes associated to this one, there is no repitition of classes. The order of the
2048      * elements is predictable.
2049      * @see ClassifierFacade#getAssociatedClasses()
2050      */
2051     public Collection<ClassifierFacade> getAssociatedClasses()
2052     {
2053         return this.getSuperManageableEntity().getAssociatedClasses();
2054     }
2055 
2056     /**
2057      * Gets the association ends belonging to a classifier.
2058      * @see ClassifierFacade#getAssociationEnds()
2059      */
2060     public List<AssociationEndFacade> getAssociationEnds()
2061     {
2062         return this.getSuperManageableEntity().getAssociationEnds();
2063     }
2064 
2065     /**
2066      * Gets the attributes that belong to the classifier.
2067      * @see ClassifierFacade#getAttributes()
2068      */
2069     public List<AttributeFacade> getAttributes()
2070     {
2071         return this.getSuperManageableEntity().getAttributes();
2072     }
2073 
2074     /**
2075      * Gets all attributes for the classifier and if 'follow' is true goes up the inheritance
2076      * hierarchy and gets the attributes from the super classes as well.
2077      * @see ClassifierFacade#getAttributes(boolean follow)
2078      */
2079     public List<AttributeFacade> getAttributes(boolean follow)
2080     {
2081         return this.getSuperManageableEntity().getAttributes(follow);
2082     }
2083 
2084     /**
2085      * The fully qualified name of the classifier as an array.
2086      * @see ClassifierFacade#getFullyQualifiedArrayName()
2087      */
2088     public String getFullyQualifiedArrayName()
2089     {
2090         return this.getSuperManageableEntity().getFullyQualifiedArrayName();
2091     }
2092 
2093     /**
2094      * Returns all those operations that could be implemented at this classifier's level. This means
2095      * the operations owned by this classifier as well as any realized interface's operations
2096      * (recursively) in case this classifier itself is not already an interface, or generalized when
2097      * this classifier is an interface.
2098      * @see ClassifierFacade#getImplementationOperations()
2099      */
2100     public Collection<OperationFacade> getImplementationOperations()
2101     {
2102         return this.getSuperManageableEntity().getImplementationOperations();
2103     }
2104 
2105     /**
2106      * A comma separated list of the fully qualified names of all implemented interfaces.
2107      * @see ClassifierFacade#getImplementedInterfaceList()
2108      */
2109     public String getImplementedInterfaceList()
2110     {
2111         return this.getSuperManageableEntity().getImplementedInterfaceList();
2112     }
2113 
2114     /**
2115      * Those attributes that are scoped to an instance of this class.
2116      * @see ClassifierFacade#getInstanceAttributes()
2117      */
2118     public Collection<AttributeFacade> getInstanceAttributes()
2119     {
2120         return this.getSuperManageableEntity().getInstanceAttributes();
2121     }
2122 
2123     /**
2124      * Those operations that are scoped to an instance of this class.
2125      * @see ClassifierFacade#getInstanceOperations()
2126      */
2127     public List<OperationFacade> getInstanceOperations()
2128     {
2129         return this.getSuperManageableEntity().getInstanceOperations();
2130     }
2131 
2132     /**
2133      * Those interfaces that are abstractions of this classifier, this basically means this
2134      * classifier realizes them.
2135      * @see ClassifierFacade#getInterfaceAbstractions()
2136      */
2137     public Collection<ClassifierFacade> getInterfaceAbstractions()
2138     {
2139         return this.getSuperManageableEntity().getInterfaceAbstractions();
2140     }
2141 
2142     /**
2143      * A String representing a new Constructor declaration for this classifier type to be used in a
2144      * Java environment.
2145      * @see ClassifierFacade#getJavaNewString()
2146      */
2147     public String getJavaNewString()
2148     {
2149         return this.getSuperManageableEntity().getJavaNewString();
2150     }
2151 
2152     /**
2153      * A String representing the null-value for this classifier type to be used in a Java
2154      * environment.
2155      * @see ClassifierFacade#getJavaNullString()
2156      */
2157     public String getJavaNullString()
2158     {
2159         return this.getSuperManageableEntity().getJavaNullString();
2160     }
2161 
2162     /**
2163      * The other ends of this classifier's association ends which are navigable.
2164      * @see ClassifierFacade#getNavigableConnectingEnds()
2165      */
2166     public Collection<AssociationEndFacade> getNavigableConnectingEnds()
2167     {
2168         return this.getSuperManageableEntity().getNavigableConnectingEnds();
2169     }
2170 
2171     /**
2172      * Get the other ends of this classifier's association ends which are navigable and if 'follow'
2173      * is true goes up the inheritance hierarchy and gets the super association ends as well.
2174      * @see ClassifierFacade#getNavigableConnectingEnds(boolean follow)
2175      */
2176     public List<AssociationEndFacade> getNavigableConnectingEnds(boolean follow)
2177     {
2178         return this.getSuperManageableEntity().getNavigableConnectingEnds(follow);
2179     }
2180 
2181     /**
2182      * Assuming that the classifier is an array, this will return the non array type of the
2183      * classifier from
2184      * the model.  If the classifier is NOT an array, it will just return itself.
2185      * @see ClassifierFacade#getNonArray()
2186      */
2187     public ClassifierFacade getNonArray()
2188     {
2189         return this.getSuperManageableEntity().getNonArray();
2190     }
2191 
2192     /**
2193      * The attributes from this classifier in the form of an operation call (this example would be
2194      * in Java): '(String attributeOne, String attributeTwo).  If there were no attributes on the
2195      * classifier, the result would be an empty '()'.
2196      * @see ClassifierFacade#getOperationCallFromAttributes()
2197      */
2198     public String getOperationCallFromAttributes()
2199     {
2200         return this.getSuperManageableEntity().getOperationCallFromAttributes();
2201     }
2202 
2203     /**
2204      * The operations owned by this classifier.
2205      * @see ClassifierFacade#getOperations()
2206      */
2207     public List<OperationFacade> getOperations()
2208     {
2209         return this.getSuperManageableEntity().getOperations();
2210     }
2211 
2212     /**
2213      * A collection containing all 'properties' of the classifier.  Properties are any attributes
2214      * and navigable connecting association ends.
2215      * @see ClassifierFacade#getProperties()
2216      */
2217     public List<ModelElementFacade> getProperties()
2218     {
2219         return this.getSuperManageableEntity().getProperties();
2220     }
2221 
2222     /**
2223      * Gets all properties (attributes and navigable association ends) for the classifier and if
2224      * 'follow' is true goes up the inheritance hierarchy and gets the properties from the super
2225      * classes as well.
2226      * @see ClassifierFacade#getProperties(boolean follow)
2227      */
2228     public List getProperties(boolean follow)
2229     {
2230         return this.getSuperManageableEntity().getProperties(follow);
2231     }
2232 
2233     /**
2234      * A collection containing all required and/or read-only 'properties' of the classifier. 
2235      * Properties are any attributes and navigable connecting association ends.
2236      * @see ClassifierFacade#getRequiredConstructorParameters()
2237      */
2238     public Collection<ModelElementFacade> getRequiredConstructorParameters()
2239     {
2240         return this.getSuperManageableEntity().getRequiredConstructorParameters();
2241     }
2242 
2243     /**
2244      * Returns the serial version UID of the underlying model element.
2245      * @see ClassifierFacade#getSerialVersionUID()
2246      */
2247     public long getSerialVersionUID()
2248     {
2249         return this.getSuperManageableEntity().getSerialVersionUID();
2250     }
2251 
2252     /**
2253      * Those attributes that are scoped to the definition of this class.
2254      * @see ClassifierFacade#getStaticAttributes()
2255      */
2256     public Collection<AttributeFacade> getStaticAttributes()
2257     {
2258         return this.getSuperManageableEntity().getStaticAttributes();
2259     }
2260 
2261     /**
2262      * Those operations that are scoped to the definition of this class.
2263      * @see ClassifierFacade#getStaticOperations()
2264      */
2265     public List<OperationFacade> getStaticOperations()
2266     {
2267         return this.getSuperManageableEntity().getStaticOperations();
2268     }
2269 
2270     /**
2271      * This class' superclass, returns the generalization if it is a ClassifierFacade, null
2272      * otherwise.
2273      * @see ClassifierFacade#getSuperClass()
2274      */
2275     public ClassifierFacade getSuperClass()
2276     {
2277         return this.getSuperManageableEntity().getSuperClass();
2278     }
2279 
2280     /**
2281      * The wrapper name for this classifier if a mapped type has a defined wrapper class (ie. 'long'
2282      * maps to 'Long').  If the classifier doesn't have a wrapper defined for it, this method will
2283      * return a null.  Note that wrapper mappings must be defined for the namespace by defining the
2284      * 'wrapperMappingsUri', this property must point to the location of the mappings file which
2285      * maps the primitives to wrapper types.
2286      * @see ClassifierFacade#getWrapperName()
2287      */
2288     public String getWrapperName()
2289     {
2290         return this.getSuperManageableEntity().getWrapperName();
2291     }
2292 
2293     /**
2294      * Indicates if this classifier is 'abstract'.
2295      * @see ClassifierFacade#isAbstract()
2296      */
2297     public boolean isAbstract()
2298     {
2299         return this.getSuperManageableEntity().isAbstract();
2300     }
2301 
2302     /**
2303      * True if this classifier represents an array type. False otherwise.
2304      * @see ClassifierFacade#isArrayType()
2305      */
2306     public boolean isArrayType()
2307     {
2308         return this.getSuperManageableEntity().isArrayType();
2309     }
2310 
2311     /**
2312      * True if the ClassifierFacade is an AssociationClass.
2313      * @see ClassifierFacade#isAssociationClass()
2314      */
2315     public boolean isAssociationClass()
2316     {
2317         return this.getSuperManageableEntity().isAssociationClass();
2318     }
2319 
2320     /**
2321      * Returns true if this type represents a Blob type.
2322      * @see ClassifierFacade#isBlobType()
2323      */
2324     public boolean isBlobType()
2325     {
2326         return this.getSuperManageableEntity().isBlobType();
2327     }
2328 
2329     /**
2330      * Indicates if this type represents a boolean type or not.
2331      * @see ClassifierFacade#isBooleanType()
2332      */
2333     public boolean isBooleanType()
2334     {
2335         return this.getSuperManageableEntity().isBooleanType();
2336     }
2337 
2338     /**
2339      * Indicates if this type represents a char, Character, or java.lang.Character type or not.
2340      * @see ClassifierFacade#isCharacterType()
2341      */
2342     public boolean isCharacterType()
2343     {
2344         return this.getSuperManageableEntity().isCharacterType();
2345     }
2346 
2347     /**
2348      * Returns true if this type represents a Clob type.
2349      * @see ClassifierFacade#isClobType()
2350      */
2351     public boolean isClobType()
2352     {
2353         return this.getSuperManageableEntity().isClobType();
2354     }
2355 
2356     /**
2357      * True if this classifier represents a collection type. False otherwise.
2358      * @see ClassifierFacade#isCollectionType()
2359      */
2360     public boolean isCollectionType()
2361     {
2362         return this.getSuperManageableEntity().isCollectionType();
2363     }
2364 
2365     /**
2366      * True/false depending on whether or not this classifier represents a datatype. A data type is
2367      * a type whose instances are identified only by their value. A data type may contain attributes
2368      * to support the modeling of structured data types.
2369      * @see ClassifierFacade#isDataType()
2370      */
2371     public boolean isDataType()
2372     {
2373         return this.getSuperManageableEntity().isDataType();
2374     }
2375 
2376     /**
2377      * True when this classifier is a date type.
2378      * @see ClassifierFacade#isDateType()
2379      */
2380     public boolean isDateType()
2381     {
2382         return this.getSuperManageableEntity().isDateType();
2383     }
2384 
2385     /**
2386      * Indicates if this type represents a Double type or not.
2387      * @see ClassifierFacade#isDoubleType()
2388      */
2389     public boolean isDoubleType()
2390     {
2391         return this.getSuperManageableEntity().isDoubleType();
2392     }
2393 
2394     /**
2395      * Indicates whether or not this classifier represents an "EmbeddedValue'.
2396      * @see ClassifierFacade#isEmbeddedValue()
2397      */
2398     public boolean isEmbeddedValue()
2399     {
2400         return this.getSuperManageableEntity().isEmbeddedValue();
2401     }
2402 
2403     /**
2404      * True if this classifier is in fact marked as an enumeration.
2405      * @see ClassifierFacade#isEnumeration()
2406      */
2407     public boolean isEnumeration()
2408     {
2409         return this.getSuperManageableEntity().isEnumeration();
2410     }
2411 
2412     /**
2413      * Returns true if this type represents a 'file' type.
2414      * @see ClassifierFacade#isFileType()
2415      */
2416     public boolean isFileType()
2417     {
2418         return this.getSuperManageableEntity().isFileType();
2419     }
2420 
2421     /**
2422      * Indicates if this type represents a Float type or not.
2423      * @see ClassifierFacade#isFloatType()
2424      */
2425     public boolean isFloatType()
2426     {
2427         return this.getSuperManageableEntity().isFloatType();
2428     }
2429 
2430     /**
2431      * Indicates if this type represents an int or Integer or java.lang.Integer type or not.
2432      * @see ClassifierFacade#isIntegerType()
2433      */
2434     public boolean isIntegerType()
2435     {
2436         return this.getSuperManageableEntity().isIntegerType();
2437     }
2438 
2439     /**
2440      * True/false depending on whether or not this Classifier represents an interface.
2441      * @see ClassifierFacade#isInterface()
2442      */
2443     public boolean isInterface()
2444     {
2445         return this.getSuperManageableEntity().isInterface();
2446     }
2447 
2448     /**
2449      * True if this classifier cannot be extended and represent a leaf in the inheritance tree.
2450      * @see ClassifierFacade#isLeaf()
2451      */
2452     public boolean isLeaf()
2453     {
2454         return this.getSuperManageableEntity().isLeaf();
2455     }
2456 
2457     /**
2458      * True if this classifier represents a list type. False otherwise.
2459      * @see ClassifierFacade#isListType()
2460      */
2461     public boolean isListType()
2462     {
2463         return this.getSuperManageableEntity().isListType();
2464     }
2465 
2466     /**
2467      * Indicates if this type represents a Long type or not.
2468      * @see ClassifierFacade#isLongType()
2469      */
2470     public boolean isLongType()
2471     {
2472         return this.getSuperManageableEntity().isLongType();
2473     }
2474 
2475     /**
2476      * Indicates whether or not this classifier represents a Map type.
2477      * @see ClassifierFacade#isMapType()
2478      */
2479     public boolean isMapType()
2480     {
2481         return this.getSuperManageableEntity().isMapType();
2482     }
2483 
2484     /**
2485      * Indicates whether or not this classifier represents a primitive type.
2486      * @see ClassifierFacade#isPrimitive()
2487      */
2488     public boolean isPrimitive()
2489     {
2490         return this.getSuperManageableEntity().isPrimitive();
2491     }
2492 
2493     /**
2494      * True if this classifier represents a set type. False otherwise.
2495      * @see ClassifierFacade#isSetType()
2496      */
2497     public boolean isSetType()
2498     {
2499         return this.getSuperManageableEntity().isSetType();
2500     }
2501 
2502     /**
2503      * Indicates whether or not this classifier represents a string type.
2504      * @see ClassifierFacade#isStringType()
2505      */
2506     public boolean isStringType()
2507     {
2508         return this.getSuperManageableEntity().isStringType();
2509     }
2510 
2511     /**
2512      * Indicates whether or not this classifier represents a time type.
2513      * @see ClassifierFacade#isTimeType()
2514      */
2515     public boolean isTimeType()
2516     {
2517         return this.getSuperManageableEntity().isTimeType();
2518     }
2519 
2520     /**
2521      * Returns true if this type is a wrapped primitive type.
2522      * @see ClassifierFacade#isWrappedPrimitive()
2523      */
2524     public boolean isWrappedPrimitive()
2525     {
2526         return this.getSuperManageableEntity().isWrappedPrimitive();
2527     }
2528 
2529     /**
2530      * Returns a collection of all entities this entity and its ancestors have a relation to.
2531      * @see org.andromda.metafacades.uml.Entity#getAllEntityReferences()
2532      */
2533     public Collection<DependencyFacade> getAllEntityReferences()
2534     {
2535         return this.getSuperManageableEntity().getAllEntityReferences();
2536     }
2537 
2538     /**
2539      * Gets a comma separated list of attribute names.  If 'follow' is true, will travel up the
2540      * inheritance hiearchy to include attributes in parent entities as well.  If 'withIdentifiers'
2541      * is true, will include identifiers.
2542      * @see org.andromda.metafacades.uml.Entity#getAttributeNameList(boolean follow, boolean withIdentifiers)
2543      */
2544     public String getAttributeNameList(boolean follow, boolean withIdentifiers)
2545     {
2546         return this.getSuperManageableEntity().getAttributeNameList(follow, withIdentifiers);
2547     }
2548 
2549     /**
2550      * Gets a comma separated list of attribute names.  If 'follow' is true, will travel up the
2551      * inheritance hiearchy to include attributes in parent entities as well.  If 'withIdentifiers'
2552      * is true, will include identifiers  and  if 'withDerived' is set to true, will include derived
2553      * attributes.
2554      * @see org.andromda.metafacades.uml.Entity#getAttributeNameList(boolean follow, boolean withIdentifiers, boolean withDerived)
2555      */
2556     public String getAttributeNameList(boolean follow, boolean withIdentifiers, boolean withDerived)
2557     {
2558         return this.getSuperManageableEntity().getAttributeNameList(follow, withIdentifiers, withDerived);
2559     }
2560 
2561     /**
2562      * Gets a comma separated list of attribute types.  If 'follow' is true, will travel up the
2563      * inheritance hierarchy to include attributes in parent entities as well.  If 'withIdentifiers'
2564      * is true, will include identifiers.
2565      * @see org.andromda.metafacades.uml.Entity#getAttributeTypeList(boolean follow, boolean withIdentifiers)
2566      */
2567     public String getAttributeTypeList(boolean follow, boolean withIdentifiers)
2568     {
2569         return this.getSuperManageableEntity().getAttributeTypeList(follow, withIdentifiers);
2570     }
2571 
2572     /**
2573      * Gets all attributes of the entity, and optionally retieves the super entities attributes as
2574      * well as excludes the entity's identifiers if 'withIdentifiers' is set to false.
2575      * @see org.andromda.metafacades.uml.Entity#getAttributes(boolean follow, boolean withIdentifiers)
2576      */
2577     public Collection<AttributeFacade> getAttributes(boolean follow, boolean withIdentifiers)
2578     {
2579         return this.getSuperManageableEntity().getAttributes(follow, withIdentifiers);
2580     }
2581 
2582     /**
2583      * Gets all attributes of the entity, and optionally retieves the super entities attributes as
2584      * well as excludes the entity's identifiers if 'withIdentifiers' is set to false and exclude
2585      * derived attributes if 'withDerived' is set to false.
2586      * @see org.andromda.metafacades.uml.Entity#getAttributes(boolean follow, boolean withIdentifiers, boolean withDerived)
2587      */
2588     public Collection<AttributeFacade> getAttributes(boolean follow, boolean withIdentifiers, boolean withDerived)
2589     {
2590         return this.getSuperManageableEntity().getAttributes(follow, withIdentifiers, withDerived);
2591     }
2592 
2593     /**
2594      * All business operations of the entity, these include any operations that aren't queries.
2595      * @see org.andromda.metafacades.uml.Entity#getBusinessOperations()
2596      */
2597     public Collection<OperationFacade> getBusinessOperations()
2598     {
2599         return this.getSuperManageableEntity().getBusinessOperations();
2600     }
2601 
2602     /**
2603      * Gets any children association ends (i.e. entity association ends that are participants in an
2604      * association with this entity and this entity has composite aggregation defined for those
2605      * associations).
2606      * @see org.andromda.metafacades.uml.Entity#getChildEnds()
2607      */
2608     public Collection<EntityAssociationEnd> getChildEnds()
2609     {
2610         return this.getSuperManageableEntity().getChildEnds();
2611     }
2612 
2613     /**
2614      * The embedded values belonging to this entity.
2615      * @see org.andromda.metafacades.uml.Entity#getEmbeddedValues()
2616      */
2617     public Collection<AttributeFacade> getEmbeddedValues()
2618     {
2619         return this.getSuperManageableEntity().getEmbeddedValues();
2620     }
2621 
2622     /**
2623      * All entities referenced by this entity.
2624      * @see org.andromda.metafacades.uml.Entity#getEntityReferences()
2625      */
2626     public Collection<DependencyFacade> getEntityReferences()
2627     {
2628         return this.getSuperManageableEntity().getEntityReferences();
2629     }
2630 
2631     /**
2632      * The full name of the type of the identifier. If composite identifier add the PK sufix to the
2633      * class name. If not, retorns the fully qualified name of the identifier.
2634      * @see org.andromda.metafacades.uml.Entity#getFullyQualifiedIdentifierTypeName()
2635      */
2636     public String getFullyQualifiedIdentifierTypeName()
2637     {
2638         return this.getSuperManageableEntity().getFullyQualifiedIdentifierTypeName();
2639     }
2640 
2641     /**
2642      * Gets all the associationEnds of this entity marked with the identifiers stereotype.
2643      * @see org.andromda.metafacades.uml.Entity#getIdentifierAssociationEnds()
2644      */
2645     public Collection<AssociationEndFacade> getIdentifierAssociationEnds()
2646     {
2647         return this.getSuperManageableEntity().getIdentifierAssociationEnds();
2648     }
2649 
2650     /**
2651      * The getter name of the identifier.
2652      * @see org.andromda.metafacades.uml.Entity#getIdentifierGetterName()
2653      */
2654     public String getIdentifierGetterName()
2655     {
2656         return this.getSuperManageableEntity().getIdentifierGetterName();
2657     }
2658 
2659     /**
2660      * The name of the identifier. If composite identifier add the Pk suffix. If not composite
2661      * returns the attribute name of the identifier.
2662      * @see org.andromda.metafacades.uml.Entity#getIdentifierName()
2663      */
2664     public String getIdentifierName()
2665     {
2666         return this.getSuperManageableEntity().getIdentifierName();
2667     }
2668 
2669     /**
2670      * The setter name of the identifier.
2671      * @see org.andromda.metafacades.uml.Entity#getIdentifierSetterName()
2672      */
2673     public String getIdentifierSetterName()
2674     {
2675         return this.getSuperManageableEntity().getIdentifierSetterName();
2676     }
2677 
2678     /**
2679      * The name of the type of the identifier. If composite identifier add the PK suffix to the
2680      * class name. If not, returns the name of the identifier.
2681      * @see org.andromda.metafacades.uml.Entity#getIdentifierTypeName()
2682      */
2683     public String getIdentifierTypeName()
2684     {
2685         return this.getSuperManageableEntity().getIdentifierTypeName();
2686     }
2687 
2688     /**
2689      * All the attributes of the entity which make up its identifier (primary key).  Will search any
2690      * super classes as well.  If no identifiers exist, a default identifier will be created if the
2691      * allowDefaultIdentifiers property is set to true.
2692      * @see org.andromda.metafacades.uml.Entity#getIdentifiers()
2693      */
2694     public Collection<ModelElementFacade> getIdentifiers()
2695     {
2696         return this.getSuperManageableEntity().getIdentifiers();
2697     }
2698 
2699     /**
2700      * Gets all identifiers for an entity. If 'follow' is true, and if no identifiers can be found
2701      * on the entity, a search up the inheritance chain will be performed, and the identifiers from
2702      * the first super class having them will be used.   If no identifiers exist, a default
2703      * identifier will be created if the allowDefaultIdentifiers property is set to true.
2704      * Identifiers can be on attributes or associations (composite primary key).
2705      * @see org.andromda.metafacades.uml.Entity#getIdentifiers(boolean follow)
2706      */
2707     public Collection<ModelElementFacade> getIdentifiers(boolean follow)
2708     {
2709         return this.getSuperManageableEntity().getIdentifiers(follow);
2710     }
2711 
2712     /**
2713      * The maximum length a SQL name may be.
2714      * @see org.andromda.metafacades.uml.Entity#getMaxSqlNameLength()
2715      */
2716     public short getMaxSqlNameLength()
2717     {
2718         return this.getSuperManageableEntity().getMaxSqlNameLength();
2719     }
2720 
2721     /**
2722      * Gets the attributes as a list within an operation call, optionally including the type names
2723      * and the identifier attributes.
2724      * @see org.andromda.metafacades.uml.Entity#getOperationCallFromAttributes(boolean withIdentifiers)
2725      */
2726     public String getOperationCallFromAttributes(boolean withIdentifiers)
2727     {
2728         return this.getSuperManageableEntity().getOperationCallFromAttributes(withIdentifiers);
2729     }
2730 
2731     /**
2732      * Gets the attributes as a list within an operation call.  If 'withTypeNames' is true, it will
2733      * include the type names, if 'withIdentifiers' is true it will include the identifiers.  If
2734      * 'follow' is true it will follow the inheritance hierarchy and get the attributes of the super
2735      * class as well.
2736      * @see org.andromda.metafacades.uml.Entity#getOperationCallFromAttributes(boolean withIdentifiers, boolean follow)
2737      */
2738     public String getOperationCallFromAttributes(boolean withIdentifiers, boolean follow)
2739     {
2740         return this.getSuperManageableEntity().getOperationCallFromAttributes(withIdentifiers, follow);
2741     }
2742 
2743     /**
2744      * Returns the parent association end of this entity if its a child entity.  The parent is the
2745      * entity that is the participant the association that has composite aggregation defined.  Will
2746      * return null if the entity has no parent.
2747      * @see org.andromda.metafacades.uml.Entity#getParentEnd()
2748      */
2749     public EntityAssociationEnd getParentEnd()
2750     {
2751         return this.getSuperManageableEntity().getParentEnd();
2752     }
2753 
2754     /**
2755      * Gets all properties of this entity, this includes the attributes and navigable association
2756      * ends of the entity.  The 'follow' flag indcates whether or not the inheritance hierarchy
2757      * should be followed when getting all the properties.  The 'withIdentifiers' flag indicates
2758      * whether or not identifiers should be included in the collection of properties.
2759      * @see org.andromda.metafacades.uml.Entity#getProperties(boolean follow, boolean withIdentifiers)
2760      */
2761     public Collection<ModelElementFacade> getProperties(boolean follow, boolean withIdentifiers)
2762     {
2763         return this.getSuperManageableEntity().getProperties(follow, withIdentifiers);
2764     }
2765 
2766     /**
2767      * Returns all the operations that can perform queries on the entity.
2768      * @see org.andromda.metafacades.uml.Entity#getQueryOperations()
2769      */
2770     public Collection<EntityQueryOperation> getQueryOperations()
2771     {
2772         return this.getSuperManageableEntity().getQueryOperations();
2773     }
2774 
2775     /**
2776      * Gets all query operations for an entity. If 'follow' is true, and if no query operations can
2777      * be found on the entity, a search up the inheritance chain will be performed, and the
2778      * identifiers from the first super class having them will be used.   If no identifiers exist, a
2779      * default identifier will be created if the allowDefaultIdentifiers property is set to true.
2780      * @see org.andromda.metafacades.uml.Entity#getQueryOperations(boolean follow)
2781      */
2782     public Collection<OperationFacade> getQueryOperations(boolean follow)
2783     {
2784         return this.getSuperManageableEntity().getQueryOperations(follow);
2785     }
2786 
2787     /**
2788      * Gets a comma separated list of required attribute names.  If 'follow' is true, will travel up
2789      * the inheritance hierarchy to include attributes in parent entities as well.  If
2790      * 'withIdentifiers' is true, will include identifiers.
2791      * @see org.andromda.metafacades.uml.Entity#getRequiredAttributeNameList(boolean follow, boolean withIdentifiers)
2792      */
2793     public String getRequiredAttributeNameList(boolean follow, boolean withIdentifiers)
2794     {
2795         return this.getSuperManageableEntity().getRequiredAttributeNameList(follow, withIdentifiers);
2796     }
2797 
2798     /**
2799      * Gets a comma separated list of attribute types with are required.  If 'follow' is true, will
2800      * travel up the inheritance hierarchy to include attributes in parent entities as well.  If
2801      * 'withIdentifiers' is true, will include identifiers.
2802      * @see org.andromda.metafacades.uml.Entity#getRequiredAttributeTypeList(boolean follow, boolean withIdentifiers)
2803      */
2804     public String getRequiredAttributeTypeList(boolean follow, boolean withIdentifiers)
2805     {
2806         return this.getSuperManageableEntity().getRequiredAttributeTypeList(follow, withIdentifiers);
2807     }
2808 
2809     /**
2810      * Returns all attributes that are specified as 'required' in the model.  If 'follow' is true,
2811      * then required attributes in super classes will also be returned, if false, just the ones
2812      * directly on the entity will be returned.  If 'withIdentifiers' is true, the identifiers will
2813      * be include, if false, no identifiers will be included.
2814      * @see org.andromda.metafacades.uml.Entity#getRequiredAttributes(boolean follow, boolean withIdentifiers)
2815      */
2816     public Collection<AttributeFacade> getRequiredAttributes(boolean follow, boolean withIdentifiers)
2817     {
2818         return this.getSuperManageableEntity().getRequiredAttributes(follow, withIdentifiers);
2819     }
2820 
2821     /**
2822      * Gets all required properties for this entity.  These consist of any required attributes as
2823      * well as navigable associations that are marked as 'required'.  If 'follow' is true, then the
2824      * inheritance hierchy will be followed and all required properties from super classes will be
2825      * included as well.
2826      * If 'withIdentifiers' is true, the identifiers will be include, if false, no identifiers will
2827      * be included.
2828      * @see org.andromda.metafacades.uml.Entity#getRequiredProperties(boolean follow, boolean withIdentifiers)
2829      */
2830     public Collection<ModelElementFacade> getRequiredProperties(boolean follow, boolean withIdentifiers)
2831     {
2832         return this.getSuperManageableEntity().getRequiredProperties(follow, withIdentifiers);
2833     }
2834 
2835     /**
2836      * Creates a comma separated list of the required property names.
2837      * @see org.andromda.metafacades.uml.Entity#getRequiredPropertyNameList(boolean follow, boolean withIdentifiers)
2838      */
2839     public String getRequiredPropertyNameList(boolean follow, boolean withIdentifiers)
2840     {
2841         return this.getSuperManageableEntity().getRequiredPropertyNameList(follow, withIdentifiers);
2842     }
2843 
2844     /**
2845      * A comma separated list of the required property types.
2846      * @see org.andromda.metafacades.uml.Entity#getRequiredPropertyTypeList(boolean follow, boolean withIdentifiers)
2847      */
2848     public String getRequiredPropertyTypeList(boolean follow, boolean withIdentifiers)
2849     {
2850         return this.getSuperManageableEntity().getRequiredPropertyTypeList(follow, withIdentifiers);
2851     }
2852 
2853     /**
2854      * The name of the schema that contains the database table
2855      * @see org.andromda.metafacades.uml.Entity#getSchema()
2856      */
2857     public String getSchema()
2858     {
2859         return this.getSuperManageableEntity().getSchema();
2860     }
2861 
2862     /**
2863      * The name of the database table to which this entity is persisted.
2864      * @see org.andromda.metafacades.uml.Entity#getTableName()
2865      */
2866     public String getTableName()
2867     {
2868         return this.getSuperManageableEntity().getTableName();
2869     }
2870 
2871     /**
2872      * Returns true/false depending on whether or not this entity represetns a child in an
2873      * association (this occurs when this entity is on the opposite end of an assocation end defined
2874      * as composite).
2875      * @see org.andromda.metafacades.uml.Entity#isChild()
2876      */
2877     public boolean isChild()
2878     {
2879         return this.getSuperManageableEntity().isChild();
2880     }
2881 
2882     /**
2883      * True if this entity identifier is a composite (consists of multiple key columns, typically
2884      * abstracted into an external composite identifier class)
2885      * @see org.andromda.metafacades.uml.Entity#isCompositeIdentifier()
2886      */
2887     public boolean isCompositeIdentifier()
2888     {
2889         return this.getSuperManageableEntity().isCompositeIdentifier();
2890     }
2891 
2892     /**
2893      * True if the entity has its identifiers dynamically added, false otherwise.
2894      * @see org.andromda.metafacades.uml.Entity#isDynamicIdentifiersPresent()
2895      */
2896     public boolean isDynamicIdentifiersPresent()
2897     {
2898         return this.getSuperManageableEntity().isDynamicIdentifiersPresent();
2899     }
2900 
2901     /**
2902      * True if the entity has any identifiers defined, false otherwise.
2903      * @see org.andromda.metafacades.uml.Entity#isIdentifiersPresent()
2904      */
2905     public boolean isIdentifiersPresent()
2906     {
2907         return this.getSuperManageableEntity().isIdentifiersPresent();
2908     }
2909 
2910     /**
2911      * Indiciates if this entity is using an assigned identifier or not.
2912      * @see org.andromda.metafacades.uml.Entity#isUsingAssignedIdentifier()
2913      */
2914     public boolean isUsingAssignedIdentifier()
2915     {
2916         return this.getSuperManageableEntity().isUsingAssignedIdentifier();
2917     }
2918 
2919     /**
2920      * Indicates whether or not this entity is using a foreign identifier as its identifiers.  That
2921      * is: the foreignIdentifier flag was set on an incoming association end and the entity is
2922      * therefore using the related foreign parent entity's identifier.
2923      * @see org.andromda.metafacades.uml.Entity#isUsingForeignIdentifier()
2924      */
2925     public boolean isUsingForeignIdentifier()
2926     {
2927         return this.getSuperManageableEntity().isUsingForeignIdentifier();
2928     }
2929 
2930     /**
2931      * Finds the tagged value optional searching the entire inheritance hierarchy if 'follow' is set
2932      * to true.
2933      * @see GeneralizableElementFacade#findTaggedValue(String tagName, boolean follow)
2934      */
2935     public Object findTaggedValue(String tagName, boolean follow)
2936     {
2937         return this.getSuperManageableEntity().findTaggedValue(tagName, follow);
2938     }
2939 
2940     /**
2941      * All generalizations for this generalizable element, goes up the inheritance tree.
2942      * @see GeneralizableElementFacade#getAllGeneralizations()
2943      */
2944     public Collection<GeneralizableElementFacade> getAllGeneralizations()
2945     {
2946         return this.getSuperManageableEntity().getAllGeneralizations();
2947     }
2948 
2949     /**
2950      * All specializations (travels down the inheritance hierarchy).
2951      * @see GeneralizableElementFacade#getAllSpecializations()
2952      */
2953     public Collection<GeneralizableElementFacade> getAllSpecializations()
2954     {
2955         return this.getSuperManageableEntity().getAllSpecializations();
2956     }
2957 
2958     /**
2959      * Gets the direct generalization for this generalizable element.
2960      * @see GeneralizableElementFacade#getGeneralization()
2961      */
2962     public GeneralizableElementFacade getGeneralization()
2963     {
2964         return this.getSuperManageableEntity().getGeneralization();
2965     }
2966 
2967     /**
2968      * Gets the actual links that this generalization element is part of (it plays either the
2969      * specialization or generalization).
2970      * @see GeneralizableElementFacade#getGeneralizationLinks()
2971      */
2972     public Collection<GeneralizationFacade> getGeneralizationLinks()
2973     {
2974         return this.getSuperManageableEntity().getGeneralizationLinks();
2975     }
2976 
2977     /**
2978      * A comma separated list of the fully qualified names of all generalizations.
2979      * @see GeneralizableElementFacade#getGeneralizationList()
2980      */
2981     public String getGeneralizationList()
2982     {
2983         return this.getSuperManageableEntity().getGeneralizationList();
2984     }
2985 
2986     /**
2987      * The element found when you recursively follow the generalization path up to the root. If an
2988      * element has no generalization itself will be considered the root.
2989      * @see GeneralizableElementFacade#getGeneralizationRoot()
2990      */
2991     public GeneralizableElementFacade getGeneralizationRoot()
2992     {
2993         return this.getSuperManageableEntity().getGeneralizationRoot();
2994     }
2995 
2996     /**
2997      * Return all generalizations (ancestors) from this generalizable element.
2998      * @see GeneralizableElementFacade#getGeneralizations()
2999      */
3000     public Collection<GeneralizableElementFacade> getGeneralizations()
3001     {
3002         return this.getSuperManageableEntity().getGeneralizations();
3003     }
3004 
3005     /**
3006      * Gets the direct specializations (i.e. sub elements) for this generalizatble element.
3007      * @see GeneralizableElementFacade#getSpecializations()
3008      */
3009     public Collection<GeneralizableElementFacade> getSpecializations()
3010     {
3011         return this.getSuperManageableEntity().getSpecializations();
3012     }
3013 
3014     /**
3015      * All entities to which can be browsed from this entity. Currently this property will simple
3016      * hold all entities, so the value is the same for any arbitrary entity. Hiding entities can be
3017      * done in the presentation tier, for example depending on runtime security information.
3018      * @see ManageableEntity#getAllManageables()
3019      */
3020     public List<ManageableEntity> getAllManageables()
3021     {
3022         return this.getSuperManageableEntity().getAllManageables();
3023     }
3024 
3025     /**
3026      * The attribute used as a key link to display values for this entity.
3027      * @see ManageableEntity#getDisplayAttribute()
3028      */
3029     public ManageableEntityAttribute getDisplayAttribute()
3030     {
3031         return this.getSuperManageableEntity().getDisplayAttribute();
3032     }
3033 
3034     /**
3035      * The fully qualified service name of the entity.
3036      * @see ManageableEntity#getFullyQualifiedManageableServiceName()
3037      */
3038     public String getFullyQualifiedManageableServiceName()
3039     {
3040         return this.getSuperManageableEntity().getFullyQualifiedManageableServiceName();
3041     }
3042 
3043     /**
3044      * The associations to other entities from this entity.
3045      * @see ManageableEntity#getManageableAssociationEnds()
3046      */
3047     public List<ManageableEntityAssociationEnd> getManageableAssociationEnds()
3048     {
3049         return this.getSuperManageableEntity().getManageableAssociationEnds();
3050     }
3051 
3052     /**
3053      * Lists the attributes that can be managed for this entity. This feature is particularly
3054      * important when resolving inherited attributes and ids.
3055      * @see ManageableEntity#getManageableAttributes()
3056      */
3057     public List<ManageableEntityAttribute> getManageableAttributes()
3058     {
3059         return this.getSuperManageableEntity().getManageableAttributes();
3060     }
3061 
3062     /**
3063      * The identifier used when managing this entity.
3064      * @see ManageableEntity#getManageableIdentifier()
3065      */
3066     public ManageableEntityAttribute getManageableIdentifier()
3067     {
3068         return this.getSuperManageableEntity().getManageableIdentifier();
3069     }
3070 
3071     /**
3072      * ManageableAttributes and ManageableAssociationEnds
3073      * @see ManageableEntity#getManageableMembers()
3074      */
3075     public List<ModelElementFacade> getManageableMembers()
3076     {
3077         return this.getSuperManageableEntity().getManageableMembers();
3078     }
3079 
3080     /**
3081      * The entity package name.
3082      * @see ManageableEntity#getManageablePackageName()
3083      */
3084     public String getManageablePackageName()
3085     {
3086         return this.getSuperManageableEntity().getManageablePackageName();
3087     }
3088 
3089     /**
3090      * The Package path of the Entity
3091      * @see ManageableEntity#getManageablePackagePath()
3092      */
3093     public String getManageablePackagePath()
3094     {
3095         return this.getSuperManageableEntity().getManageablePackagePath();
3096     }
3097 
3098     /**
3099      * The entity accessor (getter) call.
3100      * @see ManageableEntity#getManageableServiceAccessorCall()
3101      */
3102     public String getManageableServiceAccessorCall()
3103     {
3104         return this.getSuperManageableEntity().getManageableServiceAccessorCall();
3105     }
3106 
3107     /**
3108      * The service full path of the entity.
3109      * @see ManageableEntity#getManageableServiceFullPath()
3110      */
3111     public String getManageableServiceFullPath()
3112     {
3113         return this.getSuperManageableEntity().getManageableServiceFullPath();
3114     }
3115 
3116     /**
3117      * The service name of the entity.
3118      * @see ManageableEntity#getManageableServiceName()
3119      */
3120     public String getManageableServiceName()
3121     {
3122         return this.getSuperManageableEntity().getManageableServiceName();
3123     }
3124 
3125     /**
3126      * The maximum number of rows to load from the database.
3127      * @see ManageableEntity#getMaximumListSize()
3128      */
3129     public int getMaximumListSize()
3130     {
3131         return this.getSuperManageableEntity().getMaximumListSize();
3132     }
3133 
3134     /**
3135      * The maximum number of rows to load from the database.
3136      * @see ManageableEntity#getPageSize()
3137      */
3138     public int getPageSize()
3139     {
3140         return this.getSuperManageableEntity().getPageSize();
3141     }
3142 
3143     /**
3144      * Other Manageable Entities which reference this entity.
3145      * @see ManageableEntity#getReferencingManageables()
3146      */
3147     public List<ManageableEntity> getReferencingManageables()
3148     {
3149         return this.getSuperManageableEntity().getReferencingManageables();
3150     }
3151 
3152     /**
3153      * The Actors (Roles) which can manage the Entity.
3154      * @see ManageableEntity#getUsers()
3155      */
3156     public List<ActorFacade> getUsers()
3157     {
3158         return this.getSuperManageableEntity().getUsers();
3159     }
3160 
3161     /**
3162      * Create a create operation on the entity manager?
3163      * @see ManageableEntity#isCreate()
3164      */
3165     public boolean isCreate()
3166     {
3167         return this.getSuperManageableEntity().isCreate();
3168     }
3169 
3170     /**
3171      * Create a delete operation on the entity manager?
3172      * @see ManageableEntity#isDelete()
3173      */
3174     public boolean isDelete()
3175     {
3176         return this.getSuperManageableEntity().isDelete();
3177     }
3178 
3179     /**
3180      * True: Entity is manageable.
3181      * @see ManageableEntity#isManageable()
3182      */
3183     public boolean isManageable()
3184     {
3185         return this.getSuperManageableEntity().isManageable();
3186     }
3187 
3188     /**
3189      * Create a read operation on the entity manager?
3190      * @see ManageableEntity#isRead()
3191      */
3192     public boolean isRead()
3193     {
3194         return this.getSuperManageableEntity().isRead();
3195     }
3196 
3197     /**
3198      * The maximum number of rows to load from the database.
3199      * @see ManageableEntity#isResolveable()
3200      */
3201     public boolean isResolveable()
3202     {
3203         return this.getSuperManageableEntity().isResolveable();
3204     }
3205 
3206     /**
3207      * Create an update operation on the entity manager?
3208      * @see ManageableEntity#isUpdate()
3209      */
3210     public boolean isUpdate()
3211     {
3212         return this.getSuperManageableEntity().isUpdate();
3213     }
3214 
3215     /**
3216      * Returns a string with the attributes without wrapper types.
3217      * @see ManageableEntity#listManageableMembers(boolean withTypes)
3218      */
3219     public String listManageableMembers(boolean withTypes)
3220     {
3221         return this.getSuperManageableEntity().listManageableMembers(withTypes);
3222     }
3223 
3224     /**
3225      * Returns a string with the attributes and wrapper types.
3226      * @see ManageableEntity#listManageableMembersWithWrapperTypes()
3227      */
3228     public String listManageableMembersWithWrapperTypes()
3229     {
3230         return this.getSuperManageableEntity().listManageableMembersWithWrapperTypes();
3231     }
3232 
3233     /**
3234      * Copies all tagged values from the given ModelElementFacade to this model element facade.
3235      * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
3236      */
3237     public void copyTaggedValues(ModelElementFacade element)
3238     {
3239         this.getSuperManageableEntity().copyTaggedValues(element);
3240     }
3241 
3242     /**
3243      * Finds the tagged value with the specified 'tagName'. In case there are more values the first
3244      * one found will be returned.
3245      * @see ModelElementFacade#findTaggedValue(String tagName)
3246      */
3247     public Object findTaggedValue(String tagName)
3248     {
3249         return this.getSuperManageableEntity().findTaggedValue(tagName);
3250     }
3251 
3252     /**
3253      * Returns all the values for the tagged value with the specified name. The returned collection
3254      * will contains only String instances, or will be empty. Never null.
3255      * @see ModelElementFacade#findTaggedValues(String tagName)
3256      */
3257     public Collection<Object> findTaggedValues(String tagName)
3258     {
3259         return this.getSuperManageableEntity().findTaggedValues(tagName);
3260     }
3261 
3262     /**
3263      * Returns the fully qualified name of the model element. The fully qualified name includes
3264      * complete package qualified name of the underlying model element. The templates parameter will
3265      * be replaced by the correct one given the binding relation of the parameter to this element.
3266      * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
3267      */
3268     public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
3269     {
3270         return this.getSuperManageableEntity().getBindedFullyQualifiedName(bindedElement);
3271     }
3272 
3273     /**
3274      * Gets all constraints belonging to the model element.
3275      * @see ModelElementFacade#getConstraints()
3276      */
3277     public Collection<ConstraintFacade> getConstraints()
3278     {
3279         return this.getSuperManageableEntity().getConstraints();
3280     }
3281 
3282     /**
3283      * Returns the constraints of the argument kind that have been placed onto this model. Typical
3284      * kinds are "inv", "pre" and "post". Other kinds are possible.
3285      * @see ModelElementFacade#getConstraints(String kind)
3286      */
3287     public Collection<ConstraintFacade> getConstraints(String kind)
3288     {
3289         return this.getSuperManageableEntity().getConstraints(kind);
3290     }
3291 
3292     /**
3293      * Gets the documentation for the model element, The indent argument is prefixed to each line.
3294      * By default this method wraps lines after 64 characters.
3295      * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
3296      * @see ModelElementFacade#getDocumentation(String indent)
3297      */
3298     public String getDocumentation(String indent)
3299     {
3300         return this.getSuperManageableEntity().getDocumentation(indent);
3301     }
3302 
3303     /**
3304      * This method returns the documentation for this model element, with the lines wrapped after
3305      * the specified number of characters, values of less than 1 will indicate no line wrapping is
3306      * required. By default paragraphs are returned as HTML.
3307      * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
3308      * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
3309      */
3310     public String getDocumentation(String indent, int lineLength)
3311     {
3312         return this.getSuperManageableEntity().getDocumentation(indent, lineLength);
3313     }
3314 
3315     /**
3316      * This method returns the documentation for this model element, with the lines wrapped after
3317      * the specified number of characters, values of less than 1 will indicate no line wrapping is
3318      * required. HTML style determines if HTML Escaping is applied.
3319      * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
3320      */
3321     public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
3322     {
3323         return this.getSuperManageableEntity().getDocumentation(indent, lineLength, htmlStyle);
3324     }
3325 
3326     /**
3327      * The fully qualified name of this model element.
3328      * @see ModelElementFacade#getFullyQualifiedName()
3329      */
3330     public String getFullyQualifiedName()
3331     {
3332         return this.getSuperManageableEntity().getFullyQualifiedName();
3333     }
3334 
3335     /**
3336      * Returns the fully qualified name of the model element. The fully qualified name includes
3337      * complete package qualified name of the underlying model element.  If modelName is true, then
3338      * the original name of the model element (the name contained within the model) will be the name
3339      * returned, otherwise a name from a language mapping will be returned.
3340      * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
3341      */
3342     public String getFullyQualifiedName(boolean modelName)
3343     {
3344         return this.getSuperManageableEntity().getFullyQualifiedName(modelName);
3345     }
3346 
3347     /**
3348      * Returns the fully qualified name as a path, the returned value always starts with out a slash
3349      * '/'.
3350      * @see ModelElementFacade#getFullyQualifiedNamePath()
3351      */
3352     public String getFullyQualifiedNamePath()
3353     {
3354         return this.getSuperManageableEntity().getFullyQualifiedNamePath();
3355     }
3356 
3357     /**
3358      * Gets the unique identifier of the underlying model element.
3359      * @see ModelElementFacade#getId()
3360      */
3361     public String getId()
3362     {
3363         return this.getSuperManageableEntity().getId();
3364     }
3365 
3366     /**
3367      * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
3368      * are not represented by other properties, i.e. native, transient, volatile, synchronized,
3369      * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
3370      * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
3371      * JDK5 compiler level.
3372      * @see ModelElementFacade#getKeywords()
3373      */
3374     public Collection<String> getKeywords()
3375     {
3376         return this.getSuperManageableEntity().getKeywords();
3377     }
3378 
3379     /**
3380      * UML2: Retrieves a localized label for this named element.
3381      * @see ModelElementFacade#getLabel()
3382      */
3383     public String getLabel()
3384     {
3385         return this.getSuperManageableEntity().getLabel();
3386     }
3387 
3388     /**
3389      * The language mappings that have been set for this model element.
3390      * @see ModelElementFacade#getLanguageMappings()
3391      */
3392     public TypeMappings getLanguageMappings()
3393     {
3394         return this.getSuperManageableEntity().getLanguageMappings();
3395     }
3396 
3397     /**
3398      * Return the model containing this model element (multiple models may be loaded and processed
3399      * at the same time).
3400      * @see ModelElementFacade#getModel()
3401      */
3402     public ModelFacade getModel()
3403     {
3404         return this.getSuperManageableEntity().getModel();
3405     }
3406 
3407     /**
3408      * The name of the model element.
3409      * @see ModelElementFacade#getName()
3410      */
3411     public String getName()
3412     {
3413         return this.getSuperManageableEntity().getName();
3414     }
3415 
3416     /**
3417      * Gets the package to which this model element belongs.
3418      * @see ModelElementFacade#getPackage()
3419      */
3420     public ModelElementFacade getPackage()
3421     {
3422         return this.getSuperManageableEntity().getPackage();
3423     }
3424 
3425     /**
3426      * The name of this model element's package.
3427      * @see ModelElementFacade#getPackageName()
3428      */
3429     public String getPackageName()
3430     {
3431         return this.getSuperManageableEntity().getPackageName();
3432     }
3433 
3434     /**
3435      * Gets the package name (optionally providing the ability to retrieve the model name and not
3436      * the mapped name).
3437      * @see ModelElementFacade#getPackageName(boolean modelName)
3438      */
3439     public String getPackageName(boolean modelName)
3440     {
3441         return this.getSuperManageableEntity().getPackageName(modelName);
3442     }
3443 
3444     /**
3445      * Returns the package as a path, the returned value always starts with out a slash '/'.
3446      * @see ModelElementFacade#getPackagePath()
3447      */
3448     public String getPackagePath()
3449     {
3450         return this.getSuperManageableEntity().getPackagePath();
3451     }
3452 
3453     /**
3454      * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
3455      * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
3456      * the names of the containing namespaces starting at the root of the hierarchy and ending with
3457      * the name of the NamedElement itself.
3458      * @see ModelElementFacade#getQualifiedName()
3459      */
3460     public String getQualifiedName()
3461     {
3462         return this.getSuperManageableEntity().getQualifiedName();
3463     }
3464 
3465     /**
3466      * Gets the root package for the model element.
3467      * @see ModelElementFacade#getRootPackage()
3468      */
3469     public PackageFacade getRootPackage()
3470     {
3471         return this.getSuperManageableEntity().getRootPackage();
3472     }
3473 
3474     /**
3475      * Gets the dependencies for which this model element is the source.
3476      * @see ModelElementFacade#getSourceDependencies()
3477      */
3478     public Collection<DependencyFacade> getSourceDependencies()
3479     {
3480         return this.getSuperManageableEntity().getSourceDependencies();
3481     }
3482 
3483     /**
3484      * If this model element is the context of an activity graph, this represents that activity
3485      * graph.
3486      * @see ModelElementFacade#getStateMachineContext()
3487      */
3488     public StateMachineFacade getStateMachineContext()
3489     {
3490         return this.getSuperManageableEntity().getStateMachineContext();
3491     }
3492 
3493     /**
3494      * The collection of ALL stereotype names for this model element.
3495      * @see ModelElementFacade#getStereotypeNames()
3496      */
3497     public Collection<String> getStereotypeNames()
3498     {
3499         return this.getSuperManageableEntity().getStereotypeNames();
3500     }
3501 
3502     /**
3503      * Gets all stereotypes for this model element.
3504      * @see ModelElementFacade#getStereotypes()
3505      */
3506     public Collection<StereotypeFacade> getStereotypes()
3507     {
3508         return this.getSuperManageableEntity().getStereotypes();
3509     }
3510 
3511     /**
3512      * Return the TaggedValues associated with this model element, under all stereotypes.
3513      * @see ModelElementFacade#getTaggedValues()
3514      */
3515     public Collection<TaggedValueFacade> getTaggedValues()
3516     {
3517         return this.getSuperManageableEntity().getTaggedValues();
3518     }
3519 
3520     /**
3521      * Gets the dependencies for which this model element is the target.
3522      * @see ModelElementFacade#getTargetDependencies()
3523      */
3524     public Collection<DependencyFacade> getTargetDependencies()
3525     {
3526         return this.getSuperManageableEntity().getTargetDependencies();
3527     }
3528 
3529     /**
3530      * Get the template parameter for this model element having the parameterName
3531      * @see ModelElementFacade#getTemplateParameter(String parameterName)
3532      */
3533     public Object getTemplateParameter(String parameterName)
3534     {
3535         return this.getSuperManageableEntity().getTemplateParameter(parameterName);
3536     }
3537 
3538     /**
3539      * Get the template parameters for this model element
3540      * @see ModelElementFacade#getTemplateParameters()
3541      */
3542     public Collection<TemplateParameterFacade> getTemplateParameters()
3543     {
3544         return this.getSuperManageableEntity().getTemplateParameters();
3545     }
3546 
3547     /**
3548      * The visibility (i.e. public, private, protected or package) of the model element, will
3549      * attempt a lookup for these values in the language mappings (if any).
3550      * @see ModelElementFacade#getVisibility()
3551      */
3552     public String getVisibility()
3553     {
3554         return this.getSuperManageableEntity().getVisibility();
3555     }
3556 
3557     /**
3558      * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
3559      * is taken into account when searching for the stereotype), false otherwise.
3560      * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
3561      */
3562     public boolean hasExactStereotype(String stereotypeName)
3563     {
3564         return this.getSuperManageableEntity().hasExactStereotype(stereotypeName);
3565     }
3566 
3567     /**
3568      * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
3569      * pipe, semicolon, or << >>
3570      * @see ModelElementFacade#hasKeyword(String keywordName)
3571      */
3572     public boolean hasKeyword(String keywordName)
3573     {
3574         return this.getSuperManageableEntity().hasKeyword(keywordName);
3575     }
3576 
3577     /**
3578      * Returns true if the model element has the specified stereotype.  If the stereotype itself
3579      * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
3580      * one of the stereotype's ancestors has a matching name this method will return true, false
3581      * otherwise.
3582      * For example, if we have a certain stereotype called <<exception>> and a model element has a
3583      * stereotype called <<applicationException>> which extends <<exception>>, when calling this
3584      * method with 'stereotypeName' defined as 'exception' the method would return true since
3585      * <<applicationException>> inherits from <<exception>>.  If you want to check if the model
3586      * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
3587      * @see ModelElementFacade#hasStereotype(String stereotypeName)
3588      */
3589     public boolean hasStereotype(String stereotypeName)
3590     {
3591         return this.getSuperManageableEntity().hasStereotype(stereotypeName);
3592     }
3593 
3594     /**
3595      * True if there are target dependencies from this element that are instances of BindingFacade.
3596      * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
3597      * @see ModelElementFacade#isBindingDependenciesPresent()
3598      */
3599     public boolean isBindingDependenciesPresent()
3600     {
3601         return this.getSuperManageableEntity().isBindingDependenciesPresent();
3602     }
3603 
3604     /**
3605      * Indicates if any constraints are present on this model element.
3606      * @see ModelElementFacade#isConstraintsPresent()
3607      */
3608     public boolean isConstraintsPresent()
3609     {
3610         return this.getSuperManageableEntity().isConstraintsPresent();
3611     }
3612 
3613     /**
3614      * Indicates if any documentation is present on this model element.
3615      * @see ModelElementFacade#isDocumentationPresent()
3616      */
3617     public boolean isDocumentationPresent()
3618     {
3619         return this.getSuperManageableEntity().isDocumentationPresent();
3620     }
3621 
3622     /**
3623      * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
3624      * @see ModelElementFacade#isReservedWord()
3625      */
3626     public boolean isReservedWord()
3627     {
3628         return this.getSuperManageableEntity().isReservedWord();
3629     }
3630 
3631     /**
3632      * True is there are template parameters on this model element. For UML2, applies to Class,
3633      * Operation, Property, and Parameter.
3634      * @see ModelElementFacade#isTemplateParametersPresent()
3635      */
3636     public boolean isTemplateParametersPresent()
3637     {
3638         return this.getSuperManageableEntity().isTemplateParametersPresent();
3639     }
3640 
3641     /**
3642      * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
3643      * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
3644      * Enumerations and Interfaces, optionally applies on other model elements.
3645      * @see ModelElementFacade#isValidIdentifierName()
3646      */
3647     public boolean isValidIdentifierName()
3648     {
3649         return this.getSuperManageableEntity().isValidIdentifierName();
3650     }
3651 
3652     /**
3653      * Searches for the constraint with the specified 'name' on this model element, and if found
3654      * translates it using the specified 'translation' from a translation library discovered by the
3655      * framework.
3656      * @see ModelElementFacade#translateConstraint(String name, String translation)
3657      */
3658     public String translateConstraint(String name, String translation)
3659     {
3660         return this.getSuperManageableEntity().translateConstraint(name, translation);
3661     }
3662 
3663     /**
3664      * Translates all constraints belonging to this model element with the given 'translation'.
3665      * @see ModelElementFacade#translateConstraints(String translation)
3666      */
3667     public String[] translateConstraints(String translation)
3668     {
3669         return this.getSuperManageableEntity().translateConstraints(translation);
3670     }
3671 
3672     /**
3673      * Translates the constraints of the specified 'kind' belonging to this model element.
3674      * @see ModelElementFacade#translateConstraints(String kind, String translation)
3675      */
3676     public String[] translateConstraints(String kind, String translation)
3677     {
3678         return this.getSuperManageableEntity().translateConstraints(kind, translation);
3679     }
3680 
3681     /**
3682      * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
3683      */
3684     @Override
3685     public void initialize()
3686     {
3687         this.getSuperManageableEntity().initialize();
3688     }
3689 
3690     /**
3691      * @return Object getSuperManageableEntity().getValidationOwner()
3692      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
3693      */
3694     @Override
3695     public Object getValidationOwner()
3696     {
3697         Object owner = this.getSuperManageableEntity().getValidationOwner();
3698         return owner;
3699     }
3700 
3701     /**
3702      * @return String getSuperManageableEntity().getValidationName()
3703      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
3704      */
3705     @Override
3706     public String getValidationName()
3707     {
3708         String name = this.getSuperManageableEntity().getValidationName();
3709         return name;
3710     }
3711 
3712     /**
3713      * @param validationMessages Collection<ModelValidationMessage>
3714      * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
3715      */
3716     @Override
3717     public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
3718     {
3719         this.getSuperManageableEntity().validateInvariants(validationMessages);
3720     }
3721 
3722     /**
3723      * The property that stores the name of the metafacade.
3724      */
3725     private static final String NAME_PROPERTY = "name";
3726     private static final String FQNAME_PROPERTY = "fullyQualifiedName";
3727 
3728     /**
3729      * @see Object#toString()
3730      */
3731     @Override
3732     public String toString()
3733     {
3734         final StringBuilder toString = new StringBuilder(this.getClass().getName());
3735         toString.append("[");
3736         try
3737         {
3738             toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
3739         }
3740         catch (final Throwable tryAgain)
3741         {
3742             try
3743             {
3744                 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
3745             }
3746             catch (final Throwable ignore)
3747             {
3748                 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
3749             }
3750         }
3751         toString.append("]");
3752         return toString.toString();
3753     }
3754 }