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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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.jsf.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     // ---------------- business methods ----------------------
1704 
1705     /**
1706      * Method to be implemented in descendants
1707      * TODO: Model Documentation for
1708      * org.andromda.cartridges.jsf.metafacades.JSFManageableEntity.isSearchable
1709      * @param element
1710      * @return boolean
1711      */
1712     protected abstract boolean handleIsSearchable(Object element);
1713 
1714     /**
1715      * TODO: Model Documentation for
1716      * org.andromda.cartridges.jsf.metafacades.JSFManageableEntity.isSearchable
1717      * @param element Object
1718      * TODO: Model Documentation for
1719      * org.andromda.cartridges.jsf.metafacades.JSFManageableEntity.isSearchable(element)
1720      * @return handleIsSearchable(element)
1721      */
1722     public boolean isSearchable(Object element)
1723     {
1724         // isSearchable has no pre constraints
1725         boolean returnValue = handleIsSearchable(element);
1726         // isSearchable has no post constraints
1727         return returnValue;
1728     }
1729 
1730     /**
1731      * Method to be implemented in descendants
1732      * TODO: Model Documentation for
1733      * org.andromda.cartridges.jsf.metafacades.JSFManageableEntity.getActionRoles
1734      * @return String
1735      */
1736     protected abstract String handleGetActionRoles();
1737 
1738     /**
1739      * TODO: Model Documentation for
1740      * org.andromda.cartridges.jsf.metafacades.JSFManageableEntity.getActionRoles
1741      * @return handleGetActionRoles()
1742      */
1743     public String getActionRoles()
1744     {
1745         // getActionRoles has no pre constraints
1746         String returnValue = handleGetActionRoles();
1747         // getActionRoles has no post constraints
1748         return returnValue;
1749     }
1750 
1751     // ------------- associations ------------------
1752 
1753     /**
1754      * TODO: Model Documentation for org.andromda.cartridges.jsf.metafacades.JSFManageableEntity
1755      * @return (Collection<Role>)handleGetRoles()
1756      */
1757     public final Collection<Role> getRoles()
1758     {
1759         Collection<Role> getRoles1r = null;
1760         // jSFManageableEntity has no pre constraints
1761         Collection result = handleGetRoles();
1762         List shieldedResult = this.shieldedElements(result);
1763         try
1764         {
1765             getRoles1r = (Collection<Role>)shieldedResult;
1766         }
1767         catch (ClassCastException ex)
1768         {
1769             // Bad things happen if the metafacade type mapping in metafacades.xml is wrong - Warn
1770             JSFManageableEntityLogic.logger.warn("incorrect metafacade cast for JSFManageableEntityLogic.getRoles Collection<Role> " + result + ": " + shieldedResult);
1771         }
1772         // jSFManageableEntity has no post constraints
1773         return getRoles1r;
1774     }
1775 
1776     /**
1777      * UML Specific type is returned in Collection, transformed by shieldedElements to AndroMDA Metafacade type
1778      * @return  Collection
1779      */
1780     protected abstract Collection handleGetRoles();
1781 
1782     /**
1783      * @return true
1784      * @see ManageableEntity
1785      */
1786     public boolean isManageableEntityMetaType()
1787     {
1788         return true;
1789     }
1790 
1791     /**
1792      * @return true
1793      * @see org.andromda.metafacades.uml.Entity
1794      */
1795     public boolean isEntityMetaType()
1796     {
1797         return true;
1798     }
1799 
1800     /**
1801      * @return true
1802      * @see ClassifierFacade
1803      */
1804     public boolean isClassifierFacadeMetaType()
1805     {
1806         return true;
1807     }
1808 
1809     /**
1810      * @return true
1811      * @see GeneralizableElementFacade
1812      */
1813     public boolean isGeneralizableElementFacadeMetaType()
1814     {
1815         return true;
1816     }
1817 
1818     /**
1819      * @return true
1820      * @see ModelElementFacade
1821      */
1822     public boolean isModelElementFacadeMetaType()
1823     {
1824         return true;
1825     }
1826 
1827     // ----------- delegates to ManageableEntity ------------
1828     /**
1829      * Return the attribute which name matches the parameter
1830      * @see ClassifierFacade#findAttribute(String name)
1831      */
1832     public AttributeFacade findAttribute(String name)
1833     {
1834         return this.getSuperManageableEntity().findAttribute(name);
1835     }
1836 
1837     /**
1838      * Those abstraction dependencies for which this classifier is the client.
1839      * @see ClassifierFacade#getAbstractions()
1840      */
1841     public Collection<ClassifierFacade> getAbstractions()
1842     {
1843         return this.getSuperManageableEntity().getAbstractions();
1844     }
1845 
1846     /**
1847      * Lists all classes associated to this one and any ancestor classes (through generalization).
1848      * There will be no duplicates. The order of the elements is predictable.
1849      * @see ClassifierFacade#getAllAssociatedClasses()
1850      */
1851     public Collection<ClassifierFacade> getAllAssociatedClasses()
1852     {
1853         return this.getSuperManageableEntity().getAllAssociatedClasses();
1854     }
1855 
1856     /**
1857      * A collection containing all 'properties' of the classifier and its ancestors.  Properties are
1858      * any attributes and navigable connecting association ends.
1859      * @see ClassifierFacade#getAllProperties()
1860      */
1861     public Collection<ModelElementFacade> getAllProperties()
1862     {
1863         return this.getSuperManageableEntity().getAllProperties();
1864     }
1865 
1866     /**
1867      * A collection containing all required and/or read-only 'properties' of the classifier and its
1868      * ancestors. Properties are any attributes and navigable connecting association ends.
1869      * @see ClassifierFacade#getAllRequiredConstructorParameters()
1870      */
1871     public Collection<ModelElementFacade> getAllRequiredConstructorParameters()
1872     {
1873         return this.getSuperManageableEntity().getAllRequiredConstructorParameters();
1874     }
1875 
1876     /**
1877      * Gets the array type for this classifier.  If this classifier already represents an array, it
1878      * just returns itself.
1879      * @see ClassifierFacade#getArray()
1880      */
1881     public ClassifierFacade getArray()
1882     {
1883         return this.getSuperManageableEntity().getArray();
1884     }
1885 
1886     /**
1887      * The name of the classifier as an array.
1888      * @see ClassifierFacade#getArrayName()
1889      */
1890     public String getArrayName()
1891     {
1892         return this.getSuperManageableEntity().getArrayName();
1893     }
1894 
1895     /**
1896      * Lists the classes associated to this one, there is no repitition of classes. The order of the
1897      * elements is predictable.
1898      * @see ClassifierFacade#getAssociatedClasses()
1899      */
1900     public Collection<ClassifierFacade> getAssociatedClasses()
1901     {
1902         return this.getSuperManageableEntity().getAssociatedClasses();
1903     }
1904 
1905     /**
1906      * Gets the association ends belonging to a classifier.
1907      * @see ClassifierFacade#getAssociationEnds()
1908      */
1909     public List<AssociationEndFacade> getAssociationEnds()
1910     {
1911         return this.getSuperManageableEntity().getAssociationEnds();
1912     }
1913 
1914     /**
1915      * Gets the attributes that belong to the classifier.
1916      * @see ClassifierFacade#getAttributes()
1917      */
1918     public List<AttributeFacade> getAttributes()
1919     {
1920         return this.getSuperManageableEntity().getAttributes();
1921     }
1922 
1923     /**
1924      * Gets all attributes for the classifier and if 'follow' is true goes up the inheritance
1925      * hierarchy and gets the attributes from the super classes as well.
1926      * @see ClassifierFacade#getAttributes(boolean follow)
1927      */
1928     public List<AttributeFacade> getAttributes(boolean follow)
1929     {
1930         return this.getSuperManageableEntity().getAttributes(follow);
1931     }
1932 
1933     /**
1934      * The fully qualified name of the classifier as an array.
1935      * @see ClassifierFacade#getFullyQualifiedArrayName()
1936      */
1937     public String getFullyQualifiedArrayName()
1938     {
1939         return this.getSuperManageableEntity().getFullyQualifiedArrayName();
1940     }
1941 
1942     /**
1943      * Returns all those operations that could be implemented at this classifier's level. This means
1944      * the operations owned by this classifier as well as any realized interface's operations
1945      * (recursively) in case this classifier itself is not already an interface, or generalized when
1946      * this classifier is an interface.
1947      * @see ClassifierFacade#getImplementationOperations()
1948      */
1949     public Collection<OperationFacade> getImplementationOperations()
1950     {
1951         return this.getSuperManageableEntity().getImplementationOperations();
1952     }
1953 
1954     /**
1955      * A comma separated list of the fully qualified names of all implemented interfaces.
1956      * @see ClassifierFacade#getImplementedInterfaceList()
1957      */
1958     public String getImplementedInterfaceList()
1959     {
1960         return this.getSuperManageableEntity().getImplementedInterfaceList();
1961     }
1962 
1963     /**
1964      * Those attributes that are scoped to an instance of this class.
1965      * @see ClassifierFacade#getInstanceAttributes()
1966      */
1967     public Collection<AttributeFacade> getInstanceAttributes()
1968     {
1969         return this.getSuperManageableEntity().getInstanceAttributes();
1970     }
1971 
1972     /**
1973      * Those operations that are scoped to an instance of this class.
1974      * @see ClassifierFacade#getInstanceOperations()
1975      */
1976     public List<OperationFacade> getInstanceOperations()
1977     {
1978         return this.getSuperManageableEntity().getInstanceOperations();
1979     }
1980 
1981     /**
1982      * Those interfaces that are abstractions of this classifier, this basically means this
1983      * classifier realizes them.
1984      * @see ClassifierFacade#getInterfaceAbstractions()
1985      */
1986     public Collection<ClassifierFacade> getInterfaceAbstractions()
1987     {
1988         return this.getSuperManageableEntity().getInterfaceAbstractions();
1989     }
1990 
1991     /**
1992      * A String representing a new Constructor declaration for this classifier type to be used in a
1993      * Java environment.
1994      * @see ClassifierFacade#getJavaNewString()
1995      */
1996     public String getJavaNewString()
1997     {
1998         return this.getSuperManageableEntity().getJavaNewString();
1999     }
2000 
2001     /**
2002      * A String representing the null-value for this classifier type to be used in a Java
2003      * environment.
2004      * @see ClassifierFacade#getJavaNullString()
2005      */
2006     public String getJavaNullString()
2007     {
2008         return this.getSuperManageableEntity().getJavaNullString();
2009     }
2010 
2011     /**
2012      * The other ends of this classifier's association ends which are navigable.
2013      * @see ClassifierFacade#getNavigableConnectingEnds()
2014      */
2015     public Collection<AssociationEndFacade> getNavigableConnectingEnds()
2016     {
2017         return this.getSuperManageableEntity().getNavigableConnectingEnds();
2018     }
2019 
2020     /**
2021      * Get the other ends of this classifier's association ends which are navigable and if 'follow'
2022      * is true goes up the inheritance hierarchy and gets the super association ends as well.
2023      * @see ClassifierFacade#getNavigableConnectingEnds(boolean follow)
2024      */
2025     public List<AssociationEndFacade> getNavigableConnectingEnds(boolean follow)
2026     {
2027         return this.getSuperManageableEntity().getNavigableConnectingEnds(follow);
2028     }
2029 
2030     /**
2031      * Assuming that the classifier is an array, this will return the non array type of the
2032      * classifier from
2033      * the model.  If the classifier is NOT an array, it will just return itself.
2034      * @see ClassifierFacade#getNonArray()
2035      */
2036     public ClassifierFacade getNonArray()
2037     {
2038         return this.getSuperManageableEntity().getNonArray();
2039     }
2040 
2041     /**
2042      * The attributes from this classifier in the form of an operation call (this example would be
2043      * in Java): '(String attributeOne, String attributeTwo).  If there were no attributes on the
2044      * classifier, the result would be an empty '()'.
2045      * @see ClassifierFacade#getOperationCallFromAttributes()
2046      */
2047     public String getOperationCallFromAttributes()
2048     {
2049         return this.getSuperManageableEntity().getOperationCallFromAttributes();
2050     }
2051 
2052     /**
2053      * The operations owned by this classifier.
2054      * @see ClassifierFacade#getOperations()
2055      */
2056     public List<OperationFacade> getOperations()
2057     {
2058         return this.getSuperManageableEntity().getOperations();
2059     }
2060 
2061     /**
2062      * A collection containing all 'properties' of the classifier.  Properties are any attributes
2063      * and navigable connecting association ends.
2064      * @see ClassifierFacade#getProperties()
2065      */
2066     public List<ModelElementFacade> getProperties()
2067     {
2068         return this.getSuperManageableEntity().getProperties();
2069     }
2070 
2071     /**
2072      * Gets all properties (attributes and navigable association ends) for the classifier and if
2073      * 'follow' is true goes up the inheritance hierarchy and gets the properties from the super
2074      * classes as well.
2075      * @see ClassifierFacade#getProperties(boolean follow)
2076      */
2077     public List getProperties(boolean follow)
2078     {
2079         return this.getSuperManageableEntity().getProperties(follow);
2080     }
2081 
2082     /**
2083      * A collection containing all required and/or read-only 'properties' of the classifier. 
2084      * Properties are any attributes and navigable connecting association ends.
2085      * @see ClassifierFacade#getRequiredConstructorParameters()
2086      */
2087     public Collection<ModelElementFacade> getRequiredConstructorParameters()
2088     {
2089         return this.getSuperManageableEntity().getRequiredConstructorParameters();
2090     }
2091 
2092     /**
2093      * Returns the serial version UID of the underlying model element.
2094      * @see ClassifierFacade#getSerialVersionUID()
2095      */
2096     public long getSerialVersionUID()
2097     {
2098         return this.getSuperManageableEntity().getSerialVersionUID();
2099     }
2100 
2101     /**
2102      * Those attributes that are scoped to the definition of this class.
2103      * @see ClassifierFacade#getStaticAttributes()
2104      */
2105     public Collection<AttributeFacade> getStaticAttributes()
2106     {
2107         return this.getSuperManageableEntity().getStaticAttributes();
2108     }
2109 
2110     /**
2111      * Those operations that are scoped to the definition of this class.
2112      * @see ClassifierFacade#getStaticOperations()
2113      */
2114     public List<OperationFacade> getStaticOperations()
2115     {
2116         return this.getSuperManageableEntity().getStaticOperations();
2117     }
2118 
2119     /**
2120      * This class' superclass, returns the generalization if it is a ClassifierFacade, null
2121      * otherwise.
2122      * @see ClassifierFacade#getSuperClass()
2123      */
2124     public ClassifierFacade getSuperClass()
2125     {
2126         return this.getSuperManageableEntity().getSuperClass();
2127     }
2128 
2129     /**
2130      * The wrapper name for this classifier if a mapped type has a defined wrapper class (ie. 'long'
2131      * maps to 'Long').  If the classifier doesn't have a wrapper defined for it, this method will
2132      * return a null.  Note that wrapper mappings must be defined for the namespace by defining the
2133      * 'wrapperMappingsUri', this property must point to the location of the mappings file which
2134      * maps the primitives to wrapper types.
2135      * @see ClassifierFacade#getWrapperName()
2136      */
2137     public String getWrapperName()
2138     {
2139         return this.getSuperManageableEntity().getWrapperName();
2140     }
2141 
2142     /**
2143      * Indicates if this classifier is 'abstract'.
2144      * @see ClassifierFacade#isAbstract()
2145      */
2146     public boolean isAbstract()
2147     {
2148         return this.getSuperManageableEntity().isAbstract();
2149     }
2150 
2151     /**
2152      * True if this classifier represents an array type. False otherwise.
2153      * @see ClassifierFacade#isArrayType()
2154      */
2155     public boolean isArrayType()
2156     {
2157         return this.getSuperManageableEntity().isArrayType();
2158     }
2159 
2160     /**
2161      * True if the ClassifierFacade is an AssociationClass.
2162      * @see ClassifierFacade#isAssociationClass()
2163      */
2164     public boolean isAssociationClass()
2165     {
2166         return this.getSuperManageableEntity().isAssociationClass();
2167     }
2168 
2169     /**
2170      * Returns true if this type represents a Blob type.
2171      * @see ClassifierFacade#isBlobType()
2172      */
2173     public boolean isBlobType()
2174     {
2175         return this.getSuperManageableEntity().isBlobType();
2176     }
2177 
2178     /**
2179      * Indicates if this type represents a boolean type or not.
2180      * @see ClassifierFacade#isBooleanType()
2181      */
2182     public boolean isBooleanType()
2183     {
2184         return this.getSuperManageableEntity().isBooleanType();
2185     }
2186 
2187     /**
2188      * Indicates if this type represents a char, Character, or java.lang.Character type or not.
2189      * @see ClassifierFacade#isCharacterType()
2190      */
2191     public boolean isCharacterType()
2192     {
2193         return this.getSuperManageableEntity().isCharacterType();
2194     }
2195 
2196     /**
2197      * Returns true if this type represents a Clob type.
2198      * @see ClassifierFacade#isClobType()
2199      */
2200     public boolean isClobType()
2201     {
2202         return this.getSuperManageableEntity().isClobType();
2203     }
2204 
2205     /**
2206      * True if this classifier represents a collection type. False otherwise.
2207      * @see ClassifierFacade#isCollectionType()
2208      */
2209     public boolean isCollectionType()
2210     {
2211         return this.getSuperManageableEntity().isCollectionType();
2212     }
2213 
2214     /**
2215      * True/false depending on whether or not this classifier represents a datatype. A data type is
2216      * a type whose instances are identified only by their value. A data type may contain attributes
2217      * to support the modeling of structured data types.
2218      * @see ClassifierFacade#isDataType()
2219      */
2220     public boolean isDataType()
2221     {
2222         return this.getSuperManageableEntity().isDataType();
2223     }
2224 
2225     /**
2226      * True when this classifier is a date type.
2227      * @see ClassifierFacade#isDateType()
2228      */
2229     public boolean isDateType()
2230     {
2231         return this.getSuperManageableEntity().isDateType();
2232     }
2233 
2234     /**
2235      * Indicates if this type represents a Double type or not.
2236      * @see ClassifierFacade#isDoubleType()
2237      */
2238     public boolean isDoubleType()
2239     {
2240         return this.getSuperManageableEntity().isDoubleType();
2241     }
2242 
2243     /**
2244      * Indicates whether or not this classifier represents an "EmbeddedValue'.
2245      * @see ClassifierFacade#isEmbeddedValue()
2246      */
2247     public boolean isEmbeddedValue()
2248     {
2249         return this.getSuperManageableEntity().isEmbeddedValue();
2250     }
2251 
2252     /**
2253      * True if this classifier is in fact marked as an enumeration.
2254      * @see ClassifierFacade#isEnumeration()
2255      */
2256     public boolean isEnumeration()
2257     {
2258         return this.getSuperManageableEntity().isEnumeration();
2259     }
2260 
2261     /**
2262      * Returns true if this type represents a 'file' type.
2263      * @see ClassifierFacade#isFileType()
2264      */
2265     public boolean isFileType()
2266     {
2267         return this.getSuperManageableEntity().isFileType();
2268     }
2269 
2270     /**
2271      * Indicates if this type represents a Float type or not.
2272      * @see ClassifierFacade#isFloatType()
2273      */
2274     public boolean isFloatType()
2275     {
2276         return this.getSuperManageableEntity().isFloatType();
2277     }
2278 
2279     /**
2280      * Indicates if this type represents an int or Integer or java.lang.Integer type or not.
2281      * @see ClassifierFacade#isIntegerType()
2282      */
2283     public boolean isIntegerType()
2284     {
2285         return this.getSuperManageableEntity().isIntegerType();
2286     }
2287 
2288     /**
2289      * True/false depending on whether or not this Classifier represents an interface.
2290      * @see ClassifierFacade#isInterface()
2291      */
2292     public boolean isInterface()
2293     {
2294         return this.getSuperManageableEntity().isInterface();
2295     }
2296 
2297     /**
2298      * True if this classifier cannot be extended and represent a leaf in the inheritance tree.
2299      * @see ClassifierFacade#isLeaf()
2300      */
2301     public boolean isLeaf()
2302     {
2303         return this.getSuperManageableEntity().isLeaf();
2304     }
2305 
2306     /**
2307      * True if this classifier represents a list type. False otherwise.
2308      * @see ClassifierFacade#isListType()
2309      */
2310     public boolean isListType()
2311     {
2312         return this.getSuperManageableEntity().isListType();
2313     }
2314 
2315     /**
2316      * Indicates if this type represents a Long type or not.
2317      * @see ClassifierFacade#isLongType()
2318      */
2319     public boolean isLongType()
2320     {
2321         return this.getSuperManageableEntity().isLongType();
2322     }
2323 
2324     /**
2325      * Indicates whether or not this classifier represents a Map type.
2326      * @see ClassifierFacade#isMapType()
2327      */
2328     public boolean isMapType()
2329     {
2330         return this.getSuperManageableEntity().isMapType();
2331     }
2332 
2333     /**
2334      * Indicates whether or not this classifier represents a primitive type.
2335      * @see ClassifierFacade#isPrimitive()
2336      */
2337     public boolean isPrimitive()
2338     {
2339         return this.getSuperManageableEntity().isPrimitive();
2340     }
2341 
2342     /**
2343      * True if this classifier represents a set type. False otherwise.
2344      * @see ClassifierFacade#isSetType()
2345      */
2346     public boolean isSetType()
2347     {
2348         return this.getSuperManageableEntity().isSetType();
2349     }
2350 
2351     /**
2352      * Indicates whether or not this classifier represents a string type.
2353      * @see ClassifierFacade#isStringType()
2354      */
2355     public boolean isStringType()
2356     {
2357         return this.getSuperManageableEntity().isStringType();
2358     }
2359 
2360     /**
2361      * Indicates whether or not this classifier represents a time type.
2362      * @see ClassifierFacade#isTimeType()
2363      */
2364     public boolean isTimeType()
2365     {
2366         return this.getSuperManageableEntity().isTimeType();
2367     }
2368 
2369     /**
2370      * Returns true if this type is a wrapped primitive type.
2371      * @see ClassifierFacade#isWrappedPrimitive()
2372      */
2373     public boolean isWrappedPrimitive()
2374     {
2375         return this.getSuperManageableEntity().isWrappedPrimitive();
2376     }
2377 
2378     /**
2379      * Returns a collection of all entities this entity and its ancestors have a relation to.
2380      * @see org.andromda.metafacades.uml.Entity#getAllEntityReferences()
2381      */
2382     public Collection<DependencyFacade> getAllEntityReferences()
2383     {
2384         return this.getSuperManageableEntity().getAllEntityReferences();
2385     }
2386 
2387     /**
2388      * Gets a comma separated list of attribute names.  If 'follow' is true, will travel up the
2389      * inheritance hiearchy to include attributes in parent entities as well.  If 'withIdentifiers'
2390      * is true, will include identifiers.
2391      * @see org.andromda.metafacades.uml.Entity#getAttributeNameList(boolean follow, boolean withIdentifiers)
2392      */
2393     public String getAttributeNameList(boolean follow, boolean withIdentifiers)
2394     {
2395         return this.getSuperManageableEntity().getAttributeNameList(follow, withIdentifiers);
2396     }
2397 
2398     /**
2399      * Gets a comma separated list of attribute names.  If 'follow' is true, will travel up the
2400      * inheritance hiearchy to include attributes in parent entities as well.  If 'withIdentifiers'
2401      * is true, will include identifiers  and  if 'withDerived' is set to true, will include derived
2402      * attributes.
2403      * @see org.andromda.metafacades.uml.Entity#getAttributeNameList(boolean follow, boolean withIdentifiers, boolean withDerived)
2404      */
2405     public String getAttributeNameList(boolean follow, boolean withIdentifiers, boolean withDerived)
2406     {
2407         return this.getSuperManageableEntity().getAttributeNameList(follow, withIdentifiers, withDerived);
2408     }
2409 
2410     /**
2411      * Gets a comma separated list of attribute types.  If 'follow' is true, will travel up the
2412      * inheritance hierarchy to include attributes in parent entities as well.  If 'withIdentifiers'
2413      * is true, will include identifiers.
2414      * @see org.andromda.metafacades.uml.Entity#getAttributeTypeList(boolean follow, boolean withIdentifiers)
2415      */
2416     public String getAttributeTypeList(boolean follow, boolean withIdentifiers)
2417     {
2418         return this.getSuperManageableEntity().getAttributeTypeList(follow, withIdentifiers);
2419     }
2420 
2421     /**
2422      * Gets all attributes of the entity, and optionally retieves the super entities attributes as
2423      * well as excludes the entity's identifiers if 'withIdentifiers' is set to false.
2424      * @see org.andromda.metafacades.uml.Entity#getAttributes(boolean follow, boolean withIdentifiers)
2425      */
2426     public Collection<AttributeFacade> getAttributes(boolean follow, boolean withIdentifiers)
2427     {
2428         return this.getSuperManageableEntity().getAttributes(follow, withIdentifiers);
2429     }
2430 
2431     /**
2432      * Gets all attributes of the entity, and optionally retieves the super entities attributes as
2433      * well as excludes the entity's identifiers if 'withIdentifiers' is set to false and exclude
2434      * derived attributes if 'withDerived' is set to false.
2435      * @see org.andromda.metafacades.uml.Entity#getAttributes(boolean follow, boolean withIdentifiers, boolean withDerived)
2436      */
2437     public Collection<AttributeFacade> getAttributes(boolean follow, boolean withIdentifiers, boolean withDerived)
2438     {
2439         return this.getSuperManageableEntity().getAttributes(follow, withIdentifiers, withDerived);
2440     }
2441 
2442     /**
2443      * All business operations of the entity, these include any operations that aren't queries.
2444      * @see org.andromda.metafacades.uml.Entity#getBusinessOperations()
2445      */
2446     public Collection<OperationFacade> getBusinessOperations()
2447     {
2448         return this.getSuperManageableEntity().getBusinessOperations();
2449     }
2450 
2451     /**
2452      * Gets any children association ends (i.e. entity association ends that are participants in an
2453      * association with this entity and this entity has composite aggregation defined for those
2454      * associations).
2455      * @see org.andromda.metafacades.uml.Entity#getChildEnds()
2456      */
2457     public Collection<EntityAssociationEnd> getChildEnds()
2458     {
2459         return this.getSuperManageableEntity().getChildEnds();
2460     }
2461 
2462     /**
2463      * The embedded values belonging to this entity.
2464      * @see org.andromda.metafacades.uml.Entity#getEmbeddedValues()
2465      */
2466     public Collection<AttributeFacade> getEmbeddedValues()
2467     {
2468         return this.getSuperManageableEntity().getEmbeddedValues();
2469     }
2470 
2471     /**
2472      * All entities referenced by this entity.
2473      * @see org.andromda.metafacades.uml.Entity#getEntityReferences()
2474      */
2475     public Collection<DependencyFacade> getEntityReferences()
2476     {
2477         return this.getSuperManageableEntity().getEntityReferences();
2478     }
2479 
2480     /**
2481      * The full name of the type of the identifier. If composite identifier add the PK sufix to the
2482      * class name. If not, retorns the fully qualified name of the identifier.
2483      * @see org.andromda.metafacades.uml.Entity#getFullyQualifiedIdentifierTypeName()
2484      */
2485     public String getFullyQualifiedIdentifierTypeName()
2486     {
2487         return this.getSuperManageableEntity().getFullyQualifiedIdentifierTypeName();
2488     }
2489 
2490     /**
2491      * Gets all the associationEnds of this entity marked with the identifiers stereotype.
2492      * @see org.andromda.metafacades.uml.Entity#getIdentifierAssociationEnds()
2493      */
2494     public Collection<AssociationEndFacade> getIdentifierAssociationEnds()
2495     {
2496         return this.getSuperManageableEntity().getIdentifierAssociationEnds();
2497     }
2498 
2499     /**
2500      * The getter name of the identifier.
2501      * @see org.andromda.metafacades.uml.Entity#getIdentifierGetterName()
2502      */
2503     public String getIdentifierGetterName()
2504     {
2505         return this.getSuperManageableEntity().getIdentifierGetterName();
2506     }
2507 
2508     /**
2509      * The name of the identifier. If composite identifier add the Pk suffix. If not composite
2510      * returns the attribute name of the identifier.
2511      * @see org.andromda.metafacades.uml.Entity#getIdentifierName()
2512      */
2513     public String getIdentifierName()
2514     {
2515         return this.getSuperManageableEntity().getIdentifierName();
2516     }
2517 
2518     /**
2519      * The setter name of the identifier.
2520      * @see org.andromda.metafacades.uml.Entity#getIdentifierSetterName()
2521      */
2522     public String getIdentifierSetterName()
2523     {
2524         return this.getSuperManageableEntity().getIdentifierSetterName();
2525     }
2526 
2527     /**
2528      * The name of the type of the identifier. If composite identifier add the PK suffix to the
2529      * class name. If not, returns the name of the identifier.
2530      * @see org.andromda.metafacades.uml.Entity#getIdentifierTypeName()
2531      */
2532     public String getIdentifierTypeName()
2533     {
2534         return this.getSuperManageableEntity().getIdentifierTypeName();
2535     }
2536 
2537     /**
2538      * All the attributes of the entity which make up its identifier (primary key).  Will search any
2539      * super classes as well.  If no identifiers exist, a default identifier will be created if the
2540      * allowDefaultIdentifiers property is set to true.
2541      * @see org.andromda.metafacades.uml.Entity#getIdentifiers()
2542      */
2543     public Collection<ModelElementFacade> getIdentifiers()
2544     {
2545         return this.getSuperManageableEntity().getIdentifiers();
2546     }
2547 
2548     /**
2549      * Gets all identifiers for an entity. If 'follow' is true, and if no identifiers can be found
2550      * on the entity, a search up the inheritance chain will be performed, and the identifiers from
2551      * the first super class having them will be used.   If no identifiers exist, a default
2552      * identifier will be created if the allowDefaultIdentifiers property is set to true.
2553      * Identifiers can be on attributes or associations (composite primary key).
2554      * @see org.andromda.metafacades.uml.Entity#getIdentifiers(boolean follow)
2555      */
2556     public Collection<ModelElementFacade> getIdentifiers(boolean follow)
2557     {
2558         return this.getSuperManageableEntity().getIdentifiers(follow);
2559     }
2560 
2561     /**
2562      * The maximum length a SQL name may be.
2563      * @see org.andromda.metafacades.uml.Entity#getMaxSqlNameLength()
2564      */
2565     public short getMaxSqlNameLength()
2566     {
2567         return this.getSuperManageableEntity().getMaxSqlNameLength();
2568     }
2569 
2570     /**
2571      * Gets the attributes as a list within an operation call, optionally including the type names
2572      * and the identifier attributes.
2573      * @see org.andromda.metafacades.uml.Entity#getOperationCallFromAttributes(boolean withIdentifiers)
2574      */
2575     public String getOperationCallFromAttributes(boolean withIdentifiers)
2576     {
2577         return this.getSuperManageableEntity().getOperationCallFromAttributes(withIdentifiers);
2578     }
2579 
2580     /**
2581      * Gets the attributes as a list within an operation call.  If 'withTypeNames' is true, it will
2582      * include the type names, if 'withIdentifiers' is true it will include the identifiers.  If
2583      * 'follow' is true it will follow the inheritance hierarchy and get the attributes of the super
2584      * class as well.
2585      * @see org.andromda.metafacades.uml.Entity#getOperationCallFromAttributes(boolean withIdentifiers, boolean follow)
2586      */
2587     public String getOperationCallFromAttributes(boolean withIdentifiers, boolean follow)
2588     {
2589         return this.getSuperManageableEntity().getOperationCallFromAttributes(withIdentifiers, follow);
2590     }
2591 
2592     /**
2593      * Returns the parent association end of this entity if its a child entity.  The parent is the
2594      * entity that is the participant the association that has composite aggregation defined.  Will
2595      * return null if the entity has no parent.
2596      * @see org.andromda.metafacades.uml.Entity#getParentEnd()
2597      */
2598     public EntityAssociationEnd getParentEnd()
2599     {
2600         return this.getSuperManageableEntity().getParentEnd();
2601     }
2602 
2603     /**
2604      * Gets all properties of this entity, this includes the attributes and navigable association
2605      * ends of the entity.  The 'follow' flag indcates whether or not the inheritance hierarchy
2606      * should be followed when getting all the properties.  The 'withIdentifiers' flag indicates
2607      * whether or not identifiers should be included in the collection of properties.
2608      * @see org.andromda.metafacades.uml.Entity#getProperties(boolean follow, boolean withIdentifiers)
2609      */
2610     public Collection<ModelElementFacade> getProperties(boolean follow, boolean withIdentifiers)
2611     {
2612         return this.getSuperManageableEntity().getProperties(follow, withIdentifiers);
2613     }
2614 
2615     /**
2616      * Returns all the operations that can perform queries on the entity.
2617      * @see org.andromda.metafacades.uml.Entity#getQueryOperations()
2618      */
2619     public Collection<EntityQueryOperation> getQueryOperations()
2620     {
2621         return this.getSuperManageableEntity().getQueryOperations();
2622     }
2623 
2624     /**
2625      * Gets all query operations for an entity. If 'follow' is true, and if no query operations can
2626      * be found on the entity, a search up the inheritance chain will be performed, and the
2627      * identifiers from the first super class having them will be used.   If no identifiers exist, a
2628      * default identifier will be created if the allowDefaultIdentifiers property is set to true.
2629      * @see org.andromda.metafacades.uml.Entity#getQueryOperations(boolean follow)
2630      */
2631     public Collection<OperationFacade> getQueryOperations(boolean follow)
2632     {
2633         return this.getSuperManageableEntity().getQueryOperations(follow);
2634     }
2635 
2636     /**
2637      * Gets a comma separated list of required attribute names.  If 'follow' is true, will travel up
2638      * the inheritance hierarchy to include attributes in parent entities as well.  If
2639      * 'withIdentifiers' is true, will include identifiers.
2640      * @see org.andromda.metafacades.uml.Entity#getRequiredAttributeNameList(boolean follow, boolean withIdentifiers)
2641      */
2642     public String getRequiredAttributeNameList(boolean follow, boolean withIdentifiers)
2643     {
2644         return this.getSuperManageableEntity().getRequiredAttributeNameList(follow, withIdentifiers);
2645     }
2646 
2647     /**
2648      * Gets a comma separated list of attribute types with are required.  If 'follow' is true, will
2649      * travel up the inheritance hierarchy to include attributes in parent entities as well.  If
2650      * 'withIdentifiers' is true, will include identifiers.
2651      * @see org.andromda.metafacades.uml.Entity#getRequiredAttributeTypeList(boolean follow, boolean withIdentifiers)
2652      */
2653     public String getRequiredAttributeTypeList(boolean follow, boolean withIdentifiers)
2654     {
2655         return this.getSuperManageableEntity().getRequiredAttributeTypeList(follow, withIdentifiers);
2656     }
2657 
2658     /**
2659      * Returns all attributes that are specified as 'required' in the model.  If 'follow' is true,
2660      * then required attributes in super classes will also be returned, if false, just the ones
2661      * directly on the entity will be returned.  If 'withIdentifiers' is true, the identifiers will
2662      * be include, if false, no identifiers will be included.
2663      * @see org.andromda.metafacades.uml.Entity#getRequiredAttributes(boolean follow, boolean withIdentifiers)
2664      */
2665     public Collection<AttributeFacade> getRequiredAttributes(boolean follow, boolean withIdentifiers)
2666     {
2667         return this.getSuperManageableEntity().getRequiredAttributes(follow, withIdentifiers);
2668     }
2669 
2670     /**
2671      * Gets all required properties for this entity.  These consist of any required attributes as
2672      * well as navigable associations that are marked as 'required'.  If 'follow' is true, then the
2673      * inheritance hierchy will be followed and all required properties from super classes will be
2674      * included as well.
2675      * If 'withIdentifiers' is true, the identifiers will be include, if false, no identifiers will
2676      * be included.
2677      * @see org.andromda.metafacades.uml.Entity#getRequiredProperties(boolean follow, boolean withIdentifiers)
2678      */
2679     public Collection<ModelElementFacade> getRequiredProperties(boolean follow, boolean withIdentifiers)
2680     {
2681         return this.getSuperManageableEntity().getRequiredProperties(follow, withIdentifiers);
2682     }
2683 
2684     /**
2685      * Creates a comma separated list of the required property names.
2686      * @see org.andromda.metafacades.uml.Entity#getRequiredPropertyNameList(boolean follow, boolean withIdentifiers)
2687      */
2688     public String getRequiredPropertyNameList(boolean follow, boolean withIdentifiers)
2689     {
2690         return this.getSuperManageableEntity().getRequiredPropertyNameList(follow, withIdentifiers);
2691     }
2692 
2693     /**
2694      * A comma separated list of the required property types.
2695      * @see org.andromda.metafacades.uml.Entity#getRequiredPropertyTypeList(boolean follow, boolean withIdentifiers)
2696      */
2697     public String getRequiredPropertyTypeList(boolean follow, boolean withIdentifiers)
2698     {
2699         return this.getSuperManageableEntity().getRequiredPropertyTypeList(follow, withIdentifiers);
2700     }
2701 
2702     /**
2703      * The name of the schema that contains the database table
2704      * @see org.andromda.metafacades.uml.Entity#getSchema()
2705      */
2706     public String getSchema()
2707     {
2708         return this.getSuperManageableEntity().getSchema();
2709     }
2710 
2711     /**
2712      * The name of the database table to which this entity is persisted.
2713      * @see org.andromda.metafacades.uml.Entity#getTableName()
2714      */
2715     public String getTableName()
2716     {
2717         return this.getSuperManageableEntity().getTableName();
2718     }
2719 
2720     /**
2721      * Returns true/false depending on whether or not this entity represetns a child in an
2722      * association (this occurs when this entity is on the opposite end of an assocation end defined
2723      * as composite).
2724      * @see org.andromda.metafacades.uml.Entity#isChild()
2725      */
2726     public boolean isChild()
2727     {
2728         return this.getSuperManageableEntity().isChild();
2729     }
2730 
2731     /**
2732      * True if this entity identifier is a composite (consists of multiple key columns, typically
2733      * abstracted into an external composite identifier class)
2734      * @see org.andromda.metafacades.uml.Entity#isCompositeIdentifier()
2735      */
2736     public boolean isCompositeIdentifier()
2737     {
2738         return this.getSuperManageableEntity().isCompositeIdentifier();
2739     }
2740 
2741     /**
2742      * True if the entity has its identifiers dynamically added, false otherwise.
2743      * @see org.andromda.metafacades.uml.Entity#isDynamicIdentifiersPresent()
2744      */
2745     public boolean isDynamicIdentifiersPresent()
2746     {
2747         return this.getSuperManageableEntity().isDynamicIdentifiersPresent();
2748     }
2749 
2750     /**
2751      * True if the entity has any identifiers defined, false otherwise.
2752      * @see org.andromda.metafacades.uml.Entity#isIdentifiersPresent()
2753      */
2754     public boolean isIdentifiersPresent()
2755     {
2756         return this.getSuperManageableEntity().isIdentifiersPresent();
2757     }
2758 
2759     /**
2760      * Indiciates if this entity is using an assigned identifier or not.
2761      * @see org.andromda.metafacades.uml.Entity#isUsingAssignedIdentifier()
2762      */
2763     public boolean isUsingAssignedIdentifier()
2764     {
2765         return this.getSuperManageableEntity().isUsingAssignedIdentifier();
2766     }
2767 
2768     /**
2769      * Indicates whether or not this entity is using a foreign identifier as its identifiers.  That
2770      * is: the foreignIdentifier flag was set on an incoming association end and the entity is
2771      * therefore using the related foreign parent entity's identifier.
2772      * @see org.andromda.metafacades.uml.Entity#isUsingForeignIdentifier()
2773      */
2774     public boolean isUsingForeignIdentifier()
2775     {
2776         return this.getSuperManageableEntity().isUsingForeignIdentifier();
2777     }
2778 
2779     /**
2780      * Finds the tagged value optional searching the entire inheritance hierarchy if 'follow' is set
2781      * to true.
2782      * @see GeneralizableElementFacade#findTaggedValue(String tagName, boolean follow)
2783      */
2784     public Object findTaggedValue(String tagName, boolean follow)
2785     {
2786         return this.getSuperManageableEntity().findTaggedValue(tagName, follow);
2787     }
2788 
2789     /**
2790      * All generalizations for this generalizable element, goes up the inheritance tree.
2791      * @see GeneralizableElementFacade#getAllGeneralizations()
2792      */
2793     public Collection<GeneralizableElementFacade> getAllGeneralizations()
2794     {
2795         return this.getSuperManageableEntity().getAllGeneralizations();
2796     }
2797 
2798     /**
2799      * All specializations (travels down the inheritance hierarchy).
2800      * @see GeneralizableElementFacade#getAllSpecializations()
2801      */
2802     public Collection<GeneralizableElementFacade> getAllSpecializations()
2803     {
2804         return this.getSuperManageableEntity().getAllSpecializations();
2805     }
2806 
2807     /**
2808      * Gets the direct generalization for this generalizable element.
2809      * @see GeneralizableElementFacade#getGeneralization()
2810      */
2811     public GeneralizableElementFacade getGeneralization()
2812     {
2813         return this.getSuperManageableEntity().getGeneralization();
2814     }
2815 
2816     /**
2817      * Gets the actual links that this generalization element is part of (it plays either the
2818      * specialization or generalization).
2819      * @see GeneralizableElementFacade#getGeneralizationLinks()
2820      */
2821     public Collection<GeneralizationFacade> getGeneralizationLinks()
2822     {
2823         return this.getSuperManageableEntity().getGeneralizationLinks();
2824     }
2825 
2826     /**
2827      * A comma separated list of the fully qualified names of all generalizations.
2828      * @see GeneralizableElementFacade#getGeneralizationList()
2829      */
2830     public String getGeneralizationList()
2831     {
2832         return this.getSuperManageableEntity().getGeneralizationList();
2833     }
2834 
2835     /**
2836      * The element found when you recursively follow the generalization path up to the root. If an
2837      * element has no generalization itself will be considered the root.
2838      * @see GeneralizableElementFacade#getGeneralizationRoot()
2839      */
2840     public GeneralizableElementFacade getGeneralizationRoot()
2841     {
2842         return this.getSuperManageableEntity().getGeneralizationRoot();
2843     }
2844 
2845     /**
2846      * Return all generalizations (ancestors) from this generalizable element.
2847      * @see GeneralizableElementFacade#getGeneralizations()
2848      */
2849     public Collection<GeneralizableElementFacade> getGeneralizations()
2850     {
2851         return this.getSuperManageableEntity().getGeneralizations();
2852     }
2853 
2854     /**
2855      * Gets the direct specializations (i.e. sub elements) for this generalizatble element.
2856      * @see GeneralizableElementFacade#getSpecializations()
2857      */
2858     public Collection<GeneralizableElementFacade> getSpecializations()
2859     {
2860         return this.getSuperManageableEntity().getSpecializations();
2861     }
2862 
2863     /**
2864      * All entities to which can be browsed from this entity. Currently this property will simple
2865      * hold all entities, so the value is the same for any arbitrary entity. Hiding entities can be
2866      * done in the presentation tier, for example depending on runtime security information.
2867      * @see ManageableEntity#getAllManageables()
2868      */
2869     public List<ManageableEntity> getAllManageables()
2870     {
2871         return this.getSuperManageableEntity().getAllManageables();
2872     }
2873 
2874     /**
2875      * The attribute used as a key link to display values for this entity.
2876      * @see ManageableEntity#getDisplayAttribute()
2877      */
2878     public ManageableEntityAttribute getDisplayAttribute()
2879     {
2880         return this.getSuperManageableEntity().getDisplayAttribute();
2881     }
2882 
2883     /**
2884      * The fully qualified service name of the entity.
2885      * @see ManageableEntity#getFullyQualifiedManageableServiceName()
2886      */
2887     public String getFullyQualifiedManageableServiceName()
2888     {
2889         return this.getSuperManageableEntity().getFullyQualifiedManageableServiceName();
2890     }
2891 
2892     /**
2893      * The associations to other entities from this entity.
2894      * @see ManageableEntity#getManageableAssociationEnds()
2895      */
2896     public List<ManageableEntityAssociationEnd> getManageableAssociationEnds()
2897     {
2898         return this.getSuperManageableEntity().getManageableAssociationEnds();
2899     }
2900 
2901     /**
2902      * Lists the attributes that can be managed for this entity. This feature is particularly
2903      * important when resolving inherited attributes and ids.
2904      * @see ManageableEntity#getManageableAttributes()
2905      */
2906     public List<ManageableEntityAttribute> getManageableAttributes()
2907     {
2908         return this.getSuperManageableEntity().getManageableAttributes();
2909     }
2910 
2911     /**
2912      * The identifier used when managing this entity.
2913      * @see ManageableEntity#getManageableIdentifier()
2914      */
2915     public ManageableEntityAttribute getManageableIdentifier()
2916     {
2917         return this.getSuperManageableEntity().getManageableIdentifier();
2918     }
2919 
2920     /**
2921      * ManageableAttributes and ManageableAssociationEnds
2922      * @see ManageableEntity#getManageableMembers()
2923      */
2924     public List<ModelElementFacade> getManageableMembers()
2925     {
2926         return this.getSuperManageableEntity().getManageableMembers();
2927     }
2928 
2929     /**
2930      * The entity package name.
2931      * @see ManageableEntity#getManageablePackageName()
2932      */
2933     public String getManageablePackageName()
2934     {
2935         return this.getSuperManageableEntity().getManageablePackageName();
2936     }
2937 
2938     /**
2939      * The Package path of the Entity
2940      * @see ManageableEntity#getManageablePackagePath()
2941      */
2942     public String getManageablePackagePath()
2943     {
2944         return this.getSuperManageableEntity().getManageablePackagePath();
2945     }
2946 
2947     /**
2948      * The entity accessor (getter) call.
2949      * @see ManageableEntity#getManageableServiceAccessorCall()
2950      */
2951     public String getManageableServiceAccessorCall()
2952     {
2953         return this.getSuperManageableEntity().getManageableServiceAccessorCall();
2954     }
2955 
2956     /**
2957      * The service full path of the entity.
2958      * @see ManageableEntity#getManageableServiceFullPath()
2959      */
2960     public String getManageableServiceFullPath()
2961     {
2962         return this.getSuperManageableEntity().getManageableServiceFullPath();
2963     }
2964 
2965     /**
2966      * The service name of the entity.
2967      * @see ManageableEntity#getManageableServiceName()
2968      */
2969     public String getManageableServiceName()
2970     {
2971         return this.getSuperManageableEntity().getManageableServiceName();
2972     }
2973 
2974     /**
2975      * The maximum number of rows to load from the database.
2976      * @see ManageableEntity#getMaximumListSize()
2977      */
2978     public int getMaximumListSize()
2979     {
2980         return this.getSuperManageableEntity().getMaximumListSize();
2981     }
2982 
2983     /**
2984      * The maximum number of rows to load from the database.
2985      * @see ManageableEntity#getPageSize()
2986      */
2987     public int getPageSize()
2988     {
2989         return this.getSuperManageableEntity().getPageSize();
2990     }
2991 
2992     /**
2993      * Other Manageable Entities which reference this entity.
2994      * @see ManageableEntity#getReferencingManageables()
2995      */
2996     public List<ManageableEntity> getReferencingManageables()
2997     {
2998         return this.getSuperManageableEntity().getReferencingManageables();
2999     }
3000 
3001     /**
3002      * The Actors (Roles) which can manage the Entity.
3003      * @see ManageableEntity#getUsers()
3004      */
3005     public List<ActorFacade> getUsers()
3006     {
3007         return this.getSuperManageableEntity().getUsers();
3008     }
3009 
3010     /**
3011      * Create a create operation on the entity manager?
3012      * @see ManageableEntity#isCreate()
3013      */
3014     public boolean isCreate()
3015     {
3016         return this.getSuperManageableEntity().isCreate();
3017     }
3018 
3019     /**
3020      * Create a delete operation on the entity manager?
3021      * @see ManageableEntity#isDelete()
3022      */
3023     public boolean isDelete()
3024     {
3025         return this.getSuperManageableEntity().isDelete();
3026     }
3027 
3028     /**
3029      * True: Entity is manageable.
3030      * @see ManageableEntity#isManageable()
3031      */
3032     public boolean isManageable()
3033     {
3034         return this.getSuperManageableEntity().isManageable();
3035     }
3036 
3037     /**
3038      * Create a read operation on the entity manager?
3039      * @see ManageableEntity#isRead()
3040      */
3041     public boolean isRead()
3042     {
3043         return this.getSuperManageableEntity().isRead();
3044     }
3045 
3046     /**
3047      * The maximum number of rows to load from the database.
3048      * @see ManageableEntity#isResolveable()
3049      */
3050     public boolean isResolveable()
3051     {
3052         return this.getSuperManageableEntity().isResolveable();
3053     }
3054 
3055     /**
3056      * Create an update operation on the entity manager?
3057      * @see ManageableEntity#isUpdate()
3058      */
3059     public boolean isUpdate()
3060     {
3061         return this.getSuperManageableEntity().isUpdate();
3062     }
3063 
3064     /**
3065      * Returns a string with the attributes without wrapper types.
3066      * @see ManageableEntity#listManageableMembers(boolean withTypes)
3067      */
3068     public String listManageableMembers(boolean withTypes)
3069     {
3070         return this.getSuperManageableEntity().listManageableMembers(withTypes);
3071     }
3072 
3073     /**
3074      * Returns a string with the attributes and wrapper types.
3075      * @see ManageableEntity#listManageableMembersWithWrapperTypes()
3076      */
3077     public String listManageableMembersWithWrapperTypes()
3078     {
3079         return this.getSuperManageableEntity().listManageableMembersWithWrapperTypes();
3080     }
3081 
3082     /**
3083      * Copies all tagged values from the given ModelElementFacade to this model element facade.
3084      * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
3085      */
3086     public void copyTaggedValues(ModelElementFacade element)
3087     {
3088         this.getSuperManageableEntity().copyTaggedValues(element);
3089     }
3090 
3091     /**
3092      * Finds the tagged value with the specified 'tagName'. In case there are more values the first
3093      * one found will be returned.
3094      * @see ModelElementFacade#findTaggedValue(String tagName)
3095      */
3096     public Object findTaggedValue(String tagName)
3097     {
3098         return this.getSuperManageableEntity().findTaggedValue(tagName);
3099     }
3100 
3101     /**
3102      * Returns all the values for the tagged value with the specified name. The returned collection
3103      * will contains only String instances, or will be empty. Never null.
3104      * @see ModelElementFacade#findTaggedValues(String tagName)
3105      */
3106     public Collection<Object> findTaggedValues(String tagName)
3107     {
3108         return this.getSuperManageableEntity().findTaggedValues(tagName);
3109     }
3110 
3111     /**
3112      * Returns the fully qualified name of the model element. The fully qualified name includes
3113      * complete package qualified name of the underlying model element. The templates parameter will
3114      * be replaced by the correct one given the binding relation of the parameter to this element.
3115      * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
3116      */
3117     public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
3118     {
3119         return this.getSuperManageableEntity().getBindedFullyQualifiedName(bindedElement);
3120     }
3121 
3122     /**
3123      * Gets all constraints belonging to the model element.
3124      * @see ModelElementFacade#getConstraints()
3125      */
3126     public Collection<ConstraintFacade> getConstraints()
3127     {
3128         return this.getSuperManageableEntity().getConstraints();
3129     }
3130 
3131     /**
3132      * Returns the constraints of the argument kind that have been placed onto this model. Typical
3133      * kinds are "inv", "pre" and "post". Other kinds are possible.
3134      * @see ModelElementFacade#getConstraints(String kind)
3135      */
3136     public Collection<ConstraintFacade> getConstraints(String kind)
3137     {
3138         return this.getSuperManageableEntity().getConstraints(kind);
3139     }
3140 
3141     /**
3142      * Gets the documentation for the model element, The indent argument is prefixed to each line.
3143      * By default this method wraps lines after 64 characters.
3144      * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
3145      * @see ModelElementFacade#getDocumentation(String indent)
3146      */
3147     public String getDocumentation(String indent)
3148     {
3149         return this.getSuperManageableEntity().getDocumentation(indent);
3150     }
3151 
3152     /**
3153      * This method returns the documentation for this model element, with the lines wrapped after
3154      * the specified number of characters, values of less than 1 will indicate no line wrapping is
3155      * required. By default paragraphs are returned as HTML.
3156      * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
3157      * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
3158      */
3159     public String getDocumentation(String indent, int lineLength)
3160     {
3161         return this.getSuperManageableEntity().getDocumentation(indent, lineLength);
3162     }
3163 
3164     /**
3165      * This method returns the documentation for this model element, with the lines wrapped after
3166      * the specified number of characters, values of less than 1 will indicate no line wrapping is
3167      * required. HTML style determines if HTML Escaping is applied.
3168      * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
3169      */
3170     public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
3171     {
3172         return this.getSuperManageableEntity().getDocumentation(indent, lineLength, htmlStyle);
3173     }
3174 
3175     /**
3176      * The fully qualified name of this model element.
3177      * @see ModelElementFacade#getFullyQualifiedName()
3178      */
3179     public String getFullyQualifiedName()
3180     {
3181         return this.getSuperManageableEntity().getFullyQualifiedName();
3182     }
3183 
3184     /**
3185      * Returns the fully qualified name of the model element. The fully qualified name includes
3186      * complete package qualified name of the underlying model element.  If modelName is true, then
3187      * the original name of the model element (the name contained within the model) will be the name
3188      * returned, otherwise a name from a language mapping will be returned.
3189      * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
3190      */
3191     public String getFullyQualifiedName(boolean modelName)
3192     {
3193         return this.getSuperManageableEntity().getFullyQualifiedName(modelName);
3194     }
3195 
3196     /**
3197      * Returns the fully qualified name as a path, the returned value always starts with out a slash
3198      * '/'.
3199      * @see ModelElementFacade#getFullyQualifiedNamePath()
3200      */
3201     public String getFullyQualifiedNamePath()
3202     {
3203         return this.getSuperManageableEntity().getFullyQualifiedNamePath();
3204     }
3205 
3206     /**
3207      * Gets the unique identifier of the underlying model element.
3208      * @see ModelElementFacade#getId()
3209      */
3210     public String getId()
3211     {
3212         return this.getSuperManageableEntity().getId();
3213     }
3214 
3215     /**
3216      * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
3217      * are not represented by other properties, i.e. native, transient, volatile, synchronized,
3218      * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
3219      * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
3220      * JDK5 compiler level.
3221      * @see ModelElementFacade#getKeywords()
3222      */
3223     public Collection<String> getKeywords()
3224     {
3225         return this.getSuperManageableEntity().getKeywords();
3226     }
3227 
3228     /**
3229      * UML2: Retrieves a localized label for this named element.
3230      * @see ModelElementFacade#getLabel()
3231      */
3232     public String getLabel()
3233     {
3234         return this.getSuperManageableEntity().getLabel();
3235     }
3236 
3237     /**
3238      * The language mappings that have been set for this model element.
3239      * @see ModelElementFacade#getLanguageMappings()
3240      */
3241     public TypeMappings getLanguageMappings()
3242     {
3243         return this.getSuperManageableEntity().getLanguageMappings();
3244     }
3245 
3246     /**
3247      * Return the model containing this model element (multiple models may be loaded and processed
3248      * at the same time).
3249      * @see ModelElementFacade#getModel()
3250      */
3251     public ModelFacade getModel()
3252     {
3253         return this.getSuperManageableEntity().getModel();
3254     }
3255 
3256     /**
3257      * The name of the model element.
3258      * @see ModelElementFacade#getName()
3259      */
3260     public String getName()
3261     {
3262         return this.getSuperManageableEntity().getName();
3263     }
3264 
3265     /**
3266      * Gets the package to which this model element belongs.
3267      * @see ModelElementFacade#getPackage()
3268      */
3269     public ModelElementFacade getPackage()
3270     {
3271         return this.getSuperManageableEntity().getPackage();
3272     }
3273 
3274     /**
3275      * The name of this model element's package.
3276      * @see ModelElementFacade#getPackageName()
3277      */
3278     public String getPackageName()
3279     {
3280         return this.getSuperManageableEntity().getPackageName();
3281     }
3282 
3283     /**
3284      * Gets the package name (optionally providing the ability to retrieve the model name and not
3285      * the mapped name).
3286      * @see ModelElementFacade#getPackageName(boolean modelName)
3287      */
3288     public String getPackageName(boolean modelName)
3289     {
3290         return this.getSuperManageableEntity().getPackageName(modelName);
3291     }
3292 
3293     /**
3294      * Returns the package as a path, the returned value always starts with out a slash '/'.
3295      * @see ModelElementFacade#getPackagePath()
3296      */
3297     public String getPackagePath()
3298     {
3299         return this.getSuperManageableEntity().getPackagePath();
3300     }
3301 
3302     /**
3303      * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
3304      * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
3305      * the names of the containing namespaces starting at the root of the hierarchy and ending with
3306      * the name of the NamedElement itself.
3307      * @see ModelElementFacade#getQualifiedName()
3308      */
3309     public String getQualifiedName()
3310     {
3311         return this.getSuperManageableEntity().getQualifiedName();
3312     }
3313 
3314     /**
3315      * Gets the root package for the model element.
3316      * @see ModelElementFacade#getRootPackage()
3317      */
3318     public PackageFacade getRootPackage()
3319     {
3320         return this.getSuperManageableEntity().getRootPackage();
3321     }
3322 
3323     /**
3324      * Gets the dependencies for which this model element is the source.
3325      * @see ModelElementFacade#getSourceDependencies()
3326      */
3327     public Collection<DependencyFacade> getSourceDependencies()
3328     {
3329         return this.getSuperManageableEntity().getSourceDependencies();
3330     }
3331 
3332     /**
3333      * If this model element is the context of an activity graph, this represents that activity
3334      * graph.
3335      * @see ModelElementFacade#getStateMachineContext()
3336      */
3337     public StateMachineFacade getStateMachineContext()
3338     {
3339         return this.getSuperManageableEntity().getStateMachineContext();
3340     }
3341 
3342     /**
3343      * The collection of ALL stereotype names for this model element.
3344      * @see ModelElementFacade#getStereotypeNames()
3345      */
3346     public Collection<String> getStereotypeNames()
3347     {
3348         return this.getSuperManageableEntity().getStereotypeNames();
3349     }
3350 
3351     /**
3352      * Gets all stereotypes for this model element.
3353      * @see ModelElementFacade#getStereotypes()
3354      */
3355     public Collection<StereotypeFacade> getStereotypes()
3356     {
3357         return this.getSuperManageableEntity().getStereotypes();
3358     }
3359 
3360     /**
3361      * Return the TaggedValues associated with this model element, under all stereotypes.
3362      * @see ModelElementFacade#getTaggedValues()
3363      */
3364     public Collection<TaggedValueFacade> getTaggedValues()
3365     {
3366         return this.getSuperManageableEntity().getTaggedValues();
3367     }
3368 
3369     /**
3370      * Gets the dependencies for which this model element is the target.
3371      * @see ModelElementFacade#getTargetDependencies()
3372      */
3373     public Collection<DependencyFacade> getTargetDependencies()
3374     {
3375         return this.getSuperManageableEntity().getTargetDependencies();
3376     }
3377 
3378     /**
3379      * Get the template parameter for this model element having the parameterName
3380      * @see ModelElementFacade#getTemplateParameter(String parameterName)
3381      */
3382     public Object getTemplateParameter(String parameterName)
3383     {
3384         return this.getSuperManageableEntity().getTemplateParameter(parameterName);
3385     }
3386 
3387     /**
3388      * Get the template parameters for this model element
3389      * @see ModelElementFacade#getTemplateParameters()
3390      */
3391     public Collection<TemplateParameterFacade> getTemplateParameters()
3392     {
3393         return this.getSuperManageableEntity().getTemplateParameters();
3394     }
3395 
3396     /**
3397      * The visibility (i.e. public, private, protected or package) of the model element, will
3398      * attempt a lookup for these values in the language mappings (if any).
3399      * @see ModelElementFacade#getVisibility()
3400      */
3401     public String getVisibility()
3402     {
3403         return this.getSuperManageableEntity().getVisibility();
3404     }
3405 
3406     /**
3407      * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
3408      * is taken into account when searching for the stereotype), false otherwise.
3409      * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
3410      */
3411     public boolean hasExactStereotype(String stereotypeName)
3412     {
3413         return this.getSuperManageableEntity().hasExactStereotype(stereotypeName);
3414     }
3415 
3416     /**
3417      * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
3418      * pipe, semicolon, or << >>
3419      * @see ModelElementFacade#hasKeyword(String keywordName)
3420      */
3421     public boolean hasKeyword(String keywordName)
3422     {
3423         return this.getSuperManageableEntity().hasKeyword(keywordName);
3424     }
3425 
3426     /**
3427      * Returns true if the model element has the specified stereotype.  If the stereotype itself
3428      * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
3429      * one of the stereotype's ancestors has a matching name this method will return true, false
3430      * otherwise.
3431      * For example, if we have a certain stereotype called <<exception>> and a model element has a
3432      * stereotype called <<applicationException>> which extends <<exception>>, when calling this
3433      * method with 'stereotypeName' defined as 'exception' the method would return true since
3434      * <<applicationException>> inherits from <<exception>>.  If you want to check if the model
3435      * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
3436      * @see ModelElementFacade#hasStereotype(String stereotypeName)
3437      */
3438     public boolean hasStereotype(String stereotypeName)
3439     {
3440         return this.getSuperManageableEntity().hasStereotype(stereotypeName);
3441     }
3442 
3443     /**
3444      * True if there are target dependencies from this element that are instances of BindingFacade.
3445      * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
3446      * @see ModelElementFacade#isBindingDependenciesPresent()
3447      */
3448     public boolean isBindingDependenciesPresent()
3449     {
3450         return this.getSuperManageableEntity().isBindingDependenciesPresent();
3451     }
3452 
3453     /**
3454      * Indicates if any constraints are present on this model element.
3455      * @see ModelElementFacade#isConstraintsPresent()
3456      */
3457     public boolean isConstraintsPresent()
3458     {
3459         return this.getSuperManageableEntity().isConstraintsPresent();
3460     }
3461 
3462     /**
3463      * Indicates if any documentation is present on this model element.
3464      * @see ModelElementFacade#isDocumentationPresent()
3465      */
3466     public boolean isDocumentationPresent()
3467     {
3468         return this.getSuperManageableEntity().isDocumentationPresent();
3469     }
3470 
3471     /**
3472      * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
3473      * @see ModelElementFacade#isReservedWord()
3474      */
3475     public boolean isReservedWord()
3476     {
3477         return this.getSuperManageableEntity().isReservedWord();
3478     }
3479 
3480     /**
3481      * True is there are template parameters on this model element. For UML2, applies to Class,
3482      * Operation, Property, and Parameter.
3483      * @see ModelElementFacade#isTemplateParametersPresent()
3484      */
3485     public boolean isTemplateParametersPresent()
3486     {
3487         return this.getSuperManageableEntity().isTemplateParametersPresent();
3488     }
3489 
3490     /**
3491      * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
3492      * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
3493      * Enumerations and Interfaces, optionally applies on other model elements.
3494      * @see ModelElementFacade#isValidIdentifierName()
3495      */
3496     public boolean isValidIdentifierName()
3497     {
3498         return this.getSuperManageableEntity().isValidIdentifierName();
3499     }
3500 
3501     /**
3502      * Searches for the constraint with the specified 'name' on this model element, and if found
3503      * translates it using the specified 'translation' from a translation library discovered by the
3504      * framework.
3505      * @see ModelElementFacade#translateConstraint(String name, String translation)
3506      */
3507     public String translateConstraint(String name, String translation)
3508     {
3509         return this.getSuperManageableEntity().translateConstraint(name, translation);
3510     }
3511 
3512     /**
3513      * Translates all constraints belonging to this model element with the given 'translation'.
3514      * @see ModelElementFacade#translateConstraints(String translation)
3515      */
3516     public String[] translateConstraints(String translation)
3517     {
3518         return this.getSuperManageableEntity().translateConstraints(translation);
3519     }
3520 
3521     /**
3522      * Translates the constraints of the specified 'kind' belonging to this model element.
3523      * @see ModelElementFacade#translateConstraints(String kind, String translation)
3524      */
3525     public String[] translateConstraints(String kind, String translation)
3526     {
3527         return this.getSuperManageableEntity().translateConstraints(kind, translation);
3528     }
3529 
3530     /**
3531      * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
3532      */
3533     @Override
3534     public void initialize()
3535     {
3536         this.getSuperManageableEntity().initialize();
3537     }
3538 
3539     /**
3540      * @return Object getSuperManageableEntity().getValidationOwner()
3541      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
3542      */
3543     @Override
3544     public Object getValidationOwner()
3545     {
3546         Object owner = this.getSuperManageableEntity().getValidationOwner();
3547         return owner;
3548     }
3549 
3550     /**
3551      * @return String getSuperManageableEntity().getValidationName()
3552      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
3553      */
3554     @Override
3555     public String getValidationName()
3556     {
3557         String name = this.getSuperManageableEntity().getValidationName();
3558         return name;
3559     }
3560 
3561     /**
3562      * @param validationMessages Collection<ModelValidationMessage>
3563      * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
3564      */
3565     @Override
3566     public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
3567     {
3568         this.getSuperManageableEntity().validateInvariants(validationMessages);
3569     }
3570 
3571     /**
3572      * The property that stores the name of the metafacade.
3573      */
3574     private static final String NAME_PROPERTY = "name";
3575     private static final String FQNAME_PROPERTY = "fullyQualifiedName";
3576 
3577     /**
3578      * @see Object#toString()
3579      */
3580     @Override
3581     public String toString()
3582     {
3583         final StringBuilder toString = new StringBuilder(this.getClass().getName());
3584         toString.append("[");
3585         try
3586         {
3587             toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
3588         }
3589         catch (final Throwable tryAgain)
3590         {
3591             try
3592             {
3593                 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
3594             }
3595             catch (final Throwable ignore)
3596             {
3597                 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
3598             }
3599         }
3600         toString.append("]");
3601         return toString.toString();
3602     }
3603 }