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