001// license-header java merge-point
002//
003// Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
004//
005package org.andromda.cartridges.bpm4struts.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.StateMachineFacade;
031import org.andromda.metafacades.uml.StereotypeFacade;
032import org.andromda.metafacades.uml.TaggedValueFacade;
033import org.andromda.metafacades.uml.TemplateParameterFacade;
034import org.andromda.metafacades.uml.TypeMappings;
035
036/**
037 * TODO: Model Documentation for
038 * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity
039 * MetafacadeLogic for StrutsManageableEntity
040 *
041 * @see StrutsManageableEntity
042 */
043public abstract class StrutsManageableEntityLogic
044    extends MetafacadeBase
045    implements StrutsManageableEntity
046{
047    /**
048     * The underlying UML object
049     * @see Object
050     */
051    protected Object metaObject;
052
053    /** Create Metafacade implementation instance using the MetafacadeFactory from the context
054     * @param metaObjectIn
055     * @param context
056     */
057    protected StrutsManageableEntityLogic(Object metaObjectIn, String context)
058    {
059        super(metaObjectIn, getContext(context));
060        this.superManageableEntity =
061           (ManageableEntity)
062            MetafacadeFactory.getInstance().createFacadeImpl(
063                    "org.andromda.metafacades.uml.ManageableEntity",
064                    metaObjectIn,
065                    getContext(context));
066        this.metaObject = metaObjectIn;
067    }
068
069    /**
070     * Gets the context for this metafacade logic instance.
071     * @param context String. Set to StrutsManageableEntity if null
072     * @return context String
073     */
074    private static String getContext(String context)
075    {
076        if (context == null)
077        {
078            context = "org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity";
079        }
080        return context;
081    }
082
083    private ManageableEntity superManageableEntity;
084    private boolean superManageableEntityInitialized = false;
085
086    /**
087     * Gets the ManageableEntity parent instance.
088     * @return this.superManageableEntity ManageableEntity
089     */
090    private ManageableEntity getSuperManageableEntity()
091    {
092        if (!this.superManageableEntityInitialized)
093        {
094            ((MetafacadeBase)this.superManageableEntity).setMetafacadeContext(this.getMetafacadeContext());
095            this.superManageableEntityInitialized = true;
096        }
097        return this.superManageableEntity;
098    }
099
100    /** Reset context only for non-root metafacades
101     * @param context
102     * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
103     */
104    @Override
105    public void resetMetafacadeContext(String context)
106    {
107        if (!this.contextRoot) // reset context only for non-root metafacades
108        {
109            context = getContext(context);  // to have same value as in original constructor call
110            setMetafacadeContext (context);
111            if (this.superManageableEntityInitialized)
112            {
113                ((MetafacadeBase)this.superManageableEntity).resetMetafacadeContext(context);
114            }
115        }
116    }
117
118    /**
119     * @return boolean true always
120     * @see StrutsManageableEntity
121     */
122    public boolean isStrutsManageableEntityMetaType()
123    {
124        return true;
125    }
126
127    // --------------- attributes ---------------------
128
129   /**
130    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getPageName()
131    * @return String
132    */
133    protected abstract String handleGetPageName();
134
135    private String __pageName1a;
136    private boolean __pageName1aSet = false;
137
138    /**
139     * TODO: Model Documentation for
140     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.pageName
141     * @return (String)handleGetPageName()
142     */
143    public final String getPageName()
144    {
145        String pageName1a = this.__pageName1a;
146        if (!this.__pageName1aSet)
147        {
148            // pageName has no pre constraints
149            pageName1a = handleGetPageName();
150            // pageName has no post constraints
151            this.__pageName1a = pageName1a;
152            if (isMetafacadePropertyCachingEnabled())
153            {
154                this.__pageName1aSet = true;
155            }
156        }
157        return pageName1a;
158    }
159
160   /**
161    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getPageFullPath()
162    * @return String
163    */
164    protected abstract String handleGetPageFullPath();
165
166    private String __pageFullPath2a;
167    private boolean __pageFullPath2aSet = false;
168
169    /**
170     * TODO: Model Documentation for
171     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.pageFullPath
172     * @return (String)handleGetPageFullPath()
173     */
174    public final String getPageFullPath()
175    {
176        String pageFullPath2a = this.__pageFullPath2a;
177        if (!this.__pageFullPath2aSet)
178        {
179            // pageFullPath has no pre constraints
180            pageFullPath2a = handleGetPageFullPath();
181            // pageFullPath has no post constraints
182            this.__pageFullPath2a = pageFullPath2a;
183            if (isMetafacadePropertyCachingEnabled())
184            {
185                this.__pageFullPath2aSet = true;
186            }
187        }
188        return pageFullPath2a;
189    }
190
191   /**
192    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getPageTitleKey()
193    * @return String
194    */
195    protected abstract String handleGetPageTitleKey();
196
197    private String __pageTitleKey3a;
198    private boolean __pageTitleKey3aSet = false;
199
200    /**
201     * TODO: Model Documentation for
202     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.pageTitleKey
203     * @return (String)handleGetPageTitleKey()
204     */
205    public final String getPageTitleKey()
206    {
207        String pageTitleKey3a = this.__pageTitleKey3a;
208        if (!this.__pageTitleKey3aSet)
209        {
210            // pageTitleKey has no pre constraints
211            pageTitleKey3a = handleGetPageTitleKey();
212            // pageTitleKey has no post constraints
213            this.__pageTitleKey3a = pageTitleKey3a;
214            if (isMetafacadePropertyCachingEnabled())
215            {
216                this.__pageTitleKey3aSet = true;
217            }
218        }
219        return pageTitleKey3a;
220    }
221
222   /**
223    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getPageTitleValue()
224    * @return String
225    */
226    protected abstract String handleGetPageTitleValue();
227
228    private String __pageTitleValue4a;
229    private boolean __pageTitleValue4aSet = false;
230
231    /**
232     * TODO: Model Documentation for
233     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.pageTitleValue
234     * @return (String)handleGetPageTitleValue()
235     */
236    public final String getPageTitleValue()
237    {
238        String pageTitleValue4a = this.__pageTitleValue4a;
239        if (!this.__pageTitleValue4aSet)
240        {
241            // pageTitleValue has no pre constraints
242            pageTitleValue4a = handleGetPageTitleValue();
243            // pageTitleValue has no post constraints
244            this.__pageTitleValue4a = pageTitleValue4a;
245            if (isMetafacadePropertyCachingEnabled())
246            {
247                this.__pageTitleValue4aSet = true;
248            }
249        }
250        return pageTitleValue4a;
251    }
252
253   /**
254    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getListName()
255    * @return String
256    */
257    protected abstract String handleGetListName();
258
259    private String __listName5a;
260    private boolean __listName5aSet = false;
261
262    /**
263     * TODO: Model Documentation for
264     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.listName
265     * @return (String)handleGetListName()
266     */
267    public final String getListName()
268    {
269        String listName5a = this.__listName5a;
270        if (!this.__listName5aSet)
271        {
272            // listName has no pre constraints
273            listName5a = handleGetListName();
274            // listName has no post constraints
275            this.__listName5a = listName5a;
276            if (isMetafacadePropertyCachingEnabled())
277            {
278                this.__listName5aSet = true;
279            }
280        }
281        return listName5a;
282    }
283
284   /**
285    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getFormBeanType()
286    * @return String
287    */
288    protected abstract String handleGetFormBeanType();
289
290    private String __formBeanType6a;
291    private boolean __formBeanType6aSet = false;
292
293    /**
294     * TODO: Model Documentation for
295     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.formBeanType
296     * @return (String)handleGetFormBeanType()
297     */
298    public final String getFormBeanType()
299    {
300        String formBeanType6a = this.__formBeanType6a;
301        if (!this.__formBeanType6aSet)
302        {
303            // formBeanType has no pre constraints
304            formBeanType6a = handleGetFormBeanType();
305            // formBeanType has no post constraints
306            this.__formBeanType6a = formBeanType6a;
307            if (isMetafacadePropertyCachingEnabled())
308            {
309                this.__formBeanType6aSet = true;
310            }
311        }
312        return formBeanType6a;
313    }
314
315   /**
316    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getFormBeanName()
317    * @return String
318    */
319    protected abstract String handleGetFormBeanName();
320
321    private String __formBeanName7a;
322    private boolean __formBeanName7aSet = false;
323
324    /**
325     * TODO: Model Documentation for
326     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.formBeanName
327     * @return (String)handleGetFormBeanName()
328     */
329    public final String getFormBeanName()
330    {
331        String formBeanName7a = this.__formBeanName7a;
332        if (!this.__formBeanName7aSet)
333        {
334            // formBeanName has no pre constraints
335            formBeanName7a = handleGetFormBeanName();
336            // formBeanName has no post constraints
337            this.__formBeanName7a = formBeanName7a;
338            if (isMetafacadePropertyCachingEnabled())
339            {
340                this.__formBeanName7aSet = true;
341            }
342        }
343        return formBeanName7a;
344    }
345
346   /**
347    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getExceptionKey()
348    * @return String
349    */
350    protected abstract String handleGetExceptionKey();
351
352    private String __exceptionKey8a;
353    private boolean __exceptionKey8aSet = false;
354
355    /**
356     * TODO: Model Documentation for
357     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.exceptionKey
358     * @return (String)handleGetExceptionKey()
359     */
360    public final String getExceptionKey()
361    {
362        String exceptionKey8a = this.__exceptionKey8a;
363        if (!this.__exceptionKey8aSet)
364        {
365            // exceptionKey has no pre constraints
366            exceptionKey8a = handleGetExceptionKey();
367            // exceptionKey has no post constraints
368            this.__exceptionKey8a = exceptionKey8a;
369            if (isMetafacadePropertyCachingEnabled())
370            {
371                this.__exceptionKey8aSet = true;
372            }
373        }
374        return exceptionKey8a;
375    }
376
377   /**
378    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getActionType()
379    * @return String
380    */
381    protected abstract String handleGetActionType();
382
383    private String __actionType9a;
384    private boolean __actionType9aSet = false;
385
386    /**
387     * TODO: Model Documentation for
388     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.actionType
389     * @return (String)handleGetActionType()
390     */
391    public final String getActionType()
392    {
393        String actionType9a = this.__actionType9a;
394        if (!this.__actionType9aSet)
395        {
396            // actionType has no pre constraints
397            actionType9a = handleGetActionType();
398            // actionType has no post constraints
399            this.__actionType9a = actionType9a;
400            if (isMetafacadePropertyCachingEnabled())
401            {
402                this.__actionType9aSet = true;
403            }
404        }
405        return actionType9a;
406    }
407
408   /**
409    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getActionFullPath()
410    * @return String
411    */
412    protected abstract String handleGetActionFullPath();
413
414    private String __actionFullPath10a;
415    private boolean __actionFullPath10aSet = false;
416
417    /**
418     * TODO: Model Documentation for
419     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.actionFullPath
420     * @return (String)handleGetActionFullPath()
421     */
422    public final String getActionFullPath()
423    {
424        String actionFullPath10a = this.__actionFullPath10a;
425        if (!this.__actionFullPath10aSet)
426        {
427            // actionFullPath has no pre constraints
428            actionFullPath10a = handleGetActionFullPath();
429            // actionFullPath has no post constraints
430            this.__actionFullPath10a = actionFullPath10a;
431            if (isMetafacadePropertyCachingEnabled())
432            {
433                this.__actionFullPath10aSet = true;
434            }
435        }
436        return actionFullPath10a;
437    }
438
439   /**
440    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getActionPath()
441    * @return String
442    */
443    protected abstract String handleGetActionPath();
444
445    private String __actionPath11a;
446    private boolean __actionPath11aSet = false;
447
448    /**
449     * TODO: Model Documentation for
450     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.actionPath
451     * @return (String)handleGetActionPath()
452     */
453    public final String getActionPath()
454    {
455        String actionPath11a = this.__actionPath11a;
456        if (!this.__actionPath11aSet)
457        {
458            // actionPath has no pre constraints
459            actionPath11a = handleGetActionPath();
460            // actionPath has no post constraints
461            this.__actionPath11a = actionPath11a;
462            if (isMetafacadePropertyCachingEnabled())
463            {
464                this.__actionPath11aSet = true;
465            }
466        }
467        return actionPath11a;
468    }
469
470   /**
471    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getActionClassName()
472    * @return String
473    */
474    protected abstract String handleGetActionClassName();
475
476    private String __actionClassName12a;
477    private boolean __actionClassName12aSet = false;
478
479    /**
480     * TODO: Model Documentation for
481     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.actionClassName
482     * @return (String)handleGetActionClassName()
483     */
484    public final String getActionClassName()
485    {
486        String actionClassName12a = this.__actionClassName12a;
487        if (!this.__actionClassName12aSet)
488        {
489            // actionClassName has no pre constraints
490            actionClassName12a = handleGetActionClassName();
491            // actionClassName has no post constraints
492            this.__actionClassName12a = actionClassName12a;
493            if (isMetafacadePropertyCachingEnabled())
494            {
495                this.__actionClassName12aSet = true;
496            }
497        }
498        return actionClassName12a;
499    }
500
501   /**
502    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getExceptionPath()
503    * @return String
504    */
505    protected abstract String handleGetExceptionPath();
506
507    private String __exceptionPath13a;
508    private boolean __exceptionPath13aSet = false;
509
510    /**
511     * TODO: Model Documentation for
512     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.exceptionPath
513     * @return (String)handleGetExceptionPath()
514     */
515    public final String getExceptionPath()
516    {
517        String exceptionPath13a = this.__exceptionPath13a;
518        if (!this.__exceptionPath13aSet)
519        {
520            // exceptionPath has no pre constraints
521            exceptionPath13a = handleGetExceptionPath();
522            // exceptionPath has no post constraints
523            this.__exceptionPath13a = exceptionPath13a;
524            if (isMetafacadePropertyCachingEnabled())
525            {
526                this.__exceptionPath13aSet = true;
527            }
528        }
529        return exceptionPath13a;
530    }
531
532   /**
533    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#isPreload()
534    * @return boolean
535    */
536    protected abstract boolean handleIsPreload();
537
538    private boolean __preload14a;
539    private boolean __preload14aSet = false;
540
541    /**
542     * TODO: Model Documentation for
543     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.preload
544     * @return (boolean)handleIsPreload()
545     */
546    public final boolean isPreload()
547    {
548        boolean preload14a = this.__preload14a;
549        if (!this.__preload14aSet)
550        {
551            // preload has no pre constraints
552            preload14a = handleIsPreload();
553            // preload has no post constraints
554            this.__preload14a = preload14a;
555            if (isMetafacadePropertyCachingEnabled())
556            {
557                this.__preload14aSet = true;
558            }
559        }
560        return preload14a;
561    }
562
563   /**
564    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getFormBeanClassName()
565    * @return String
566    */
567    protected abstract String handleGetFormBeanClassName();
568
569    private String __formBeanClassName15a;
570    private boolean __formBeanClassName15aSet = false;
571
572    /**
573     * TODO: Model Documentation for
574     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.formBeanClassName
575     * @return (String)handleGetFormBeanClassName()
576     */
577    public final String getFormBeanClassName()
578    {
579        String formBeanClassName15a = this.__formBeanClassName15a;
580        if (!this.__formBeanClassName15aSet)
581        {
582            // formBeanClassName has no pre constraints
583            formBeanClassName15a = handleGetFormBeanClassName();
584            // formBeanClassName has no post constraints
585            this.__formBeanClassName15a = formBeanClassName15a;
586            if (isMetafacadePropertyCachingEnabled())
587            {
588                this.__formBeanClassName15aSet = true;
589            }
590        }
591        return formBeanClassName15a;
592    }
593
594   /**
595    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getFormBeanFullPath()
596    * @return String
597    */
598    protected abstract String handleGetFormBeanFullPath();
599
600    private String __formBeanFullPath16a;
601    private boolean __formBeanFullPath16aSet = false;
602
603    /**
604     * TODO: Model Documentation for
605     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.formBeanFullPath
606     * @return (String)handleGetFormBeanFullPath()
607     */
608    public final String getFormBeanFullPath()
609    {
610        String formBeanFullPath16a = this.__formBeanFullPath16a;
611        if (!this.__formBeanFullPath16aSet)
612        {
613            // formBeanFullPath has no pre constraints
614            formBeanFullPath16a = handleGetFormBeanFullPath();
615            // formBeanFullPath has no post constraints
616            this.__formBeanFullPath16a = formBeanFullPath16a;
617            if (isMetafacadePropertyCachingEnabled())
618            {
619                this.__formBeanFullPath16aSet = true;
620            }
621        }
622        return formBeanFullPath16a;
623    }
624
625   /**
626    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getListGetterName()
627    * @return String
628    */
629    protected abstract String handleGetListGetterName();
630
631    private String __listGetterName17a;
632    private boolean __listGetterName17aSet = false;
633
634    /**
635     * TODO: Model Documentation for
636     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.listGetterName
637     * @return (String)handleGetListGetterName()
638     */
639    public final String getListGetterName()
640    {
641        String listGetterName17a = this.__listGetterName17a;
642        if (!this.__listGetterName17aSet)
643        {
644            // listGetterName has no pre constraints
645            listGetterName17a = handleGetListGetterName();
646            // listGetterName has no post constraints
647            this.__listGetterName17a = listGetterName17a;
648            if (isMetafacadePropertyCachingEnabled())
649            {
650                this.__listGetterName17aSet = true;
651            }
652        }
653        return listGetterName17a;
654    }
655
656   /**
657    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getListSetterName()
658    * @return String
659    */
660    protected abstract String handleGetListSetterName();
661
662    private String __listSetterName18a;
663    private boolean __listSetterName18aSet = false;
664
665    /**
666     * TODO: Model Documentation for
667     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.listSetterName
668     * @return (String)handleGetListSetterName()
669     */
670    public final String getListSetterName()
671    {
672        String listSetterName18a = this.__listSetterName18a;
673        if (!this.__listSetterName18aSet)
674        {
675            // listSetterName has no pre constraints
676            listSetterName18a = handleGetListSetterName();
677            // listSetterName has no post constraints
678            this.__listSetterName18a = listSetterName18a;
679            if (isMetafacadePropertyCachingEnabled())
680            {
681                this.__listSetterName18aSet = true;
682            }
683        }
684        return listSetterName18a;
685    }
686
687   /**
688    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getMessageKey()
689    * @return String
690    */
691    protected abstract String handleGetMessageKey();
692
693    private String __messageKey19a;
694    private boolean __messageKey19aSet = false;
695
696    /**
697     * TODO: Model Documentation for
698     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.messageKey
699     * @return (String)handleGetMessageKey()
700     */
701    public final String getMessageKey()
702    {
703        String messageKey19a = this.__messageKey19a;
704        if (!this.__messageKey19aSet)
705        {
706            // messageKey has no pre constraints
707            messageKey19a = handleGetMessageKey();
708            // messageKey has no post constraints
709            this.__messageKey19a = messageKey19a;
710            if (isMetafacadePropertyCachingEnabled())
711            {
712                this.__messageKey19aSet = true;
713            }
714        }
715        return messageKey19a;
716    }
717
718   /**
719    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getMessageValue()
720    * @return String
721    */
722    protected abstract String handleGetMessageValue();
723
724    private String __messageValue20a;
725    private boolean __messageValue20aSet = false;
726
727    /**
728     * TODO: Model Documentation for
729     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.messageValue
730     * @return (String)handleGetMessageValue()
731     */
732    public final String getMessageValue()
733    {
734        String messageValue20a = this.__messageValue20a;
735        if (!this.__messageValue20aSet)
736        {
737            // messageValue has no pre constraints
738            messageValue20a = handleGetMessageValue();
739            // messageValue has no post constraints
740            this.__messageValue20a = messageValue20a;
741            if (isMetafacadePropertyCachingEnabled())
742            {
743                this.__messageValue20aSet = true;
744            }
745        }
746        return messageValue20a;
747    }
748
749   /**
750    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getActionParameter()
751    * @return String
752    */
753    protected abstract String handleGetActionParameter();
754
755    private String __actionParameter21a;
756    private boolean __actionParameter21aSet = false;
757
758    /**
759     * TODO: Model Documentation for
760     * org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity.actionParameter
761     * @return (String)handleGetActionParameter()
762     */
763    public final String getActionParameter()
764    {
765        String actionParameter21a = this.__actionParameter21a;
766        if (!this.__actionParameter21aSet)
767        {
768            // actionParameter has no pre constraints
769            actionParameter21a = handleGetActionParameter();
770            // actionParameter has no post constraints
771            this.__actionParameter21a = actionParameter21a;
772            if (isMetafacadePropertyCachingEnabled())
773            {
774                this.__actionParameter21aSet = true;
775            }
776        }
777        return actionParameter21a;
778    }
779
780   /**
781    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getOnlineHelpKey()
782    * @return String
783    */
784    protected abstract String handleGetOnlineHelpKey();
785
786    private String __onlineHelpKey22a;
787    private boolean __onlineHelpKey22aSet = false;
788
789    /**
790     * The key to lookup the online help documentation.
791     * @return (String)handleGetOnlineHelpKey()
792     */
793    public final String getOnlineHelpKey()
794    {
795        String onlineHelpKey22a = this.__onlineHelpKey22a;
796        if (!this.__onlineHelpKey22aSet)
797        {
798            // onlineHelpKey has no pre constraints
799            onlineHelpKey22a = handleGetOnlineHelpKey();
800            // onlineHelpKey has no post constraints
801            this.__onlineHelpKey22a = onlineHelpKey22a;
802            if (isMetafacadePropertyCachingEnabled())
803            {
804                this.__onlineHelpKey22aSet = true;
805            }
806        }
807        return onlineHelpKey22a;
808    }
809
810   /**
811    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getOnlineHelpValue()
812    * @return String
813    */
814    protected abstract String handleGetOnlineHelpValue();
815
816    private String __onlineHelpValue23a;
817    private boolean __onlineHelpValue23aSet = false;
818
819    /**
820     * The online help documentation. The format is HTML without any style.
821     * @return (String)handleGetOnlineHelpValue()
822     */
823    public final String getOnlineHelpValue()
824    {
825        String onlineHelpValue23a = this.__onlineHelpValue23a;
826        if (!this.__onlineHelpValue23aSet)
827        {
828            // onlineHelpValue has no pre constraints
829            onlineHelpValue23a = handleGetOnlineHelpValue();
830            // onlineHelpValue has no post constraints
831            this.__onlineHelpValue23a = onlineHelpValue23a;
832            if (isMetafacadePropertyCachingEnabled())
833            {
834                this.__onlineHelpValue23aSet = true;
835            }
836        }
837        return onlineHelpValue23a;
838    }
839
840   /**
841    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getOnlineHelpActionPath()
842    * @return String
843    */
844    protected abstract String handleGetOnlineHelpActionPath();
845
846    private String __onlineHelpActionPath24a;
847    private boolean __onlineHelpActionPath24aSet = false;
848
849    /**
850     * The full path to this entity's online help action. The returned String does not have a suffix
851     * such as '.do'.
852     * @return (String)handleGetOnlineHelpActionPath()
853     */
854    public final String getOnlineHelpActionPath()
855    {
856        String onlineHelpActionPath24a = this.__onlineHelpActionPath24a;
857        if (!this.__onlineHelpActionPath24aSet)
858        {
859            // onlineHelpActionPath has no pre constraints
860            onlineHelpActionPath24a = handleGetOnlineHelpActionPath();
861            // onlineHelpActionPath has no post constraints
862            this.__onlineHelpActionPath24a = onlineHelpActionPath24a;
863            if (isMetafacadePropertyCachingEnabled())
864            {
865                this.__onlineHelpActionPath24aSet = true;
866            }
867        }
868        return onlineHelpActionPath24a;
869    }
870
871   /**
872    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getOnlineHelpPagePath()
873    * @return String
874    */
875    protected abstract String handleGetOnlineHelpPagePath();
876
877    private String __onlineHelpPagePath25a;
878    private boolean __onlineHelpPagePath25aSet = false;
879
880    /**
881     * The full path to this entitiy's online help page. The returned String does not have a suffix
882     * such as '.jsp'.
883     * @return (String)handleGetOnlineHelpPagePath()
884     */
885    public final String getOnlineHelpPagePath()
886    {
887        String onlineHelpPagePath25a = this.__onlineHelpPagePath25a;
888        if (!this.__onlineHelpPagePath25aSet)
889        {
890            // onlineHelpPagePath has no pre constraints
891            onlineHelpPagePath25a = handleGetOnlineHelpPagePath();
892            // onlineHelpPagePath has no post constraints
893            this.__onlineHelpPagePath25a = onlineHelpPagePath25a;
894            if (isMetafacadePropertyCachingEnabled())
895            {
896                this.__onlineHelpPagePath25aSet = true;
897            }
898        }
899        return onlineHelpPagePath25a;
900    }
901
902   /**
903    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#isTableExportable()
904    * @return boolean
905    */
906    protected abstract boolean handleIsTableExportable();
907
908    private boolean __tableExportable26a;
909    private boolean __tableExportable26aSet = false;
910
911    /**
912     * True if it is possible to export the table data to XML, CSV, PDF or Excel format.
913     * @return (boolean)handleIsTableExportable()
914     */
915    public final boolean isTableExportable()
916    {
917        boolean tableExportable26a = this.__tableExportable26a;
918        if (!this.__tableExportable26aSet)
919        {
920            // tableExportable has no pre constraints
921            tableExportable26a = handleIsTableExportable();
922            // tableExportable has no post constraints
923            this.__tableExportable26a = tableExportable26a;
924            if (isMetafacadePropertyCachingEnabled())
925            {
926                this.__tableExportable26aSet = true;
927            }
928        }
929        return tableExportable26a;
930    }
931
932   /**
933    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getTableExportTypes()
934    * @return String
935    */
936    protected abstract String handleGetTableExportTypes();
937
938    private String __tableExportTypes27a;
939    private boolean __tableExportTypes27aSet = false;
940
941    /**
942     * Tthe available types of export in a single String instance.
943     * @return (String)handleGetTableExportTypes()
944     */
945    public final String getTableExportTypes()
946    {
947        String tableExportTypes27a = this.__tableExportTypes27a;
948        if (!this.__tableExportTypes27aSet)
949        {
950            // tableExportTypes has no pre constraints
951            tableExportTypes27a = handleGetTableExportTypes();
952            // tableExportTypes has no post constraints
953            this.__tableExportTypes27a = tableExportTypes27a;
954            if (isMetafacadePropertyCachingEnabled())
955            {
956                this.__tableExportTypes27aSet = true;
957            }
958        }
959        return tableExportTypes27a;
960    }
961
962   /**
963    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#getTableMaxRows()
964    * @return int
965    */
966    protected abstract int handleGetTableMaxRows();
967
968    private int __tableMaxRows28a;
969    private boolean __tableMaxRows28aSet = false;
970
971    /**
972     * The maximum number of rows to be displayed in the table at the same time. This is also known
973     * as the page size. A value of zero or less will display all data in the same table (therefore
974     * also on the same page).
975     * @return (int)handleGetTableMaxRows()
976     */
977    public final int getTableMaxRows()
978    {
979        int tableMaxRows28a = this.__tableMaxRows28a;
980        if (!this.__tableMaxRows28aSet)
981        {
982            // tableMaxRows has no pre constraints
983            tableMaxRows28a = handleGetTableMaxRows();
984            // tableMaxRows has no post constraints
985            this.__tableMaxRows28a = tableMaxRows28a;
986            if (isMetafacadePropertyCachingEnabled())
987            {
988                this.__tableMaxRows28aSet = true;
989            }
990        }
991        return tableMaxRows28a;
992    }
993
994   /**
995    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#isTableSortable()
996    * @return boolean
997    */
998    protected abstract boolean handleIsTableSortable();
999
1000    private boolean __tableSortable29a;
1001    private boolean __tableSortable29aSet = false;
1002
1003    /**
1004     * True if it is possible to sort the columns of the table.
1005     * @return (boolean)handleIsTableSortable()
1006     */
1007    public final boolean isTableSortable()
1008    {
1009        boolean tableSortable29a = this.__tableSortable29a;
1010        if (!this.__tableSortable29aSet)
1011        {
1012            // tableSortable has no pre constraints
1013            tableSortable29a = handleIsTableSortable();
1014            // tableSortable has no post constraints
1015            this.__tableSortable29a = tableSortable29a;
1016            if (isMetafacadePropertyCachingEnabled())
1017            {
1018                this.__tableSortable29aSet = true;
1019            }
1020        }
1021        return tableSortable29a;
1022    }
1023
1024   /**
1025    * @see org.andromda.cartridges.bpm4struts.metafacades.StrutsManageableEntity#isMultipartFormData()
1026    * @return boolean
1027    */
1028    protected abstract boolean handleIsMultipartFormData();
1029
1030    private boolean __multipartFormData30a;
1031    private boolean __multipartFormData30aSet = false;
1032
1033    /**
1034     * True is this action is supposed to be rendered as enctype="multipart/form-data" on the page
1035     * form.
1036     * @return (boolean)handleIsMultipartFormData()
1037     */
1038    public final boolean isMultipartFormData()
1039    {
1040        boolean multipartFormData30a = this.__multipartFormData30a;
1041        if (!this.__multipartFormData30aSet)
1042        {
1043            // multipartFormData has no pre constraints
1044            multipartFormData30a = handleIsMultipartFormData();
1045            // multipartFormData has no post constraints
1046            this.__multipartFormData30a = multipartFormData30a;
1047            if (isMetafacadePropertyCachingEnabled())
1048            {
1049                this.__multipartFormData30aSet = true;
1050            }
1051        }
1052        return multipartFormData30a;
1053    }
1054
1055    /**
1056     * @return true
1057     * @see ManageableEntity
1058     */
1059    public boolean isManageableEntityMetaType()
1060    {
1061        return true;
1062    }
1063
1064    /**
1065     * @return true
1066     * @see org.andromda.metafacades.uml.Entity
1067     */
1068    public boolean isEntityMetaType()
1069    {
1070        return true;
1071    }
1072
1073    /**
1074     * @return true
1075     * @see ClassifierFacade
1076     */
1077    public boolean isClassifierFacadeMetaType()
1078    {
1079        return true;
1080    }
1081
1082    /**
1083     * @return true
1084     * @see GeneralizableElementFacade
1085     */
1086    public boolean isGeneralizableElementFacadeMetaType()
1087    {
1088        return true;
1089    }
1090
1091    /**
1092     * @return true
1093     * @see ModelElementFacade
1094     */
1095    public boolean isModelElementFacadeMetaType()
1096    {
1097        return true;
1098    }
1099
1100    // ----------- delegates to ManageableEntity ------------
1101    /**
1102     * Return the attribute which name matches the parameter
1103     * @see ClassifierFacade#findAttribute(String name)
1104     */
1105    public AttributeFacade findAttribute(String name)
1106    {
1107        return this.getSuperManageableEntity().findAttribute(name);
1108    }
1109
1110    /**
1111     * Those abstraction dependencies for which this classifier is the client.
1112     * @see ClassifierFacade#getAbstractions()
1113     */
1114    public Collection<ClassifierFacade> getAbstractions()
1115    {
1116        return this.getSuperManageableEntity().getAbstractions();
1117    }
1118
1119    /**
1120     * Lists all classes associated to this one and any ancestor classes (through generalization).
1121     * There will be no duplicates. The order of the elements is predictable.
1122     * @see ClassifierFacade#getAllAssociatedClasses()
1123     */
1124    public Collection<ClassifierFacade> getAllAssociatedClasses()
1125    {
1126        return this.getSuperManageableEntity().getAllAssociatedClasses();
1127    }
1128
1129    /**
1130     * A collection containing all 'properties' of the classifier and its ancestors.  Properties are
1131     * any attributes and navigable connecting association ends.
1132     * @see ClassifierFacade#getAllProperties()
1133     */
1134    public Collection<ModelElementFacade> getAllProperties()
1135    {
1136        return this.getSuperManageableEntity().getAllProperties();
1137    }
1138
1139    /**
1140     * A collection containing all required and/or read-only 'properties' of the classifier and its
1141     * ancestors. Properties are any attributes and navigable connecting association ends.
1142     * @see ClassifierFacade#getAllRequiredConstructorParameters()
1143     */
1144    public Collection<ModelElementFacade> getAllRequiredConstructorParameters()
1145    {
1146        return this.getSuperManageableEntity().getAllRequiredConstructorParameters();
1147    }
1148
1149    /**
1150     * Gets the array type for this classifier.  If this classifier already represents an array, it
1151     * just returns itself.
1152     * @see ClassifierFacade#getArray()
1153     */
1154    public ClassifierFacade getArray()
1155    {
1156        return this.getSuperManageableEntity().getArray();
1157    }
1158
1159    /**
1160     * The name of the classifier as an array.
1161     * @see ClassifierFacade#getArrayName()
1162     */
1163    public String getArrayName()
1164    {
1165        return this.getSuperManageableEntity().getArrayName();
1166    }
1167
1168    /**
1169     * Lists the classes associated to this one, there is no repitition of classes. The order of the
1170     * elements is predictable.
1171     * @see ClassifierFacade#getAssociatedClasses()
1172     */
1173    public Collection<ClassifierFacade> getAssociatedClasses()
1174    {
1175        return this.getSuperManageableEntity().getAssociatedClasses();
1176    }
1177
1178    /**
1179     * Gets the association ends belonging to a classifier.
1180     * @see ClassifierFacade#getAssociationEnds()
1181     */
1182    public List<AssociationEndFacade> getAssociationEnds()
1183    {
1184        return this.getSuperManageableEntity().getAssociationEnds();
1185    }
1186
1187    /**
1188     * Gets the attributes that belong to the classifier.
1189     * @see ClassifierFacade#getAttributes()
1190     */
1191    public List<AttributeFacade> getAttributes()
1192    {
1193        return this.getSuperManageableEntity().getAttributes();
1194    }
1195
1196    /**
1197     * Gets all attributes for the classifier and if 'follow' is true goes up the inheritance
1198     * hierarchy and gets the attributes from the super classes as well.
1199     * @see ClassifierFacade#getAttributes(boolean follow)
1200     */
1201    public List<AttributeFacade> getAttributes(boolean follow)
1202    {
1203        return this.getSuperManageableEntity().getAttributes(follow);
1204    }
1205
1206    /**
1207     * The fully qualified name of the classifier as an array.
1208     * @see ClassifierFacade#getFullyQualifiedArrayName()
1209     */
1210    public String getFullyQualifiedArrayName()
1211    {
1212        return this.getSuperManageableEntity().getFullyQualifiedArrayName();
1213    }
1214
1215    /**
1216     * Returns all those operations that could be implemented at this classifier's level. This means
1217     * the operations owned by this classifier as well as any realized interface's operations
1218     * (recursively) in case this classifier itself is not already an interface, or generalized when
1219     * this classifier is an interface.
1220     * @see ClassifierFacade#getImplementationOperations()
1221     */
1222    public Collection<OperationFacade> getImplementationOperations()
1223    {
1224        return this.getSuperManageableEntity().getImplementationOperations();
1225    }
1226
1227    /**
1228     * A comma separated list of the fully qualified names of all implemented interfaces.
1229     * @see ClassifierFacade#getImplementedInterfaceList()
1230     */
1231    public String getImplementedInterfaceList()
1232    {
1233        return this.getSuperManageableEntity().getImplementedInterfaceList();
1234    }
1235
1236    /**
1237     * Those attributes that are scoped to an instance of this class.
1238     * @see ClassifierFacade#getInstanceAttributes()
1239     */
1240    public Collection<AttributeFacade> getInstanceAttributes()
1241    {
1242        return this.getSuperManageableEntity().getInstanceAttributes();
1243    }
1244
1245    /**
1246     * Those operations that are scoped to an instance of this class.
1247     * @see ClassifierFacade#getInstanceOperations()
1248     */
1249    public List<OperationFacade> getInstanceOperations()
1250    {
1251        return this.getSuperManageableEntity().getInstanceOperations();
1252    }
1253
1254    /**
1255     * Those interfaces that are abstractions of this classifier, this basically means this
1256     * classifier realizes them.
1257     * @see ClassifierFacade#getInterfaceAbstractions()
1258     */
1259    public Collection<ClassifierFacade> getInterfaceAbstractions()
1260    {
1261        return this.getSuperManageableEntity().getInterfaceAbstractions();
1262    }
1263
1264    /**
1265     * A String representing a new Constructor declaration for this classifier type to be used in a
1266     * Java environment.
1267     * @see ClassifierFacade#getJavaNewString()
1268     */
1269    public String getJavaNewString()
1270    {
1271        return this.getSuperManageableEntity().getJavaNewString();
1272    }
1273
1274    /**
1275     * A String representing the null-value for this classifier type to be used in a Java
1276     * environment.
1277     * @see ClassifierFacade#getJavaNullString()
1278     */
1279    public String getJavaNullString()
1280    {
1281        return this.getSuperManageableEntity().getJavaNullString();
1282    }
1283
1284    /**
1285     * The other ends of this classifier's association ends which are navigable.
1286     * @see ClassifierFacade#getNavigableConnectingEnds()
1287     */
1288    public Collection<AssociationEndFacade> getNavigableConnectingEnds()
1289    {
1290        return this.getSuperManageableEntity().getNavigableConnectingEnds();
1291    }
1292
1293    /**
1294     * Get the other ends of this classifier's association ends which are navigable and if 'follow'
1295     * is true goes up the inheritance hierarchy and gets the super association ends as well.
1296     * @see ClassifierFacade#getNavigableConnectingEnds(boolean follow)
1297     */
1298    public List<AssociationEndFacade> getNavigableConnectingEnds(boolean follow)
1299    {
1300        return this.getSuperManageableEntity().getNavigableConnectingEnds(follow);
1301    }
1302
1303    /**
1304     * Assuming that the classifier is an array, this will return the non array type of the
1305     * classifier from
1306     * the model.  If the classifier is NOT an array, it will just return itself.
1307     * @see ClassifierFacade#getNonArray()
1308     */
1309    public ClassifierFacade getNonArray()
1310    {
1311        return this.getSuperManageableEntity().getNonArray();
1312    }
1313
1314    /**
1315     * The attributes from this classifier in the form of an operation call (this example would be
1316     * in Java): '(String attributeOne, String attributeTwo).  If there were no attributes on the
1317     * classifier, the result would be an empty '()'.
1318     * @see ClassifierFacade#getOperationCallFromAttributes()
1319     */
1320    public String getOperationCallFromAttributes()
1321    {
1322        return this.getSuperManageableEntity().getOperationCallFromAttributes();
1323    }
1324
1325    /**
1326     * The operations owned by this classifier.
1327     * @see ClassifierFacade#getOperations()
1328     */
1329    public List<OperationFacade> getOperations()
1330    {
1331        return this.getSuperManageableEntity().getOperations();
1332    }
1333
1334    /**
1335     * A collection containing all 'properties' of the classifier.  Properties are any attributes
1336     * and navigable connecting association ends.
1337     * @see ClassifierFacade#getProperties()
1338     */
1339    public List<ModelElementFacade> getProperties()
1340    {
1341        return this.getSuperManageableEntity().getProperties();
1342    }
1343
1344    /**
1345     * Gets all properties (attributes and navigable association ends) for the classifier and if
1346     * 'follow' is true goes up the inheritance hierarchy and gets the properties from the super
1347     * classes as well.
1348     * @see ClassifierFacade#getProperties(boolean follow)
1349     */
1350    public List getProperties(boolean follow)
1351    {
1352        return this.getSuperManageableEntity().getProperties(follow);
1353    }
1354
1355    /**
1356     * A collection containing all required and/or read-only 'properties' of the classifier. 
1357     * Properties are any attributes and navigable connecting association ends.
1358     * @see ClassifierFacade#getRequiredConstructorParameters()
1359     */
1360    public Collection<ModelElementFacade> getRequiredConstructorParameters()
1361    {
1362        return this.getSuperManageableEntity().getRequiredConstructorParameters();
1363    }
1364
1365    /**
1366     * Returns the serial version UID of the underlying model element.
1367     * @see ClassifierFacade#getSerialVersionUID()
1368     */
1369    public long getSerialVersionUID()
1370    {
1371        return this.getSuperManageableEntity().getSerialVersionUID();
1372    }
1373
1374    /**
1375     * Those attributes that are scoped to the definition of this class.
1376     * @see ClassifierFacade#getStaticAttributes()
1377     */
1378    public Collection<AttributeFacade> getStaticAttributes()
1379    {
1380        return this.getSuperManageableEntity().getStaticAttributes();
1381    }
1382
1383    /**
1384     * Those operations that are scoped to the definition of this class.
1385     * @see ClassifierFacade#getStaticOperations()
1386     */
1387    public List<OperationFacade> getStaticOperations()
1388    {
1389        return this.getSuperManageableEntity().getStaticOperations();
1390    }
1391
1392    /**
1393     * This class' superclass, returns the generalization if it is a ClassifierFacade, null
1394     * otherwise.
1395     * @see ClassifierFacade#getSuperClass()
1396     */
1397    public ClassifierFacade getSuperClass()
1398    {
1399        return this.getSuperManageableEntity().getSuperClass();
1400    }
1401
1402    /**
1403     * The wrapper name for this classifier if a mapped type has a defined wrapper class (ie. 'long'
1404     * maps to 'Long').  If the classifier doesn't have a wrapper defined for it, this method will
1405     * return a null.  Note that wrapper mappings must be defined for the namespace by defining the
1406     * 'wrapperMappingsUri', this property must point to the location of the mappings file which
1407     * maps the primitives to wrapper types.
1408     * @see ClassifierFacade#getWrapperName()
1409     */
1410    public String getWrapperName()
1411    {
1412        return this.getSuperManageableEntity().getWrapperName();
1413    }
1414
1415    /**
1416     * Indicates if this classifier is 'abstract'.
1417     * @see ClassifierFacade#isAbstract()
1418     */
1419    public boolean isAbstract()
1420    {
1421        return this.getSuperManageableEntity().isAbstract();
1422    }
1423
1424    /**
1425     * True if this classifier represents an array type. False otherwise.
1426     * @see ClassifierFacade#isArrayType()
1427     */
1428    public boolean isArrayType()
1429    {
1430        return this.getSuperManageableEntity().isArrayType();
1431    }
1432
1433    /**
1434     * True if the ClassifierFacade is an AssociationClass.
1435     * @see ClassifierFacade#isAssociationClass()
1436     */
1437    public boolean isAssociationClass()
1438    {
1439        return this.getSuperManageableEntity().isAssociationClass();
1440    }
1441
1442    /**
1443     * Returns true if this type represents a Blob type.
1444     * @see ClassifierFacade#isBlobType()
1445     */
1446    public boolean isBlobType()
1447    {
1448        return this.getSuperManageableEntity().isBlobType();
1449    }
1450
1451    /**
1452     * Indicates if this type represents a boolean type or not.
1453     * @see ClassifierFacade#isBooleanType()
1454     */
1455    public boolean isBooleanType()
1456    {
1457        return this.getSuperManageableEntity().isBooleanType();
1458    }
1459
1460    /**
1461     * Indicates if this type represents a char, Character, or java.lang.Character type or not.
1462     * @see ClassifierFacade#isCharacterType()
1463     */
1464    public boolean isCharacterType()
1465    {
1466        return this.getSuperManageableEntity().isCharacterType();
1467    }
1468
1469    /**
1470     * Returns true if this type represents a Clob type.
1471     * @see ClassifierFacade#isClobType()
1472     */
1473    public boolean isClobType()
1474    {
1475        return this.getSuperManageableEntity().isClobType();
1476    }
1477
1478    /**
1479     * True if this classifier represents a collection type. False otherwise.
1480     * @see ClassifierFacade#isCollectionType()
1481     */
1482    public boolean isCollectionType()
1483    {
1484        return this.getSuperManageableEntity().isCollectionType();
1485    }
1486
1487    /**
1488     * True/false depending on whether or not this classifier represents a datatype. A data type is
1489     * a type whose instances are identified only by their value. A data type may contain attributes
1490     * to support the modeling of structured data types.
1491     * @see ClassifierFacade#isDataType()
1492     */
1493    public boolean isDataType()
1494    {
1495        return this.getSuperManageableEntity().isDataType();
1496    }
1497
1498    /**
1499     * True when this classifier is a date type.
1500     * @see ClassifierFacade#isDateType()
1501     */
1502    public boolean isDateType()
1503    {
1504        return this.getSuperManageableEntity().isDateType();
1505    }
1506
1507    /**
1508     * Indicates if this type represents a Double type or not.
1509     * @see ClassifierFacade#isDoubleType()
1510     */
1511    public boolean isDoubleType()
1512    {
1513        return this.getSuperManageableEntity().isDoubleType();
1514    }
1515
1516    /**
1517     * Indicates whether or not this classifier represents an "EmbeddedValue'.
1518     * @see ClassifierFacade#isEmbeddedValue()
1519     */
1520    public boolean isEmbeddedValue()
1521    {
1522        return this.getSuperManageableEntity().isEmbeddedValue();
1523    }
1524
1525    /**
1526     * True if this classifier is in fact marked as an enumeration.
1527     * @see ClassifierFacade#isEnumeration()
1528     */
1529    public boolean isEnumeration()
1530    {
1531        return this.getSuperManageableEntity().isEnumeration();
1532    }
1533
1534    /**
1535     * Returns true if this type represents a 'file' type.
1536     * @see ClassifierFacade#isFileType()
1537     */
1538    public boolean isFileType()
1539    {
1540        return this.getSuperManageableEntity().isFileType();
1541    }
1542
1543    /**
1544     * Indicates if this type represents a Float type or not.
1545     * @see ClassifierFacade#isFloatType()
1546     */
1547    public boolean isFloatType()
1548    {
1549        return this.getSuperManageableEntity().isFloatType();
1550    }
1551
1552    /**
1553     * Indicates if this type represents an int or Integer or java.lang.Integer type or not.
1554     * @see ClassifierFacade#isIntegerType()
1555     */
1556    public boolean isIntegerType()
1557    {
1558        return this.getSuperManageableEntity().isIntegerType();
1559    }
1560
1561    /**
1562     * True/false depending on whether or not this Classifier represents an interface.
1563     * @see ClassifierFacade#isInterface()
1564     */
1565    public boolean isInterface()
1566    {
1567        return this.getSuperManageableEntity().isInterface();
1568    }
1569
1570    /**
1571     * True if this classifier cannot be extended and represent a leaf in the inheritance tree.
1572     * @see ClassifierFacade#isLeaf()
1573     */
1574    public boolean isLeaf()
1575    {
1576        return this.getSuperManageableEntity().isLeaf();
1577    }
1578
1579    /**
1580     * True if this classifier represents a list type. False otherwise.
1581     * @see ClassifierFacade#isListType()
1582     */
1583    public boolean isListType()
1584    {
1585        return this.getSuperManageableEntity().isListType();
1586    }
1587
1588    /**
1589     * Indicates if this type represents a Long type or not.
1590     * @see ClassifierFacade#isLongType()
1591     */
1592    public boolean isLongType()
1593    {
1594        return this.getSuperManageableEntity().isLongType();
1595    }
1596
1597    /**
1598     * Indicates whether or not this classifier represents a Map type.
1599     * @see ClassifierFacade#isMapType()
1600     */
1601    public boolean isMapType()
1602    {
1603        return this.getSuperManageableEntity().isMapType();
1604    }
1605
1606    /**
1607     * Indicates whether or not this classifier represents a primitive type.
1608     * @see ClassifierFacade#isPrimitive()
1609     */
1610    public boolean isPrimitive()
1611    {
1612        return this.getSuperManageableEntity().isPrimitive();
1613    }
1614
1615    /**
1616     * True if this classifier represents a set type. False otherwise.
1617     * @see ClassifierFacade#isSetType()
1618     */
1619    public boolean isSetType()
1620    {
1621        return this.getSuperManageableEntity().isSetType();
1622    }
1623
1624    /**
1625     * Indicates whether or not this classifier represents a string type.
1626     * @see ClassifierFacade#isStringType()
1627     */
1628    public boolean isStringType()
1629    {
1630        return this.getSuperManageableEntity().isStringType();
1631    }
1632
1633    /**
1634     * Indicates whether or not this classifier represents a time type.
1635     * @see ClassifierFacade#isTimeType()
1636     */
1637    public boolean isTimeType()
1638    {
1639        return this.getSuperManageableEntity().isTimeType();
1640    }
1641
1642    /**
1643     * Returns true if this type is a wrapped primitive type.
1644     * @see ClassifierFacade#isWrappedPrimitive()
1645     */
1646    public boolean isWrappedPrimitive()
1647    {
1648        return this.getSuperManageableEntity().isWrappedPrimitive();
1649    }
1650
1651    /**
1652     * Returns a collection of all entities this entity and its ancestors have a relation to.
1653     * @see org.andromda.metafacades.uml.Entity#getAllEntityReferences()
1654     */
1655    public Collection<DependencyFacade> getAllEntityReferences()
1656    {
1657        return this.getSuperManageableEntity().getAllEntityReferences();
1658    }
1659
1660    /**
1661     * Gets a comma separated list of attribute names.  If 'follow' is true, will travel up the
1662     * inheritance hiearchy to include attributes in parent entities as well.  If 'withIdentifiers'
1663     * is true, will include identifiers.
1664     * @see org.andromda.metafacades.uml.Entity#getAttributeNameList(boolean follow, boolean withIdentifiers)
1665     */
1666    public String getAttributeNameList(boolean follow, boolean withIdentifiers)
1667    {
1668        return this.getSuperManageableEntity().getAttributeNameList(follow, withIdentifiers);
1669    }
1670
1671    /**
1672     * Gets a comma separated list of attribute names.  If 'follow' is true, will travel up the
1673     * inheritance hiearchy to include attributes in parent entities as well.  If 'withIdentifiers'
1674     * is true, will include identifiers  and  if 'withDerived' is set to true, will include derived
1675     * attributes.
1676     * @see org.andromda.metafacades.uml.Entity#getAttributeNameList(boolean follow, boolean withIdentifiers, boolean withDerived)
1677     */
1678    public String getAttributeNameList(boolean follow, boolean withIdentifiers, boolean withDerived)
1679    {
1680        return this.getSuperManageableEntity().getAttributeNameList(follow, withIdentifiers, withDerived);
1681    }
1682
1683    /**
1684     * Gets a comma separated list of attribute types.  If 'follow' is true, will travel up the
1685     * inheritance hierarchy to include attributes in parent entities as well.  If 'withIdentifiers'
1686     * is true, will include identifiers.
1687     * @see org.andromda.metafacades.uml.Entity#getAttributeTypeList(boolean follow, boolean withIdentifiers)
1688     */
1689    public String getAttributeTypeList(boolean follow, boolean withIdentifiers)
1690    {
1691        return this.getSuperManageableEntity().getAttributeTypeList(follow, withIdentifiers);
1692    }
1693
1694    /**
1695     * Gets all attributes of the entity, and optionally retieves the super entities attributes as
1696     * well as excludes the entity's identifiers if 'withIdentifiers' is set to false.
1697     * @see org.andromda.metafacades.uml.Entity#getAttributes(boolean follow, boolean withIdentifiers)
1698     */
1699    public Collection<AttributeFacade> getAttributes(boolean follow, boolean withIdentifiers)
1700    {
1701        return this.getSuperManageableEntity().getAttributes(follow, withIdentifiers);
1702    }
1703
1704    /**
1705     * Gets all attributes of the entity, and optionally retieves the super entities attributes as
1706     * well as excludes the entity's identifiers if 'withIdentifiers' is set to false and exclude
1707     * derived attributes if 'withDerived' is set to false.
1708     * @see org.andromda.metafacades.uml.Entity#getAttributes(boolean follow, boolean withIdentifiers, boolean withDerived)
1709     */
1710    public Collection<AttributeFacade> getAttributes(boolean follow, boolean withIdentifiers, boolean withDerived)
1711    {
1712        return this.getSuperManageableEntity().getAttributes(follow, withIdentifiers, withDerived);
1713    }
1714
1715    /**
1716     * All business operations of the entity, these include any operations that aren't queries.
1717     * @see org.andromda.metafacades.uml.Entity#getBusinessOperations()
1718     */
1719    public Collection<OperationFacade> getBusinessOperations()
1720    {
1721        return this.getSuperManageableEntity().getBusinessOperations();
1722    }
1723
1724    /**
1725     * Gets any children association ends (i.e. entity association ends that are participants in an
1726     * association with this entity and this entity has composite aggregation defined for those
1727     * associations).
1728     * @see org.andromda.metafacades.uml.Entity#getChildEnds()
1729     */
1730    public Collection<EntityAssociationEnd> getChildEnds()
1731    {
1732        return this.getSuperManageableEntity().getChildEnds();
1733    }
1734
1735    /**
1736     * The embedded values belonging to this entity.
1737     * @see org.andromda.metafacades.uml.Entity#getEmbeddedValues()
1738     */
1739    public Collection<AttributeFacade> getEmbeddedValues()
1740    {
1741        return this.getSuperManageableEntity().getEmbeddedValues();
1742    }
1743
1744    /**
1745     * All entities referenced by this entity.
1746     * @see org.andromda.metafacades.uml.Entity#getEntityReferences()
1747     */
1748    public Collection<DependencyFacade> getEntityReferences()
1749    {
1750        return this.getSuperManageableEntity().getEntityReferences();
1751    }
1752
1753    /**
1754     * The full name of the type of the identifier. If composite identifier add the PK sufix to the
1755     * class name. If not, retorns the fully qualified name of the identifier.
1756     * @see org.andromda.metafacades.uml.Entity#getFullyQualifiedIdentifierTypeName()
1757     */
1758    public String getFullyQualifiedIdentifierTypeName()
1759    {
1760        return this.getSuperManageableEntity().getFullyQualifiedIdentifierTypeName();
1761    }
1762
1763    /**
1764     * Gets all the associationEnds of this entity marked with the identifiers stereotype.
1765     * @see org.andromda.metafacades.uml.Entity#getIdentifierAssociationEnds()
1766     */
1767    public Collection<AssociationEndFacade> getIdentifierAssociationEnds()
1768    {
1769        return this.getSuperManageableEntity().getIdentifierAssociationEnds();
1770    }
1771
1772    /**
1773     * The getter name of the identifier.
1774     * @see org.andromda.metafacades.uml.Entity#getIdentifierGetterName()
1775     */
1776    public String getIdentifierGetterName()
1777    {
1778        return this.getSuperManageableEntity().getIdentifierGetterName();
1779    }
1780
1781    /**
1782     * The name of the identifier. If composite identifier add the Pk suffix. If not composite
1783     * returns the attribute name of the identifier.
1784     * @see org.andromda.metafacades.uml.Entity#getIdentifierName()
1785     */
1786    public String getIdentifierName()
1787    {
1788        return this.getSuperManageableEntity().getIdentifierName();
1789    }
1790
1791    /**
1792     * The setter name of the identifier.
1793     * @see org.andromda.metafacades.uml.Entity#getIdentifierSetterName()
1794     */
1795    public String getIdentifierSetterName()
1796    {
1797        return this.getSuperManageableEntity().getIdentifierSetterName();
1798    }
1799
1800    /**
1801     * The name of the type of the identifier. If composite identifier add the PK suffix to the
1802     * class name. If not, returns the name of the identifier.
1803     * @see org.andromda.metafacades.uml.Entity#getIdentifierTypeName()
1804     */
1805    public String getIdentifierTypeName()
1806    {
1807        return this.getSuperManageableEntity().getIdentifierTypeName();
1808    }
1809
1810    /**
1811     * All the attributes of the entity which make up its identifier (primary key).  Will search any
1812     * super classes as well.  If no identifiers exist, a default identifier will be created if the
1813     * allowDefaultIdentifiers property is set to true.
1814     * @see org.andromda.metafacades.uml.Entity#getIdentifiers()
1815     */
1816    public Collection<ModelElementFacade> getIdentifiers()
1817    {
1818        return this.getSuperManageableEntity().getIdentifiers();
1819    }
1820
1821    /**
1822     * Gets all identifiers for an entity. If 'follow' is true, and if no identifiers can be found
1823     * on the entity, a search up the inheritance chain will be performed, and the identifiers from
1824     * the first super class having them will be used.   If no identifiers exist, a default
1825     * identifier will be created if the allowDefaultIdentifiers property is set to true.
1826     * Identifiers can be on attributes or associations (composite primary key).
1827     * @see org.andromda.metafacades.uml.Entity#getIdentifiers(boolean follow)
1828     */
1829    public Collection<ModelElementFacade> getIdentifiers(boolean follow)
1830    {
1831        return this.getSuperManageableEntity().getIdentifiers(follow);
1832    }
1833
1834    /**
1835     * The maximum length a SQL name may be.
1836     * @see org.andromda.metafacades.uml.Entity#getMaxSqlNameLength()
1837     */
1838    public short getMaxSqlNameLength()
1839    {
1840        return this.getSuperManageableEntity().getMaxSqlNameLength();
1841    }
1842
1843    /**
1844     * Gets the attributes as a list within an operation call, optionally including the type names
1845     * and the identifier attributes.
1846     * @see org.andromda.metafacades.uml.Entity#getOperationCallFromAttributes(boolean withIdentifiers)
1847     */
1848    public String getOperationCallFromAttributes(boolean withIdentifiers)
1849    {
1850        return this.getSuperManageableEntity().getOperationCallFromAttributes(withIdentifiers);
1851    }
1852
1853    /**
1854     * Gets the attributes as a list within an operation call.  If 'withTypeNames' is true, it will
1855     * include the type names, if 'withIdentifiers' is true it will include the identifiers.  If
1856     * 'follow' is true it will follow the inheritance hierarchy and get the attributes of the super
1857     * class as well.
1858     * @see org.andromda.metafacades.uml.Entity#getOperationCallFromAttributes(boolean withIdentifiers, boolean follow)
1859     */
1860    public String getOperationCallFromAttributes(boolean withIdentifiers, boolean follow)
1861    {
1862        return this.getSuperManageableEntity().getOperationCallFromAttributes(withIdentifiers, follow);
1863    }
1864
1865    /**
1866     * Returns the parent association end of this entity if its a child entity.  The parent is the
1867     * entity that is the participant the association that has composite aggregation defined.  Will
1868     * return null if the entity has no parent.
1869     * @see org.andromda.metafacades.uml.Entity#getParentEnd()
1870     */
1871    public EntityAssociationEnd getParentEnd()
1872    {
1873        return this.getSuperManageableEntity().getParentEnd();
1874    }
1875
1876    /**
1877     * Gets all properties of this entity, this includes the attributes and navigable association
1878     * ends of the entity.  The 'follow' flag indcates whether or not the inheritance hierarchy
1879     * should be followed when getting all the properties.  The 'withIdentifiers' flag indicates
1880     * whether or not identifiers should be included in the collection of properties.
1881     * @see org.andromda.metafacades.uml.Entity#getProperties(boolean follow, boolean withIdentifiers)
1882     */
1883    public Collection<ModelElementFacade> getProperties(boolean follow, boolean withIdentifiers)
1884    {
1885        return this.getSuperManageableEntity().getProperties(follow, withIdentifiers);
1886    }
1887
1888    /**
1889     * Returns all the operations that can perform queries on the entity.
1890     * @see org.andromda.metafacades.uml.Entity#getQueryOperations()
1891     */
1892    public Collection<EntityQueryOperation> getQueryOperations()
1893    {
1894        return this.getSuperManageableEntity().getQueryOperations();
1895    }
1896
1897    /**
1898     * Gets all query operations for an entity. If 'follow' is true, and if no query operations can
1899     * be found on the entity, a search up the inheritance chain will be performed, and the
1900     * identifiers from the first super class having them will be used.   If no identifiers exist, a
1901     * default identifier will be created if the allowDefaultIdentifiers property is set to true.
1902     * @see org.andromda.metafacades.uml.Entity#getQueryOperations(boolean follow)
1903     */
1904    public Collection<OperationFacade> getQueryOperations(boolean follow)
1905    {
1906        return this.getSuperManageableEntity().getQueryOperations(follow);
1907    }
1908
1909    /**
1910     * Gets a comma separated list of required attribute names.  If 'follow' is true, will travel up
1911     * the inheritance hierarchy to include attributes in parent entities as well.  If
1912     * 'withIdentifiers' is true, will include identifiers.
1913     * @see org.andromda.metafacades.uml.Entity#getRequiredAttributeNameList(boolean follow, boolean withIdentifiers)
1914     */
1915    public String getRequiredAttributeNameList(boolean follow, boolean withIdentifiers)
1916    {
1917        return this.getSuperManageableEntity().getRequiredAttributeNameList(follow, withIdentifiers);
1918    }
1919
1920    /**
1921     * Gets a comma separated list of attribute types with are required.  If 'follow' is true, will
1922     * travel up the inheritance hierarchy to include attributes in parent entities as well.  If
1923     * 'withIdentifiers' is true, will include identifiers.
1924     * @see org.andromda.metafacades.uml.Entity#getRequiredAttributeTypeList(boolean follow, boolean withIdentifiers)
1925     */
1926    public String getRequiredAttributeTypeList(boolean follow, boolean withIdentifiers)
1927    {
1928        return this.getSuperManageableEntity().getRequiredAttributeTypeList(follow, withIdentifiers);
1929    }
1930
1931    /**
1932     * Returns all attributes that are specified as 'required' in the model.  If 'follow' is true,
1933     * then required attributes in super classes will also be returned, if false, just the ones
1934     * directly on the entity will be returned.  If 'withIdentifiers' is true, the identifiers will
1935     * be include, if false, no identifiers will be included.
1936     * @see org.andromda.metafacades.uml.Entity#getRequiredAttributes(boolean follow, boolean withIdentifiers)
1937     */
1938    public Collection<AttributeFacade> getRequiredAttributes(boolean follow, boolean withIdentifiers)
1939    {
1940        return this.getSuperManageableEntity().getRequiredAttributes(follow, withIdentifiers);
1941    }
1942
1943    /**
1944     * Gets all required properties for this entity.  These consist of any required attributes as
1945     * well as navigable associations that are marked as 'required'.  If 'follow' is true, then the
1946     * inheritance hierchy will be followed and all required properties from super classes will be
1947     * included as well.
1948     * If 'withIdentifiers' is true, the identifiers will be include, if false, no identifiers will
1949     * be included.
1950     * @see org.andromda.metafacades.uml.Entity#getRequiredProperties(boolean follow, boolean withIdentifiers)
1951     */
1952    public Collection<ModelElementFacade> getRequiredProperties(boolean follow, boolean withIdentifiers)
1953    {
1954        return this.getSuperManageableEntity().getRequiredProperties(follow, withIdentifiers);
1955    }
1956
1957    /**
1958     * Creates a comma separated list of the required property names.
1959     * @see org.andromda.metafacades.uml.Entity#getRequiredPropertyNameList(boolean follow, boolean withIdentifiers)
1960     */
1961    public String getRequiredPropertyNameList(boolean follow, boolean withIdentifiers)
1962    {
1963        return this.getSuperManageableEntity().getRequiredPropertyNameList(follow, withIdentifiers);
1964    }
1965
1966    /**
1967     * A comma separated list of the required property types.
1968     * @see org.andromda.metafacades.uml.Entity#getRequiredPropertyTypeList(boolean follow, boolean withIdentifiers)
1969     */
1970    public String getRequiredPropertyTypeList(boolean follow, boolean withIdentifiers)
1971    {
1972        return this.getSuperManageableEntity().getRequiredPropertyTypeList(follow, withIdentifiers);
1973    }
1974
1975    /**
1976     * The name of the schema that contains the database table
1977     * @see org.andromda.metafacades.uml.Entity#getSchema()
1978     */
1979    public String getSchema()
1980    {
1981        return this.getSuperManageableEntity().getSchema();
1982    }
1983
1984    /**
1985     * The name of the database table to which this entity is persisted.
1986     * @see org.andromda.metafacades.uml.Entity#getTableName()
1987     */
1988    public String getTableName()
1989    {
1990        return this.getSuperManageableEntity().getTableName();
1991    }
1992
1993    /**
1994     * Returns true/false depending on whether or not this entity represetns a child in an
1995     * association (this occurs when this entity is on the opposite end of an assocation end defined
1996     * as composite).
1997     * @see org.andromda.metafacades.uml.Entity#isChild()
1998     */
1999    public boolean isChild()
2000    {
2001        return this.getSuperManageableEntity().isChild();
2002    }
2003
2004    /**
2005     * True if this entity identifier is a composite (consists of multiple key columns, typically
2006     * abstracted into an external composite identifier class)
2007     * @see org.andromda.metafacades.uml.Entity#isCompositeIdentifier()
2008     */
2009    public boolean isCompositeIdentifier()
2010    {
2011        return this.getSuperManageableEntity().isCompositeIdentifier();
2012    }
2013
2014    /**
2015     * True if the entity has its identifiers dynamically added, false otherwise.
2016     * @see org.andromda.metafacades.uml.Entity#isDynamicIdentifiersPresent()
2017     */
2018    public boolean isDynamicIdentifiersPresent()
2019    {
2020        return this.getSuperManageableEntity().isDynamicIdentifiersPresent();
2021    }
2022
2023    /**
2024     * True if the entity has any identifiers defined, false otherwise.
2025     * @see org.andromda.metafacades.uml.Entity#isIdentifiersPresent()
2026     */
2027    public boolean isIdentifiersPresent()
2028    {
2029        return this.getSuperManageableEntity().isIdentifiersPresent();
2030    }
2031
2032    /**
2033     * Indiciates if this entity is using an assigned identifier or not.
2034     * @see org.andromda.metafacades.uml.Entity#isUsingAssignedIdentifier()
2035     */
2036    public boolean isUsingAssignedIdentifier()
2037    {
2038        return this.getSuperManageableEntity().isUsingAssignedIdentifier();
2039    }
2040
2041    /**
2042     * Indicates whether or not this entity is using a foreign identifier as its identifiers.  That
2043     * is: the foreignIdentifier flag was set on an incoming association end and the entity is
2044     * therefore using the related foreign parent entity's identifier.
2045     * @see org.andromda.metafacades.uml.Entity#isUsingForeignIdentifier()
2046     */
2047    public boolean isUsingForeignIdentifier()
2048    {
2049        return this.getSuperManageableEntity().isUsingForeignIdentifier();
2050    }
2051
2052    /**
2053     * Finds the tagged value optional searching the entire inheritance hierarchy if 'follow' is set
2054     * to true.
2055     * @see GeneralizableElementFacade#findTaggedValue(String tagName, boolean follow)
2056     */
2057    public Object findTaggedValue(String tagName, boolean follow)
2058    {
2059        return this.getSuperManageableEntity().findTaggedValue(tagName, follow);
2060    }
2061
2062    /**
2063     * All generalizations for this generalizable element, goes up the inheritance tree.
2064     * @see GeneralizableElementFacade#getAllGeneralizations()
2065     */
2066    public Collection<GeneralizableElementFacade> getAllGeneralizations()
2067    {
2068        return this.getSuperManageableEntity().getAllGeneralizations();
2069    }
2070
2071    /**
2072     * All specializations (travels down the inheritance hierarchy).
2073     * @see GeneralizableElementFacade#getAllSpecializations()
2074     */
2075    public Collection<GeneralizableElementFacade> getAllSpecializations()
2076    {
2077        return this.getSuperManageableEntity().getAllSpecializations();
2078    }
2079
2080    /**
2081     * Gets the direct generalization for this generalizable element.
2082     * @see GeneralizableElementFacade#getGeneralization()
2083     */
2084    public GeneralizableElementFacade getGeneralization()
2085    {
2086        return this.getSuperManageableEntity().getGeneralization();
2087    }
2088
2089    /**
2090     * Gets the actual links that this generalization element is part of (it plays either the
2091     * specialization or generalization).
2092     * @see GeneralizableElementFacade#getGeneralizationLinks()
2093     */
2094    public Collection<GeneralizationFacade> getGeneralizationLinks()
2095    {
2096        return this.getSuperManageableEntity().getGeneralizationLinks();
2097    }
2098
2099    /**
2100     * A comma separated list of the fully qualified names of all generalizations.
2101     * @see GeneralizableElementFacade#getGeneralizationList()
2102     */
2103    public String getGeneralizationList()
2104    {
2105        return this.getSuperManageableEntity().getGeneralizationList();
2106    }
2107
2108    /**
2109     * The element found when you recursively follow the generalization path up to the root. If an
2110     * element has no generalization itself will be considered the root.
2111     * @see GeneralizableElementFacade#getGeneralizationRoot()
2112     */
2113    public GeneralizableElementFacade getGeneralizationRoot()
2114    {
2115        return this.getSuperManageableEntity().getGeneralizationRoot();
2116    }
2117
2118    /**
2119     * Return all generalizations (ancestors) from this generalizable element.
2120     * @see GeneralizableElementFacade#getGeneralizations()
2121     */
2122    public Collection<GeneralizableElementFacade> getGeneralizations()
2123    {
2124        return this.getSuperManageableEntity().getGeneralizations();
2125    }
2126
2127    /**
2128     * Gets the direct specializations (i.e. sub elements) for this generalizatble element.
2129     * @see GeneralizableElementFacade#getSpecializations()
2130     */
2131    public Collection<GeneralizableElementFacade> getSpecializations()
2132    {
2133        return this.getSuperManageableEntity().getSpecializations();
2134    }
2135
2136    /**
2137     * All entities to which can be browsed from this entity. Currently this property will simple
2138     * hold all entities, so the value is the same for any arbitrary entity. Hiding entities can be
2139     * done in the presentation tier, for example depending on runtime security information.
2140     * @see ManageableEntity#getAllManageables()
2141     */
2142    public List<ManageableEntity> getAllManageables()
2143    {
2144        return this.getSuperManageableEntity().getAllManageables();
2145    }
2146
2147    /**
2148     * The attribute used as a key link to display values for this entity.
2149     * @see ManageableEntity#getDisplayAttribute()
2150     */
2151    public ManageableEntityAttribute getDisplayAttribute()
2152    {
2153        return this.getSuperManageableEntity().getDisplayAttribute();
2154    }
2155
2156    /**
2157     * The fully qualified service name of the entity.
2158     * @see ManageableEntity#getFullyQualifiedManageableServiceName()
2159     */
2160    public String getFullyQualifiedManageableServiceName()
2161    {
2162        return this.getSuperManageableEntity().getFullyQualifiedManageableServiceName();
2163    }
2164
2165    /**
2166     * The associations to other entities from this entity.
2167     * @see ManageableEntity#getManageableAssociationEnds()
2168     */
2169    public List<ManageableEntityAssociationEnd> getManageableAssociationEnds()
2170    {
2171        return this.getSuperManageableEntity().getManageableAssociationEnds();
2172    }
2173
2174    /**
2175     * Lists the attributes that can be managed for this entity. This feature is particularly
2176     * important when resolving inherited attributes and ids.
2177     * @see ManageableEntity#getManageableAttributes()
2178     */
2179    public List<ManageableEntityAttribute> getManageableAttributes()
2180    {
2181        return this.getSuperManageableEntity().getManageableAttributes();
2182    }
2183
2184    /**
2185     * The identifier used when managing this entity.
2186     * @see ManageableEntity#getManageableIdentifier()
2187     */
2188    public ManageableEntityAttribute getManageableIdentifier()
2189    {
2190        return this.getSuperManageableEntity().getManageableIdentifier();
2191    }
2192
2193    /**
2194     * ManageableAttributes and ManageableAssociationEnds
2195     * @see ManageableEntity#getManageableMembers()
2196     */
2197    public List<ModelElementFacade> getManageableMembers()
2198    {
2199        return this.getSuperManageableEntity().getManageableMembers();
2200    }
2201
2202    /**
2203     * The entity package name.
2204     * @see ManageableEntity#getManageablePackageName()
2205     */
2206    public String getManageablePackageName()
2207    {
2208        return this.getSuperManageableEntity().getManageablePackageName();
2209    }
2210
2211    /**
2212     * The Package path of the Entity
2213     * @see ManageableEntity#getManageablePackagePath()
2214     */
2215    public String getManageablePackagePath()
2216    {
2217        return this.getSuperManageableEntity().getManageablePackagePath();
2218    }
2219
2220    /**
2221     * The entity accessor (getter) call.
2222     * @see ManageableEntity#getManageableServiceAccessorCall()
2223     */
2224    public String getManageableServiceAccessorCall()
2225    {
2226        return this.getSuperManageableEntity().getManageableServiceAccessorCall();
2227    }
2228
2229    /**
2230     * The service full path of the entity.
2231     * @see ManageableEntity#getManageableServiceFullPath()
2232     */
2233    public String getManageableServiceFullPath()
2234    {
2235        return this.getSuperManageableEntity().getManageableServiceFullPath();
2236    }
2237
2238    /**
2239     * The service name of the entity.
2240     * @see ManageableEntity#getManageableServiceName()
2241     */
2242    public String getManageableServiceName()
2243    {
2244        return this.getSuperManageableEntity().getManageableServiceName();
2245    }
2246
2247    /**
2248     * The maximum number of rows to load from the database.
2249     * @see ManageableEntity#getMaximumListSize()
2250     */
2251    public int getMaximumListSize()
2252    {
2253        return this.getSuperManageableEntity().getMaximumListSize();
2254    }
2255
2256    /**
2257     * The maximum number of rows to load from the database.
2258     * @see ManageableEntity#getPageSize()
2259     */
2260    public int getPageSize()
2261    {
2262        return this.getSuperManageableEntity().getPageSize();
2263    }
2264
2265    /**
2266     * Other Manageable Entities which reference this entity.
2267     * @see ManageableEntity#getReferencingManageables()
2268     */
2269    public List<ManageableEntity> getReferencingManageables()
2270    {
2271        return this.getSuperManageableEntity().getReferencingManageables();
2272    }
2273
2274    /**
2275     * The Actors (Roles) which can manage the Entity.
2276     * @see ManageableEntity#getUsers()
2277     */
2278    public List<ActorFacade> getUsers()
2279    {
2280        return this.getSuperManageableEntity().getUsers();
2281    }
2282
2283    /**
2284     * Create a create operation on the entity manager?
2285     * @see ManageableEntity#isCreate()
2286     */
2287    public boolean isCreate()
2288    {
2289        return this.getSuperManageableEntity().isCreate();
2290    }
2291
2292    /**
2293     * Create a delete operation on the entity manager?
2294     * @see ManageableEntity#isDelete()
2295     */
2296    public boolean isDelete()
2297    {
2298        return this.getSuperManageableEntity().isDelete();
2299    }
2300
2301    /**
2302     * True: Entity is manageable.
2303     * @see ManageableEntity#isManageable()
2304     */
2305    public boolean isManageable()
2306    {
2307        return this.getSuperManageableEntity().isManageable();
2308    }
2309
2310    /**
2311     * Create a read operation on the entity manager?
2312     * @see ManageableEntity#isRead()
2313     */
2314    public boolean isRead()
2315    {
2316        return this.getSuperManageableEntity().isRead();
2317    }
2318
2319    /**
2320     * The maximum number of rows to load from the database.
2321     * @see ManageableEntity#isResolveable()
2322     */
2323    public boolean isResolveable()
2324    {
2325        return this.getSuperManageableEntity().isResolveable();
2326    }
2327
2328    /**
2329     * Create an update operation on the entity manager?
2330     * @see ManageableEntity#isUpdate()
2331     */
2332    public boolean isUpdate()
2333    {
2334        return this.getSuperManageableEntity().isUpdate();
2335    }
2336
2337    /**
2338     * Returns a string with the attributes without wrapper types.
2339     * @see ManageableEntity#listManageableMembers(boolean withTypes)
2340     */
2341    public String listManageableMembers(boolean withTypes)
2342    {
2343        return this.getSuperManageableEntity().listManageableMembers(withTypes);
2344    }
2345
2346    /**
2347     * Returns a string with the attributes and wrapper types.
2348     * @see ManageableEntity#listManageableMembersWithWrapperTypes()
2349     */
2350    public String listManageableMembersWithWrapperTypes()
2351    {
2352        return this.getSuperManageableEntity().listManageableMembersWithWrapperTypes();
2353    }
2354
2355    /**
2356     * Copies all tagged values from the given ModelElementFacade to this model element facade.
2357     * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
2358     */
2359    public void copyTaggedValues(ModelElementFacade element)
2360    {
2361        this.getSuperManageableEntity().copyTaggedValues(element);
2362    }
2363
2364    /**
2365     * Finds the tagged value with the specified 'tagName'. In case there are more values the first
2366     * one found will be returned.
2367     * @see ModelElementFacade#findTaggedValue(String tagName)
2368     */
2369    public Object findTaggedValue(String tagName)
2370    {
2371        return this.getSuperManageableEntity().findTaggedValue(tagName);
2372    }
2373
2374    /**
2375     * Returns all the values for the tagged value with the specified name. The returned collection
2376     * will contains only String instances, or will be empty. Never null.
2377     * @see ModelElementFacade#findTaggedValues(String tagName)
2378     */
2379    public Collection<Object> findTaggedValues(String tagName)
2380    {
2381        return this.getSuperManageableEntity().findTaggedValues(tagName);
2382    }
2383
2384    /**
2385     * Returns the fully qualified name of the model element. The fully qualified name includes
2386     * complete package qualified name of the underlying model element. The templates parameter will
2387     * be replaced by the correct one given the binding relation of the parameter to this element.
2388     * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
2389     */
2390    public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
2391    {
2392        return this.getSuperManageableEntity().getBindedFullyQualifiedName(bindedElement);
2393    }
2394
2395    /**
2396     * Gets all constraints belonging to the model element.
2397     * @see ModelElementFacade#getConstraints()
2398     */
2399    public Collection<ConstraintFacade> getConstraints()
2400    {
2401        return this.getSuperManageableEntity().getConstraints();
2402    }
2403
2404    /**
2405     * Returns the constraints of the argument kind that have been placed onto this model. Typical
2406     * kinds are "inv", "pre" and "post". Other kinds are possible.
2407     * @see ModelElementFacade#getConstraints(String kind)
2408     */
2409    public Collection<ConstraintFacade> getConstraints(String kind)
2410    {
2411        return this.getSuperManageableEntity().getConstraints(kind);
2412    }
2413
2414    /**
2415     * Gets the documentation for the model element, The indent argument is prefixed to each line.
2416     * By default this method wraps lines after 64 characters.
2417     * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
2418     * @see ModelElementFacade#getDocumentation(String indent)
2419     */
2420    public String getDocumentation(String indent)
2421    {
2422        return this.getSuperManageableEntity().getDocumentation(indent);
2423    }
2424
2425    /**
2426     * This method returns the documentation for this model element, with the lines wrapped after
2427     * the specified number of characters, values of less than 1 will indicate no line wrapping is
2428     * required. By default paragraphs are returned as HTML.
2429     * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
2430     * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
2431     */
2432    public String getDocumentation(String indent, int lineLength)
2433    {
2434        return this.getSuperManageableEntity().getDocumentation(indent, lineLength);
2435    }
2436
2437    /**
2438     * This method returns the documentation for this model element, with the lines wrapped after
2439     * the specified number of characters, values of less than 1 will indicate no line wrapping is
2440     * required. HTML style determines if HTML Escaping is applied.
2441     * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
2442     */
2443    public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
2444    {
2445        return this.getSuperManageableEntity().getDocumentation(indent, lineLength, htmlStyle);
2446    }
2447
2448    /**
2449     * The fully qualified name of this model element.
2450     * @see ModelElementFacade#getFullyQualifiedName()
2451     */
2452    public String getFullyQualifiedName()
2453    {
2454        return this.getSuperManageableEntity().getFullyQualifiedName();
2455    }
2456
2457    /**
2458     * Returns the fully qualified name of the model element. The fully qualified name includes
2459     * complete package qualified name of the underlying model element.  If modelName is true, then
2460     * the original name of the model element (the name contained within the model) will be the name
2461     * returned, otherwise a name from a language mapping will be returned.
2462     * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
2463     */
2464    public String getFullyQualifiedName(boolean modelName)
2465    {
2466        return this.getSuperManageableEntity().getFullyQualifiedName(modelName);
2467    }
2468
2469    /**
2470     * Returns the fully qualified name as a path, the returned value always starts with out a slash
2471     * '/'.
2472     * @see ModelElementFacade#getFullyQualifiedNamePath()
2473     */
2474    public String getFullyQualifiedNamePath()
2475    {
2476        return this.getSuperManageableEntity().getFullyQualifiedNamePath();
2477    }
2478
2479    /**
2480     * Gets the unique identifier of the underlying model element.
2481     * @see ModelElementFacade#getId()
2482     */
2483    public String getId()
2484    {
2485        return this.getSuperManageableEntity().getId();
2486    }
2487
2488    /**
2489     * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
2490     * are not represented by other properties, i.e. native, transient, volatile, synchronized,
2491     * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
2492     * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
2493     * JDK5 compiler level.
2494     * @see ModelElementFacade#getKeywords()
2495     */
2496    public Collection<String> getKeywords()
2497    {
2498        return this.getSuperManageableEntity().getKeywords();
2499    }
2500
2501    /**
2502     * UML2: Retrieves a localized label for this named element.
2503     * @see ModelElementFacade#getLabel()
2504     */
2505    public String getLabel()
2506    {
2507        return this.getSuperManageableEntity().getLabel();
2508    }
2509
2510    /**
2511     * The language mappings that have been set for this model element.
2512     * @see ModelElementFacade#getLanguageMappings()
2513     */
2514    public TypeMappings getLanguageMappings()
2515    {
2516        return this.getSuperManageableEntity().getLanguageMappings();
2517    }
2518
2519    /**
2520     * Return the model containing this model element (multiple models may be loaded and processed
2521     * at the same time).
2522     * @see ModelElementFacade#getModel()
2523     */
2524    public ModelFacade getModel()
2525    {
2526        return this.getSuperManageableEntity().getModel();
2527    }
2528
2529    /**
2530     * The name of the model element.
2531     * @see ModelElementFacade#getName()
2532     */
2533    public String getName()
2534    {
2535        return this.getSuperManageableEntity().getName();
2536    }
2537
2538    /**
2539     * Gets the package to which this model element belongs.
2540     * @see ModelElementFacade#getPackage()
2541     */
2542    public ModelElementFacade getPackage()
2543    {
2544        return this.getSuperManageableEntity().getPackage();
2545    }
2546
2547    /**
2548     * The name of this model element's package.
2549     * @see ModelElementFacade#getPackageName()
2550     */
2551    public String getPackageName()
2552    {
2553        return this.getSuperManageableEntity().getPackageName();
2554    }
2555
2556    /**
2557     * Gets the package name (optionally providing the ability to retrieve the model name and not
2558     * the mapped name).
2559     * @see ModelElementFacade#getPackageName(boolean modelName)
2560     */
2561    public String getPackageName(boolean modelName)
2562    {
2563        return this.getSuperManageableEntity().getPackageName(modelName);
2564    }
2565
2566    /**
2567     * Returns the package as a path, the returned value always starts with out a slash '/'.
2568     * @see ModelElementFacade#getPackagePath()
2569     */
2570    public String getPackagePath()
2571    {
2572        return this.getSuperManageableEntity().getPackagePath();
2573    }
2574
2575    /**
2576     * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
2577     * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
2578     * the names of the containing namespaces starting at the root of the hierarchy and ending with
2579     * the name of the NamedElement itself.
2580     * @see ModelElementFacade#getQualifiedName()
2581     */
2582    public String getQualifiedName()
2583    {
2584        return this.getSuperManageableEntity().getQualifiedName();
2585    }
2586
2587    /**
2588     * Gets the root package for the model element.
2589     * @see ModelElementFacade#getRootPackage()
2590     */
2591    public PackageFacade getRootPackage()
2592    {
2593        return this.getSuperManageableEntity().getRootPackage();
2594    }
2595
2596    /**
2597     * Gets the dependencies for which this model element is the source.
2598     * @see ModelElementFacade#getSourceDependencies()
2599     */
2600    public Collection<DependencyFacade> getSourceDependencies()
2601    {
2602        return this.getSuperManageableEntity().getSourceDependencies();
2603    }
2604
2605    /**
2606     * If this model element is the context of an activity graph, this represents that activity
2607     * graph.
2608     * @see ModelElementFacade#getStateMachineContext()
2609     */
2610    public StateMachineFacade getStateMachineContext()
2611    {
2612        return this.getSuperManageableEntity().getStateMachineContext();
2613    }
2614
2615    /**
2616     * The collection of ALL stereotype names for this model element.
2617     * @see ModelElementFacade#getStereotypeNames()
2618     */
2619    public Collection<String> getStereotypeNames()
2620    {
2621        return this.getSuperManageableEntity().getStereotypeNames();
2622    }
2623
2624    /**
2625     * Gets all stereotypes for this model element.
2626     * @see ModelElementFacade#getStereotypes()
2627     */
2628    public Collection<StereotypeFacade> getStereotypes()
2629    {
2630        return this.getSuperManageableEntity().getStereotypes();
2631    }
2632
2633    /**
2634     * Return the TaggedValues associated with this model element, under all stereotypes.
2635     * @see ModelElementFacade#getTaggedValues()
2636     */
2637    public Collection<TaggedValueFacade> getTaggedValues()
2638    {
2639        return this.getSuperManageableEntity().getTaggedValues();
2640    }
2641
2642    /**
2643     * Gets the dependencies for which this model element is the target.
2644     * @see ModelElementFacade#getTargetDependencies()
2645     */
2646    public Collection<DependencyFacade> getTargetDependencies()
2647    {
2648        return this.getSuperManageableEntity().getTargetDependencies();
2649    }
2650
2651    /**
2652     * Get the template parameter for this model element having the parameterName
2653     * @see ModelElementFacade#getTemplateParameter(String parameterName)
2654     */
2655    public Object getTemplateParameter(String parameterName)
2656    {
2657        return this.getSuperManageableEntity().getTemplateParameter(parameterName);
2658    }
2659
2660    /**
2661     * Get the template parameters for this model element
2662     * @see ModelElementFacade#getTemplateParameters()
2663     */
2664    public Collection<TemplateParameterFacade> getTemplateParameters()
2665    {
2666        return this.getSuperManageableEntity().getTemplateParameters();
2667    }
2668
2669    /**
2670     * The visibility (i.e. public, private, protected or package) of the model element, will
2671     * attempt a lookup for these values in the language mappings (if any).
2672     * @see ModelElementFacade#getVisibility()
2673     */
2674    public String getVisibility()
2675    {
2676        return this.getSuperManageableEntity().getVisibility();
2677    }
2678
2679    /**
2680     * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
2681     * is taken into account when searching for the stereotype), false otherwise.
2682     * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
2683     */
2684    public boolean hasExactStereotype(String stereotypeName)
2685    {
2686        return this.getSuperManageableEntity().hasExactStereotype(stereotypeName);
2687    }
2688
2689    /**
2690     * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
2691     * pipe, semicolon, or << >>
2692     * @see ModelElementFacade#hasKeyword(String keywordName)
2693     */
2694    public boolean hasKeyword(String keywordName)
2695    {
2696        return this.getSuperManageableEntity().hasKeyword(keywordName);
2697    }
2698
2699    /**
2700     * Returns true if the model element has the specified stereotype.  If the stereotype itself
2701     * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
2702     * one of the stereotype's ancestors has a matching name this method will return true, false
2703     * otherwise.
2704     * For example, if we have a certain stereotype called <<exception>> and a model element has a
2705     * stereotype called <<applicationException>> which extends <<exception>>, when calling this
2706     * method with 'stereotypeName' defined as 'exception' the method would return true since
2707     * <<applicationException>> inherits from <<exception>>.  If you want to check if the model
2708     * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
2709     * @see ModelElementFacade#hasStereotype(String stereotypeName)
2710     */
2711    public boolean hasStereotype(String stereotypeName)
2712    {
2713        return this.getSuperManageableEntity().hasStereotype(stereotypeName);
2714    }
2715
2716    /**
2717     * True if there are target dependencies from this element that are instances of BindingFacade.
2718     * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
2719     * @see ModelElementFacade#isBindingDependenciesPresent()
2720     */
2721    public boolean isBindingDependenciesPresent()
2722    {
2723        return this.getSuperManageableEntity().isBindingDependenciesPresent();
2724    }
2725
2726    /**
2727     * Indicates if any constraints are present on this model element.
2728     * @see ModelElementFacade#isConstraintsPresent()
2729     */
2730    public boolean isConstraintsPresent()
2731    {
2732        return this.getSuperManageableEntity().isConstraintsPresent();
2733    }
2734
2735    /**
2736     * Indicates if any documentation is present on this model element.
2737     * @see ModelElementFacade#isDocumentationPresent()
2738     */
2739    public boolean isDocumentationPresent()
2740    {
2741        return this.getSuperManageableEntity().isDocumentationPresent();
2742    }
2743
2744    /**
2745     * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
2746     * @see ModelElementFacade#isReservedWord()
2747     */
2748    public boolean isReservedWord()
2749    {
2750        return this.getSuperManageableEntity().isReservedWord();
2751    }
2752
2753    /**
2754     * True is there are template parameters on this model element. For UML2, applies to Class,
2755     * Operation, Property, and Parameter.
2756     * @see ModelElementFacade#isTemplateParametersPresent()
2757     */
2758    public boolean isTemplateParametersPresent()
2759    {
2760        return this.getSuperManageableEntity().isTemplateParametersPresent();
2761    }
2762
2763    /**
2764     * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
2765     * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
2766     * Enumerations and Interfaces, optionally applies on other model elements.
2767     * @see ModelElementFacade#isValidIdentifierName()
2768     */
2769    public boolean isValidIdentifierName()
2770    {
2771        return this.getSuperManageableEntity().isValidIdentifierName();
2772    }
2773
2774    /**
2775     * Searches for the constraint with the specified 'name' on this model element, and if found
2776     * translates it using the specified 'translation' from a translation library discovered by the
2777     * framework.
2778     * @see ModelElementFacade#translateConstraint(String name, String translation)
2779     */
2780    public String translateConstraint(String name, String translation)
2781    {
2782        return this.getSuperManageableEntity().translateConstraint(name, translation);
2783    }
2784
2785    /**
2786     * Translates all constraints belonging to this model element with the given 'translation'.
2787     * @see ModelElementFacade#translateConstraints(String translation)
2788     */
2789    public String[] translateConstraints(String translation)
2790    {
2791        return this.getSuperManageableEntity().translateConstraints(translation);
2792    }
2793
2794    /**
2795     * Translates the constraints of the specified 'kind' belonging to this model element.
2796     * @see ModelElementFacade#translateConstraints(String kind, String translation)
2797     */
2798    public String[] translateConstraints(String kind, String translation)
2799    {
2800        return this.getSuperManageableEntity().translateConstraints(kind, translation);
2801    }
2802
2803    /**
2804     * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
2805     */
2806    @Override
2807    public void initialize()
2808    {
2809        this.getSuperManageableEntity().initialize();
2810    }
2811
2812    /**
2813     * @return Object getSuperManageableEntity().getValidationOwner()
2814     * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
2815     */
2816    @Override
2817    public Object getValidationOwner()
2818    {
2819        Object owner = this.getSuperManageableEntity().getValidationOwner();
2820        return owner;
2821    }
2822
2823    /**
2824     * @return String getSuperManageableEntity().getValidationName()
2825     * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
2826     */
2827    @Override
2828    public String getValidationName()
2829    {
2830        String name = this.getSuperManageableEntity().getValidationName();
2831        return name;
2832    }
2833
2834    /**
2835     * @param validationMessages Collection<ModelValidationMessage>
2836     * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
2837     */
2838    @Override
2839    public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
2840    {
2841        this.getSuperManageableEntity().validateInvariants(validationMessages);
2842    }
2843
2844    /**
2845     * The property that stores the name of the metafacade.
2846     */
2847    private static final String NAME_PROPERTY = "name";
2848    private static final String FQNAME_PROPERTY = "fullyQualifiedName";
2849
2850    /**
2851     * @see Object#toString()
2852     */
2853    @Override
2854    public String toString()
2855    {
2856        final StringBuilder toString = new StringBuilder(this.getClass().getName());
2857        toString.append("[");
2858        try
2859        {
2860            toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
2861        }
2862        catch (final Throwable tryAgain)
2863        {
2864            try
2865            {
2866                toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
2867            }
2868            catch (final Throwable ignore)
2869            {
2870                // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
2871            }
2872        }
2873        toString.append("]");
2874        return toString.toString();
2875    }
2876}