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