View Javadoc
1   // license-header java merge-point
2   //
3   // Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
4   //
5   package org.andromda.cartridges.ejb3.metafacades;
6   
7   import java.util.Collection;
8   import java.util.List;
9   import org.andromda.core.common.Introspector;
10  import org.andromda.core.metafacade.MetafacadeBase;
11  import org.andromda.core.metafacade.MetafacadeFactory;
12  import org.andromda.core.metafacade.ModelValidationMessage;
13  import org.andromda.metafacades.uml.ActorFacade;
14  import org.andromda.metafacades.uml.AssociationEndFacade;
15  import org.andromda.metafacades.uml.AttributeFacade;
16  import org.andromda.metafacades.uml.ClassifierFacade;
17  import org.andromda.metafacades.uml.ConstraintFacade;
18  import org.andromda.metafacades.uml.DependencyFacade;
19  import org.andromda.metafacades.uml.EntityAssociationEnd;
20  import org.andromda.metafacades.uml.EntityQueryOperation;
21  import org.andromda.metafacades.uml.GeneralizableElementFacade;
22  import org.andromda.metafacades.uml.GeneralizationFacade;
23  import org.andromda.metafacades.uml.ManageableEntity;
24  import org.andromda.metafacades.uml.ManageableEntityAssociationEnd;
25  import org.andromda.metafacades.uml.ManageableEntityAttribute;
26  import org.andromda.metafacades.uml.ModelElementFacade;
27  import org.andromda.metafacades.uml.ModelFacade;
28  import org.andromda.metafacades.uml.OperationFacade;
29  import org.andromda.metafacades.uml.PackageFacade;
30  import org.andromda.metafacades.uml.Role;
31  import org.andromda.metafacades.uml.StateMachineFacade;
32  import org.andromda.metafacades.uml.StereotypeFacade;
33  import org.andromda.metafacades.uml.TaggedValueFacade;
34  import org.andromda.metafacades.uml.TemplateParameterFacade;
35  import org.andromda.metafacades.uml.TypeMappings;
36  
37  /**
38   * TODO: Model Documentation for org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade
39   * MetafacadeLogic for EJB3ManageableEntityFacade
40   *
41   * @see EJB3ManageableEntityFacade
42   */
43  public abstract class EJB3ManageableEntityFacadeLogic
44      extends MetafacadeBase
45      implements EJB3ManageableEntityFacade
46  {
47      /**
48       * The underlying UML object
49       * @see Object
50       */
51      protected Object metaObject;
52  
53      /** Create Metafacade implementation instance using the MetafacadeFactory from the context
54       * @param metaObjectIn
55       * @param context
56       */
57      protected EJB3ManageableEntityFacadeLogic(Object metaObjectIn, String context)
58      {
59          super(metaObjectIn, getContext(context));
60          this.superEJB3EntityFacade =
61             (EJB3EntityFacade)
62              MetafacadeFactory.getInstance().createFacadeImpl(
63                      "org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade",
64                      metaObjectIn,
65                      getContext(context));
66          this.superManageableEntity =
67             (ManageableEntity)
68              MetafacadeFactory.getInstance().createFacadeImpl(
69                      "org.andromda.metafacades.uml.ManageableEntity",
70                      metaObjectIn,
71                      getContext(context));
72          this.metaObject = metaObjectIn;
73      }
74  
75      /**
76       * Gets the context for this metafacade logic instance.
77       * @param context String. Set to EJB3ManageableEntityFacade if null
78       * @return context String
79       */
80      private static String getContext(String context)
81      {
82          if (context == null)
83          {
84              context = "org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade";
85          }
86          return context;
87      }
88  
89      private EJB3EntityFacade superEJB3EntityFacade;
90      private boolean superEJB3EntityFacadeInitialized = false;
91  
92      /**
93       * Gets the EJB3EntityFacade parent instance.
94       * @return this.superEJB3EntityFacade EJB3EntityFacade
95       */
96      protected EJB3EntityFacade getSuperEJB3EntityFacade()
97      {
98          if (!this.superEJB3EntityFacadeInitialized)
99          {
100             ((MetafacadeBase)this.superEJB3EntityFacade).setMetafacadeContext(this.getMetafacadeContext());
101             this.superEJB3EntityFacadeInitialized = true;
102         }
103         return this.superEJB3EntityFacade;
104     }
105 
106     private ManageableEntity superManageableEntity;
107     private boolean superManageableEntityInitialized = false;
108 
109     /**
110      * Gets the ManageableEntity parent instance.
111      * @return this.superManageableEntity ManageableEntity
112      */
113     protected ManageableEntity getSuperManageableEntity()
114     {
115         if (!this.superManageableEntityInitialized)
116         {
117             ((MetafacadeBase)this.superManageableEntity).setMetafacadeContext(this.getMetafacadeContext());
118             this.superManageableEntityInitialized = true;
119         }
120         return this.superManageableEntity;
121     }
122 
123     /** Reset context only for non-root metafacades
124      * @param context
125      * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
126      */
127     @Override
128     public void resetMetafacadeContext(String context)
129     {
130         if (!this.contextRoot) // reset context only for non-root metafacades
131         {
132             context = getContext(context);  // to have same value as in original constructor call
133             setMetafacadeContext (context);
134             if (this.superEJB3EntityFacadeInitialized)
135             {
136                 ((MetafacadeBase)this.superEJB3EntityFacade).resetMetafacadeContext(context);
137             }
138             if (this.superManageableEntityInitialized)
139             {
140                 ((MetafacadeBase)this.superManageableEntity).resetMetafacadeContext(context);
141             }
142         }
143     }
144 
145     /**
146      * @return boolean true always
147      * @see EJB3ManageableEntityFacade
148      */
149     public boolean isEJB3ManageableEntityFacadeMetaType()
150     {
151         return true;
152     }
153 
154     // --------------- attributes ---------------------
155 
156    /**
157     * @see org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade#getFullyQualifiedManageableServiceCreateExceptionName()
158     * @return String
159     */
160     protected abstract String handleGetFullyQualifiedManageableServiceCreateExceptionName();
161 
162     private String __fullyQualifiedManageableServiceCreateExceptionName1a;
163     private boolean __fullyQualifiedManageableServiceCreateExceptionName1aSet = false;
164 
165     /**
166      * Returns the fully qualified name of the application create exception.
167      * @return (String)handleGetFullyQualifiedManageableServiceCreateExceptionName()
168      */
169     public final String getFullyQualifiedManageableServiceCreateExceptionName()
170     {
171         String fullyQualifiedManageableServiceCreateExceptionName1a = this.__fullyQualifiedManageableServiceCreateExceptionName1a;
172         if (!this.__fullyQualifiedManageableServiceCreateExceptionName1aSet)
173         {
174             // fullyQualifiedManageableServiceCreateExceptionName has no pre constraints
175             fullyQualifiedManageableServiceCreateExceptionName1a = handleGetFullyQualifiedManageableServiceCreateExceptionName();
176             // fullyQualifiedManageableServiceCreateExceptionName has no post constraints
177             this.__fullyQualifiedManageableServiceCreateExceptionName1a = fullyQualifiedManageableServiceCreateExceptionName1a;
178             if (isMetafacadePropertyCachingEnabled())
179             {
180                 this.__fullyQualifiedManageableServiceCreateExceptionName1aSet = true;
181             }
182         }
183         return fullyQualifiedManageableServiceCreateExceptionName1a;
184     }
185 
186    /**
187     * @see org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade#getFullyQualifiedManageableServiceReadExceptionName()
188     * @return String
189     */
190     protected abstract String handleGetFullyQualifiedManageableServiceReadExceptionName();
191 
192     private String __fullyQualifiedManageableServiceReadExceptionName2a;
193     private boolean __fullyQualifiedManageableServiceReadExceptionName2aSet = false;
194 
195     /**
196      * Returns the fully qualified name of the application read exception.
197      * @return (String)handleGetFullyQualifiedManageableServiceReadExceptionName()
198      */
199     public final String getFullyQualifiedManageableServiceReadExceptionName()
200     {
201         String fullyQualifiedManageableServiceReadExceptionName2a = this.__fullyQualifiedManageableServiceReadExceptionName2a;
202         if (!this.__fullyQualifiedManageableServiceReadExceptionName2aSet)
203         {
204             // fullyQualifiedManageableServiceReadExceptionName has no pre constraints
205             fullyQualifiedManageableServiceReadExceptionName2a = handleGetFullyQualifiedManageableServiceReadExceptionName();
206             // fullyQualifiedManageableServiceReadExceptionName has no post constraints
207             this.__fullyQualifiedManageableServiceReadExceptionName2a = fullyQualifiedManageableServiceReadExceptionName2a;
208             if (isMetafacadePropertyCachingEnabled())
209             {
210                 this.__fullyQualifiedManageableServiceReadExceptionName2aSet = true;
211             }
212         }
213         return fullyQualifiedManageableServiceReadExceptionName2a;
214     }
215 
216    /**
217     * @see org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade#getFullyQualifiedManageableServiceUpdateExceptionName()
218     * @return String
219     */
220     protected abstract String handleGetFullyQualifiedManageableServiceUpdateExceptionName();
221 
222     private String __fullyQualifiedManageableServiceUpdateExceptionName3a;
223     private boolean __fullyQualifiedManageableServiceUpdateExceptionName3aSet = false;
224 
225     /**
226      * Returns the fully qualified update application exception name.
227      * @return (String)handleGetFullyQualifiedManageableServiceUpdateExceptionName()
228      */
229     public final String getFullyQualifiedManageableServiceUpdateExceptionName()
230     {
231         String fullyQualifiedManageableServiceUpdateExceptionName3a = this.__fullyQualifiedManageableServiceUpdateExceptionName3a;
232         if (!this.__fullyQualifiedManageableServiceUpdateExceptionName3aSet)
233         {
234             // fullyQualifiedManageableServiceUpdateExceptionName has no pre constraints
235             fullyQualifiedManageableServiceUpdateExceptionName3a = handleGetFullyQualifiedManageableServiceUpdateExceptionName();
236             // fullyQualifiedManageableServiceUpdateExceptionName has no post constraints
237             this.__fullyQualifiedManageableServiceUpdateExceptionName3a = fullyQualifiedManageableServiceUpdateExceptionName3a;
238             if (isMetafacadePropertyCachingEnabled())
239             {
240                 this.__fullyQualifiedManageableServiceUpdateExceptionName3aSet = true;
241             }
242         }
243         return fullyQualifiedManageableServiceUpdateExceptionName3a;
244     }
245 
246    /**
247     * @see org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade#getFullyQualifiedManageableServiceDeleteExceptionName()
248     * @return String
249     */
250     protected abstract String handleGetFullyQualifiedManageableServiceDeleteExceptionName();
251 
252     private String __fullyQualifiedManageableServiceDeleteExceptionName4a;
253     private boolean __fullyQualifiedManageableServiceDeleteExceptionName4aSet = false;
254 
255     /**
256      * Returns the fully qualified delete application exception name.
257      * @return (String)handleGetFullyQualifiedManageableServiceDeleteExceptionName()
258      */
259     public final String getFullyQualifiedManageableServiceDeleteExceptionName()
260     {
261         String fullyQualifiedManageableServiceDeleteExceptionName4a = this.__fullyQualifiedManageableServiceDeleteExceptionName4a;
262         if (!this.__fullyQualifiedManageableServiceDeleteExceptionName4aSet)
263         {
264             // fullyQualifiedManageableServiceDeleteExceptionName has no pre constraints
265             fullyQualifiedManageableServiceDeleteExceptionName4a = handleGetFullyQualifiedManageableServiceDeleteExceptionName();
266             // fullyQualifiedManageableServiceDeleteExceptionName has no post constraints
267             this.__fullyQualifiedManageableServiceDeleteExceptionName4a = fullyQualifiedManageableServiceDeleteExceptionName4a;
268             if (isMetafacadePropertyCachingEnabled())
269             {
270                 this.__fullyQualifiedManageableServiceDeleteExceptionName4aSet = true;
271             }
272         }
273         return fullyQualifiedManageableServiceDeleteExceptionName4a;
274     }
275 
276    /**
277     * @see org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade#getJndiNamePrefix()
278     * @return String
279     */
280     protected abstract String handleGetJndiNamePrefix();
281 
282     private String __jndiNamePrefix5a;
283     private boolean __jndiNamePrefix5aSet = false;
284 
285     /**
286      * Returns the JNDI name prefix for this menageable session bean.  This is set using the
287      * jndiNamePrefix namespace property and is commonly the ear file name excluding the extension
288      * for the EJB3 cartridge.  The JNDI name prefix is applied like so:
289      * jndiPrefix/EJBName/Remote
290      * @return (String)handleGetJndiNamePrefix()
291      */
292     public final String getJndiNamePrefix()
293     {
294         String jndiNamePrefix5a = this.__jndiNamePrefix5a;
295         if (!this.__jndiNamePrefix5aSet)
296         {
297             // jndiNamePrefix has no pre constraints
298             jndiNamePrefix5a = handleGetJndiNamePrefix();
299             // jndiNamePrefix has no post constraints
300             this.__jndiNamePrefix5a = jndiNamePrefix5a;
301             if (isMetafacadePropertyCachingEnabled())
302             {
303                 this.__jndiNamePrefix5aSet = true;
304             }
305         }
306         return jndiNamePrefix5a;
307     }
308 
309    /**
310     * @see org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade#getManageableServiceBaseName()
311     * @return String
312     */
313     protected abstract String handleGetManageableServiceBaseName();
314 
315     private String __manageableServiceBaseName6a;
316     private boolean __manageableServiceBaseName6aSet = false;
317 
318     /**
319      * Returns the manageable service base class name.  This is the manageable session bean
320      * containing the CRUD implementation.
321      * @return (String)handleGetManageableServiceBaseName()
322      */
323     public final String getManageableServiceBaseName()
324     {
325         String manageableServiceBaseName6a = this.__manageableServiceBaseName6a;
326         if (!this.__manageableServiceBaseName6aSet)
327         {
328             // manageableServiceBaseName has no pre constraints
329             manageableServiceBaseName6a = handleGetManageableServiceBaseName();
330             // manageableServiceBaseName has no post constraints
331             this.__manageableServiceBaseName6a = manageableServiceBaseName6a;
332             if (isMetafacadePropertyCachingEnabled())
333             {
334                 this.__manageableServiceBaseName6aSet = true;
335             }
336         }
337         return manageableServiceBaseName6a;
338     }
339 
340    /**
341     * @see org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade#getManageableServiceBaseFullPath()
342     * @return String
343     */
344     protected abstract String handleGetManageableServiceBaseFullPath();
345 
346     private String __manageableServiceBaseFullPath7a;
347     private boolean __manageableServiceBaseFullPath7aSet = false;
348 
349     /**
350      * Returns the manageable service base class fully qualified path used to set the template
351      * generated file.
352      * @return (String)handleGetManageableServiceBaseFullPath()
353      */
354     public final String getManageableServiceBaseFullPath()
355     {
356         String manageableServiceBaseFullPath7a = this.__manageableServiceBaseFullPath7a;
357         if (!this.__manageableServiceBaseFullPath7aSet)
358         {
359             // manageableServiceBaseFullPath has no pre constraints
360             manageableServiceBaseFullPath7a = handleGetManageableServiceBaseFullPath();
361             // manageableServiceBaseFullPath has no post constraints
362             this.__manageableServiceBaseFullPath7a = manageableServiceBaseFullPath7a;
363             if (isMetafacadePropertyCachingEnabled())
364             {
365                 this.__manageableServiceBaseFullPath7aSet = true;
366             }
367         }
368         return manageableServiceBaseFullPath7a;
369     }
370 
371    /**
372     * @see org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade#getFullyQualifiedManageableServiceBaseName()
373     * @return String
374     */
375     protected abstract String handleGetFullyQualifiedManageableServiceBaseName();
376 
377     private String __fullyQualifiedManageableServiceBaseName8a;
378     private boolean __fullyQualifiedManageableServiceBaseName8aSet = false;
379 
380     /**
381      * Returns the fully qualified manageable service base class name that contains the
382      * implementation.
383      * @return (String)handleGetFullyQualifiedManageableServiceBaseName()
384      */
385     public final String getFullyQualifiedManageableServiceBaseName()
386     {
387         String fullyQualifiedManageableServiceBaseName8a = this.__fullyQualifiedManageableServiceBaseName8a;
388         if (!this.__fullyQualifiedManageableServiceBaseName8aSet)
389         {
390             // fullyQualifiedManageableServiceBaseName has no pre constraints
391             fullyQualifiedManageableServiceBaseName8a = handleGetFullyQualifiedManageableServiceBaseName();
392             // fullyQualifiedManageableServiceBaseName has no post constraints
393             this.__fullyQualifiedManageableServiceBaseName8a = fullyQualifiedManageableServiceBaseName8a;
394             if (isMetafacadePropertyCachingEnabled())
395             {
396                 this.__fullyQualifiedManageableServiceBaseName8aSet = true;
397             }
398         }
399         return fullyQualifiedManageableServiceBaseName8a;
400     }
401 
402    /**
403     * @see org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade#getManageableServiceCreateExceptionName()
404     * @return String
405     */
406     protected abstract String handleGetManageableServiceCreateExceptionName();
407 
408     private String __manageableServiceCreateExceptionName9a;
409     private boolean __manageableServiceCreateExceptionName9aSet = false;
410 
411     /**
412      * Returns the manageable service create exception name.
413      * @return (String)handleGetManageableServiceCreateExceptionName()
414      */
415     public final String getManageableServiceCreateExceptionName()
416     {
417         String manageableServiceCreateExceptionName9a = this.__manageableServiceCreateExceptionName9a;
418         if (!this.__manageableServiceCreateExceptionName9aSet)
419         {
420             // manageableServiceCreateExceptionName has no pre constraints
421             manageableServiceCreateExceptionName9a = handleGetManageableServiceCreateExceptionName();
422             // manageableServiceCreateExceptionName has no post constraints
423             this.__manageableServiceCreateExceptionName9a = manageableServiceCreateExceptionName9a;
424             if (isMetafacadePropertyCachingEnabled())
425             {
426                 this.__manageableServiceCreateExceptionName9aSet = true;
427             }
428         }
429         return manageableServiceCreateExceptionName9a;
430     }
431 
432    /**
433     * @see org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade#getManageableServiceReadExceptionName()
434     * @return String
435     */
436     protected abstract String handleGetManageableServiceReadExceptionName();
437 
438     private String __manageableServiceReadExceptionName10a;
439     private boolean __manageableServiceReadExceptionName10aSet = false;
440 
441     /**
442      * Returns the manageable service read exception name.
443      * @return (String)handleGetManageableServiceReadExceptionName()
444      */
445     public final String getManageableServiceReadExceptionName()
446     {
447         String manageableServiceReadExceptionName10a = this.__manageableServiceReadExceptionName10a;
448         if (!this.__manageableServiceReadExceptionName10aSet)
449         {
450             // manageableServiceReadExceptionName has no pre constraints
451             manageableServiceReadExceptionName10a = handleGetManageableServiceReadExceptionName();
452             // manageableServiceReadExceptionName has no post constraints
453             this.__manageableServiceReadExceptionName10a = manageableServiceReadExceptionName10a;
454             if (isMetafacadePropertyCachingEnabled())
455             {
456                 this.__manageableServiceReadExceptionName10aSet = true;
457             }
458         }
459         return manageableServiceReadExceptionName10a;
460     }
461 
462    /**
463     * @see org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade#getManageableServiceUpdateExceptionName()
464     * @return String
465     */
466     protected abstract String handleGetManageableServiceUpdateExceptionName();
467 
468     private String __manageableServiceUpdateExceptionName11a;
469     private boolean __manageableServiceUpdateExceptionName11aSet = false;
470 
471     /**
472      * Returns the manageable service update exception name.
473      * @return (String)handleGetManageableServiceUpdateExceptionName()
474      */
475     public final String getManageableServiceUpdateExceptionName()
476     {
477         String manageableServiceUpdateExceptionName11a = this.__manageableServiceUpdateExceptionName11a;
478         if (!this.__manageableServiceUpdateExceptionName11aSet)
479         {
480             // manageableServiceUpdateExceptionName has no pre constraints
481             manageableServiceUpdateExceptionName11a = handleGetManageableServiceUpdateExceptionName();
482             // manageableServiceUpdateExceptionName has no post constraints
483             this.__manageableServiceUpdateExceptionName11a = manageableServiceUpdateExceptionName11a;
484             if (isMetafacadePropertyCachingEnabled())
485             {
486                 this.__manageableServiceUpdateExceptionName11aSet = true;
487             }
488         }
489         return manageableServiceUpdateExceptionName11a;
490     }
491 
492    /**
493     * @see org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade#getManageableServiceDeleteExceptionName()
494     * @return String
495     */
496     protected abstract String handleGetManageableServiceDeleteExceptionName();
497 
498     private String __manageableServiceDeleteExceptionName12a;
499     private boolean __manageableServiceDeleteExceptionName12aSet = false;
500 
501     /**
502      * Returns the manageable service delete exception name.
503      * @return (String)handleGetManageableServiceDeleteExceptionName()
504      */
505     public final String getManageableServiceDeleteExceptionName()
506     {
507         String manageableServiceDeleteExceptionName12a = this.__manageableServiceDeleteExceptionName12a;
508         if (!this.__manageableServiceDeleteExceptionName12aSet)
509         {
510             // manageableServiceDeleteExceptionName has no pre constraints
511             manageableServiceDeleteExceptionName12a = handleGetManageableServiceDeleteExceptionName();
512             // manageableServiceDeleteExceptionName has no post constraints
513             this.__manageableServiceDeleteExceptionName12a = manageableServiceDeleteExceptionName12a;
514             if (isMetafacadePropertyCachingEnabled())
515             {
516                 this.__manageableServiceDeleteExceptionName12aSet = true;
517             }
518         }
519         return manageableServiceDeleteExceptionName12a;
520     }
521 
522    /**
523     * @see org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade#getManageableRolesAllowed()
524     * @return String
525     */
526     protected abstract String handleGetManageableRolesAllowed();
527 
528     private String __manageableRolesAllowed13a;
529     private boolean __manageableRolesAllowed13aSet = false;
530 
531     /**
532      * Returns the comma separated list of roles which are used to secure manageable service beans.
533      * @return (String)handleGetManageableRolesAllowed()
534      */
535     public final String getManageableRolesAllowed()
536     {
537         String manageableRolesAllowed13a = this.__manageableRolesAllowed13a;
538         if (!this.__manageableRolesAllowed13aSet)
539         {
540             // manageableRolesAllowed has no pre constraints
541             manageableRolesAllowed13a = handleGetManageableRolesAllowed();
542             // manageableRolesAllowed has no post constraints
543             this.__manageableRolesAllowed13a = manageableRolesAllowed13a;
544             if (isMetafacadePropertyCachingEnabled())
545             {
546                 this.__manageableRolesAllowed13aSet = true;
547             }
548         }
549         return manageableRolesAllowed13a;
550     }
551 
552     /**
553      * @return true
554      * @see EJB3EntityFacade
555      */
556     public boolean isEJB3EntityFacadeMetaType()
557     {
558         return true;
559     }
560 
561     /**
562      * @return true
563      * @see ManageableEntity
564      */
565     public boolean isManageableEntityMetaType()
566     {
567         return true;
568     }
569 
570     /**
571      * @return true
572      * @see org.andromda.metafacades.uml.Entity
573      */
574     public boolean isEntityMetaType()
575     {
576         return true;
577     }
578 
579     /**
580      * @return true
581      * @see ClassifierFacade
582      */
583     public boolean isClassifierFacadeMetaType()
584     {
585         return true;
586     }
587 
588     /**
589      * @return true
590      * @see GeneralizableElementFacade
591      */
592     public boolean isGeneralizableElementFacadeMetaType()
593     {
594         return true;
595     }
596 
597     /**
598      * @return true
599      * @see ModelElementFacade
600      */
601     public boolean isModelElementFacadeMetaType()
602     {
603         return true;
604     }
605 
606     // ----------- delegates to EJB3EntityFacade ------------
607     /**
608      * Find all associations that define relations to other entities.
609      * This method returns the source association ends for all associations that define
610      * a container managed relation.  The returned collection includes both
611      * direct relations and inherited relations. A direct relation is an association with some other
612      * class matching the following criteria: 1) The class at the other side of the association is
613      * stereotyped <<Entity>> 2) The association is navigable from to the other side.
614      * An inherited relation is an association from an abstract super type matching the following
615      * criteria: 1) The inheritance path to this abstract super type, including this super type
616      * itself, consists only of abstract classes with stereotype <<Entity>> 2)  The class at the
617      * other side of the association is stereotyped <<Entity>>. 3) The association is navigable from
618      * this abstract super type to the other side.
619      * Relations must match the following integrity constraint:
620      * - The <<Entity>> at the target end is not abstract.
621      * The integrity constraint is necessary because the target of a container managed relation in
622      * the EJB framework must be a concrete entity bean; there is no such thing as an
623      * "abstract entity bean" in the EJB specification. It is possible, however, to generate and
624      * compile code for this case, an error will only show up at deploy time. In order to catch
625      * this kind of error at the earliest possible stage, this method checks the integrity
626      * constraint and throws an exception if it is violated.
627      * @see EJB3EntityFacade#getAllEntityRelations()
628      */
629     public Collection getAllEntityRelations()
630     {
631         return this.getSuperEJB3EntityFacade().getAllEntityRelations();
632     }
633 
634     /**
635      * All instanceAttributes for this entity. The list includes the instanceAttributes that are
636      * inherited from super classes. The list contains the inherited instanceAttributes first,
637      * followed by the instanceAttributes defined in this class.
638      * @see EJB3EntityFacade#getAllInstanceAttributes()
639      */
640     public List getAllInstanceAttributes()
641     {
642         return this.getSuperEJB3EntityFacade().getAllInstanceAttributes();
643     }
644 
645     /**
646      * Returns all value object references (this includes all those that are inherited from any
647      * parent entities)
648      * @see EJB3EntityFacade#getAllValueObjectReferences()
649      */
650     public Collection<DependencyFacade> getAllValueObjectReferences()
651     {
652         return this.getSuperEJB3EntityFacade().getAllValueObjectReferences();
653     }
654 
655     /**
656      * Create a comma separated list of attributes. This method can be used to generate argument
657      * lists for constructors, method calls etc. It will not return attributes tagged to be
658      * optimistic lock values.  It will consider LOB attributes where the LOB type has been
659      * overridden using the @androma.persistence.lob.type tagged value.
660      * @see EJB3EntityFacade#getAttributesAsList(Collection attributes, boolean includeTypes, boolean includeNames, boolean includeAutoIdentifiers)
661      */
662     public String getAttributesAsList(Collection attributes, boolean includeTypes, boolean includeNames, boolean includeAutoIdentifiers)
663     {
664         return this.getSuperEJB3EntityFacade().getAttributesAsList(attributes, includeTypes, includeNames, includeAutoIdentifiers);
665     }
666 
667     /**
668      * Provides the cache policy for the entity.
669      * Posible values are NONE, READ_WRITE, NONSTRICT_READ_WRITE, READ_ONLY, TRANSACTIONAL.
670      * @see EJB3EntityFacade#getCacheType()
671      */
672     public String getCacheType()
673     {
674         return this.getSuperEJB3EntityFacade().getCacheType();
675     }
676 
677     /**
678      * Gets all constants for this entity. Constants are defined as static read-only attributes
679      * which do NOT have the <<EnvEntry>> stereotype.   If 'follow' is true, then the inheritance
680      * hierarchy will be followed and we'll retrieve all constants from any super types as well.
681      * @see EJB3EntityFacade#getConstants(boolean follow)
682      */
683     public Collection getConstants(boolean follow)
684     {
685         return this.getSuperEJB3EntityFacade().getConstants(follow);
686     }
687 
688     /**
689      * Gets create methods for the entity.  If 'follow'l is set to true, create methods from any
690      * super types will also be retrieved by following up the inheritance chain.
691      * @see EJB3EntityFacade#getCreateMethods(boolean follow)
692      */
693     public Collection getCreateMethods(boolean follow)
694     {
695         return this.getSuperEJB3EntityFacade().getCreateMethods(follow);
696     }
697 
698     /**
699      * The DAO base class name.  This is the abstract DAO that containsCRUD operations as well as
700      * any generated finders defined on an entity.
701      * @see EJB3EntityFacade#getDaoBaseName()
702      */
703     public String getDaoBaseName()
704     {
705         return this.getSuperEJB3EntityFacade().getDaoBaseName();
706     }
707 
708     /**
709      * The business operations modeled on the entity that will be generated on the DAO (Data Access
710      * Object).
711      * @see EJB3EntityFacade#getDaoBusinessOperations()
712      */
713     public Collection<EJB3OperationFacade> getDaoBusinessOperations()
714     {
715         return this.getSuperEJB3EntityFacade().getDaoBusinessOperations();
716     }
717 
718     /**
719      * Returns the default DAO exception name.
720      * @see EJB3EntityFacade#getDaoDefaultExceptionName()
721      */
722     public String getDaoDefaultExceptionName()
723     {
724         return this.getSuperEJB3EntityFacade().getDaoDefaultExceptionName();
725     }
726 
727     /**
728      * The DAO implementation class name.
729      * @see EJB3EntityFacade#getDaoImplementationName()
730      */
731     public String getDaoImplementationName()
732     {
733         return this.getSuperEJB3EntityFacade().getDaoImplementationName();
734     }
735 
736     /**
737      * The name of the DAO for the specified entity.
738      * @see EJB3EntityFacade#getDaoName()
739      */
740     public String getDaoName()
741     {
742         return this.getSuperEJB3EntityFacade().getDaoName();
743     }
744 
745     /**
746      * The constant name denoting no transformation is to be applied.
747      * @see EJB3EntityFacade#getDaoNoTransformationConstantName()
748      */
749     public String getDaoNoTransformationConstantName()
750     {
751         return this.getSuperEJB3EntityFacade().getDaoNoTransformationConstantName();
752     }
753 
754     /**
755      * Returns the default entity cascadable property attribute looked up in the namespace
756      * descriptor.
757      * @see EJB3EntityFacade#getDefaultCascadeType()
758      */
759     public String getDefaultCascadeType()
760     {
761         return this.getSuperEJB3EntityFacade().getDefaultCascadeType();
762     }
763 
764     /**
765      * Returns the default persistence context unit name for the injected EntityManger for the
766      * DAO/Manageable service beans.  It is derived from the persistenceContextUnitName namespace
767      * property.
768      * @see EJB3EntityFacade#getDefaultPersistenceContextUnitName()
769      */
770     public String getDefaultPersistenceContextUnitName()
771     {
772         return this.getSuperEJB3EntityFacade().getDefaultPersistenceContextUnitName();
773     }
774 
775     /**
776      * The name of the discriminator column.  Default is TYPE if this is missing.
777      * @see EJB3EntityFacade#getDiscriminatorColumn()
778      */
779     public String getDiscriminatorColumn()
780     {
781         return this.getSuperEJB3EntityFacade().getDiscriminatorColumn();
782     }
783 
784     /**
785      * The SQL used when generating the DDL for the discriminator column.
786      * @see EJB3EntityFacade#getDiscriminatorColumnDefinition()
787      */
788     public String getDiscriminatorColumnDefinition()
789     {
790         return this.getSuperEJB3EntityFacade().getDiscriminatorColumnDefinition();
791     }
792 
793     /**
794      * The standard length of a discriminator value.  Default is 10.
795      * @see EJB3EntityFacade#getDiscriminatorLength()
796      */
797     public int getDiscriminatorLength()
798     {
799         return this.getSuperEJB3EntityFacade().getDiscriminatorLength();
800     }
801 
802     /**
803      * The type of the entity discriminator column.  Default is STRING.
804      * @see EJB3EntityFacade#getDiscriminatorType()
805      */
806     public String getDiscriminatorType()
807     {
808         return this.getSuperEJB3EntityFacade().getDiscriminatorType();
809     }
810 
811     /**
812      * The value indicating the row in an entity of the annotated entity type.
813      * @see EJB3EntityFacade#getDiscriminatorValue()
814      */
815     public String getDiscriminatorValue()
816     {
817         return this.getSuperEJB3EntityFacade().getDiscriminatorValue();
818     }
819 
820     /**
821      * Entity composite primary key class name for this entity.
822      * @see EJB3EntityFacade#getEntityCompositePrimaryKeyName()
823      */
824     public String getEntityCompositePrimaryKeyName()
825     {
826         return this.getSuperEJB3EntityFacade().getEntityCompositePrimaryKeyName();
827     }
828 
829     /**
830      * Entity embeddable super class name this entity inherits from.
831      * @see EJB3EntityFacade#getEntityEmbeddableName()
832      */
833     public String getEntityEmbeddableName()
834     {
835         return this.getSuperEJB3EntityFacade().getEntityEmbeddableName();
836     }
837 
838     /**
839      * The name of the implementation class.
840      * @see EJB3EntityFacade#getEntityImplementationName()
841      */
842     public String getEntityImplementationName()
843     {
844         return this.getSuperEJB3EntityFacade().getEntityImplementationName();
845     }
846 
847     /**
848      * Entity listener class name for callback methods.
849      * @see EJB3EntityFacade#getEntityListenerName()
850      */
851     public String getEntityListenerName()
852     {
853         return this.getSuperEJB3EntityFacade().getEntityListenerName();
854     }
855 
856     /**
857      * The named used for the EJB3 entity.
858      * @see EJB3EntityFacade#getEntityName()
859      */
860     public String getEntityName()
861     {
862         return this.getSuperEJB3EntityFacade().getEntityName();
863     }
864 
865     /**
866      * Entity classes that are association relationships from this entity.
867      * @see EJB3EntityFacade#getEntityRelations()
868      */
869     public Collection getEntityRelations()
870     {
871         return this.getSuperEJB3EntityFacade().getEntityRelations();
872     }
873 
874     /**
875      * Gets all env-entries for the specified entity EJB. Env-entries are stored as static
876      * attributes on the entity and stereotyped as <<EnvEntry>>.  If 'follow' is true, then the
877      * inheritance hierarchy will be followed and we'll retrieve all env-entries from any super
878      * types as well.
879      * @see EJB3EntityFacade#getEnvironmentEntries(boolean follow)
880      */
881     public Collection getEnvironmentEntries(boolean follow)
882     {
883         return this.getSuperEJB3EntityFacade().getEnvironmentEntries(follow);
884     }
885 
886     /**
887      * The fully qualified name of the base DAO.
888      * @see EJB3EntityFacade#getFullyQualifiedDaoBaseName()
889      */
890     public String getFullyQualifiedDaoBaseName()
891     {
892         return this.getSuperEJB3EntityFacade().getFullyQualifiedDaoBaseName();
893     }
894 
895     /**
896      * Returns the fully qualified default DAO exception name.
897      * @see EJB3EntityFacade#getFullyQualifiedDaoDefaultExceptionName()
898      */
899     public String getFullyQualifiedDaoDefaultExceptionName()
900     {
901         return this.getSuperEJB3EntityFacade().getFullyQualifiedDaoDefaultExceptionName();
902     }
903 
904     /**
905      * The fully qualified name of the DAO implemetation.
906      * @see EJB3EntityFacade#getFullyQualifiedDaoImplementationName()
907      */
908     public String getFullyQualifiedDaoImplementationName()
909     {
910         return this.getSuperEJB3EntityFacade().getFullyQualifiedDaoImplementationName();
911     }
912 
913     /**
914      * The fully qualified name of the DAO.
915      * @see EJB3EntityFacade#getFullyQualifiedDaoName()
916      */
917     public String getFullyQualifiedDaoName()
918     {
919         return this.getSuperEJB3EntityFacade().getFullyQualifiedDaoName();
920     }
921 
922     /**
923      * The fully qualified name of the composite primary key class of this entity.
924      * @see EJB3EntityFacade#getFullyQualifiedEntityCompositePrimaryKeyName()
925      */
926     public String getFullyQualifiedEntityCompositePrimaryKeyName()
927     {
928         return this.getSuperEJB3EntityFacade().getFullyQualifiedEntityCompositePrimaryKeyName();
929     }
930 
931     /**
932      * The fully qualified name of the embeddable super class of this entity.
933      * @see EJB3EntityFacade#getFullyQualifiedEntityEmbeddableName()
934      */
935     public String getFullyQualifiedEntityEmbeddableName()
936     {
937         return this.getSuperEJB3EntityFacade().getFullyQualifiedEntityEmbeddableName();
938     }
939 
940     /**
941      * Fully qualified name of the Entity implementation class.
942      * @see EJB3EntityFacade#getFullyQualifiedEntityImplementationName()
943      */
944     public String getFullyQualifiedEntityImplementationName()
945     {
946         return this.getSuperEJB3EntityFacade().getFullyQualifiedEntityImplementationName();
947     }
948 
949     /**
950      * Fully qualified name of the Entity listner class holding entity callback methods.
951      * @see EJB3EntityFacade#getFullyQualifiedEntityListenerName()
952      */
953     public String getFullyQualifiedEntityListenerName()
954     {
955         return this.getSuperEJB3EntityFacade().getFullyQualifiedEntityListenerName();
956     }
957 
958     /**
959      * The fully qualified name of the EJB3 entity.
960      * @see EJB3EntityFacade#getFullyQualifiedEntityName()
961      */
962     public String getFullyQualifiedEntityName()
963     {
964         return this.getSuperEJB3EntityFacade().getFullyQualifiedEntityName();
965     }
966 
967     /**
968      * A String representing the name of a home interface for this entity EJB.
969      * @see EJB3EntityFacade#getHomeInterfaceName()
970      */
971     public String getHomeInterfaceName()
972     {
973         return this.getSuperEJB3EntityFacade().getHomeInterfaceName();
974     }
975 
976     /**
977      * Returns the identifier, which can be an attribute or an association. For an association, the
978      * target primary key is used as part of the embedded identifier.
979      * @see EJB3EntityFacade#getIdentifier()
980      */
981     public ModelElementFacade getIdentifier()
982     {
983         return this.getSuperEJB3EntityFacade().getIdentifier();
984     }
985 
986     /**
987      * Return the value of the andromda_persistence_inheritance tagged value which is an enumeration
988      * containing SINGLE_TABLE, TABLE_PER_CLASS or JOINED.
989      * @see EJB3EntityFacade#getInheritanceStrategy()
990      */
991     public String getInheritanceStrategy()
992     {
993         return this.getSuperEJB3EntityFacade().getInheritanceStrategy();
994     }
995 
996     /**
997      * All inherited instanceAttributes this class.  The instanceAttributes are grouped by the class
998      * that defines the instanceAttributes, with instanceAttributes from the most removed super
999      * class first.
1000      * @see EJB3EntityFacade#getInheritedInstanceAttributes()
1001      */
1002     public List getInheritedInstanceAttributes()
1003     {
1004         return this.getSuperEJB3EntityFacade().getInheritedInstanceAttributes();
1005     }
1006 
1007     /**
1008      * Gets a comma separated list of instance attribute names.  If 'follow' is true, will travel up
1009      * the inheritance hierarchy to include instance attributes in parent entities as well.  If
1010      * 'withIdentifiers' is true, will include identifiers.
1011      * @see EJB3EntityFacade#getInstanceAttributeNameList(boolean follow, boolean withIdentifiers)
1012      */
1013     public String getInstanceAttributeNameList(boolean follow, boolean withIdentifiers)
1014     {
1015         return this.getSuperEJB3EntityFacade().getInstanceAttributeNameList(follow, withIdentifiers);
1016     }
1017 
1018     /**
1019      * Gets a comma separated list of instance attribute types.  If 'follow' is true, will travel up
1020      * the inheritance hierarchy to include instance attribute types in parent entities as well.  If
1021      * 'withIdentifiers' is true, will include identifiers.
1022      * @see EJB3EntityFacade#getInstanceAttributeTypeList(boolean follow, boolean withIdentifiers)
1023      */
1024     public String getInstanceAttributeTypeList(boolean follow, boolean withIdentifiers)
1025     {
1026         return this.getSuperEJB3EntityFacade().getInstanceAttributeTypeList(follow, withIdentifiers);
1027     }
1028 
1029     /**
1030      * Gets all instance attributes of the entity, and optionally retieves the super entities
1031      * instance attributes as well as excludes the entity's identifiers if 'withIdentifiers' is set
1032      * to false.
1033      * @see EJB3EntityFacade#getInstanceAttributes(boolean follow, boolean withIdentifiers)
1034      */
1035     public Collection getInstanceAttributes(boolean follow, boolean withIdentifiers)
1036     {
1037         return this.getSuperEJB3EntityFacade().getInstanceAttributes(follow, withIdentifiers);
1038     }
1039 
1040     /**
1041      * jndiNamePrefix/ejb/this.getFullyQualifiedName()
1042      * @see EJB3EntityFacade#getJndiName()
1043      */
1044     public String getJndiName()
1045     {
1046         return this.getSuperEJB3EntityFacade().getJndiName();
1047     }
1048 
1049     /**
1050      * Find the attribute with 'andromda_manageable_table_displayname'
1051      * @see EJB3EntityFacade#getManageableDisplayAttribute()
1052      */
1053     public AttributeFacade getManageableDisplayAttribute()
1054     {
1055         return this.getSuperEJB3EntityFacade().getManageableDisplayAttribute();
1056     }
1057 
1058     /**
1059      * Return all dependent Roles with the stereotype 'RunAs'
1060      * @see EJB3EntityFacade#getNonRunAsRoles()
1061      */
1062     public Collection<Role> getNonRunAsRoles()
1063     {
1064         return this.getSuperEJB3EntityFacade().getNonRunAsRoles();
1065     }
1066 
1067     /**
1068      * Returns the comma separated list of roles allowd to execute DAO operations.  This is defined
1069      * by actor dependencies on the entity.
1070      * @see EJB3EntityFacade#getRolesAllowed()
1071      */
1072     public String getRolesAllowed()
1073     {
1074         return this.getSuperEJB3EntityFacade().getRolesAllowed();
1075     }
1076 
1077     /**
1078      * Travels up the inheritance hierarchy and retrieves the root of this entity.  If the root is
1079      * the entity itself then just the entity is returned.
1080      * @see EJB3EntityFacade#getRoot()
1081      */
1082     public EJB3EntityFacade getRoot()
1083     {
1084         return this.getSuperEJB3EntityFacade().getRoot();
1085     }
1086 
1087     /**
1088      * Returns the Seam component name for the class.
1089      * @see EJB3EntityFacade#getSeamComponentName()
1090      */
1091     public String getSeamComponentName()
1092     {
1093         return this.getSuperEJB3EntityFacade().getSeamComponentName();
1094     }
1095 
1096     /**
1097      * Returns the seam component scope type if one is specified.
1098      * @see EJB3EntityFacade#getSeamComponentScopeType()
1099      */
1100     public String getSeamComponentScopeType()
1101     {
1102         return this.getSuperEJB3EntityFacade().getSeamComponentScopeType();
1103     }
1104 
1105     /**
1106      * Returns the security domain value.  Specified using the securityRealm namespace property or
1107      * overridden in the andromda.ejb.security.realm tagged value.
1108      * @see EJB3EntityFacade#getSecurityRealm()
1109      */
1110     public String getSecurityRealm()
1111     {
1112         return this.getSuperEJB3EntityFacade().getSecurityRealm();
1113     }
1114 
1115     /**
1116      * Gets select methods for the entity, if all is set to 'true' then ALL select methods will be
1117      * retrieved (including those inherited from any superclasses).
1118      * @see EJB3EntityFacade#getSelectMethods(boolean follow)
1119      */
1120     public Collection getSelectMethods(boolean follow)
1121     {
1122         return this.getSuperEJB3EntityFacade().getSelectMethods(follow);
1123     }
1124 
1125     /**
1126      * Gets the SQL Mappings from the SQLMappings URI
1127      * @see EJB3EntityFacade#getSqlType()
1128      */
1129     public String getSqlType()
1130     {
1131         return this.getSuperEJB3EntityFacade().getSqlType();
1132     }
1133 
1134     /**
1135      * ValueObject dependency references from this Entity
1136      * @see EJB3EntityFacade#getValueDependencies()
1137      */
1138     public Collection getValueDependencies()
1139     {
1140         return this.getSuperEJB3EntityFacade().getValueDependencies();
1141     }
1142 
1143     /**
1144      * Retrieves the value object dependencies for this entity without inherited object references.
1145      * @see EJB3EntityFacade#getValueObjectReferences()
1146      */
1147     public Collection<DependencyFacade> getValueObjectReferences()
1148     {
1149         return this.getSuperEJB3EntityFacade().getValueObjectReferences();
1150     }
1151 
1152     /**
1153      * Retrieves the values object references for this entity.  If <code>follow</code> is true, then
1154      * all value object references (including those that were inherited) will be retrieved.
1155      * @see EJB3EntityFacade#getValueObjectReferences(boolean follow)
1156      */
1157     public Collection getValueObjectReferences(boolean follow)
1158     {
1159         return this.getSuperEJB3EntityFacade().getValueObjectReferences(follow);
1160     }
1161 
1162     /**
1163      * A string indicating whether the Bean is a local or remotely accessable bean.
1164      * @see EJB3EntityFacade#getViewType()
1165      */
1166     public String getViewType()
1167     {
1168         return this.getSuperEJB3EntityFacade().getViewType();
1169     }
1170 
1171     /**
1172      * If the attribute att is present
1173      * @see EJB3EntityFacade#isAttributePresent(String att)
1174      */
1175     public boolean isAttributePresent(String att)
1176     {
1177         return this.getSuperEJB3EntityFacade().isAttributePresent(att);
1178     }
1179 
1180     /**
1181      * Returns true if caching has been enabled via namespace property hibernateEnableCache.
1182      * @see EJB3EntityFacade#isCacheEnabled()
1183      */
1184     public boolean isCacheEnabled()
1185     {
1186         return this.getSuperEJB3EntityFacade().isCacheEnabled();
1187     }
1188 
1189     /**
1190      * Returns true if a composite primary key exists for this entity bean.  A composite primary key
1191      * consists of 2 or more entity identifiers.
1192      * @see EJB3EntityFacade#isCompositePrimaryKeyPresent()
1193      */
1194     public boolean isCompositePrimaryKeyPresent()
1195     {
1196         return this.getSuperEJB3EntityFacade().isCompositePrimaryKeyPresent();
1197     }
1198 
1199     /**
1200      * Indicates whether or not any business DAO operations are present.
1201      * @see EJB3EntityFacade#isDaoBusinessOperationsPresent()
1202      */
1203     public boolean isDaoBusinessOperationsPresent()
1204     {
1205         return this.getSuperEJB3EntityFacade().isDaoBusinessOperationsPresent();
1206     }
1207 
1208     /**
1209      * True if an implementation is required for the dao class, this is the case when there are
1210      * business operations or value-object transformation.
1211      * @see EJB3EntityFacade#isDaoImplementationRequired()
1212      */
1213     public boolean isDaoImplementationRequired()
1214     {
1215         return this.getSuperEJB3EntityFacade().isDaoImplementationRequired();
1216     }
1217 
1218     /**
1219      * Determines if this entity is an mapped/embeddable super class.
1220      * @see EJB3EntityFacade#isEmbeddableSuperclass()
1221      */
1222     public boolean isEmbeddableSuperclass()
1223     {
1224         return this.getSuperEJB3EntityFacade().isEmbeddableSuperclass();
1225     }
1226 
1227     /**
1228      * Returns true if this entity is a subclass of an mapped/embeddable super class.  You cannot
1229      * have more than 1 level of inheritance using mapped/embeddable super class.  To achieve
1230      * multiple levels, use one of the inheritance mapping strategies like single table, table per
1231      * class or joined table strategies.
1232      * @see EJB3EntityFacade#isEmbeddableSuperclassGeneralizationExists()
1233      */
1234     public boolean isEmbeddableSuperclassGeneralizationExists()
1235     {
1236         return this.getSuperEJB3EntityFacade().isEmbeddableSuperclassGeneralizationExists();
1237     }
1238 
1239     /**
1240      * True if an entity implementation is required for the entity class, this is the case when
1241      * there are business operations.
1242      * @see EJB3EntityFacade#isEntityImplementationRequired()
1243      */
1244     public boolean isEntityImplementationRequired()
1245     {
1246         return this.getSuperEJB3EntityFacade().isEntityImplementationRequired();
1247     }
1248 
1249     /**
1250      * Returns true if the findAll finder method (specified as a query method) has been modelled.
1251      * @see EJB3EntityFacade#isFinderFindAllExists()
1252      */
1253     public boolean isFinderFindAllExists()
1254     {
1255         return this.getSuperEJB3EntityFacade().isFinderFindAllExists();
1256     }
1257 
1258     /**
1259      * Returns true if the finder findByPrimaryKey has been modelled.
1260      * @see EJB3EntityFacade#isFinderFindByPrimaryKeyExists()
1261      */
1262     public boolean isFinderFindByPrimaryKeyExists()
1263     {
1264         return this.getSuperEJB3EntityFacade().isFinderFindByPrimaryKeyExists();
1265     }
1266 
1267     /**
1268      * Returns true if the generic finder property is true.  This will create generic finder static
1269      * methods in the entity POJO like findByPrimaryKey and findAll.
1270      * @see EJB3EntityFacade#isGenericFinders()
1271      */
1272     public boolean isGenericFinders()
1273     {
1274         return this.getSuperEJB3EntityFacade().isGenericFinders();
1275     }
1276 
1277     /**
1278      * If the identifier id is present
1279      * @see EJB3EntityFacade#isIdentifierPresent(String id)
1280      */
1281     public boolean isIdentifierPresent(String id)
1282     {
1283         return this.getSuperEJB3EntityFacade().isIdentifierPresent(id);
1284     }
1285 
1286     /**
1287      * Return true if the entity inheritance strategy as specified by the tagged value
1288      * andromda_persistence_inheritance is defined as JOINED.
1289      * @see EJB3EntityFacade#isInheritanceJoined()
1290      */
1291     public boolean isInheritanceJoined()
1292     {
1293         return this.getSuperEJB3EntityFacade().isInheritanceJoined();
1294     }
1295 
1296     /**
1297      * Return true if the entity inheritance strategy as specified by the tagged value
1298      * andromda_persistence_inheritance is defined as SINGLE_TABLE.
1299      * @see EJB3EntityFacade#isInheritanceSingleTable()
1300      */
1301     public boolean isInheritanceSingleTable()
1302     {
1303         return this.getSuperEJB3EntityFacade().isInheritanceSingleTable();
1304     }
1305 
1306     /**
1307      * Return true if the entity inheritance strategy as specified by the tagged value
1308      * andromda_persistence_inheritance is defined as TABLE_PER_CLASS.
1309      * @see EJB3EntityFacade#isInheritanceTablePerClass()
1310      */
1311     public boolean isInheritanceTablePerClass()
1312     {
1313         return this.getSuperEJB3EntityFacade().isInheritanceTablePerClass();
1314     }
1315 
1316     /**
1317      * Returns true if this entity bean has the stereotype Listener.  False otherwise.
1318      * @see EJB3EntityFacade#isListenerEnabled()
1319      */
1320     public boolean isListenerEnabled()
1321     {
1322         return this.getSuperEJB3EntityFacade().isListenerEnabled();
1323     }
1324 
1325     /**
1326      * Returns true if this entity is assigned the Manageable stereotype.  False otherwise.
1327      * @see EJB3EntityFacade#isManageable()
1328      */
1329     public boolean isManageable()
1330     {
1331         return this.getSuperEJB3EntityFacade().isManageable();
1332     }
1333 
1334     /**
1335      * If the operation op is present
1336      * @see EJB3EntityFacade#isOperationPresent(String op)
1337      */
1338     public boolean isOperationPresent(String op)
1339     {
1340         return this.getSuperEJB3EntityFacade().isOperationPresent(op);
1341     }
1342 
1343     /**
1344      * Returns true if the entity requires generalization mapping.  The Inheritance annotation is
1345      * required for child entities for all inheritance strategies.
1346      * @see EJB3EntityFacade#isRequiresGeneralizationMapping()
1347      */
1348     public boolean isRequiresGeneralizationMapping()
1349     {
1350         return this.getSuperEJB3EntityFacade().isRequiresGeneralizationMapping();
1351     }
1352 
1353     /**
1354      * Returns true if the entity requires specialization mapping.  The Inheritance annotation is
1355      * required for parent entities for all inheritance strategies.
1356      * @see EJB3EntityFacade#isRequiresSpecializationMapping()
1357      */
1358     public boolean isRequiresSpecializationMapping()
1359     {
1360         return this.getSuperEJB3EntityFacade().isRequiresSpecializationMapping();
1361     }
1362 
1363     /**
1364      * Returns true if this entity has the <<Seam>> stereotype modelled indicating it is a Seam
1365      * entity component.
1366      * @see EJB3EntityFacade#isSeamComponent()
1367      */
1368     public boolean isSeamComponent()
1369     {
1370         return this.getSuperEJB3EntityFacade().isSeamComponent();
1371     }
1372 
1373     /**
1374      * Returns true if the security realm is specified.  This will generate the security setting for
1375      * the DAO components.
1376      * @see EJB3EntityFacade#isSecurityEnabled()
1377      */
1378     public boolean isSecurityEnabled()
1379     {
1380         return this.getSuperEJB3EntityFacade().isSecurityEnabled();
1381     }
1382 
1383     /**
1384      * Whether or not to allow a synthetic (auto generated) create method.
1385      * @see EJB3EntityFacade#isSyntheticCreateMethodAllowed()
1386      */
1387     public boolean isSyntheticCreateMethodAllowed()
1388     {
1389         return this.getSuperEJB3EntityFacade().isSyntheticCreateMethodAllowed();
1390     }
1391 
1392     /**
1393      * Return true if a unique cache region is NOT required for entities and queries.  This means we
1394      * use the default cache region specified by the container.  Specified via the
1395      * useDefaultCacheRegion namepsace property.
1396      * @see EJB3EntityFacade#isUseDefaultCacheRegion()
1397      */
1398     public boolean isUseDefaultCacheRegion()
1399     {
1400         return this.getSuperEJB3EntityFacade().isUseDefaultCacheRegion();
1401     }
1402 
1403     /**
1404      * Returns true if the application wide namespace property hibernateUseQueryCache is enabled. 
1405      * This is used for generic finder methods i.e. findAll.
1406      * @see EJB3EntityFacade#isUseQueryCache()
1407      */
1408     public boolean isUseQueryCache()
1409     {
1410         return this.getSuperEJB3EntityFacade().isUseQueryCache();
1411     }
1412 
1413     /**
1414      * Return the attribute which name matches the parameter
1415      * @see ClassifierFacade#findAttribute(String name)
1416      */
1417     public AttributeFacade findAttribute(String name)
1418     {
1419         return this.getSuperEJB3EntityFacade().findAttribute(name);
1420     }
1421 
1422     /**
1423      * Those abstraction dependencies for which this classifier is the client.
1424      * @see ClassifierFacade#getAbstractions()
1425      */
1426     public Collection<ClassifierFacade> getAbstractions()
1427     {
1428         return this.getSuperEJB3EntityFacade().getAbstractions();
1429     }
1430 
1431     /**
1432      * Lists all classes associated to this one and any ancestor classes (through generalization).
1433      * There will be no duplicates. The order of the elements is predictable.
1434      * @see ClassifierFacade#getAllAssociatedClasses()
1435      */
1436     public Collection<ClassifierFacade> getAllAssociatedClasses()
1437     {
1438         return this.getSuperEJB3EntityFacade().getAllAssociatedClasses();
1439     }
1440 
1441     /**
1442      * A collection containing all 'properties' of the classifier and its ancestors.  Properties are
1443      * any attributes and navigable connecting association ends.
1444      * @see ClassifierFacade#getAllProperties()
1445      */
1446     public Collection<ModelElementFacade> getAllProperties()
1447     {
1448         return this.getSuperEJB3EntityFacade().getAllProperties();
1449     }
1450 
1451     /**
1452      * A collection containing all required and/or read-only 'properties' of the classifier and its
1453      * ancestors. Properties are any attributes and navigable connecting association ends.
1454      * @see ClassifierFacade#getAllRequiredConstructorParameters()
1455      */
1456     public Collection<ModelElementFacade> getAllRequiredConstructorParameters()
1457     {
1458         return this.getSuperEJB3EntityFacade().getAllRequiredConstructorParameters();
1459     }
1460 
1461     /**
1462      * Gets the array type for this classifier.  If this classifier already represents an array, it
1463      * just returns itself.
1464      * @see ClassifierFacade#getArray()
1465      */
1466     public ClassifierFacade getArray()
1467     {
1468         return this.getSuperEJB3EntityFacade().getArray();
1469     }
1470 
1471     /**
1472      * The name of the classifier as an array.
1473      * @see ClassifierFacade#getArrayName()
1474      */
1475     public String getArrayName()
1476     {
1477         return this.getSuperEJB3EntityFacade().getArrayName();
1478     }
1479 
1480     /**
1481      * Lists the classes associated to this one, there is no repitition of classes. The order of the
1482      * elements is predictable.
1483      * @see ClassifierFacade#getAssociatedClasses()
1484      */
1485     public Collection<ClassifierFacade> getAssociatedClasses()
1486     {
1487         return this.getSuperEJB3EntityFacade().getAssociatedClasses();
1488     }
1489 
1490     /**
1491      * Gets the association ends belonging to a classifier.
1492      * @see ClassifierFacade#getAssociationEnds()
1493      */
1494     public List<AssociationEndFacade> getAssociationEnds()
1495     {
1496         return this.getSuperEJB3EntityFacade().getAssociationEnds();
1497     }
1498 
1499     /**
1500      * Gets the attributes that belong to the classifier.
1501      * @see ClassifierFacade#getAttributes()
1502      */
1503     public List<AttributeFacade> getAttributes()
1504     {
1505         return this.getSuperEJB3EntityFacade().getAttributes();
1506     }
1507 
1508     /**
1509      * Gets all attributes for the classifier and if 'follow' is true goes up the inheritance
1510      * hierarchy and gets the attributes from the super classes as well.
1511      * @see ClassifierFacade#getAttributes(boolean follow)
1512      */
1513     public List<AttributeFacade> getAttributes(boolean follow)
1514     {
1515         return this.getSuperEJB3EntityFacade().getAttributes(follow);
1516     }
1517 
1518     /**
1519      * The fully qualified name of the classifier as an array.
1520      * @see ClassifierFacade#getFullyQualifiedArrayName()
1521      */
1522     public String getFullyQualifiedArrayName()
1523     {
1524         return this.getSuperEJB3EntityFacade().getFullyQualifiedArrayName();
1525     }
1526 
1527     /**
1528      * Returns all those operations that could be implemented at this classifier's level. This means
1529      * the operations owned by this classifier as well as any realized interface's operations
1530      * (recursively) in case this classifier itself is not already an interface, or generalized when
1531      * this classifier is an interface.
1532      * @see ClassifierFacade#getImplementationOperations()
1533      */
1534     public Collection<OperationFacade> getImplementationOperations()
1535     {
1536         return this.getSuperEJB3EntityFacade().getImplementationOperations();
1537     }
1538 
1539     /**
1540      * A comma separated list of the fully qualified names of all implemented interfaces.
1541      * @see ClassifierFacade#getImplementedInterfaceList()
1542      */
1543     public String getImplementedInterfaceList()
1544     {
1545         return this.getSuperEJB3EntityFacade().getImplementedInterfaceList();
1546     }
1547 
1548     /**
1549      * Those attributes that are scoped to an instance of this class.
1550      * @see ClassifierFacade#getInstanceAttributes()
1551      */
1552     public Collection<AttributeFacade> getInstanceAttributes()
1553     {
1554         return this.getSuperEJB3EntityFacade().getInstanceAttributes();
1555     }
1556 
1557     /**
1558      * Those operations that are scoped to an instance of this class.
1559      * @see ClassifierFacade#getInstanceOperations()
1560      */
1561     public List<OperationFacade> getInstanceOperations()
1562     {
1563         return this.getSuperEJB3EntityFacade().getInstanceOperations();
1564     }
1565 
1566     /**
1567      * Those interfaces that are abstractions of this classifier, this basically means this
1568      * classifier realizes them.
1569      * @see ClassifierFacade#getInterfaceAbstractions()
1570      */
1571     public Collection<ClassifierFacade> getInterfaceAbstractions()
1572     {
1573         return this.getSuperEJB3EntityFacade().getInterfaceAbstractions();
1574     }
1575 
1576     /**
1577      * A String representing a new Constructor declaration for this classifier type to be used in a
1578      * Java environment.
1579      * @see ClassifierFacade#getJavaNewString()
1580      */
1581     public String getJavaNewString()
1582     {
1583         return this.getSuperEJB3EntityFacade().getJavaNewString();
1584     }
1585 
1586     /**
1587      * A String representing the null-value for this classifier type to be used in a Java
1588      * environment.
1589      * @see ClassifierFacade#getJavaNullString()
1590      */
1591     public String getJavaNullString()
1592     {
1593         return this.getSuperEJB3EntityFacade().getJavaNullString();
1594     }
1595 
1596     /**
1597      * The other ends of this classifier's association ends which are navigable.
1598      * @see ClassifierFacade#getNavigableConnectingEnds()
1599      */
1600     public Collection<AssociationEndFacade> getNavigableConnectingEnds()
1601     {
1602         return this.getSuperEJB3EntityFacade().getNavigableConnectingEnds();
1603     }
1604 
1605     /**
1606      * Get the other ends of this classifier's association ends which are navigable and if 'follow'
1607      * is true goes up the inheritance hierarchy and gets the super association ends as well.
1608      * @see ClassifierFacade#getNavigableConnectingEnds(boolean follow)
1609      */
1610     public List<AssociationEndFacade> getNavigableConnectingEnds(boolean follow)
1611     {
1612         return this.getSuperEJB3EntityFacade().getNavigableConnectingEnds(follow);
1613     }
1614 
1615     /**
1616      * Assuming that the classifier is an array, this will return the non array type of the
1617      * classifier from
1618      * the model.  If the classifier is NOT an array, it will just return itself.
1619      * @see ClassifierFacade#getNonArray()
1620      */
1621     public ClassifierFacade getNonArray()
1622     {
1623         return this.getSuperEJB3EntityFacade().getNonArray();
1624     }
1625 
1626     /**
1627      * The attributes from this classifier in the form of an operation call (this example would be
1628      * in Java): '(String attributeOne, String attributeTwo).  If there were no attributes on the
1629      * classifier, the result would be an empty '()'.
1630      * @see ClassifierFacade#getOperationCallFromAttributes()
1631      */
1632     public String getOperationCallFromAttributes()
1633     {
1634         return this.getSuperEJB3EntityFacade().getOperationCallFromAttributes();
1635     }
1636 
1637     /**
1638      * The operations owned by this classifier.
1639      * @see ClassifierFacade#getOperations()
1640      */
1641     public List<OperationFacade> getOperations()
1642     {
1643         return this.getSuperEJB3EntityFacade().getOperations();
1644     }
1645 
1646     /**
1647      * A collection containing all 'properties' of the classifier.  Properties are any attributes
1648      * and navigable connecting association ends.
1649      * @see ClassifierFacade#getProperties()
1650      */
1651     public List<ModelElementFacade> getProperties()
1652     {
1653         return this.getSuperEJB3EntityFacade().getProperties();
1654     }
1655 
1656     /**
1657      * Gets all properties (attributes and navigable association ends) for the classifier and if
1658      * 'follow' is true goes up the inheritance hierarchy and gets the properties from the super
1659      * classes as well.
1660      * @see ClassifierFacade#getProperties(boolean follow)
1661      */
1662     public List getProperties(boolean follow)
1663     {
1664         return this.getSuperEJB3EntityFacade().getProperties(follow);
1665     }
1666 
1667     /**
1668      * A collection containing all required and/or read-only 'properties' of the classifier. 
1669      * Properties are any attributes and navigable connecting association ends.
1670      * @see ClassifierFacade#getRequiredConstructorParameters()
1671      */
1672     public Collection<ModelElementFacade> getRequiredConstructorParameters()
1673     {
1674         return this.getSuperEJB3EntityFacade().getRequiredConstructorParameters();
1675     }
1676 
1677     /**
1678      * Returns the serial version UID of the underlying model element.
1679      * @see ClassifierFacade#getSerialVersionUID()
1680      */
1681     public long getSerialVersionUID()
1682     {
1683         return this.getSuperEJB3EntityFacade().getSerialVersionUID();
1684     }
1685 
1686     /**
1687      * Those attributes that are scoped to the definition of this class.
1688      * @see ClassifierFacade#getStaticAttributes()
1689      */
1690     public Collection<AttributeFacade> getStaticAttributes()
1691     {
1692         return this.getSuperEJB3EntityFacade().getStaticAttributes();
1693     }
1694 
1695     /**
1696      * Those operations that are scoped to the definition of this class.
1697      * @see ClassifierFacade#getStaticOperations()
1698      */
1699     public List<OperationFacade> getStaticOperations()
1700     {
1701         return this.getSuperEJB3EntityFacade().getStaticOperations();
1702     }
1703 
1704     /**
1705      * This class' superclass, returns the generalization if it is a ClassifierFacade, null
1706      * otherwise.
1707      * @see ClassifierFacade#getSuperClass()
1708      */
1709     public ClassifierFacade getSuperClass()
1710     {
1711         return this.getSuperEJB3EntityFacade().getSuperClass();
1712     }
1713 
1714     /**
1715      * The wrapper name for this classifier if a mapped type has a defined wrapper class (ie. 'long'
1716      * maps to 'Long').  If the classifier doesn't have a wrapper defined for it, this method will
1717      * return a null.  Note that wrapper mappings must be defined for the namespace by defining the
1718      * 'wrapperMappingsUri', this property must point to the location of the mappings file which
1719      * maps the primitives to wrapper types.
1720      * @see ClassifierFacade#getWrapperName()
1721      */
1722     public String getWrapperName()
1723     {
1724         return this.getSuperEJB3EntityFacade().getWrapperName();
1725     }
1726 
1727     /**
1728      * Indicates if this classifier is 'abstract'.
1729      * @see ClassifierFacade#isAbstract()
1730      */
1731     public boolean isAbstract()
1732     {
1733         return this.getSuperEJB3EntityFacade().isAbstract();
1734     }
1735 
1736     /**
1737      * True if this classifier represents an array type. False otherwise.
1738      * @see ClassifierFacade#isArrayType()
1739      */
1740     public boolean isArrayType()
1741     {
1742         return this.getSuperEJB3EntityFacade().isArrayType();
1743     }
1744 
1745     /**
1746      * True if the ClassifierFacade is an AssociationClass.
1747      * @see ClassifierFacade#isAssociationClass()
1748      */
1749     public boolean isAssociationClass()
1750     {
1751         return this.getSuperEJB3EntityFacade().isAssociationClass();
1752     }
1753 
1754     /**
1755      * Returns true if this type represents a Blob type.
1756      * @see ClassifierFacade#isBlobType()
1757      */
1758     public boolean isBlobType()
1759     {
1760         return this.getSuperEJB3EntityFacade().isBlobType();
1761     }
1762 
1763     /**
1764      * Indicates if this type represents a boolean type or not.
1765      * @see ClassifierFacade#isBooleanType()
1766      */
1767     public boolean isBooleanType()
1768     {
1769         return this.getSuperEJB3EntityFacade().isBooleanType();
1770     }
1771 
1772     /**
1773      * Indicates if this type represents a char, Character, or java.lang.Character type or not.
1774      * @see ClassifierFacade#isCharacterType()
1775      */
1776     public boolean isCharacterType()
1777     {
1778         return this.getSuperEJB3EntityFacade().isCharacterType();
1779     }
1780 
1781     /**
1782      * Returns true if this type represents a Clob type.
1783      * @see ClassifierFacade#isClobType()
1784      */
1785     public boolean isClobType()
1786     {
1787         return this.getSuperEJB3EntityFacade().isClobType();
1788     }
1789 
1790     /**
1791      * True if this classifier represents a collection type. False otherwise.
1792      * @see ClassifierFacade#isCollectionType()
1793      */
1794     public boolean isCollectionType()
1795     {
1796         return this.getSuperEJB3EntityFacade().isCollectionType();
1797     }
1798 
1799     /**
1800      * True/false depending on whether or not this classifier represents a datatype. A data type is
1801      * a type whose instances are identified only by their value. A data type may contain attributes
1802      * to support the modeling of structured data types.
1803      * @see ClassifierFacade#isDataType()
1804      */
1805     public boolean isDataType()
1806     {
1807         return this.getSuperEJB3EntityFacade().isDataType();
1808     }
1809 
1810     /**
1811      * True when this classifier is a date type.
1812      * @see ClassifierFacade#isDateType()
1813      */
1814     public boolean isDateType()
1815     {
1816         return this.getSuperEJB3EntityFacade().isDateType();
1817     }
1818 
1819     /**
1820      * Indicates if this type represents a Double type or not.
1821      * @see ClassifierFacade#isDoubleType()
1822      */
1823     public boolean isDoubleType()
1824     {
1825         return this.getSuperEJB3EntityFacade().isDoubleType();
1826     }
1827 
1828     /**
1829      * Indicates whether or not this classifier represents an "EmbeddedValue'.
1830      * @see ClassifierFacade#isEmbeddedValue()
1831      */
1832     public boolean isEmbeddedValue()
1833     {
1834         return this.getSuperEJB3EntityFacade().isEmbeddedValue();
1835     }
1836 
1837     /**
1838      * True if this classifier is in fact marked as an enumeration.
1839      * @see ClassifierFacade#isEnumeration()
1840      */
1841     public boolean isEnumeration()
1842     {
1843         return this.getSuperEJB3EntityFacade().isEnumeration();
1844     }
1845 
1846     /**
1847      * Returns true if this type represents a 'file' type.
1848      * @see ClassifierFacade#isFileType()
1849      */
1850     public boolean isFileType()
1851     {
1852         return this.getSuperEJB3EntityFacade().isFileType();
1853     }
1854 
1855     /**
1856      * Indicates if this type represents a Float type or not.
1857      * @see ClassifierFacade#isFloatType()
1858      */
1859     public boolean isFloatType()
1860     {
1861         return this.getSuperEJB3EntityFacade().isFloatType();
1862     }
1863 
1864     /**
1865      * Indicates if this type represents an int or Integer or java.lang.Integer type or not.
1866      * @see ClassifierFacade#isIntegerType()
1867      */
1868     public boolean isIntegerType()
1869     {
1870         return this.getSuperEJB3EntityFacade().isIntegerType();
1871     }
1872 
1873     /**
1874      * True/false depending on whether or not this Classifier represents an interface.
1875      * @see ClassifierFacade#isInterface()
1876      */
1877     public boolean isInterface()
1878     {
1879         return this.getSuperEJB3EntityFacade().isInterface();
1880     }
1881 
1882     /**
1883      * True if this classifier cannot be extended and represent a leaf in the inheritance tree.
1884      * @see ClassifierFacade#isLeaf()
1885      */
1886     public boolean isLeaf()
1887     {
1888         return this.getSuperEJB3EntityFacade().isLeaf();
1889     }
1890 
1891     /**
1892      * True if this classifier represents a list type. False otherwise.
1893      * @see ClassifierFacade#isListType()
1894      */
1895     public boolean isListType()
1896     {
1897         return this.getSuperEJB3EntityFacade().isListType();
1898     }
1899 
1900     /**
1901      * Indicates if this type represents a Long type or not.
1902      * @see ClassifierFacade#isLongType()
1903      */
1904     public boolean isLongType()
1905     {
1906         return this.getSuperEJB3EntityFacade().isLongType();
1907     }
1908 
1909     /**
1910      * Indicates whether or not this classifier represents a Map type.
1911      * @see ClassifierFacade#isMapType()
1912      */
1913     public boolean isMapType()
1914     {
1915         return this.getSuperEJB3EntityFacade().isMapType();
1916     }
1917 
1918     /**
1919      * Indicates whether or not this classifier represents a primitive type.
1920      * @see ClassifierFacade#isPrimitive()
1921      */
1922     public boolean isPrimitive()
1923     {
1924         return this.getSuperEJB3EntityFacade().isPrimitive();
1925     }
1926 
1927     /**
1928      * True if this classifier represents a set type. False otherwise.
1929      * @see ClassifierFacade#isSetType()
1930      */
1931     public boolean isSetType()
1932     {
1933         return this.getSuperEJB3EntityFacade().isSetType();
1934     }
1935 
1936     /**
1937      * Indicates whether or not this classifier represents a string type.
1938      * @see ClassifierFacade#isStringType()
1939      */
1940     public boolean isStringType()
1941     {
1942         return this.getSuperEJB3EntityFacade().isStringType();
1943     }
1944 
1945     /**
1946      * Indicates whether or not this classifier represents a time type.
1947      * @see ClassifierFacade#isTimeType()
1948      */
1949     public boolean isTimeType()
1950     {
1951         return this.getSuperEJB3EntityFacade().isTimeType();
1952     }
1953 
1954     /**
1955      * Returns true if this type is a wrapped primitive type.
1956      * @see ClassifierFacade#isWrappedPrimitive()
1957      */
1958     public boolean isWrappedPrimitive()
1959     {
1960         return this.getSuperEJB3EntityFacade().isWrappedPrimitive();
1961     }
1962 
1963     /**
1964      * Returns a collection of all entities this entity and its ancestors have a relation to.
1965      * @see org.andromda.metafacades.uml.Entity#getAllEntityReferences()
1966      */
1967     public Collection<DependencyFacade> getAllEntityReferences()
1968     {
1969         return this.getSuperEJB3EntityFacade().getAllEntityReferences();
1970     }
1971 
1972     /**
1973      * Gets a comma separated list of attribute names.  If 'follow' is true, will travel up the
1974      * inheritance hiearchy to include attributes in parent entities as well.  If 'withIdentifiers'
1975      * is true, will include identifiers.
1976      * @see org.andromda.metafacades.uml.Entity#getAttributeNameList(boolean follow, boolean withIdentifiers)
1977      */
1978     public String getAttributeNameList(boolean follow, boolean withIdentifiers)
1979     {
1980         return this.getSuperEJB3EntityFacade().getAttributeNameList(follow, withIdentifiers);
1981     }
1982 
1983     /**
1984      * Gets a comma separated list of attribute names.  If 'follow' is true, will travel up the
1985      * inheritance hiearchy to include attributes in parent entities as well.  If 'withIdentifiers'
1986      * is true, will include identifiers  and  if 'withDerived' is set to true, will include derived
1987      * attributes.
1988      * @see org.andromda.metafacades.uml.Entity#getAttributeNameList(boolean follow, boolean withIdentifiers, boolean withDerived)
1989      */
1990     public String getAttributeNameList(boolean follow, boolean withIdentifiers, boolean withDerived)
1991     {
1992         return this.getSuperEJB3EntityFacade().getAttributeNameList(follow, withIdentifiers, withDerived);
1993     }
1994 
1995     /**
1996      * Gets a comma separated list of attribute types.  If 'follow' is true, will travel up the
1997      * inheritance hierarchy to include attributes in parent entities as well.  If 'withIdentifiers'
1998      * is true, will include identifiers.
1999      * @see org.andromda.metafacades.uml.Entity#getAttributeTypeList(boolean follow, boolean withIdentifiers)
2000      */
2001     public String getAttributeTypeList(boolean follow, boolean withIdentifiers)
2002     {
2003         return this.getSuperEJB3EntityFacade().getAttributeTypeList(follow, withIdentifiers);
2004     }
2005 
2006     /**
2007      * Gets all attributes of the entity, and optionally retieves the super entities attributes as
2008      * well as excludes the entity's identifiers if 'withIdentifiers' is set to false.
2009      * @see org.andromda.metafacades.uml.Entity#getAttributes(boolean follow, boolean withIdentifiers)
2010      */
2011     public Collection<AttributeFacade> getAttributes(boolean follow, boolean withIdentifiers)
2012     {
2013         return this.getSuperEJB3EntityFacade().getAttributes(follow, withIdentifiers);
2014     }
2015 
2016     /**
2017      * Gets all attributes of the entity, and optionally retieves the super entities attributes as
2018      * well as excludes the entity's identifiers if 'withIdentifiers' is set to false and exclude
2019      * derived attributes if 'withDerived' is set to false.
2020      * @see org.andromda.metafacades.uml.Entity#getAttributes(boolean follow, boolean withIdentifiers, boolean withDerived)
2021      */
2022     public Collection<AttributeFacade> getAttributes(boolean follow, boolean withIdentifiers, boolean withDerived)
2023     {
2024         return this.getSuperEJB3EntityFacade().getAttributes(follow, withIdentifiers, withDerived);
2025     }
2026 
2027     /**
2028      * All business operations of the entity, these include any operations that aren't queries.
2029      * @see org.andromda.metafacades.uml.Entity#getBusinessOperations()
2030      */
2031     public Collection<OperationFacade> getBusinessOperations()
2032     {
2033         return this.getSuperEJB3EntityFacade().getBusinessOperations();
2034     }
2035 
2036     /**
2037      * Gets any children association ends (i.e. entity association ends that are participants in an
2038      * association with this entity and this entity has composite aggregation defined for those
2039      * associations).
2040      * @see org.andromda.metafacades.uml.Entity#getChildEnds()
2041      */
2042     public Collection<EntityAssociationEnd> getChildEnds()
2043     {
2044         return this.getSuperEJB3EntityFacade().getChildEnds();
2045     }
2046 
2047     /**
2048      * The embedded values belonging to this entity.
2049      * @see org.andromda.metafacades.uml.Entity#getEmbeddedValues()
2050      */
2051     public Collection<AttributeFacade> getEmbeddedValues()
2052     {
2053         return this.getSuperEJB3EntityFacade().getEmbeddedValues();
2054     }
2055 
2056     /**
2057      * All entities referenced by this entity.
2058      * @see org.andromda.metafacades.uml.Entity#getEntityReferences()
2059      */
2060     public Collection<DependencyFacade> getEntityReferences()
2061     {
2062         return this.getSuperEJB3EntityFacade().getEntityReferences();
2063     }
2064 
2065     /**
2066      * The full name of the type of the identifier. If composite identifier add the PK sufix to the
2067      * class name. If not, retorns the fully qualified name of the identifier.
2068      * @see org.andromda.metafacades.uml.Entity#getFullyQualifiedIdentifierTypeName()
2069      */
2070     public String getFullyQualifiedIdentifierTypeName()
2071     {
2072         return this.getSuperEJB3EntityFacade().getFullyQualifiedIdentifierTypeName();
2073     }
2074 
2075     /**
2076      * Gets all the associationEnds of this entity marked with the identifiers stereotype.
2077      * @see org.andromda.metafacades.uml.Entity#getIdentifierAssociationEnds()
2078      */
2079     public Collection<AssociationEndFacade> getIdentifierAssociationEnds()
2080     {
2081         return this.getSuperEJB3EntityFacade().getIdentifierAssociationEnds();
2082     }
2083 
2084     /**
2085      * The getter name of the identifier.
2086      * @see org.andromda.metafacades.uml.Entity#getIdentifierGetterName()
2087      */
2088     public String getIdentifierGetterName()
2089     {
2090         return this.getSuperEJB3EntityFacade().getIdentifierGetterName();
2091     }
2092 
2093     /**
2094      * The name of the identifier. If composite identifier add the Pk suffix. If not composite
2095      * returns the attribute name of the identifier.
2096      * @see org.andromda.metafacades.uml.Entity#getIdentifierName()
2097      */
2098     public String getIdentifierName()
2099     {
2100         return this.getSuperEJB3EntityFacade().getIdentifierName();
2101     }
2102 
2103     /**
2104      * The setter name of the identifier.
2105      * @see org.andromda.metafacades.uml.Entity#getIdentifierSetterName()
2106      */
2107     public String getIdentifierSetterName()
2108     {
2109         return this.getSuperEJB3EntityFacade().getIdentifierSetterName();
2110     }
2111 
2112     /**
2113      * The name of the type of the identifier. If composite identifier add the PK suffix to the
2114      * class name. If not, returns the name of the identifier.
2115      * @see org.andromda.metafacades.uml.Entity#getIdentifierTypeName()
2116      */
2117     public String getIdentifierTypeName()
2118     {
2119         return this.getSuperEJB3EntityFacade().getIdentifierTypeName();
2120     }
2121 
2122     /**
2123      * All the attributes of the entity which make up its identifier (primary key).  Will search any
2124      * super classes as well.  If no identifiers exist, a default identifier will be created if the
2125      * allowDefaultIdentifiers property is set to true.
2126      * @see org.andromda.metafacades.uml.Entity#getIdentifiers()
2127      */
2128     public Collection<ModelElementFacade> getIdentifiers()
2129     {
2130         return this.getSuperEJB3EntityFacade().getIdentifiers();
2131     }
2132 
2133     /**
2134      * Gets all identifiers for an entity. If 'follow' is true, and if no identifiers can be found
2135      * on the entity, a search up the inheritance chain will be performed, and the identifiers from
2136      * the first super class having them will be used.   If no identifiers exist, a default
2137      * identifier will be created if the allowDefaultIdentifiers property is set to true.
2138      * Identifiers can be on attributes or associations (composite primary key).
2139      * @see org.andromda.metafacades.uml.Entity#getIdentifiers(boolean follow)
2140      */
2141     public Collection<ModelElementFacade> getIdentifiers(boolean follow)
2142     {
2143         return this.getSuperEJB3EntityFacade().getIdentifiers(follow);
2144     }
2145 
2146     /**
2147      * The maximum length a SQL name may be.
2148      * @see org.andromda.metafacades.uml.Entity#getMaxSqlNameLength()
2149      */
2150     public short getMaxSqlNameLength()
2151     {
2152         return this.getSuperEJB3EntityFacade().getMaxSqlNameLength();
2153     }
2154 
2155     /**
2156      * Gets the attributes as a list within an operation call, optionally including the type names
2157      * and the identifier attributes.
2158      * @see org.andromda.metafacades.uml.Entity#getOperationCallFromAttributes(boolean withIdentifiers)
2159      */
2160     public String getOperationCallFromAttributes(boolean withIdentifiers)
2161     {
2162         return this.getSuperEJB3EntityFacade().getOperationCallFromAttributes(withIdentifiers);
2163     }
2164 
2165     /**
2166      * Gets the attributes as a list within an operation call.  If 'withTypeNames' is true, it will
2167      * include the type names, if 'withIdentifiers' is true it will include the identifiers.  If
2168      * 'follow' is true it will follow the inheritance hierarchy and get the attributes of the super
2169      * class as well.
2170      * @see org.andromda.metafacades.uml.Entity#getOperationCallFromAttributes(boolean withIdentifiers, boolean follow)
2171      */
2172     public String getOperationCallFromAttributes(boolean withIdentifiers, boolean follow)
2173     {
2174         return this.getSuperEJB3EntityFacade().getOperationCallFromAttributes(withIdentifiers, follow);
2175     }
2176 
2177     /**
2178      * Returns the parent association end of this entity if its a child entity.  The parent is the
2179      * entity that is the participant the association that has composite aggregation defined.  Will
2180      * return null if the entity has no parent.
2181      * @see org.andromda.metafacades.uml.Entity#getParentEnd()
2182      */
2183     public EntityAssociationEnd getParentEnd()
2184     {
2185         return this.getSuperEJB3EntityFacade().getParentEnd();
2186     }
2187 
2188     /**
2189      * Gets all properties of this entity, this includes the attributes and navigable association
2190      * ends of the entity.  The 'follow' flag indcates whether or not the inheritance hierarchy
2191      * should be followed when getting all the properties.  The 'withIdentifiers' flag indicates
2192      * whether or not identifiers should be included in the collection of properties.
2193      * @see org.andromda.metafacades.uml.Entity#getProperties(boolean follow, boolean withIdentifiers)
2194      */
2195     public Collection<ModelElementFacade> getProperties(boolean follow, boolean withIdentifiers)
2196     {
2197         return this.getSuperEJB3EntityFacade().getProperties(follow, withIdentifiers);
2198     }
2199 
2200     /**
2201      * Returns all the operations that can perform queries on the entity.
2202      * @see org.andromda.metafacades.uml.Entity#getQueryOperations()
2203      */
2204     public Collection<EntityQueryOperation> getQueryOperations()
2205     {
2206         return this.getSuperEJB3EntityFacade().getQueryOperations();
2207     }
2208 
2209     /**
2210      * Gets all query operations for an entity. If 'follow' is true, and if no query operations can
2211      * be found on the entity, a search up the inheritance chain will be performed, and the
2212      * identifiers from the first super class having them will be used.   If no identifiers exist, a
2213      * default identifier will be created if the allowDefaultIdentifiers property is set to true.
2214      * @see org.andromda.metafacades.uml.Entity#getQueryOperations(boolean follow)
2215      */
2216     public Collection<OperationFacade> getQueryOperations(boolean follow)
2217     {
2218         return this.getSuperEJB3EntityFacade().getQueryOperations(follow);
2219     }
2220 
2221     /**
2222      * Gets a comma separated list of required attribute names.  If 'follow' is true, will travel up
2223      * the inheritance hierarchy to include attributes in parent entities as well.  If
2224      * 'withIdentifiers' is true, will include identifiers.
2225      * @see org.andromda.metafacades.uml.Entity#getRequiredAttributeNameList(boolean follow, boolean withIdentifiers)
2226      */
2227     public String getRequiredAttributeNameList(boolean follow, boolean withIdentifiers)
2228     {
2229         return this.getSuperEJB3EntityFacade().getRequiredAttributeNameList(follow, withIdentifiers);
2230     }
2231 
2232     /**
2233      * Gets a comma separated list of attribute types with are required.  If 'follow' is true, will
2234      * travel up the inheritance hierarchy to include attributes in parent entities as well.  If
2235      * 'withIdentifiers' is true, will include identifiers.
2236      * @see org.andromda.metafacades.uml.Entity#getRequiredAttributeTypeList(boolean follow, boolean withIdentifiers)
2237      */
2238     public String getRequiredAttributeTypeList(boolean follow, boolean withIdentifiers)
2239     {
2240         return this.getSuperEJB3EntityFacade().getRequiredAttributeTypeList(follow, withIdentifiers);
2241     }
2242 
2243     /**
2244      * Returns all attributes that are specified as 'required' in the model.  If 'follow' is true,
2245      * then required attributes in super classes will also be returned, if false, just the ones
2246      * directly on the entity will be returned.  If 'withIdentifiers' is true, the identifiers will
2247      * be include, if false, no identifiers will be included.
2248      * @see org.andromda.metafacades.uml.Entity#getRequiredAttributes(boolean follow, boolean withIdentifiers)
2249      */
2250     public Collection<AttributeFacade> getRequiredAttributes(boolean follow, boolean withIdentifiers)
2251     {
2252         return this.getSuperEJB3EntityFacade().getRequiredAttributes(follow, withIdentifiers);
2253     }
2254 
2255     /**
2256      * Gets all required properties for this entity.  These consist of any required attributes as
2257      * well as navigable associations that are marked as 'required'.  If 'follow' is true, then the
2258      * inheritance hierchy will be followed and all required properties from super classes will be
2259      * included as well.
2260      * If 'withIdentifiers' is true, the identifiers will be include, if false, no identifiers will
2261      * be included.
2262      * @see org.andromda.metafacades.uml.Entity#getRequiredProperties(boolean follow, boolean withIdentifiers)
2263      */
2264     public Collection<ModelElementFacade> getRequiredProperties(boolean follow, boolean withIdentifiers)
2265     {
2266         return this.getSuperEJB3EntityFacade().getRequiredProperties(follow, withIdentifiers);
2267     }
2268 
2269     /**
2270      * Creates a comma separated list of the required property names.
2271      * @see org.andromda.metafacades.uml.Entity#getRequiredPropertyNameList(boolean follow, boolean withIdentifiers)
2272      */
2273     public String getRequiredPropertyNameList(boolean follow, boolean withIdentifiers)
2274     {
2275         return this.getSuperEJB3EntityFacade().getRequiredPropertyNameList(follow, withIdentifiers);
2276     }
2277 
2278     /**
2279      * A comma separated list of the required property types.
2280      * @see org.andromda.metafacades.uml.Entity#getRequiredPropertyTypeList(boolean follow, boolean withIdentifiers)
2281      */
2282     public String getRequiredPropertyTypeList(boolean follow, boolean withIdentifiers)
2283     {
2284         return this.getSuperEJB3EntityFacade().getRequiredPropertyTypeList(follow, withIdentifiers);
2285     }
2286 
2287     /**
2288      * The name of the schema that contains the database table
2289      * @see org.andromda.metafacades.uml.Entity#getSchema()
2290      */
2291     public String getSchema()
2292     {
2293         return this.getSuperEJB3EntityFacade().getSchema();
2294     }
2295 
2296     /**
2297      * The name of the database table to which this entity is persisted.
2298      * @see org.andromda.metafacades.uml.Entity#getTableName()
2299      */
2300     public String getTableName()
2301     {
2302         return this.getSuperEJB3EntityFacade().getTableName();
2303     }
2304 
2305     /**
2306      * Returns true/false depending on whether or not this entity represetns a child in an
2307      * association (this occurs when this entity is on the opposite end of an assocation end defined
2308      * as composite).
2309      * @see org.andromda.metafacades.uml.Entity#isChild()
2310      */
2311     public boolean isChild()
2312     {
2313         return this.getSuperEJB3EntityFacade().isChild();
2314     }
2315 
2316     /**
2317      * True if this entity identifier is a composite (consists of multiple key columns, typically
2318      * abstracted into an external composite identifier class)
2319      * @see org.andromda.metafacades.uml.Entity#isCompositeIdentifier()
2320      */
2321     public boolean isCompositeIdentifier()
2322     {
2323         return this.getSuperEJB3EntityFacade().isCompositeIdentifier();
2324     }
2325 
2326     /**
2327      * True if the entity has its identifiers dynamically added, false otherwise.
2328      * @see org.andromda.metafacades.uml.Entity#isDynamicIdentifiersPresent()
2329      */
2330     public boolean isDynamicIdentifiersPresent()
2331     {
2332         return this.getSuperEJB3EntityFacade().isDynamicIdentifiersPresent();
2333     }
2334 
2335     /**
2336      * True if the entity has any identifiers defined, false otherwise.
2337      * @see org.andromda.metafacades.uml.Entity#isIdentifiersPresent()
2338      */
2339     public boolean isIdentifiersPresent()
2340     {
2341         return this.getSuperEJB3EntityFacade().isIdentifiersPresent();
2342     }
2343 
2344     /**
2345      * Indiciates if this entity is using an assigned identifier or not.
2346      * @see org.andromda.metafacades.uml.Entity#isUsingAssignedIdentifier()
2347      */
2348     public boolean isUsingAssignedIdentifier()
2349     {
2350         return this.getSuperEJB3EntityFacade().isUsingAssignedIdentifier();
2351     }
2352 
2353     /**
2354      * Indicates whether or not this entity is using a foreign identifier as its identifiers.  That
2355      * is: the foreignIdentifier flag was set on an incoming association end and the entity is
2356      * therefore using the related foreign parent entity's identifier.
2357      * @see org.andromda.metafacades.uml.Entity#isUsingForeignIdentifier()
2358      */
2359     public boolean isUsingForeignIdentifier()
2360     {
2361         return this.getSuperEJB3EntityFacade().isUsingForeignIdentifier();
2362     }
2363 
2364     /**
2365      * Finds the tagged value optional searching the entire inheritance hierarchy if 'follow' is set
2366      * to true.
2367      * @see GeneralizableElementFacade#findTaggedValue(String tagName, boolean follow)
2368      */
2369     public Object findTaggedValue(String tagName, boolean follow)
2370     {
2371         return this.getSuperEJB3EntityFacade().findTaggedValue(tagName, follow);
2372     }
2373 
2374     /**
2375      * All generalizations for this generalizable element, goes up the inheritance tree.
2376      * @see GeneralizableElementFacade#getAllGeneralizations()
2377      */
2378     public Collection<GeneralizableElementFacade> getAllGeneralizations()
2379     {
2380         return this.getSuperEJB3EntityFacade().getAllGeneralizations();
2381     }
2382 
2383     /**
2384      * All specializations (travels down the inheritance hierarchy).
2385      * @see GeneralizableElementFacade#getAllSpecializations()
2386      */
2387     public Collection<GeneralizableElementFacade> getAllSpecializations()
2388     {
2389         return this.getSuperEJB3EntityFacade().getAllSpecializations();
2390     }
2391 
2392     /**
2393      * Gets the direct generalization for this generalizable element.
2394      * @see GeneralizableElementFacade#getGeneralization()
2395      */
2396     public GeneralizableElementFacade getGeneralization()
2397     {
2398         return this.getSuperEJB3EntityFacade().getGeneralization();
2399     }
2400 
2401     /**
2402      * Gets the actual links that this generalization element is part of (it plays either the
2403      * specialization or generalization).
2404      * @see GeneralizableElementFacade#getGeneralizationLinks()
2405      */
2406     public Collection<GeneralizationFacade> getGeneralizationLinks()
2407     {
2408         return this.getSuperEJB3EntityFacade().getGeneralizationLinks();
2409     }
2410 
2411     /**
2412      * A comma separated list of the fully qualified names of all generalizations.
2413      * @see GeneralizableElementFacade#getGeneralizationList()
2414      */
2415     public String getGeneralizationList()
2416     {
2417         return this.getSuperEJB3EntityFacade().getGeneralizationList();
2418     }
2419 
2420     /**
2421      * The element found when you recursively follow the generalization path up to the root. If an
2422      * element has no generalization itself will be considered the root.
2423      * @see GeneralizableElementFacade#getGeneralizationRoot()
2424      */
2425     public GeneralizableElementFacade getGeneralizationRoot()
2426     {
2427         return this.getSuperEJB3EntityFacade().getGeneralizationRoot();
2428     }
2429 
2430     /**
2431      * Return all generalizations (ancestors) from this generalizable element.
2432      * @see GeneralizableElementFacade#getGeneralizations()
2433      */
2434     public Collection<GeneralizableElementFacade> getGeneralizations()
2435     {
2436         return this.getSuperEJB3EntityFacade().getGeneralizations();
2437     }
2438 
2439     /**
2440      * Gets the direct specializations (i.e. sub elements) for this generalizatble element.
2441      * @see GeneralizableElementFacade#getSpecializations()
2442      */
2443     public Collection<GeneralizableElementFacade> getSpecializations()
2444     {
2445         return this.getSuperEJB3EntityFacade().getSpecializations();
2446     }
2447 
2448     /**
2449      * Copies all tagged values from the given ModelElementFacade to this model element facade.
2450      * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
2451      */
2452     public void copyTaggedValues(ModelElementFacade element)
2453     {
2454         this.getSuperEJB3EntityFacade().copyTaggedValues(element);
2455     }
2456 
2457     /**
2458      * Finds the tagged value with the specified 'tagName'. In case there are more values the first
2459      * one found will be returned.
2460      * @see ModelElementFacade#findTaggedValue(String tagName)
2461      */
2462     public Object findTaggedValue(String tagName)
2463     {
2464         return this.getSuperEJB3EntityFacade().findTaggedValue(tagName);
2465     }
2466 
2467     /**
2468      * Returns all the values for the tagged value with the specified name. The returned collection
2469      * will contains only String instances, or will be empty. Never null.
2470      * @see ModelElementFacade#findTaggedValues(String tagName)
2471      */
2472     public Collection<Object> findTaggedValues(String tagName)
2473     {
2474         return this.getSuperEJB3EntityFacade().findTaggedValues(tagName);
2475     }
2476 
2477     /**
2478      * Returns the fully qualified name of the model element. The fully qualified name includes
2479      * complete package qualified name of the underlying model element. The templates parameter will
2480      * be replaced by the correct one given the binding relation of the parameter to this element.
2481      * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
2482      */
2483     public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
2484     {
2485         return this.getSuperEJB3EntityFacade().getBindedFullyQualifiedName(bindedElement);
2486     }
2487 
2488     /**
2489      * Gets all constraints belonging to the model element.
2490      * @see ModelElementFacade#getConstraints()
2491      */
2492     public Collection<ConstraintFacade> getConstraints()
2493     {
2494         return this.getSuperEJB3EntityFacade().getConstraints();
2495     }
2496 
2497     /**
2498      * Returns the constraints of the argument kind that have been placed onto this model. Typical
2499      * kinds are "inv", "pre" and "post". Other kinds are possible.
2500      * @see ModelElementFacade#getConstraints(String kind)
2501      */
2502     public Collection<ConstraintFacade> getConstraints(String kind)
2503     {
2504         return this.getSuperEJB3EntityFacade().getConstraints(kind);
2505     }
2506 
2507     /**
2508      * Gets the documentation for the model element, The indent argument is prefixed to each line.
2509      * By default this method wraps lines after 64 characters.
2510      * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
2511      * @see ModelElementFacade#getDocumentation(String indent)
2512      */
2513     public String getDocumentation(String indent)
2514     {
2515         return this.getSuperEJB3EntityFacade().getDocumentation(indent);
2516     }
2517 
2518     /**
2519      * This method returns the documentation for this model element, with the lines wrapped after
2520      * the specified number of characters, values of less than 1 will indicate no line wrapping is
2521      * required. By default paragraphs are returned as HTML.
2522      * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
2523      * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
2524      */
2525     public String getDocumentation(String indent, int lineLength)
2526     {
2527         return this.getSuperEJB3EntityFacade().getDocumentation(indent, lineLength);
2528     }
2529 
2530     /**
2531      * This method returns the documentation for this model element, with the lines wrapped after
2532      * the specified number of characters, values of less than 1 will indicate no line wrapping is
2533      * required. HTML style determines if HTML Escaping is applied.
2534      * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
2535      */
2536     public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
2537     {
2538         return this.getSuperEJB3EntityFacade().getDocumentation(indent, lineLength, htmlStyle);
2539     }
2540 
2541     /**
2542      * The fully qualified name of this model element.
2543      * @see ModelElementFacade#getFullyQualifiedName()
2544      */
2545     public String getFullyQualifiedName()
2546     {
2547         return this.getSuperEJB3EntityFacade().getFullyQualifiedName();
2548     }
2549 
2550     /**
2551      * Returns the fully qualified name of the model element. The fully qualified name includes
2552      * complete package qualified name of the underlying model element.  If modelName is true, then
2553      * the original name of the model element (the name contained within the model) will be the name
2554      * returned, otherwise a name from a language mapping will be returned.
2555      * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
2556      */
2557     public String getFullyQualifiedName(boolean modelName)
2558     {
2559         return this.getSuperEJB3EntityFacade().getFullyQualifiedName(modelName);
2560     }
2561 
2562     /**
2563      * Returns the fully qualified name as a path, the returned value always starts with out a slash
2564      * '/'.
2565      * @see ModelElementFacade#getFullyQualifiedNamePath()
2566      */
2567     public String getFullyQualifiedNamePath()
2568     {
2569         return this.getSuperEJB3EntityFacade().getFullyQualifiedNamePath();
2570     }
2571 
2572     /**
2573      * Gets the unique identifier of the underlying model element.
2574      * @see ModelElementFacade#getId()
2575      */
2576     public String getId()
2577     {
2578         return this.getSuperEJB3EntityFacade().getId();
2579     }
2580 
2581     /**
2582      * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
2583      * are not represented by other properties, i.e. native, transient, volatile, synchronized,
2584      * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
2585      * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
2586      * JDK5 compiler level.
2587      * @see ModelElementFacade#getKeywords()
2588      */
2589     public Collection<String> getKeywords()
2590     {
2591         return this.getSuperEJB3EntityFacade().getKeywords();
2592     }
2593 
2594     /**
2595      * UML2: Retrieves a localized label for this named element.
2596      * @see ModelElementFacade#getLabel()
2597      */
2598     public String getLabel()
2599     {
2600         return this.getSuperEJB3EntityFacade().getLabel();
2601     }
2602 
2603     /**
2604      * The language mappings that have been set for this model element.
2605      * @see ModelElementFacade#getLanguageMappings()
2606      */
2607     public TypeMappings getLanguageMappings()
2608     {
2609         return this.getSuperEJB3EntityFacade().getLanguageMappings();
2610     }
2611 
2612     /**
2613      * Return the model containing this model element (multiple models may be loaded and processed
2614      * at the same time).
2615      * @see ModelElementFacade#getModel()
2616      */
2617     public ModelFacade getModel()
2618     {
2619         return this.getSuperEJB3EntityFacade().getModel();
2620     }
2621 
2622     /**
2623      * The name of the model element.
2624      * @see ModelElementFacade#getName()
2625      */
2626     public String getName()
2627     {
2628         return this.getSuperEJB3EntityFacade().getName();
2629     }
2630 
2631     /**
2632      * Gets the package to which this model element belongs.
2633      * @see ModelElementFacade#getPackage()
2634      */
2635     public ModelElementFacade getPackage()
2636     {
2637         return this.getSuperEJB3EntityFacade().getPackage();
2638     }
2639 
2640     /**
2641      * The name of this model element's package.
2642      * @see ModelElementFacade#getPackageName()
2643      */
2644     public String getPackageName()
2645     {
2646         return this.getSuperEJB3EntityFacade().getPackageName();
2647     }
2648 
2649     /**
2650      * Gets the package name (optionally providing the ability to retrieve the model name and not
2651      * the mapped name).
2652      * @see ModelElementFacade#getPackageName(boolean modelName)
2653      */
2654     public String getPackageName(boolean modelName)
2655     {
2656         return this.getSuperEJB3EntityFacade().getPackageName(modelName);
2657     }
2658 
2659     /**
2660      * Returns the package as a path, the returned value always starts with out a slash '/'.
2661      * @see ModelElementFacade#getPackagePath()
2662      */
2663     public String getPackagePath()
2664     {
2665         return this.getSuperEJB3EntityFacade().getPackagePath();
2666     }
2667 
2668     /**
2669      * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
2670      * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
2671      * the names of the containing namespaces starting at the root of the hierarchy and ending with
2672      * the name of the NamedElement itself.
2673      * @see ModelElementFacade#getQualifiedName()
2674      */
2675     public String getQualifiedName()
2676     {
2677         return this.getSuperEJB3EntityFacade().getQualifiedName();
2678     }
2679 
2680     /**
2681      * Gets the root package for the model element.
2682      * @see ModelElementFacade#getRootPackage()
2683      */
2684     public PackageFacade getRootPackage()
2685     {
2686         return this.getSuperEJB3EntityFacade().getRootPackage();
2687     }
2688 
2689     /**
2690      * Gets the dependencies for which this model element is the source.
2691      * @see ModelElementFacade#getSourceDependencies()
2692      */
2693     public Collection<DependencyFacade> getSourceDependencies()
2694     {
2695         return this.getSuperEJB3EntityFacade().getSourceDependencies();
2696     }
2697 
2698     /**
2699      * If this model element is the context of an activity graph, this represents that activity
2700      * graph.
2701      * @see ModelElementFacade#getStateMachineContext()
2702      */
2703     public StateMachineFacade getStateMachineContext()
2704     {
2705         return this.getSuperEJB3EntityFacade().getStateMachineContext();
2706     }
2707 
2708     /**
2709      * The collection of ALL stereotype names for this model element.
2710      * @see ModelElementFacade#getStereotypeNames()
2711      */
2712     public Collection<String> getStereotypeNames()
2713     {
2714         return this.getSuperEJB3EntityFacade().getStereotypeNames();
2715     }
2716 
2717     /**
2718      * Gets all stereotypes for this model element.
2719      * @see ModelElementFacade#getStereotypes()
2720      */
2721     public Collection<StereotypeFacade> getStereotypes()
2722     {
2723         return this.getSuperEJB3EntityFacade().getStereotypes();
2724     }
2725 
2726     /**
2727      * Return the TaggedValues associated with this model element, under all stereotypes.
2728      * @see ModelElementFacade#getTaggedValues()
2729      */
2730     public Collection<TaggedValueFacade> getTaggedValues()
2731     {
2732         return this.getSuperEJB3EntityFacade().getTaggedValues();
2733     }
2734 
2735     /**
2736      * Gets the dependencies for which this model element is the target.
2737      * @see ModelElementFacade#getTargetDependencies()
2738      */
2739     public Collection<DependencyFacade> getTargetDependencies()
2740     {
2741         return this.getSuperEJB3EntityFacade().getTargetDependencies();
2742     }
2743 
2744     /**
2745      * Get the template parameter for this model element having the parameterName
2746      * @see ModelElementFacade#getTemplateParameter(String parameterName)
2747      */
2748     public Object getTemplateParameter(String parameterName)
2749     {
2750         return this.getSuperEJB3EntityFacade().getTemplateParameter(parameterName);
2751     }
2752 
2753     /**
2754      * Get the template parameters for this model element
2755      * @see ModelElementFacade#getTemplateParameters()
2756      */
2757     public Collection<TemplateParameterFacade> getTemplateParameters()
2758     {
2759         return this.getSuperEJB3EntityFacade().getTemplateParameters();
2760     }
2761 
2762     /**
2763      * The visibility (i.e. public, private, protected or package) of the model element, will
2764      * attempt a lookup for these values in the language mappings (if any).
2765      * @see ModelElementFacade#getVisibility()
2766      */
2767     public String getVisibility()
2768     {
2769         return this.getSuperEJB3EntityFacade().getVisibility();
2770     }
2771 
2772     /**
2773      * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
2774      * is taken into account when searching for the stereotype), false otherwise.
2775      * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
2776      */
2777     public boolean hasExactStereotype(String stereotypeName)
2778     {
2779         return this.getSuperEJB3EntityFacade().hasExactStereotype(stereotypeName);
2780     }
2781 
2782     /**
2783      * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
2784      * pipe, semicolon, or << >>
2785      * @see ModelElementFacade#hasKeyword(String keywordName)
2786      */
2787     public boolean hasKeyword(String keywordName)
2788     {
2789         return this.getSuperEJB3EntityFacade().hasKeyword(keywordName);
2790     }
2791 
2792     /**
2793      * Returns true if the model element has the specified stereotype.  If the stereotype itself
2794      * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
2795      * one of the stereotype's ancestors has a matching name this method will return true, false
2796      * otherwise.
2797      * For example, if we have a certain stereotype called <<exception>> and a model element has a
2798      * stereotype called <<applicationException>> which extends <<exception>>, when calling this
2799      * method with 'stereotypeName' defined as 'exception' the method would return true since
2800      * <<applicationException>> inherits from <<exception>>.  If you want to check if the model
2801      * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
2802      * @see ModelElementFacade#hasStereotype(String stereotypeName)
2803      */
2804     public boolean hasStereotype(String stereotypeName)
2805     {
2806         return this.getSuperEJB3EntityFacade().hasStereotype(stereotypeName);
2807     }
2808 
2809     /**
2810      * True if there are target dependencies from this element that are instances of BindingFacade.
2811      * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
2812      * @see ModelElementFacade#isBindingDependenciesPresent()
2813      */
2814     public boolean isBindingDependenciesPresent()
2815     {
2816         return this.getSuperEJB3EntityFacade().isBindingDependenciesPresent();
2817     }
2818 
2819     /**
2820      * Indicates if any constraints are present on this model element.
2821      * @see ModelElementFacade#isConstraintsPresent()
2822      */
2823     public boolean isConstraintsPresent()
2824     {
2825         return this.getSuperEJB3EntityFacade().isConstraintsPresent();
2826     }
2827 
2828     /**
2829      * Indicates if any documentation is present on this model element.
2830      * @see ModelElementFacade#isDocumentationPresent()
2831      */
2832     public boolean isDocumentationPresent()
2833     {
2834         return this.getSuperEJB3EntityFacade().isDocumentationPresent();
2835     }
2836 
2837     /**
2838      * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
2839      * @see ModelElementFacade#isReservedWord()
2840      */
2841     public boolean isReservedWord()
2842     {
2843         return this.getSuperEJB3EntityFacade().isReservedWord();
2844     }
2845 
2846     /**
2847      * True is there are template parameters on this model element. For UML2, applies to Class,
2848      * Operation, Property, and Parameter.
2849      * @see ModelElementFacade#isTemplateParametersPresent()
2850      */
2851     public boolean isTemplateParametersPresent()
2852     {
2853         return this.getSuperEJB3EntityFacade().isTemplateParametersPresent();
2854     }
2855 
2856     /**
2857      * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
2858      * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
2859      * Enumerations and Interfaces, optionally applies on other model elements.
2860      * @see ModelElementFacade#isValidIdentifierName()
2861      */
2862     public boolean isValidIdentifierName()
2863     {
2864         return this.getSuperEJB3EntityFacade().isValidIdentifierName();
2865     }
2866 
2867     /**
2868      * Searches for the constraint with the specified 'name' on this model element, and if found
2869      * translates it using the specified 'translation' from a translation library discovered by the
2870      * framework.
2871      * @see ModelElementFacade#translateConstraint(String name, String translation)
2872      */
2873     public String translateConstraint(String name, String translation)
2874     {
2875         return this.getSuperEJB3EntityFacade().translateConstraint(name, translation);
2876     }
2877 
2878     /**
2879      * Translates all constraints belonging to this model element with the given 'translation'.
2880      * @see ModelElementFacade#translateConstraints(String translation)
2881      */
2882     public String[] translateConstraints(String translation)
2883     {
2884         return this.getSuperEJB3EntityFacade().translateConstraints(translation);
2885     }
2886 
2887     /**
2888      * Translates the constraints of the specified 'kind' belonging to this model element.
2889      * @see ModelElementFacade#translateConstraints(String kind, String translation)
2890      */
2891     public String[] translateConstraints(String kind, String translation)
2892     {
2893         return this.getSuperEJB3EntityFacade().translateConstraints(kind, translation);
2894     }
2895 
2896     // ----------- delegates to ManageableEntity ------------
2897     /**
2898      * All entities to which can be browsed from this entity. Currently this property will simple
2899      * hold all entities, so the value is the same for any arbitrary entity. Hiding entities can be
2900      * done in the presentation tier, for example depending on runtime security information.
2901      * @see ManageableEntity#getAllManageables()
2902      */
2903     public List<ManageableEntity> getAllManageables()
2904     {
2905         return this.getSuperManageableEntity().getAllManageables();
2906     }
2907 
2908     /**
2909      * The attribute used as a key link to display values for this entity.
2910      * @see ManageableEntity#getDisplayAttribute()
2911      */
2912     public ManageableEntityAttribute getDisplayAttribute()
2913     {
2914         return this.getSuperManageableEntity().getDisplayAttribute();
2915     }
2916 
2917     /**
2918      * The fully qualified service name of the entity.
2919      * @see ManageableEntity#getFullyQualifiedManageableServiceName()
2920      */
2921     public String getFullyQualifiedManageableServiceName()
2922     {
2923         return this.getSuperManageableEntity().getFullyQualifiedManageableServiceName();
2924     }
2925 
2926     /**
2927      * The associations to other entities from this entity.
2928      * @see ManageableEntity#getManageableAssociationEnds()
2929      */
2930     public List<ManageableEntityAssociationEnd> getManageableAssociationEnds()
2931     {
2932         return this.getSuperManageableEntity().getManageableAssociationEnds();
2933     }
2934 
2935     /**
2936      * Lists the attributes that can be managed for this entity. This feature is particularly
2937      * important when resolving inherited attributes and ids.
2938      * @see ManageableEntity#getManageableAttributes()
2939      */
2940     public List<ManageableEntityAttribute> getManageableAttributes()
2941     {
2942         return this.getSuperManageableEntity().getManageableAttributes();
2943     }
2944 
2945     /**
2946      * The identifier used when managing this entity.
2947      * @see ManageableEntity#getManageableIdentifier()
2948      */
2949     public ManageableEntityAttribute getManageableIdentifier()
2950     {
2951         return this.getSuperManageableEntity().getManageableIdentifier();
2952     }
2953 
2954     /**
2955      * ManageableAttributes and ManageableAssociationEnds
2956      * @see ManageableEntity#getManageableMembers()
2957      */
2958     public List<ModelElementFacade> getManageableMembers()
2959     {
2960         return this.getSuperManageableEntity().getManageableMembers();
2961     }
2962 
2963     /**
2964      * The entity package name.
2965      * @see ManageableEntity#getManageablePackageName()
2966      */
2967     public String getManageablePackageName()
2968     {
2969         return this.getSuperManageableEntity().getManageablePackageName();
2970     }
2971 
2972     /**
2973      * The Package path of the Entity
2974      * @see ManageableEntity#getManageablePackagePath()
2975      */
2976     public String getManageablePackagePath()
2977     {
2978         return this.getSuperManageableEntity().getManageablePackagePath();
2979     }
2980 
2981     /**
2982      * The entity accessor (getter) call.
2983      * @see ManageableEntity#getManageableServiceAccessorCall()
2984      */
2985     public String getManageableServiceAccessorCall()
2986     {
2987         return this.getSuperManageableEntity().getManageableServiceAccessorCall();
2988     }
2989 
2990     /**
2991      * The service full path of the entity.
2992      * @see ManageableEntity#getManageableServiceFullPath()
2993      */
2994     public String getManageableServiceFullPath()
2995     {
2996         return this.getSuperManageableEntity().getManageableServiceFullPath();
2997     }
2998 
2999     /**
3000      * The service name of the entity.
3001      * @see ManageableEntity#getManageableServiceName()
3002      */
3003     public String getManageableServiceName()
3004     {
3005         return this.getSuperManageableEntity().getManageableServiceName();
3006     }
3007 
3008     /**
3009      * The maximum number of rows to load from the database.
3010      * @see ManageableEntity#getMaximumListSize()
3011      */
3012     public int getMaximumListSize()
3013     {
3014         return this.getSuperManageableEntity().getMaximumListSize();
3015     }
3016 
3017     /**
3018      * The maximum number of rows to load from the database.
3019      * @see ManageableEntity#getPageSize()
3020      */
3021     public int getPageSize()
3022     {
3023         return this.getSuperManageableEntity().getPageSize();
3024     }
3025 
3026     /**
3027      * Other Manageable Entities which reference this entity.
3028      * @see ManageableEntity#getReferencingManageables()
3029      */
3030     public List<ManageableEntity> getReferencingManageables()
3031     {
3032         return this.getSuperManageableEntity().getReferencingManageables();
3033     }
3034 
3035     /**
3036      * The Actors (Roles) which can manage the Entity.
3037      * @see ManageableEntity#getUsers()
3038      */
3039     public List<ActorFacade> getUsers()
3040     {
3041         return this.getSuperManageableEntity().getUsers();
3042     }
3043 
3044     /**
3045      * Create a create operation on the entity manager?
3046      * @see ManageableEntity#isCreate()
3047      */
3048     public boolean isCreate()
3049     {
3050         return this.getSuperManageableEntity().isCreate();
3051     }
3052 
3053     /**
3054      * Create a delete operation on the entity manager?
3055      * @see ManageableEntity#isDelete()
3056      */
3057     public boolean isDelete()
3058     {
3059         return this.getSuperManageableEntity().isDelete();
3060     }
3061 
3062     /**
3063      * Create a read operation on the entity manager?
3064      * @see ManageableEntity#isRead()
3065      */
3066     public boolean isRead()
3067     {
3068         return this.getSuperManageableEntity().isRead();
3069     }
3070 
3071     /**
3072      * The maximum number of rows to load from the database.
3073      * @see ManageableEntity#isResolveable()
3074      */
3075     public boolean isResolveable()
3076     {
3077         return this.getSuperManageableEntity().isResolveable();
3078     }
3079 
3080     /**
3081      * Create an update operation on the entity manager?
3082      * @see ManageableEntity#isUpdate()
3083      */
3084     public boolean isUpdate()
3085     {
3086         return this.getSuperManageableEntity().isUpdate();
3087     }
3088 
3089     /**
3090      * Returns a string with the attributes without wrapper types.
3091      * @see ManageableEntity#listManageableMembers(boolean withTypes)
3092      */
3093     public String listManageableMembers(boolean withTypes)
3094     {
3095         return this.getSuperManageableEntity().listManageableMembers(withTypes);
3096     }
3097 
3098     /**
3099      * Returns a string with the attributes and wrapper types.
3100      * @see ManageableEntity#listManageableMembersWithWrapperTypes()
3101      */
3102     public String listManageableMembersWithWrapperTypes()
3103     {
3104         return this.getSuperManageableEntity().listManageableMembersWithWrapperTypes();
3105     }
3106 
3107     /**
3108      * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
3109      */
3110     @Override
3111     public void initialize()
3112     {
3113         this.getSuperEJB3EntityFacade().initialize();
3114         this.getSuperManageableEntity().initialize();
3115     }
3116 
3117     /**
3118      * @return Object getSuperEJB3EntityFacade().getValidationOwner()
3119      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
3120      */
3121     @Override
3122     public Object getValidationOwner()
3123     {
3124         Object owner = this.getSuperEJB3EntityFacade().getValidationOwner();
3125         if (owner == null)
3126         {
3127             owner = this.getSuperManageableEntity().getValidationOwner();
3128         }
3129         return owner;
3130     }
3131 
3132     /**
3133      * @return String getSuperEJB3EntityFacade().getValidationName()
3134      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
3135      */
3136     @Override
3137     public String getValidationName()
3138     {
3139         String name = this.getSuperEJB3EntityFacade().getValidationName();
3140         if (name == null)
3141         {
3142             name = this.getSuperManageableEntity().getValidationName();
3143         }
3144         return name;
3145     }
3146 
3147     /**
3148      * @param validationMessages Collection<ModelValidationMessage>
3149      * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
3150      */
3151     @Override
3152     public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
3153     {
3154         this.getSuperEJB3EntityFacade().validateInvariants(validationMessages);
3155         this.getSuperManageableEntity().validateInvariants(validationMessages);
3156     }
3157 
3158     /**
3159      * The property that stores the name of the metafacade.
3160      */
3161     private static final String NAME_PROPERTY = "name";
3162     private static final String FQNAME_PROPERTY = "fullyQualifiedName";
3163 
3164     /**
3165      * @see Object#toString()
3166      */
3167     @Override
3168     public String toString()
3169     {
3170         final StringBuilder toString = new StringBuilder(this.getClass().getName());
3171         toString.append("[");
3172         try
3173         {
3174             toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
3175         }
3176         catch (final Throwable tryAgain)
3177         {
3178             try
3179             {
3180                 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
3181             }
3182             catch (final Throwable ignore)
3183             {
3184                 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
3185             }
3186         }
3187         toString.append("]");
3188         return toString.toString();
3189     }
3190 }