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.AssociationEndFacade;
14  import org.andromda.metafacades.uml.AttributeFacade;
15  import org.andromda.metafacades.uml.ClassifierFacade;
16  import org.andromda.metafacades.uml.ConstraintFacade;
17  import org.andromda.metafacades.uml.DependencyFacade;
18  import org.andromda.metafacades.uml.Destination;
19  import org.andromda.metafacades.uml.GeneralizableElementFacade;
20  import org.andromda.metafacades.uml.GeneralizationFacade;
21  import org.andromda.metafacades.uml.ModelElementFacade;
22  import org.andromda.metafacades.uml.ModelFacade;
23  import org.andromda.metafacades.uml.OperationFacade;
24  import org.andromda.metafacades.uml.PackageFacade;
25  import org.andromda.metafacades.uml.Role;
26  import org.andromda.metafacades.uml.Service;
27  import org.andromda.metafacades.uml.StateMachineFacade;
28  import org.andromda.metafacades.uml.StereotypeFacade;
29  import org.andromda.metafacades.uml.TaggedValueFacade;
30  import org.andromda.metafacades.uml.TemplateParameterFacade;
31  import org.andromda.metafacades.uml.TypeMappings;
32  import org.apache.log4j.Logger;
33  
34  /**
35   * Represents a Session EJB.
36   * MetafacadeLogic for EJB3SessionFacade
37   *
38   * @see EJB3SessionFacade
39   */
40  public abstract class EJB3SessionFacadeLogic
41      extends MetafacadeBase
42      implements EJB3SessionFacade
43  {
44      /**
45       * The underlying UML object
46       * @see Object
47       */
48      protected Object metaObject;
49  
50      /** Create Metafacade implementation instance using the MetafacadeFactory from the context
51       * @param metaObjectIn
52       * @param context
53       */
54      protected EJB3SessionFacadeLogic(Object metaObjectIn, String context)
55      {
56          super(metaObjectIn, getContext(context));
57          this.superService =
58             (Service)
59              MetafacadeFactory.getInstance().createFacadeImpl(
60                      "org.andromda.metafacades.uml.Service",
61                      metaObjectIn,
62                      getContext(context));
63          this.metaObject = metaObjectIn;
64      }
65  
66      /**
67       * The logger instance.
68       */
69      private static final Logger logger = Logger.getLogger(EJB3SessionFacadeLogic.class);
70  
71      /**
72       * Gets the context for this metafacade logic instance.
73       * @param context String. Set to EJB3SessionFacade if null
74       * @return context String
75       */
76      private static String getContext(String context)
77      {
78          if (context == null)
79          {
80              context = "org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade";
81          }
82          return context;
83      }
84  
85      private Service superService;
86      private boolean superServiceInitialized = false;
87  
88      /**
89       * Gets the Service parent instance.
90       * @return this.superService Service
91       */
92      private Service getSuperService()
93      {
94          if (!this.superServiceInitialized)
95          {
96              ((MetafacadeBase)this.superService).setMetafacadeContext(this.getMetafacadeContext());
97              this.superServiceInitialized = true;
98          }
99          return this.superService;
100     }
101 
102     /** Reset context only for non-root metafacades
103      * @param context
104      * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
105      */
106     @Override
107     public void resetMetafacadeContext(String context)
108     {
109         if (!this.contextRoot) // reset context only for non-root metafacades
110         {
111             context = getContext(context);  // to have same value as in original constructor call
112             setMetafacadeContext (context);
113             if (this.superServiceInitialized)
114             {
115                 ((MetafacadeBase)this.superService).resetMetafacadeContext(context);
116             }
117         }
118     }
119 
120     /**
121      * @return boolean true always
122      * @see EJB3SessionFacade
123      */
124     public boolean isEJB3SessionFacadeMetaType()
125     {
126         return true;
127     }
128 
129     // --------------- attributes ---------------------
130 
131    /**
132     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isSyntheticCreateMethodAllowed()
133     * @return boolean
134     */
135     protected abstract boolean handleIsSyntheticCreateMethodAllowed();
136 
137     private boolean __syntheticCreateMethodAllowed1a;
138     private boolean __syntheticCreateMethodAllowed1aSet = false;
139 
140     /**
141      * Whether or not to allow a synthetic (auto generated) create method.
142      * @return (boolean)handleIsSyntheticCreateMethodAllowed()
143      */
144     public final boolean isSyntheticCreateMethodAllowed()
145     {
146         boolean syntheticCreateMethodAllowed1a = this.__syntheticCreateMethodAllowed1a;
147         if (!this.__syntheticCreateMethodAllowed1aSet)
148         {
149             // syntheticCreateMethodAllowed has no pre constraints
150             syntheticCreateMethodAllowed1a = handleIsSyntheticCreateMethodAllowed();
151             // syntheticCreateMethodAllowed has no post constraints
152             this.__syntheticCreateMethodAllowed1a = syntheticCreateMethodAllowed1a;
153             if (isMetafacadePropertyCachingEnabled())
154             {
155                 this.__syntheticCreateMethodAllowed1aSet = true;
156             }
157         }
158         return syntheticCreateMethodAllowed1a;
159     }
160 
161    /**
162     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getBusinessOperations()
163     * @return Collection
164     */
165     protected abstract Collection handleGetBusinessOperations();
166 
167     private Collection __businessOperations2a;
168     private boolean __businessOperations2aSet = false;
169 
170     /**
171      * All "business" operations for this Session EJB.  These are any operations that are NOT
172      * identified as create methods.
173      * @return (Collection)handleGetBusinessOperations()
174      */
175     public final Collection getBusinessOperations()
176     {
177         Collection businessOperations2a = this.__businessOperations2a;
178         if (!this.__businessOperations2aSet)
179         {
180             // businessOperations has no pre constraints
181             businessOperations2a = handleGetBusinessOperations();
182             // businessOperations has no post constraints
183             this.__businessOperations2a = businessOperations2a;
184             if (isMetafacadePropertyCachingEnabled())
185             {
186                 this.__businessOperations2aSet = true;
187             }
188         }
189         return businessOperations2a;
190     }
191 
192    /**
193     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getAllInstanceAttributes()
194     * @return List
195     */
196     protected abstract List handleGetAllInstanceAttributes();
197 
198     private List __allInstanceAttributes3a;
199     private boolean __allInstanceAttributes3aSet = false;
200 
201     /**
202      * All instanceAttributes for this session EJB. The list includes the instanceAttributes that
203      * are inherited from super classes. The list contains the inherited instanceAttributes first,
204      * followed by the instanceAttributes defined in this class.
205      * @return (List)handleGetAllInstanceAttributes()
206      */
207     public final List getAllInstanceAttributes()
208     {
209         List allInstanceAttributes3a = this.__allInstanceAttributes3a;
210         if (!this.__allInstanceAttributes3aSet)
211         {
212             // allInstanceAttributes has no pre constraints
213             allInstanceAttributes3a = handleGetAllInstanceAttributes();
214             // allInstanceAttributes has no post constraints
215             this.__allInstanceAttributes3a = allInstanceAttributes3a;
216             if (isMetafacadePropertyCachingEnabled())
217             {
218                 this.__allInstanceAttributes3aSet = true;
219             }
220         }
221         return allInstanceAttributes3a;
222     }
223 
224    /**
225     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getInheritedInstanceAttributes()
226     * @return List
227     */
228     protected abstract List handleGetInheritedInstanceAttributes();
229 
230     private List __inheritedInstanceAttributes4a;
231     private boolean __inheritedInstanceAttributes4aSet = false;
232 
233     /**
234      * Alll inherited instanceAttributes this session EJB.  The instanceAttributes are grouped by
235      * the class that defines the instanceAttributes, with instanceAttributes from the most removed
236      * super class first.
237      * @return (List)handleGetInheritedInstanceAttributes()
238      */
239     public final List getInheritedInstanceAttributes()
240     {
241         List inheritedInstanceAttributes4a = this.__inheritedInstanceAttributes4a;
242         if (!this.__inheritedInstanceAttributes4aSet)
243         {
244             // inheritedInstanceAttributes has no pre constraints
245             inheritedInstanceAttributes4a = handleGetInheritedInstanceAttributes();
246             // inheritedInstanceAttributes has no post constraints
247             this.__inheritedInstanceAttributes4a = inheritedInstanceAttributes4a;
248             if (isMetafacadePropertyCachingEnabled())
249             {
250                 this.__inheritedInstanceAttributes4aSet = true;
251             }
252         }
253         return inheritedInstanceAttributes4a;
254     }
255 
256    /**
257     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getJndiNameRemote()
258     * @return String
259     */
260     protected abstract String handleGetJndiNameRemote();
261 
262     private String __jndiNameRemote5a;
263     private boolean __jndiNameRemote5aSet = false;
264 
265     /**
266      * The JNDI name to which this session EJB remote interface is bound.
267      * @return (String)handleGetJndiNameRemote()
268      */
269     public final String getJndiNameRemote()
270     {
271         String jndiNameRemote5a = this.__jndiNameRemote5a;
272         if (!this.__jndiNameRemote5aSet)
273         {
274             // jndiNameRemote has no pre constraints
275             jndiNameRemote5a = handleGetJndiNameRemote();
276             // jndiNameRemote has no post constraints
277             this.__jndiNameRemote5a = jndiNameRemote5a;
278             if (isMetafacadePropertyCachingEnabled())
279             {
280                 this.__jndiNameRemote5aSet = true;
281             }
282         }
283         return jndiNameRemote5a;
284     }
285 
286    /**
287     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isStateful()
288     * @return boolean
289     */
290     protected abstract boolean handleIsStateful();
291 
292     private boolean __stateful6a;
293     private boolean __stateful6aSet = false;
294 
295     /**
296      * True/false depending on whether or not this Session EJB is stateful or not.
297      * @return (boolean)handleIsStateful()
298      */
299     public final boolean isStateful()
300     {
301         boolean stateful6a = this.__stateful6a;
302         if (!this.__stateful6aSet)
303         {
304             // stateful has no pre constraints
305             stateful6a = handleIsStateful();
306             // stateful has no post constraints
307             this.__stateful6a = stateful6a;
308             if (isMetafacadePropertyCachingEnabled())
309             {
310                 this.__stateful6aSet = true;
311             }
312         }
313         return stateful6a;
314     }
315 
316    /**
317     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isStateless()
318     * @return boolean
319     */
320     protected abstract boolean handleIsStateless();
321 
322     private boolean __stateless7a;
323     private boolean __stateless7aSet = false;
324 
325     /**
326      * True/false depending on whether or not this Session EJB is stateless or not.
327      * @return (boolean)handleIsStateless()
328      */
329     public final boolean isStateless()
330     {
331         boolean stateless7a = this.__stateless7a;
332         if (!this.__stateless7aSet)
333         {
334             // stateless has no pre constraints
335             stateless7a = handleIsStateless();
336             // stateless has no post constraints
337             this.__stateless7a = stateless7a;
338             if (isMetafacadePropertyCachingEnabled())
339             {
340                 this.__stateless7aSet = true;
341             }
342         }
343         return stateless7a;
344     }
345 
346    /**
347     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getType()
348     * @return String
349     */
350     protected abstract String handleGetType();
351 
352     private String __type8a;
353     private boolean __type8aSet = false;
354 
355     /**
356      * Returns the name of the type of this Session EJB, either Stateless or Stateful.
357      * @return (String)handleGetType()
358      */
359     public final String getType()
360     {
361         String type8a = this.__type8a;
362         if (!this.__type8aSet)
363         {
364             // type has no pre constraints
365             type8a = handleGetType();
366             // type has no post constraints
367             this.__type8a = type8a;
368             if (isMetafacadePropertyCachingEnabled())
369             {
370                 this.__type8aSet = true;
371             }
372         }
373         return type8a;
374     }
375 
376    /**
377     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getViewType()
378     * @return String
379     */
380     protected abstract String handleGetViewType();
381 
382     private String __viewType9a;
383     private boolean __viewType9aSet = false;
384 
385     /**
386      * A string indicating whether the Bean is a local or remotely accessable bean.
387      * @return (String)handleGetViewType()
388      */
389     public final String getViewType()
390     {
391         String viewType9a = this.__viewType9a;
392         if (!this.__viewType9aSet)
393         {
394             // viewType has no pre constraints
395             viewType9a = handleGetViewType();
396             // viewType has no post constraints
397             this.__viewType9a = viewType9a;
398             if (isMetafacadePropertyCachingEnabled())
399             {
400                 this.__viewType9aSet = true;
401             }
402         }
403         return viewType9a;
404     }
405 
406    /**
407     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getHomeInterfaceName()
408     * @return String
409     */
410     protected abstract String handleGetHomeInterfaceName();
411 
412     private String __homeInterfaceName10a;
413     private boolean __homeInterfaceName10aSet = false;
414 
415     /**
416      * A String representing the name of a home interface for this entity EJB.
417      * @return (String)handleGetHomeInterfaceName()
418      */
419     public final String getHomeInterfaceName()
420     {
421         String homeInterfaceName10a = this.__homeInterfaceName10a;
422         if (!this.__homeInterfaceName10aSet)
423         {
424             // homeInterfaceName has no pre constraints
425             homeInterfaceName10a = handleGetHomeInterfaceName();
426             // homeInterfaceName has no post constraints
427             this.__homeInterfaceName10a = homeInterfaceName10a;
428             if (isMetafacadePropertyCachingEnabled())
429             {
430                 this.__homeInterfaceName10aSet = true;
431             }
432         }
433         return homeInterfaceName10a;
434     }
435 
436    /**
437     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getTransactionType()
438     * @return String
439     */
440     protected abstract String handleGetTransactionType();
441 
442     private String __transactionType11a;
443     private boolean __transactionType11aSet = false;
444 
445     /**
446      * Gets the transaction type for this service (i.e. REQUIRED, etc)
447      * @return (String)handleGetTransactionType()
448      */
449     public final String getTransactionType()
450     {
451         String transactionType11a = this.__transactionType11a;
452         if (!this.__transactionType11aSet)
453         {
454             // transactionType has no pre constraints
455             transactionType11a = handleGetTransactionType();
456             // transactionType has no post constraints
457             this.__transactionType11a = transactionType11a;
458             if (isMetafacadePropertyCachingEnabled())
459             {
460                 this.__transactionType11aSet = true;
461             }
462         }
463         return transactionType11a;
464     }
465 
466    /**
467     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getServiceName()
468     * @return String
469     */
470     protected abstract String handleGetServiceName();
471 
472     private String __serviceName12a;
473     private boolean __serviceName12aSet = false;
474 
475     /**
476      * Returns service bean name.
477      * @return (String)handleGetServiceName()
478      */
479     public final String getServiceName()
480     {
481         String serviceName12a = this.__serviceName12a;
482         if (!this.__serviceName12aSet)
483         {
484             // serviceName has no pre constraints
485             serviceName12a = handleGetServiceName();
486             // serviceName has no post constraints
487             this.__serviceName12a = serviceName12a;
488             if (isMetafacadePropertyCachingEnabled())
489             {
490                 this.__serviceName12aSet = true;
491             }
492         }
493         return serviceName12a;
494     }
495 
496    /**
497     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getServiceLocalInterfaceName()
498     * @return String
499     */
500     protected abstract String handleGetServiceLocalInterfaceName();
501 
502     private String __serviceLocalInterfaceName13a;
503     private boolean __serviceLocalInterfaceName13aSet = false;
504 
505     /**
506      * Returns the service bean local interface name.
507      * @return (String)handleGetServiceLocalInterfaceName()
508      */
509     public final String getServiceLocalInterfaceName()
510     {
511         String serviceLocalInterfaceName13a = this.__serviceLocalInterfaceName13a;
512         if (!this.__serviceLocalInterfaceName13aSet)
513         {
514             // serviceLocalInterfaceName has no pre constraints
515             serviceLocalInterfaceName13a = handleGetServiceLocalInterfaceName();
516             // serviceLocalInterfaceName has no post constraints
517             this.__serviceLocalInterfaceName13a = serviceLocalInterfaceName13a;
518             if (isMetafacadePropertyCachingEnabled())
519             {
520                 this.__serviceLocalInterfaceName13aSet = true;
521             }
522         }
523         return serviceLocalInterfaceName13a;
524     }
525 
526    /**
527     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getServiceRemoteInterfaceName()
528     * @return String
529     */
530     protected abstract String handleGetServiceRemoteInterfaceName();
531 
532     private String __serviceRemoteInterfaceName14a;
533     private boolean __serviceRemoteInterfaceName14aSet = false;
534 
535     /**
536      * Returns the service bean remote interface name.
537      * @return (String)handleGetServiceRemoteInterfaceName()
538      */
539     public final String getServiceRemoteInterfaceName()
540     {
541         String serviceRemoteInterfaceName14a = this.__serviceRemoteInterfaceName14a;
542         if (!this.__serviceRemoteInterfaceName14aSet)
543         {
544             // serviceRemoteInterfaceName has no pre constraints
545             serviceRemoteInterfaceName14a = handleGetServiceRemoteInterfaceName();
546             // serviceRemoteInterfaceName has no post constraints
547             this.__serviceRemoteInterfaceName14a = serviceRemoteInterfaceName14a;
548             if (isMetafacadePropertyCachingEnabled())
549             {
550                 this.__serviceRemoteInterfaceName14aSet = true;
551             }
552         }
553         return serviceRemoteInterfaceName14a;
554     }
555 
556    /**
557     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getServiceImplementationName()
558     * @return String
559     */
560     protected abstract String handleGetServiceImplementationName();
561 
562     private String __serviceImplementationName15a;
563     private boolean __serviceImplementationName15aSet = false;
564 
565     /**
566      * Returns the service bean implementation name.
567      * @return (String)handleGetServiceImplementationName()
568      */
569     public final String getServiceImplementationName()
570     {
571         String serviceImplementationName15a = this.__serviceImplementationName15a;
572         if (!this.__serviceImplementationName15aSet)
573         {
574             // serviceImplementationName has no pre constraints
575             serviceImplementationName15a = handleGetServiceImplementationName();
576             // serviceImplementationName has no post constraints
577             this.__serviceImplementationName15a = serviceImplementationName15a;
578             if (isMetafacadePropertyCachingEnabled())
579             {
580                 this.__serviceImplementationName15aSet = true;
581             }
582         }
583         return serviceImplementationName15a;
584     }
585 
586    /**
587     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getServiceListenerName()
588     * @return String
589     */
590     protected abstract String handleGetServiceListenerName();
591 
592     private String __serviceListenerName16a;
593     private boolean __serviceListenerName16aSet = false;
594 
595     /**
596      * Returns the service bean callback listener name.
597      * @return (String)handleGetServiceListenerName()
598      */
599     public final String getServiceListenerName()
600     {
601         String serviceListenerName16a = this.__serviceListenerName16a;
602         if (!this.__serviceListenerName16aSet)
603         {
604             // serviceListenerName has no pre constraints
605             serviceListenerName16a = handleGetServiceListenerName();
606             // serviceListenerName has no post constraints
607             this.__serviceListenerName16a = serviceListenerName16a;
608             if (isMetafacadePropertyCachingEnabled())
609             {
610                 this.__serviceListenerName16aSet = true;
611             }
612         }
613         return serviceListenerName16a;
614     }
615 
616    /**
617     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getFullyQualifiedServiceImplementationName()
618     * @return String
619     */
620     protected abstract String handleGetFullyQualifiedServiceImplementationName();
621 
622     private String __fullyQualifiedServiceImplementationName17a;
623     private boolean __fullyQualifiedServiceImplementationName17aSet = false;
624 
625     /**
626      * Returns the fully qualified service bean implementation name.
627      * @return (String)handleGetFullyQualifiedServiceImplementationName()
628      */
629     public final String getFullyQualifiedServiceImplementationName()
630     {
631         String fullyQualifiedServiceImplementationName17a = this.__fullyQualifiedServiceImplementationName17a;
632         if (!this.__fullyQualifiedServiceImplementationName17aSet)
633         {
634             // fullyQualifiedServiceImplementationName has no pre constraints
635             fullyQualifiedServiceImplementationName17a = handleGetFullyQualifiedServiceImplementationName();
636             // fullyQualifiedServiceImplementationName has no post constraints
637             this.__fullyQualifiedServiceImplementationName17a = fullyQualifiedServiceImplementationName17a;
638             if (isMetafacadePropertyCachingEnabled())
639             {
640                 this.__fullyQualifiedServiceImplementationName17aSet = true;
641             }
642         }
643         return fullyQualifiedServiceImplementationName17a;
644     }
645 
646    /**
647     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getFullyQualifiedServiceListenerName()
648     * @return String
649     */
650     protected abstract String handleGetFullyQualifiedServiceListenerName();
651 
652     private String __fullyQualifiedServiceListenerName18a;
653     private boolean __fullyQualifiedServiceListenerName18aSet = false;
654 
655     /**
656      * Returns the fully qualified service bean listener name.
657      * @return (String)handleGetFullyQualifiedServiceListenerName()
658      */
659     public final String getFullyQualifiedServiceListenerName()
660     {
661         String fullyQualifiedServiceListenerName18a = this.__fullyQualifiedServiceListenerName18a;
662         if (!this.__fullyQualifiedServiceListenerName18aSet)
663         {
664             // fullyQualifiedServiceListenerName has no pre constraints
665             fullyQualifiedServiceListenerName18a = handleGetFullyQualifiedServiceListenerName();
666             // fullyQualifiedServiceListenerName has no post constraints
667             this.__fullyQualifiedServiceListenerName18a = fullyQualifiedServiceListenerName18a;
668             if (isMetafacadePropertyCachingEnabled())
669             {
670                 this.__fullyQualifiedServiceListenerName18aSet = true;
671             }
672         }
673         return fullyQualifiedServiceListenerName18a;
674     }
675 
676    /**
677     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getFullyQualifiedServiceLocalInterfaceName()
678     * @return String
679     */
680     protected abstract String handleGetFullyQualifiedServiceLocalInterfaceName();
681 
682     private String __fullyQualifiedServiceLocalInterfaceName19a;
683     private boolean __fullyQualifiedServiceLocalInterfaceName19aSet = false;
684 
685     /**
686      * Returns the fully qualified service bean local interface name.
687      * @return (String)handleGetFullyQualifiedServiceLocalInterfaceName()
688      */
689     public final String getFullyQualifiedServiceLocalInterfaceName()
690     {
691         String fullyQualifiedServiceLocalInterfaceName19a = this.__fullyQualifiedServiceLocalInterfaceName19a;
692         if (!this.__fullyQualifiedServiceLocalInterfaceName19aSet)
693         {
694             // fullyQualifiedServiceLocalInterfaceName has no pre constraints
695             fullyQualifiedServiceLocalInterfaceName19a = handleGetFullyQualifiedServiceLocalInterfaceName();
696             // fullyQualifiedServiceLocalInterfaceName has no post constraints
697             this.__fullyQualifiedServiceLocalInterfaceName19a = fullyQualifiedServiceLocalInterfaceName19a;
698             if (isMetafacadePropertyCachingEnabled())
699             {
700                 this.__fullyQualifiedServiceLocalInterfaceName19aSet = true;
701             }
702         }
703         return fullyQualifiedServiceLocalInterfaceName19a;
704     }
705 
706    /**
707     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getFullyQualifiedServiceRemoteInterfaceName()
708     * @return String
709     */
710     protected abstract String handleGetFullyQualifiedServiceRemoteInterfaceName();
711 
712     private String __fullyQualifiedServiceRemoteInterfaceName20a;
713     private boolean __fullyQualifiedServiceRemoteInterfaceName20aSet = false;
714 
715     /**
716      * Returns the fully qualified service bean remote interface name.
717      * @return (String)handleGetFullyQualifiedServiceRemoteInterfaceName()
718      */
719     public final String getFullyQualifiedServiceRemoteInterfaceName()
720     {
721         String fullyQualifiedServiceRemoteInterfaceName20a = this.__fullyQualifiedServiceRemoteInterfaceName20a;
722         if (!this.__fullyQualifiedServiceRemoteInterfaceName20aSet)
723         {
724             // fullyQualifiedServiceRemoteInterfaceName has no pre constraints
725             fullyQualifiedServiceRemoteInterfaceName20a = handleGetFullyQualifiedServiceRemoteInterfaceName();
726             // fullyQualifiedServiceRemoteInterfaceName has no post constraints
727             this.__fullyQualifiedServiceRemoteInterfaceName20a = fullyQualifiedServiceRemoteInterfaceName20a;
728             if (isMetafacadePropertyCachingEnabled())
729             {
730                 this.__fullyQualifiedServiceRemoteInterfaceName20aSet = true;
731             }
732         }
733         return fullyQualifiedServiceRemoteInterfaceName20a;
734     }
735 
736    /**
737     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getPersistenceContextType()
738     * @return String
739     */
740     protected abstract String handleGetPersistenceContextType();
741 
742     private String __persistenceContextType21a;
743     private boolean __persistenceContextType21aSet = false;
744 
745     /**
746      * Specifies whether the persistence context for this EntityManager is transaction scoped or
747      * extended.
748      * @return (String)handleGetPersistenceContextType()
749      */
750     public final String getPersistenceContextType()
751     {
752         String persistenceContextType21a = this.__persistenceContextType21a;
753         if (!this.__persistenceContextType21aSet)
754         {
755             // persistenceContextType has no pre constraints
756             persistenceContextType21a = handleGetPersistenceContextType();
757             // persistenceContextType has no post constraints
758             this.__persistenceContextType21a = persistenceContextType21a;
759             if (isMetafacadePropertyCachingEnabled())
760             {
761                 this.__persistenceContextType21aSet = true;
762             }
763         }
764         return persistenceContextType21a;
765     }
766 
767    /**
768     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getPersistenceContextUnitName()
769     * @return String
770     */
771     protected abstract String handleGetPersistenceContextUnitName();
772 
773     private String __persistenceContextUnitName22a;
774     private boolean __persistenceContextUnitName22aSet = false;
775 
776     /**
777      * Returns the persistence context unit name for the injected EntityManger.  This is only
778      * required if multiple persistence units exists.
779      * @return (String)handleGetPersistenceContextUnitName()
780      */
781     public final String getPersistenceContextUnitName()
782     {
783         String persistenceContextUnitName22a = this.__persistenceContextUnitName22a;
784         if (!this.__persistenceContextUnitName22aSet)
785         {
786             // persistenceContextUnitName has no pre constraints
787             persistenceContextUnitName22a = handleGetPersistenceContextUnitName();
788             // persistenceContextUnitName has no post constraints
789             this.__persistenceContextUnitName22a = persistenceContextUnitName22a;
790             if (isMetafacadePropertyCachingEnabled())
791             {
792                 this.__persistenceContextUnitName22aSet = true;
793             }
794         }
795         return persistenceContextUnitName22a;
796     }
797 
798    /**
799     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getPersistenceContextReferences()
800     * @return Collection
801     */
802     protected abstract Collection handleGetPersistenceContextReferences();
803 
804     private Collection __persistenceContextReferences23a;
805     private boolean __persistenceContextReferences23aSet = false;
806 
807     /**
808      * Returns the Collection of target objects from the service bean class that have a stereotype
809      * of PersistenceContext.
810      * @return (Collection)handleGetPersistenceContextReferences()
811      */
812     public final Collection getPersistenceContextReferences()
813     {
814         Collection persistenceContextReferences23a = this.__persistenceContextReferences23a;
815         if (!this.__persistenceContextReferences23aSet)
816         {
817             // persistenceContextReferences has no pre constraints
818             persistenceContextReferences23a = handleGetPersistenceContextReferences();
819             // persistenceContextReferences has no post constraints
820             this.__persistenceContextReferences23a = persistenceContextReferences23a;
821             if (isMetafacadePropertyCachingEnabled())
822             {
823                 this.__persistenceContextReferences23aSet = true;
824             }
825         }
826         return persistenceContextReferences23a;
827     }
828 
829    /**
830     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getFullyQualifiedServiceName()
831     * @return String
832     */
833     protected abstract String handleGetFullyQualifiedServiceName();
834 
835     private String __fullyQualifiedServiceName24a;
836     private boolean __fullyQualifiedServiceName24aSet = false;
837 
838     /**
839      * Returns the fully qualified service bean name.
840      * @return (String)handleGetFullyQualifiedServiceName()
841      */
842     public final String getFullyQualifiedServiceName()
843     {
844         String fullyQualifiedServiceName24a = this.__fullyQualifiedServiceName24a;
845         if (!this.__fullyQualifiedServiceName24aSet)
846         {
847             // fullyQualifiedServiceName has no pre constraints
848             fullyQualifiedServiceName24a = handleGetFullyQualifiedServiceName();
849             // fullyQualifiedServiceName has no post constraints
850             this.__fullyQualifiedServiceName24a = fullyQualifiedServiceName24a;
851             if (isMetafacadePropertyCachingEnabled())
852             {
853                 this.__fullyQualifiedServiceName24aSet = true;
854             }
855         }
856         return fullyQualifiedServiceName24a;
857     }
858 
859    /**
860     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getRolesAllowed()
861     * @return String
862     */
863     protected abstract String handleGetRolesAllowed();
864 
865     private String __rolesAllowed25a;
866     private boolean __rolesAllowed25aSet = false;
867 
868     /**
869      * Returns the comma separated list of roles allowd to execute all operations in this session
870      * bean.  This is defined by actor dependencies on the session bean.
871      * @return (String)handleGetRolesAllowed()
872      */
873     public final String getRolesAllowed()
874     {
875         String rolesAllowed25a = this.__rolesAllowed25a;
876         if (!this.__rolesAllowed25aSet)
877         {
878             // rolesAllowed has no pre constraints
879             rolesAllowed25a = handleGetRolesAllowed();
880             // rolesAllowed has no post constraints
881             this.__rolesAllowed25a = rolesAllowed25a;
882             if (isMetafacadePropertyCachingEnabled())
883             {
884                 this.__rolesAllowed25aSet = true;
885             }
886         }
887         return rolesAllowed25a;
888     }
889 
890    /**
891     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isPermitAll()
892     * @return boolean
893     */
894     protected abstract boolean handleIsPermitAll();
895 
896     private boolean __permitAll26a;
897     private boolean __permitAll26aSet = false;
898 
899     /**
900      * Returns true if all roles are permitted to execute all operations in this session bean.  This
901      * is specified in the andromda.ejb.security.permitAll tagged value.  It will override the
902      * andromda.ejb.security.rolesAllowed tagged value.
903      * @return (boolean)handleIsPermitAll()
904      */
905     public final boolean isPermitAll()
906     {
907         boolean permitAll26a = this.__permitAll26a;
908         if (!this.__permitAll26aSet)
909         {
910             // permitAll has no pre constraints
911             permitAll26a = handleIsPermitAll();
912             // permitAll has no post constraints
913             this.__permitAll26a = permitAll26a;
914             if (isMetafacadePropertyCachingEnabled())
915             {
916                 this.__permitAll26aSet = true;
917             }
918         }
919         return permitAll26a;
920     }
921 
922    /**
923     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getSecurityRealm()
924     * @return String
925     */
926     protected abstract String handleGetSecurityRealm();
927 
928     private String __securityRealm27a;
929     private boolean __securityRealm27aSet = false;
930 
931     /**
932      * Returns the security domain value.  Specified using the securityRealm namespace property or
933      * overridden in the andromda.ejb.security.realm tagged value.
934      * @return (String)handleGetSecurityRealm()
935      */
936     public final String getSecurityRealm()
937     {
938         String securityRealm27a = this.__securityRealm27a;
939         if (!this.__securityRealm27aSet)
940         {
941             // securityRealm has no pre constraints
942             securityRealm27a = handleGetSecurityRealm();
943             // securityRealm has no post constraints
944             this.__securityRealm27a = securityRealm27a;
945             if (isMetafacadePropertyCachingEnabled())
946             {
947                 this.__securityRealm27aSet = true;
948             }
949         }
950         return securityRealm27a;
951     }
952 
953    /**
954     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getPersistenceContainer()
955     * @return String
956     */
957     protected abstract String handleGetPersistenceContainer();
958 
959     private String __persistenceContainer28a;
960     private boolean __persistenceContainer28aSet = false;
961 
962     /**
963      * Returns the EJB3 container engine (jboss, weblogic).
964      * @return (String)handleGetPersistenceContainer()
965      */
966     public final String getPersistenceContainer()
967     {
968         String persistenceContainer28a = this.__persistenceContainer28a;
969         if (!this.__persistenceContainer28aSet)
970         {
971             // persistenceContainer has no pre constraints
972             persistenceContainer28a = handleGetPersistenceContainer();
973             // persistenceContainer has no post constraints
974             this.__persistenceContainer28a = persistenceContainer28a;
975             if (isMetafacadePropertyCachingEnabled())
976             {
977                 this.__persistenceContainer28aSet = true;
978             }
979         }
980         return persistenceContainer28a;
981     }
982 
983    /**
984     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isPersistenceContainerJboss()
985     * @return boolean
986     */
987     protected abstract boolean handleIsPersistenceContainerJboss();
988 
989     private boolean __persistenceContainerJboss29a;
990     private boolean __persistenceContainerJboss29aSet = false;
991 
992     /**
993      * Returns true if the persistence container is the JBoss engine.
994      * @return (boolean)handleIsPersistenceContainerJboss()
995      */
996     public final boolean isPersistenceContainerJboss()
997     {
998         boolean persistenceContainerJboss29a = this.__persistenceContainerJboss29a;
999         if (!this.__persistenceContainerJboss29aSet)
1000         {
1001             // persistenceContainerJboss has no pre constraints
1002             persistenceContainerJboss29a = handleIsPersistenceContainerJboss();
1003             // persistenceContainerJboss has no post constraints
1004             this.__persistenceContainerJboss29a = persistenceContainerJboss29a;
1005             if (isMetafacadePropertyCachingEnabled())
1006             {
1007                 this.__persistenceContainerJboss29aSet = true;
1008             }
1009         }
1010         return persistenceContainerJboss29a;
1011     }
1012 
1013    /**
1014     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isPersistenceContainerWeblogic()
1015     * @return boolean
1016     */
1017     protected abstract boolean handleIsPersistenceContainerWeblogic();
1018 
1019     private boolean __persistenceContainerWeblogic30a;
1020     private boolean __persistenceContainerWeblogic30aSet = false;
1021 
1022     /**
1023      * Returns true if the persistence container is the Weblogic engine.
1024      * @return (boolean)handleIsPersistenceContainerWeblogic()
1025      */
1026     public final boolean isPersistenceContainerWeblogic()
1027     {
1028         boolean persistenceContainerWeblogic30a = this.__persistenceContainerWeblogic30a;
1029         if (!this.__persistenceContainerWeblogic30aSet)
1030         {
1031             // persistenceContainerWeblogic has no pre constraints
1032             persistenceContainerWeblogic30a = handleIsPersistenceContainerWeblogic();
1033             // persistenceContainerWeblogic has no post constraints
1034             this.__persistenceContainerWeblogic30a = persistenceContainerWeblogic30a;
1035             if (isMetafacadePropertyCachingEnabled())
1036             {
1037                 this.__persistenceContainerWeblogic30aSet = true;
1038             }
1039         }
1040         return persistenceContainerWeblogic30a;
1041     }
1042 
1043    /**
1044     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getRunAs()
1045     * @return String
1046     */
1047     protected abstract String handleGetRunAs();
1048 
1049     private String __runAs31a;
1050     private boolean __runAs31aSet = false;
1051 
1052     /**
1053      * Returns the run-as identity for the session bean which is used to establish the identity the
1054      * bean will use when making calls.  It does not affect the identity of the callers.
1055      * @return (String)handleGetRunAs()
1056      */
1057     public final String getRunAs()
1058     {
1059         String runAs31a = this.__runAs31a;
1060         if (!this.__runAs31aSet)
1061         {
1062             // runAs has no pre constraints
1063             runAs31a = handleGetRunAs();
1064             // runAs has no post constraints
1065             this.__runAs31a = runAs31a;
1066             if (isMetafacadePropertyCachingEnabled())
1067             {
1068                 this.__runAs31aSet = true;
1069             }
1070         }
1071         return runAs31a;
1072     }
1073 
1074    /**
1075     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isDenyAll()
1076     * @return boolean
1077     */
1078     protected abstract boolean handleIsDenyAll();
1079 
1080     private boolean __denyAll32a;
1081     private boolean __denyAll32aSet = false;
1082 
1083     /**
1084      * Returns true if NO roles are permitted to execute operations in this bean.  This is specified
1085      * in the andromda.ejb.security.denyAll tagged value. Typically, it will be overridden at the
1086      * method level using the andromda.ejb.security.rolesAllowed tagged value.
1087      * @return (boolean)handleIsDenyAll()
1088      */
1089     public final boolean isDenyAll()
1090     {
1091         boolean denyAll32a = this.__denyAll32a;
1092         if (!this.__denyAll32aSet)
1093         {
1094             // denyAll has no pre constraints
1095             denyAll32a = handleIsDenyAll();
1096             // denyAll has no post constraints
1097             this.__denyAll32a = denyAll32a;
1098             if (isMetafacadePropertyCachingEnabled())
1099             {
1100                 this.__denyAll32aSet = true;
1101             }
1102         }
1103         return denyAll32a;
1104     }
1105 
1106    /**
1107     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getTransactionManagement()
1108     * @return String
1109     */
1110     protected abstract String handleGetTransactionManagement();
1111 
1112     private String __transactionManagement33a;
1113     private boolean __transactionManagement33aSet = false;
1114 
1115     /**
1116      * Returns the transaction demarcation strategy for this bean.  Typically, this will return BEAN
1117      * for non default CONTAINER managed beans.  Unless specified, this will return null indicating
1118      * CONTAINER transaction demarcation.
1119      * @return (String)handleGetTransactionManagement()
1120      */
1121     public final String getTransactionManagement()
1122     {
1123         String transactionManagement33a = this.__transactionManagement33a;
1124         if (!this.__transactionManagement33aSet)
1125         {
1126             // transactionManagement has no pre constraints
1127             transactionManagement33a = handleGetTransactionManagement();
1128             // transactionManagement has no post constraints
1129             this.__transactionManagement33a = transactionManagement33a;
1130             if (isMetafacadePropertyCachingEnabled())
1131             {
1132                 this.__transactionManagement33aSet = true;
1133             }
1134         }
1135         return transactionManagement33a;
1136     }
1137 
1138    /**
1139     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isTransactionManagementBean()
1140     * @return boolean
1141     */
1142     protected abstract boolean handleIsTransactionManagementBean();
1143 
1144     private boolean __transactionManagementBean34a;
1145     private boolean __transactionManagementBean34aSet = false;
1146 
1147     /**
1148      * Returns true if the transaction demarcation strategy is bean managedfor this bean.
1149      * @return (boolean)handleIsTransactionManagementBean()
1150      */
1151     public final boolean isTransactionManagementBean()
1152     {
1153         boolean transactionManagementBean34a = this.__transactionManagementBean34a;
1154         if (!this.__transactionManagementBean34aSet)
1155         {
1156             // transactionManagementBean has no pre constraints
1157             transactionManagementBean34a = handleIsTransactionManagementBean();
1158             // transactionManagementBean has no post constraints
1159             this.__transactionManagementBean34a = transactionManagementBean34a;
1160             if (isMetafacadePropertyCachingEnabled())
1161             {
1162                 this.__transactionManagementBean34aSet = true;
1163             }
1164         }
1165         return transactionManagementBean34a;
1166     }
1167 
1168    /**
1169     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getResourceUserTransactionReferences()
1170     * @return Collection
1171     */
1172     protected abstract Collection handleGetResourceUserTransactionReferences();
1173 
1174     private Collection __resourceUserTransactionReferences35a;
1175     private boolean __resourceUserTransactionReferences35aSet = false;
1176 
1177     /**
1178      * Returns the Collection of dependencies from the service bean that have stereotype of
1179      * ResourceRef and the target has a stereotype of UserTransaction.
1180      * @return (Collection)handleGetResourceUserTransactionReferences()
1181      */
1182     public final Collection getResourceUserTransactionReferences()
1183     {
1184         Collection resourceUserTransactionReferences35a = this.__resourceUserTransactionReferences35a;
1185         if (!this.__resourceUserTransactionReferences35aSet)
1186         {
1187             // resourceUserTransactionReferences has no pre constraints
1188             resourceUserTransactionReferences35a = handleGetResourceUserTransactionReferences();
1189             // resourceUserTransactionReferences has no post constraints
1190             this.__resourceUserTransactionReferences35a = resourceUserTransactionReferences35a;
1191             if (isMetafacadePropertyCachingEnabled())
1192             {
1193                 this.__resourceUserTransactionReferences35aSet = true;
1194             }
1195         }
1196         return resourceUserTransactionReferences35a;
1197     }
1198 
1199    /**
1200     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getResourceDataSourceReferences()
1201     * @return Collection
1202     */
1203     protected abstract Collection handleGetResourceDataSourceReferences();
1204 
1205     private Collection __resourceDataSourceReferences36a;
1206     private boolean __resourceDataSourceReferences36aSet = false;
1207 
1208     /**
1209      * Returns the Collection of dependencies from the service bean that have stereotype of
1210      * ResourceRef and the target has a stereotype of DataSource.
1211      * @return (Collection)handleGetResourceDataSourceReferences()
1212      */
1213     public final Collection getResourceDataSourceReferences()
1214     {
1215         Collection resourceDataSourceReferences36a = this.__resourceDataSourceReferences36a;
1216         if (!this.__resourceDataSourceReferences36aSet)
1217         {
1218             // resourceDataSourceReferences has no pre constraints
1219             resourceDataSourceReferences36a = handleGetResourceDataSourceReferences();
1220             // resourceDataSourceReferences has no post constraints
1221             this.__resourceDataSourceReferences36a = resourceDataSourceReferences36a;
1222             if (isMetafacadePropertyCachingEnabled())
1223             {
1224                 this.__resourceDataSourceReferences36aSet = true;
1225             }
1226         }
1227         return resourceDataSourceReferences36a;
1228     }
1229 
1230    /**
1231     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getMessageDrivenReferences()
1232     * @return Collection
1233     */
1234     protected abstract Collection handleGetMessageDrivenReferences();
1235 
1236     private Collection __messageDrivenReferences37a;
1237     private boolean __messageDrivenReferences37aSet = false;
1238 
1239     /**
1240      * Returns the Collection of dependencies from the service bean class where the target class has
1241      * a stereotype of MessageDriven.
1242      * @return (Collection)handleGetMessageDrivenReferences()
1243      */
1244     public final Collection getMessageDrivenReferences()
1245     {
1246         Collection messageDrivenReferences37a = this.__messageDrivenReferences37a;
1247         if (!this.__messageDrivenReferences37aSet)
1248         {
1249             // messageDrivenReferences has no pre constraints
1250             messageDrivenReferences37a = handleGetMessageDrivenReferences();
1251             // messageDrivenReferences has no post constraints
1252             this.__messageDrivenReferences37a = messageDrivenReferences37a;
1253             if (isMetafacadePropertyCachingEnabled())
1254             {
1255                 this.__messageDrivenReferences37aSet = true;
1256             }
1257         }
1258         return messageDrivenReferences37a;
1259     }
1260 
1261    /**
1262     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getServiceDelegateName()
1263     * @return String
1264     */
1265     protected abstract String handleGetServiceDelegateName();
1266 
1267     private String __serviceDelegateName38a;
1268     private boolean __serviceDelegateName38aSet = false;
1269 
1270     /**
1271      * Return the service bean delegate class name.
1272      * @return (String)handleGetServiceDelegateName()
1273      */
1274     public final String getServiceDelegateName()
1275     {
1276         String serviceDelegateName38a = this.__serviceDelegateName38a;
1277         if (!this.__serviceDelegateName38aSet)
1278         {
1279             // serviceDelegateName has no pre constraints
1280             serviceDelegateName38a = handleGetServiceDelegateName();
1281             // serviceDelegateName has no post constraints
1282             this.__serviceDelegateName38a = serviceDelegateName38a;
1283             if (isMetafacadePropertyCachingEnabled())
1284             {
1285                 this.__serviceDelegateName38aSet = true;
1286             }
1287         }
1288         return serviceDelegateName38a;
1289     }
1290 
1291    /**
1292     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getFullyQualifiedServiceDelegateName()
1293     * @return String
1294     */
1295     protected abstract String handleGetFullyQualifiedServiceDelegateName();
1296 
1297     private String __fullyQualifiedServiceDelegateName39a;
1298     private boolean __fullyQualifiedServiceDelegateName39aSet = false;
1299 
1300     /**
1301      * Returns the fully qualified service bean delegate class name.
1302      * @return (String)handleGetFullyQualifiedServiceDelegateName()
1303      */
1304     public final String getFullyQualifiedServiceDelegateName()
1305     {
1306         String fullyQualifiedServiceDelegateName39a = this.__fullyQualifiedServiceDelegateName39a;
1307         if (!this.__fullyQualifiedServiceDelegateName39aSet)
1308         {
1309             // fullyQualifiedServiceDelegateName has no pre constraints
1310             fullyQualifiedServiceDelegateName39a = handleGetFullyQualifiedServiceDelegateName();
1311             // fullyQualifiedServiceDelegateName has no post constraints
1312             this.__fullyQualifiedServiceDelegateName39a = fullyQualifiedServiceDelegateName39a;
1313             if (isMetafacadePropertyCachingEnabled())
1314             {
1315                 this.__fullyQualifiedServiceDelegateName39aSet = true;
1316             }
1317         }
1318         return fullyQualifiedServiceDelegateName39a;
1319     }
1320 
1321    /**
1322     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getJndiNameLocal()
1323     * @return String
1324     */
1325     protected abstract String handleGetJndiNameLocal();
1326 
1327     private String __jndiNameLocal40a;
1328     private boolean __jndiNameLocal40aSet = false;
1329 
1330     /**
1331      * The JNDI name to which this session EJB local interface is bound.
1332      * @return (String)handleGetJndiNameLocal()
1333      */
1334     public final String getJndiNameLocal()
1335     {
1336         String jndiNameLocal40a = this.__jndiNameLocal40a;
1337         if (!this.__jndiNameLocal40aSet)
1338         {
1339             // jndiNameLocal has no pre constraints
1340             jndiNameLocal40a = handleGetJndiNameLocal();
1341             // jndiNameLocal has no post constraints
1342             this.__jndiNameLocal40a = jndiNameLocal40a;
1343             if (isMetafacadePropertyCachingEnabled())
1344             {
1345                 this.__jndiNameLocal40aSet = true;
1346             }
1347         }
1348         return jndiNameLocal40a;
1349     }
1350 
1351    /**
1352     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isViewTypeLocal()
1353     * @return boolean
1354     */
1355     protected abstract boolean handleIsViewTypeLocal();
1356 
1357     private boolean __viewTypeLocal41a;
1358     private boolean __viewTypeLocal41aSet = false;
1359 
1360     /**
1361      * Return true if the view type accessability for this bean is local or both.
1362      * Always generate a local interface is this session bean is a Seam component.
1363      * @return (boolean)handleIsViewTypeLocal()
1364      */
1365     public final boolean isViewTypeLocal()
1366     {
1367         boolean viewTypeLocal41a = this.__viewTypeLocal41a;
1368         if (!this.__viewTypeLocal41aSet)
1369         {
1370             // viewTypeLocal has no pre constraints
1371             viewTypeLocal41a = handleIsViewTypeLocal();
1372             // viewTypeLocal has no post constraints
1373             this.__viewTypeLocal41a = viewTypeLocal41a;
1374             if (isMetafacadePropertyCachingEnabled())
1375             {
1376                 this.__viewTypeLocal41aSet = true;
1377             }
1378         }
1379         return viewTypeLocal41a;
1380     }
1381 
1382    /**
1383     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isViewTypeRemote()
1384     * @return boolean
1385     */
1386     protected abstract boolean handleIsViewTypeRemote();
1387 
1388     private boolean __viewTypeRemote42a;
1389     private boolean __viewTypeRemote42aSet = false;
1390 
1391     /**
1392      * Return true if the view type accessability for this bean is remote or both.
1393      * @return (boolean)handleIsViewTypeRemote()
1394      */
1395     public final boolean isViewTypeRemote()
1396     {
1397         boolean viewTypeRemote42a = this.__viewTypeRemote42a;
1398         if (!this.__viewTypeRemote42aSet)
1399         {
1400             // viewTypeRemote has no pre constraints
1401             viewTypeRemote42a = handleIsViewTypeRemote();
1402             // viewTypeRemote has no post constraints
1403             this.__viewTypeRemote42a = viewTypeRemote42a;
1404             if (isMetafacadePropertyCachingEnabled())
1405             {
1406                 this.__viewTypeRemote42aSet = true;
1407             }
1408         }
1409         return viewTypeRemote42a;
1410     }
1411 
1412    /**
1413     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getInterceptorReferences()
1414     * @return Collection
1415     */
1416     protected abstract Collection handleGetInterceptorReferences();
1417 
1418     private Collection __interceptorReferences43a;
1419     private boolean __interceptorReferences43aSet = false;
1420 
1421     /**
1422      * Returns the Collection of target elements from the service bean class where  the target class
1423      * has a stereotype of Interceptor.
1424      * @return (Collection)handleGetInterceptorReferences()
1425      */
1426     public final Collection getInterceptorReferences()
1427     {
1428         Collection interceptorReferences43a = this.__interceptorReferences43a;
1429         if (!this.__interceptorReferences43aSet)
1430         {
1431             // interceptorReferences has no pre constraints
1432             interceptorReferences43a = handleGetInterceptorReferences();
1433             // interceptorReferences has no post constraints
1434             this.__interceptorReferences43a = interceptorReferences43a;
1435             if (isMetafacadePropertyCachingEnabled())
1436             {
1437                 this.__interceptorReferences43aSet = true;
1438             }
1439         }
1440         return interceptorReferences43a;
1441     }
1442 
1443    /**
1444     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getDefaultExceptionName()
1445     * @return String
1446     */
1447     protected abstract String handleGetDefaultExceptionName();
1448 
1449     private String __defaultExceptionName44a;
1450     private boolean __defaultExceptionName44aSet = false;
1451 
1452     /**
1453      * The name of the default exception to be generated for this service.
1454      * @return (String)handleGetDefaultExceptionName()
1455      */
1456     public final String getDefaultExceptionName()
1457     {
1458         String defaultExceptionName44a = this.__defaultExceptionName44a;
1459         if (!this.__defaultExceptionName44aSet)
1460         {
1461             // defaultExceptionName has no pre constraints
1462             defaultExceptionName44a = handleGetDefaultExceptionName();
1463             // defaultExceptionName has no post constraints
1464             this.__defaultExceptionName44a = defaultExceptionName44a;
1465             if (isMetafacadePropertyCachingEnabled())
1466             {
1467                 this.__defaultExceptionName44aSet = true;
1468             }
1469         }
1470         return defaultExceptionName44a;
1471     }
1472 
1473    /**
1474     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getFullyQualifiedDefaultExceptionName()
1475     * @return String
1476     */
1477     protected abstract String handleGetFullyQualifiedDefaultExceptionName();
1478 
1479     private String __fullyQualifiedDefaultExceptionName45a;
1480     private boolean __fullyQualifiedDefaultExceptionName45aSet = false;
1481 
1482     /**
1483      * The fully qualified class name of the default exception.
1484      * @return (String)handleGetFullyQualifiedDefaultExceptionName()
1485      */
1486     public final String getFullyQualifiedDefaultExceptionName()
1487     {
1488         String fullyQualifiedDefaultExceptionName45a = this.__fullyQualifiedDefaultExceptionName45a;
1489         if (!this.__fullyQualifiedDefaultExceptionName45aSet)
1490         {
1491             // fullyQualifiedDefaultExceptionName has no pre constraints
1492             fullyQualifiedDefaultExceptionName45a = handleGetFullyQualifiedDefaultExceptionName();
1493             // fullyQualifiedDefaultExceptionName has no post constraints
1494             this.__fullyQualifiedDefaultExceptionName45a = fullyQualifiedDefaultExceptionName45a;
1495             if (isMetafacadePropertyCachingEnabled())
1496             {
1497                 this.__fullyQualifiedDefaultExceptionName45aSet = true;
1498             }
1499         }
1500         return fullyQualifiedDefaultExceptionName45a;
1501     }
1502 
1503    /**
1504     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isAllowDefaultServiceException()
1505     * @return boolean
1506     */
1507     protected abstract boolean handleIsAllowDefaultServiceException();
1508 
1509     private boolean __allowDefaultServiceException46a;
1510     private boolean __allowDefaultServiceException46aSet = false;
1511 
1512     /**
1513      * Indicates whether or not a default service exception should be allowed.
1514      * @return (boolean)handleIsAllowDefaultServiceException()
1515      */
1516     public final boolean isAllowDefaultServiceException()
1517     {
1518         boolean allowDefaultServiceException46a = this.__allowDefaultServiceException46a;
1519         if (!this.__allowDefaultServiceException46aSet)
1520         {
1521             // allowDefaultServiceException has no pre constraints
1522             allowDefaultServiceException46a = handleIsAllowDefaultServiceException();
1523             // allowDefaultServiceException has no post constraints
1524             this.__allowDefaultServiceException46a = allowDefaultServiceException46a;
1525             if (isMetafacadePropertyCachingEnabled())
1526             {
1527                 this.__allowDefaultServiceException46aSet = true;
1528             }
1529         }
1530         return allowDefaultServiceException46a;
1531     }
1532 
1533    /**
1534     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isListenerEnabled()
1535     * @return boolean
1536     */
1537     protected abstract boolean handleIsListenerEnabled();
1538 
1539     private boolean __listenerEnabled47a;
1540     private boolean __listenerEnabled47aSet = false;
1541 
1542     /**
1543      * Returns true if this session bean has the stereotype Listener.  False otherwise.
1544      * @return (boolean)handleIsListenerEnabled()
1545      */
1546     public final boolean isListenerEnabled()
1547     {
1548         boolean listenerEnabled47a = this.__listenerEnabled47a;
1549         if (!this.__listenerEnabled47aSet)
1550         {
1551             // listenerEnabled has no pre constraints
1552             listenerEnabled47a = handleIsListenerEnabled();
1553             // listenerEnabled has no post constraints
1554             this.__listenerEnabled47a = listenerEnabled47a;
1555             if (isMetafacadePropertyCachingEnabled())
1556             {
1557                 this.__listenerEnabled47aSet = true;
1558             }
1559         }
1560         return listenerEnabled47a;
1561     }
1562 
1563    /**
1564     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getJndiNamePrefix()
1565     * @return String
1566     */
1567     protected abstract String handleGetJndiNamePrefix();
1568 
1569     private String __jndiNamePrefix48a;
1570     private boolean __jndiNamePrefix48aSet = false;
1571 
1572     /**
1573      * Returns the JNDI name prefix for this session bean.  This is set using the jndiNamePrefix
1574      * namespace property and is commonly the ear file name excluding the extension for the EJB3
1575      * cartridge.  This prefix is applied whether the JNDI name is specified or not.
1576      * If no manual JNDI name is specified, then the prefix is applied like so:
1577      * jndiPrefix/EJBName/Remote
1578      * If a manual JNDI name is specified, then the prefix is applied:
1579      * jndiPrefix/ManualEJBJNDIName
1580      * @return (String)handleGetJndiNamePrefix()
1581      */
1582     public final String getJndiNamePrefix()
1583     {
1584         String jndiNamePrefix48a = this.__jndiNamePrefix48a;
1585         if (!this.__jndiNamePrefix48aSet)
1586         {
1587             // jndiNamePrefix has no pre constraints
1588             jndiNamePrefix48a = handleGetJndiNamePrefix();
1589             // jndiNamePrefix has no post constraints
1590             this.__jndiNamePrefix48a = jndiNamePrefix48a;
1591             if (isMetafacadePropertyCachingEnabled())
1592             {
1593                 this.__jndiNamePrefix48aSet = true;
1594             }
1595         }
1596         return jndiNamePrefix48a;
1597     }
1598 
1599    /**
1600     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isSecurityEnabled()
1601     * @return boolean
1602     */
1603     protected abstract boolean handleIsSecurityEnabled();
1604 
1605     private boolean __securityEnabled49a;
1606     private boolean __securityEnabled49aSet = false;
1607 
1608     /**
1609      * Returns true if the security realm is specified indicating to generate the security
1610      * infrastructure files.
1611      * @return (boolean)handleIsSecurityEnabled()
1612      */
1613     public final boolean isSecurityEnabled()
1614     {
1615         boolean securityEnabled49a = this.__securityEnabled49a;
1616         if (!this.__securityEnabled49aSet)
1617         {
1618             // securityEnabled has no pre constraints
1619             securityEnabled49a = handleIsSecurityEnabled();
1620             // securityEnabled has no post constraints
1621             this.__securityEnabled49a = securityEnabled49a;
1622             if (isMetafacadePropertyCachingEnabled())
1623             {
1624                 this.__securityEnabled49aSet = true;
1625             }
1626         }
1627         return securityEnabled49a;
1628     }
1629 
1630    /**
1631     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isExcludeDefaultInterceptors()
1632     * @return boolean
1633     */
1634     protected abstract boolean handleIsExcludeDefaultInterceptors();
1635 
1636     private boolean __excludeDefaultInterceptors50a;
1637     private boolean __excludeDefaultInterceptors50aSet = false;
1638 
1639     /**
1640      * Determines whether to exclude the invocation of the default interceptors for all business
1641      * method in the bean.
1642      * @return (boolean)handleIsExcludeDefaultInterceptors()
1643      */
1644     public final boolean isExcludeDefaultInterceptors()
1645     {
1646         boolean excludeDefaultInterceptors50a = this.__excludeDefaultInterceptors50a;
1647         if (!this.__excludeDefaultInterceptors50aSet)
1648         {
1649             // excludeDefaultInterceptors has no pre constraints
1650             excludeDefaultInterceptors50a = handleIsExcludeDefaultInterceptors();
1651             // excludeDefaultInterceptors has no post constraints
1652             this.__excludeDefaultInterceptors50a = excludeDefaultInterceptors50a;
1653             if (isMetafacadePropertyCachingEnabled())
1654             {
1655                 this.__excludeDefaultInterceptors50aSet = true;
1656             }
1657         }
1658         return excludeDefaultInterceptors50a;
1659     }
1660 
1661    /**
1662     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isClusteringEnabled()
1663     * @return boolean
1664     */
1665     protected abstract boolean handleIsClusteringEnabled();
1666 
1667     private boolean __clusteringEnabled51a;
1668     private boolean __clusteringEnabled51aSet = false;
1669 
1670     /**
1671      * Determine whether clustering has been enabled.  Either set application wide using
1672      * enableClustering namespace property or via the andromda_service_clustered tagged value.
1673      * @return (boolean)handleIsClusteringEnabled()
1674      */
1675     public final boolean isClusteringEnabled()
1676     {
1677         boolean clusteringEnabled51a = this.__clusteringEnabled51a;
1678         if (!this.__clusteringEnabled51aSet)
1679         {
1680             // clusteringEnabled has no pre constraints
1681             clusteringEnabled51a = handleIsClusteringEnabled();
1682             // clusteringEnabled has no post constraints
1683             this.__clusteringEnabled51a = clusteringEnabled51a;
1684             if (isMetafacadePropertyCachingEnabled())
1685             {
1686                 this.__clusteringEnabled51aSet = true;
1687             }
1688         }
1689         return clusteringEnabled51a;
1690     }
1691 
1692    /**
1693     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isWebServiceOperationExists()
1694     * @return boolean
1695     */
1696     protected abstract boolean handleIsWebServiceOperationExists();
1697 
1698     private boolean __webServiceOperationExists52a;
1699     private boolean __webServiceOperationExists52aSet = false;
1700 
1701     /**
1702      * Returns true if at least one of the session bean operations is marked with the
1703      * WebServiceOperation stereotype.
1704      * @return (boolean)handleIsWebServiceOperationExists()
1705      */
1706     public final boolean isWebServiceOperationExists()
1707     {
1708         boolean webServiceOperationExists52a = this.__webServiceOperationExists52a;
1709         if (!this.__webServiceOperationExists52aSet)
1710         {
1711             // webServiceOperationExists has no pre constraints
1712             webServiceOperationExists52a = handleIsWebServiceOperationExists();
1713             // webServiceOperationExists has no post constraints
1714             this.__webServiceOperationExists52a = webServiceOperationExists52a;
1715             if (isMetafacadePropertyCachingEnabled())
1716             {
1717                 this.__webServiceOperationExists52aSet = true;
1718             }
1719         }
1720         return webServiceOperationExists52a;
1721     }
1722 
1723    /**
1724     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isWebServiceEnabled()
1725     * @return boolean
1726     */
1727     protected abstract boolean handleIsWebServiceEnabled();
1728 
1729     private boolean __webServiceEnabled53a;
1730     private boolean __webServiceEnabled53aSet = false;
1731 
1732     /**
1733      * Returns true if the session bean has either one of the following:
1734      * 1. The <<WebService>> stereotype is modelled on the bean class;
1735      * 2. The <<WebServiceOperation>> stereotype is modelled on at least one business method.
1736      * @return (boolean)handleIsWebServiceEnabled()
1737      */
1738     public final boolean isWebServiceEnabled()
1739     {
1740         boolean webServiceEnabled53a = this.__webServiceEnabled53a;
1741         if (!this.__webServiceEnabled53aSet)
1742         {
1743             // webServiceEnabled has no pre constraints
1744             webServiceEnabled53a = handleIsWebServiceEnabled();
1745             // webServiceEnabled has no post constraints
1746             this.__webServiceEnabled53a = webServiceEnabled53a;
1747             if (isMetafacadePropertyCachingEnabled())
1748             {
1749                 this.__webServiceEnabled53aSet = true;
1750             }
1751         }
1752         return webServiceEnabled53a;
1753     }
1754 
1755    /**
1756     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getServiceBaseName()
1757     * @return String
1758     */
1759     protected abstract String handleGetServiceBaseName();
1760 
1761     private String __serviceBaseName54a;
1762     private boolean __serviceBaseName54aSet = false;
1763 
1764     /**
1765      * Returns the service bean base name.
1766      * @return (String)handleGetServiceBaseName()
1767      */
1768     public final String getServiceBaseName()
1769     {
1770         String serviceBaseName54a = this.__serviceBaseName54a;
1771         if (!this.__serviceBaseName54aSet)
1772         {
1773             // serviceBaseName has no pre constraints
1774             serviceBaseName54a = handleGetServiceBaseName();
1775             // serviceBaseName has no post constraints
1776             this.__serviceBaseName54a = serviceBaseName54a;
1777             if (isMetafacadePropertyCachingEnabled())
1778             {
1779                 this.__serviceBaseName54aSet = true;
1780             }
1781         }
1782         return serviceBaseName54a;
1783     }
1784 
1785    /**
1786     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getFullyQualifiedServiceBaseName()
1787     * @return String
1788     */
1789     protected abstract String handleGetFullyQualifiedServiceBaseName();
1790 
1791     private String __fullyQualifiedServiceBaseName55a;
1792     private boolean __fullyQualifiedServiceBaseName55aSet = false;
1793 
1794     /**
1795      * Returns the fully qualified service base name.
1796      * @return (String)handleGetFullyQualifiedServiceBaseName()
1797      */
1798     public final String getFullyQualifiedServiceBaseName()
1799     {
1800         String fullyQualifiedServiceBaseName55a = this.__fullyQualifiedServiceBaseName55a;
1801         if (!this.__fullyQualifiedServiceBaseName55aSet)
1802         {
1803             // fullyQualifiedServiceBaseName has no pre constraints
1804             fullyQualifiedServiceBaseName55a = handleGetFullyQualifiedServiceBaseName();
1805             // fullyQualifiedServiceBaseName has no post constraints
1806             this.__fullyQualifiedServiceBaseName55a = fullyQualifiedServiceBaseName55a;
1807             if (isMetafacadePropertyCachingEnabled())
1808             {
1809                 this.__fullyQualifiedServiceBaseName55aSet = true;
1810             }
1811         }
1812         return fullyQualifiedServiceBaseName55a;
1813     }
1814 
1815    /**
1816     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isSeamComponent()
1817     * @return boolean
1818     */
1819     protected abstract boolean handleIsSeamComponent();
1820 
1821     private boolean __seamComponent56a;
1822     private boolean __seamComponent56aSet = false;
1823 
1824     /**
1825      * Returns true if this session bean has the <<Seam>> stereotype modelled indicating it is a
1826      * Seam session bean component.
1827      * @return (boolean)handleIsSeamComponent()
1828      */
1829     public final boolean isSeamComponent()
1830     {
1831         boolean seamComponent56a = this.__seamComponent56a;
1832         if (!this.__seamComponent56aSet)
1833         {
1834             // seamComponent has no pre constraints
1835             seamComponent56a = handleIsSeamComponent();
1836             // seamComponent has no post constraints
1837             this.__seamComponent56a = seamComponent56a;
1838             if (isMetafacadePropertyCachingEnabled())
1839             {
1840                 this.__seamComponent56aSet = true;
1841             }
1842         }
1843         return seamComponent56a;
1844     }
1845 
1846    /**
1847     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getSeamComponentScopeType()
1848     * @return String
1849     */
1850     protected abstract String handleGetSeamComponentScopeType();
1851 
1852     private String __seamComponentScopeType57a;
1853     private boolean __seamComponentScopeType57aSet = false;
1854 
1855     /**
1856      * Tagged value andromda.seam.component.scope. Defines the default context of the component. 
1857      * Possible values are
1858      * EVENT
1859      * PAGE
1860      * CONVERSATION
1861      * SESSION
1862      * BUSINESS_PROCESS
1863      * APPLICATION
1864      * STATELESS
1865      * If no scope specified, default depends on component type.
1866      * @return (String)handleGetSeamComponentScopeType()
1867      */
1868     public final String getSeamComponentScopeType()
1869     {
1870         String seamComponentScopeType57a = this.__seamComponentScopeType57a;
1871         if (!this.__seamComponentScopeType57aSet)
1872         {
1873             // seamComponentScopeType has no pre constraints
1874             seamComponentScopeType57a = handleGetSeamComponentScopeType();
1875             // seamComponentScopeType has no post constraints
1876             this.__seamComponentScopeType57a = seamComponentScopeType57a;
1877             if (isMetafacadePropertyCachingEnabled())
1878             {
1879                 this.__seamComponentScopeType57aSet = true;
1880             }
1881         }
1882         return seamComponentScopeType57a;
1883     }
1884 
1885    /**
1886     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getSeamComponentName()
1887     * @return String
1888     */
1889     protected abstract String handleGetSeamComponentName();
1890 
1891     private String __seamComponentName58a;
1892     private boolean __seamComponentName58aSet = false;
1893 
1894     /**
1895      * Returns the Seam component name for the class.
1896      * @return (String)handleGetSeamComponentName()
1897      */
1898     public final String getSeamComponentName()
1899     {
1900         String seamComponentName58a = this.__seamComponentName58a;
1901         if (!this.__seamComponentName58aSet)
1902         {
1903             // seamComponentName has no pre constraints
1904             seamComponentName58a = handleGetSeamComponentName();
1905             // seamComponentName has no post constraints
1906             this.__seamComponentName58a = seamComponentName58a;
1907             if (isMetafacadePropertyCachingEnabled())
1908             {
1909                 this.__seamComponentName58aSet = true;
1910             }
1911         }
1912         return seamComponentName58a;
1913     }
1914 
1915    /**
1916     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isViewTypeBoth()
1917     * @return boolean
1918     */
1919     protected abstract boolean handleIsViewTypeBoth();
1920 
1921     private boolean __viewTypeBoth59a;
1922     private boolean __viewTypeBoth59aSet = false;
1923 
1924     /**
1925      * Return true if the view type accessability for this bean is both.
1926      * @return (boolean)handleIsViewTypeBoth()
1927      */
1928     public final boolean isViewTypeBoth()
1929     {
1930         boolean viewTypeBoth59a = this.__viewTypeBoth59a;
1931         if (!this.__viewTypeBoth59aSet)
1932         {
1933             // viewTypeBoth has no pre constraints
1934             viewTypeBoth59a = handleIsViewTypeBoth();
1935             // viewTypeBoth has no post constraints
1936             this.__viewTypeBoth59a = viewTypeBoth59a;
1937             if (isMetafacadePropertyCachingEnabled())
1938             {
1939                 this.__viewTypeBoth59aSet = true;
1940             }
1941         }
1942         return viewTypeBoth59a;
1943     }
1944 
1945    /**
1946     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isViewTypeStrictlyLocal()
1947     * @return boolean
1948     */
1949     protected abstract boolean handleIsViewTypeStrictlyLocal();
1950 
1951     private boolean __viewTypeStrictlyLocal60a;
1952     private boolean __viewTypeStrictlyLocal60aSet = false;
1953 
1954     /**
1955      * Returns true if the bean view type was explicitly set to local view using tagged value or set
1956      * as the app wide default.
1957      * @return (boolean)handleIsViewTypeStrictlyLocal()
1958      */
1959     public final boolean isViewTypeStrictlyLocal()
1960     {
1961         boolean viewTypeStrictlyLocal60a = this.__viewTypeStrictlyLocal60a;
1962         if (!this.__viewTypeStrictlyLocal60aSet)
1963         {
1964             // viewTypeStrictlyLocal has no pre constraints
1965             viewTypeStrictlyLocal60a = handleIsViewTypeStrictlyLocal();
1966             // viewTypeStrictlyLocal has no post constraints
1967             this.__viewTypeStrictlyLocal60a = viewTypeStrictlyLocal60a;
1968             if (isMetafacadePropertyCachingEnabled())
1969             {
1970                 this.__viewTypeStrictlyLocal60aSet = true;
1971             }
1972         }
1973         return viewTypeStrictlyLocal60a;
1974     }
1975 
1976    /**
1977     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isViewTypeStrictlyRemote()
1978     * @return boolean
1979     */
1980     protected abstract boolean handleIsViewTypeStrictlyRemote();
1981 
1982     private boolean __viewTypeStrictlyRemote61a;
1983     private boolean __viewTypeStrictlyRemote61aSet = false;
1984 
1985     /**
1986      * Returns true if the bean view type was explicitly set to remote view using tagged value or
1987      * set as the app wide default.
1988      * @return (boolean)handleIsViewTypeStrictlyRemote()
1989      */
1990     public final boolean isViewTypeStrictlyRemote()
1991     {
1992         boolean viewTypeStrictlyRemote61a = this.__viewTypeStrictlyRemote61a;
1993         if (!this.__viewTypeStrictlyRemote61aSet)
1994         {
1995             // viewTypeStrictlyRemote has no pre constraints
1996             viewTypeStrictlyRemote61a = handleIsViewTypeStrictlyRemote();
1997             // viewTypeStrictlyRemote has no post constraints
1998             this.__viewTypeStrictlyRemote61a = viewTypeStrictlyRemote61a;
1999             if (isMetafacadePropertyCachingEnabled())
2000             {
2001                 this.__viewTypeStrictlyRemote61aSet = true;
2002             }
2003         }
2004         return viewTypeStrictlyRemote61a;
2005     }
2006 
2007    /**
2008     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isViewTypeStrictlyBoth()
2009     * @return boolean
2010     */
2011     protected abstract boolean handleIsViewTypeStrictlyBoth();
2012 
2013     private boolean __viewTypeStrictlyBoth62a;
2014     private boolean __viewTypeStrictlyBoth62aSet = false;
2015 
2016     /**
2017      * Returns true if the bean view type was explicitly set to both view using tagged value or set
2018      * as the app wide default.
2019      * @return (boolean)handleIsViewTypeStrictlyBoth()
2020      */
2021     public final boolean isViewTypeStrictlyBoth()
2022     {
2023         boolean viewTypeStrictlyBoth62a = this.__viewTypeStrictlyBoth62a;
2024         if (!this.__viewTypeStrictlyBoth62aSet)
2025         {
2026             // viewTypeStrictlyBoth has no pre constraints
2027             viewTypeStrictlyBoth62a = handleIsViewTypeStrictlyBoth();
2028             // viewTypeStrictlyBoth has no post constraints
2029             this.__viewTypeStrictlyBoth62a = viewTypeStrictlyBoth62a;
2030             if (isMetafacadePropertyCachingEnabled())
2031             {
2032                 this.__viewTypeStrictlyBoth62aSet = true;
2033             }
2034         }
2035         return viewTypeStrictlyBoth62a;
2036     }
2037 
2038    /**
2039     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isSeamComponentStartup()
2040     * @return boolean
2041     */
2042     protected abstract boolean handleIsSeamComponentStartup();
2043 
2044     private boolean __seamComponentStartup63a;
2045     private boolean __seamComponentStartup63aSet = false;
2046 
2047     /**
2048      * Returns true if stereotype <<Startup>> is set. Specifies that an application scope component
2049      * is started immediately at initialization time. This is mainly used for certain built-in
2050      * components that bootstrap critical infrastructure such as JNDI, datasources, etc.
2051      * @return (boolean)handleIsSeamComponentStartup()
2052      */
2053     public final boolean isSeamComponentStartup()
2054     {
2055         boolean seamComponentStartup63a = this.__seamComponentStartup63a;
2056         if (!this.__seamComponentStartup63aSet)
2057         {
2058             // seamComponentStartup has no pre constraints
2059             seamComponentStartup63a = handleIsSeamComponentStartup();
2060             // seamComponentStartup has no post constraints
2061             this.__seamComponentStartup63a = seamComponentStartup63a;
2062             if (isMetafacadePropertyCachingEnabled())
2063             {
2064                 this.__seamComponentStartup63aSet = true;
2065             }
2066         }
2067         return seamComponentStartup63a;
2068     }
2069 
2070    /**
2071     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getSeamComponentConversionalIfNotBegunOutcome()
2072     * @return String
2073     */
2074     protected abstract String handleGetSeamComponentConversionalIfNotBegunOutcome();
2075 
2076     private String __seamComponentConversionalIfNotBegunOutcome64a;
2077     private boolean __seamComponentConversionalIfNotBegunOutcome64aSet = false;
2078 
2079     /**
2080      * Tagged value andromda.seam.component.conversional.ifnotbegunoutcome. Specifies that a
2081      * conversation scope component is conversational, meaning that no method of the component can
2082      * be called unless a long-running conversation started by this component is active (unless the
2083      * method would begin a new long-running conversation).
2084      * @return (String)handleGetSeamComponentConversionalIfNotBegunOutcome()
2085      */
2086     public final String getSeamComponentConversionalIfNotBegunOutcome()
2087     {
2088         String seamComponentConversionalIfNotBegunOutcome64a = this.__seamComponentConversionalIfNotBegunOutcome64a;
2089         if (!this.__seamComponentConversionalIfNotBegunOutcome64aSet)
2090         {
2091             // seamComponentConversionalIfNotBegunOutcome has no pre constraints
2092             seamComponentConversionalIfNotBegunOutcome64a = handleGetSeamComponentConversionalIfNotBegunOutcome();
2093             // seamComponentConversionalIfNotBegunOutcome has no post constraints
2094             this.__seamComponentConversionalIfNotBegunOutcome64a = seamComponentConversionalIfNotBegunOutcome64a;
2095             if (isMetafacadePropertyCachingEnabled())
2096             {
2097                 this.__seamComponentConversionalIfNotBegunOutcome64aSet = true;
2098             }
2099         }
2100         return seamComponentConversionalIfNotBegunOutcome64a;
2101     }
2102 
2103    /**
2104     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getSeamComponentIntercept()
2105     * @return String
2106     */
2107     protected abstract String handleGetSeamComponentIntercept();
2108 
2109     private String __seamComponentIntercept65a;
2110     private boolean __seamComponentIntercept65aSet = false;
2111 
2112     /**
2113      * Tagged value andromda.seam.component.intercept. Determines when Seam interceptors are active.
2114      * The possible values are defined by the InterceptionType enumeration: ALWAYS,
2115      * AFTER_RESTORE_VIEW, AFTER_UPDATE_MODEL_VALUES, INVOKE_APPLICATION, NEVER.
2116      * When no interception type is explicitly specified, the default depends upon the component
2117      * type. For entity beans, the default is NEVER. For session beans, message driven beans and
2118      * JavaBeans, the default is ALWAYS.
2119      * @return (String)handleGetSeamComponentIntercept()
2120      */
2121     public final String getSeamComponentIntercept()
2122     {
2123         String seamComponentIntercept65a = this.__seamComponentIntercept65a;
2124         if (!this.__seamComponentIntercept65aSet)
2125         {
2126             // seamComponentIntercept has no pre constraints
2127             seamComponentIntercept65a = handleGetSeamComponentIntercept();
2128             // seamComponentIntercept has no post constraints
2129             this.__seamComponentIntercept65a = seamComponentIntercept65a;
2130             if (isMetafacadePropertyCachingEnabled())
2131             {
2132                 this.__seamComponentIntercept65aSet = true;
2133             }
2134         }
2135         return seamComponentIntercept65a;
2136     }
2137 
2138    /**
2139     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getSeamComponentJndiName()
2140     * @return String
2141     */
2142     protected abstract String handleGetSeamComponentJndiName();
2143 
2144     private String __seamComponentJndiName66a;
2145     private boolean __seamComponentJndiName66aSet = false;
2146 
2147     /**
2148      * Tagged value andromda.seam.component.jndiname. Specifies the JNDI name that Seam will use to
2149      * look up the EJB component. If no JNDI name is explicitly specified, Seam will use the JNDI
2150      * pattern specified by org.jboss.seam.core.init.jndiPattern.
2151      * @return (String)handleGetSeamComponentJndiName()
2152      */
2153     public final String getSeamComponentJndiName()
2154     {
2155         String seamComponentJndiName66a = this.__seamComponentJndiName66a;
2156         if (!this.__seamComponentJndiName66aSet)
2157         {
2158             // seamComponentJndiName has no pre constraints
2159             seamComponentJndiName66a = handleGetSeamComponentJndiName();
2160             // seamComponentJndiName has no post constraints
2161             this.__seamComponentJndiName66a = seamComponentJndiName66a;
2162             if (isMetafacadePropertyCachingEnabled())
2163             {
2164                 this.__seamComponentJndiName66aSet = true;
2165             }
2166         }
2167         return seamComponentJndiName66a;
2168     }
2169 
2170    /**
2171     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isSeamComponentReadonly()
2172     * @return boolean
2173     */
2174     protected abstract boolean handleIsSeamComponentReadonly();
2175 
2176     private boolean __seamComponentReadonly67a;
2177     private boolean __seamComponentReadonly67aSet = false;
2178 
2179     /**
2180      * Tagged value andromda.seam.component.readonly. Specifies that a JavaBean component or
2181      * component method does not require state replication at the end of the invocation.
2182      * @return (boolean)handleIsSeamComponentReadonly()
2183      */
2184     public final boolean isSeamComponentReadonly()
2185     {
2186         boolean seamComponentReadonly67a = this.__seamComponentReadonly67a;
2187         if (!this.__seamComponentReadonly67aSet)
2188         {
2189             // seamComponentReadonly has no pre constraints
2190             seamComponentReadonly67a = handleIsSeamComponentReadonly();
2191             // seamComponentReadonly has no post constraints
2192             this.__seamComponentReadonly67a = seamComponentReadonly67a;
2193             if (isMetafacadePropertyCachingEnabled())
2194             {
2195                 this.__seamComponentReadonly67aSet = true;
2196             }
2197         }
2198         return seamComponentReadonly67a;
2199     }
2200 
2201    /**
2202     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getSeamComponentRoleNames()
2203     * @return Collection
2204     */
2205     protected abstract Collection handleGetSeamComponentRoleNames();
2206 
2207     private Collection __seamComponentRoleNames68a;
2208     private boolean __seamComponentRoleNames68aSet = false;
2209 
2210     /**
2211      * Tagged value andromda.seam.component.role.name. Allows a Seam component to be bound to
2212      * multiple contexts variables. The Name/Scope annotations define a "default role". Each Role
2213      * annotation defines an additional role.
2214      * This tagged value specifies the context variable name.
2215      * @return (Collection)handleGetSeamComponentRoleNames()
2216      */
2217     public final Collection getSeamComponentRoleNames()
2218     {
2219         Collection seamComponentRoleNames68a = this.__seamComponentRoleNames68a;
2220         if (!this.__seamComponentRoleNames68aSet)
2221         {
2222             // seamComponentRoleNames has no pre constraints
2223             seamComponentRoleNames68a = handleGetSeamComponentRoleNames();
2224             // seamComponentRoleNames has no post constraints
2225             this.__seamComponentRoleNames68a = seamComponentRoleNames68a;
2226             if (isMetafacadePropertyCachingEnabled())
2227             {
2228                 this.__seamComponentRoleNames68aSet = true;
2229             }
2230         }
2231         return seamComponentRoleNames68a;
2232     }
2233 
2234    /**
2235     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getSeamComponentSynchronizedTimeout()
2236     * @return String
2237     */
2238     protected abstract String handleGetSeamComponentSynchronizedTimeout();
2239 
2240     private String __seamComponentSynchronizedTimeout69a;
2241     private boolean __seamComponentSynchronizedTimeout69aSet = false;
2242 
2243     /**
2244      * Tagged value andromda.seam.component.synchronized.timeout. Specifies that a component is
2245      * accessed concurrently by multiple clients, and that Seam should serialize requests. If a
2246      * request is not able to obtain its lock on the component in the given timeout period, an
2247      * exception will be raised.
2248      * @return (String)handleGetSeamComponentSynchronizedTimeout()
2249      */
2250     public final String getSeamComponentSynchronizedTimeout()
2251     {
2252         String seamComponentSynchronizedTimeout69a = this.__seamComponentSynchronizedTimeout69a;
2253         if (!this.__seamComponentSynchronizedTimeout69aSet)
2254         {
2255             // seamComponentSynchronizedTimeout has no pre constraints
2256             seamComponentSynchronizedTimeout69a = handleGetSeamComponentSynchronizedTimeout();
2257             // seamComponentSynchronizedTimeout has no post constraints
2258             this.__seamComponentSynchronizedTimeout69a = seamComponentSynchronizedTimeout69a;
2259             if (isMetafacadePropertyCachingEnabled())
2260             {
2261                 this.__seamComponentSynchronizedTimeout69aSet = true;
2262             }
2263         }
2264         return seamComponentSynchronizedTimeout69a;
2265     }
2266 
2267    /**
2268     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#isSeamComponentTransactional()
2269     * @return boolean
2270     */
2271     protected abstract boolean handleIsSeamComponentTransactional();
2272 
2273     private boolean __seamComponentTransactional70a;
2274     private boolean __seamComponentTransactional70aSet = false;
2275 
2276     /**
2277      * Returns true if stereotype <<Transactional>> is set. Specifies that a JavaBean component
2278      * should have a similar transactional behavior to the default behavior of a session bean
2279      * component. ie. method invocations should take place in a transaction, and if no transaction
2280      * exists when the method is called, a transaction will be started just for that method. This
2281      * annotation may be applied at either class or method level.
2282      * @return (boolean)handleIsSeamComponentTransactional()
2283      */
2284     public final boolean isSeamComponentTransactional()
2285     {
2286         boolean seamComponentTransactional70a = this.__seamComponentTransactional70a;
2287         if (!this.__seamComponentTransactional70aSet)
2288         {
2289             // seamComponentTransactional has no pre constraints
2290             seamComponentTransactional70a = handleIsSeamComponentTransactional();
2291             // seamComponentTransactional has no post constraints
2292             this.__seamComponentTransactional70a = seamComponentTransactional70a;
2293             if (isMetafacadePropertyCachingEnabled())
2294             {
2295                 this.__seamComponentTransactional70aSet = true;
2296             }
2297         }
2298         return seamComponentTransactional70a;
2299     }
2300 
2301    /**
2302     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getSeamComponentStartupParameters()
2303     * @return String
2304     */
2305     protected abstract String handleGetSeamComponentStartupParameters();
2306 
2307     private String __seamComponentStartupParameters71a;
2308     private boolean __seamComponentStartupParameters71aSet = false;
2309 
2310     /**
2311      * Returns a string with parameters for the Startup annotation. Supported parameters:
2312      * depends — specifies that the named components must be started first, if they are installed.
2313      * Specified by tagged value andromda.seam.component.startup.depends
2314      * @return (String)handleGetSeamComponentStartupParameters()
2315      */
2316     public final String getSeamComponentStartupParameters()
2317     {
2318         String seamComponentStartupParameters71a = this.__seamComponentStartupParameters71a;
2319         if (!this.__seamComponentStartupParameters71aSet)
2320         {
2321             // seamComponentStartupParameters has no pre constraints
2322             seamComponentStartupParameters71a = handleGetSeamComponentStartupParameters();
2323             // seamComponentStartupParameters has no post constraints
2324             this.__seamComponentStartupParameters71a = seamComponentStartupParameters71a;
2325             if (isMetafacadePropertyCachingEnabled())
2326             {
2327                 this.__seamComponentStartupParameters71aSet = true;
2328             }
2329         }
2330         return seamComponentStartupParameters71a;
2331     }
2332 
2333    /**
2334     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getSeamComponentRoleScopeTypes()
2335     * @return Collection
2336     */
2337     protected abstract Collection handleGetSeamComponentRoleScopeTypes();
2338 
2339     private Collection __seamComponentRoleScopeTypes72a;
2340     private boolean __seamComponentRoleScopeTypes72aSet = false;
2341 
2342     /**
2343      * If multiple roles are specified (since a seam component can be bound to multiple context
2344      * variables), then multiple roles are specified in the order the role names are specified. 
2345      * This is done by modelling the andromda.seam.component.role.scope tag with a comma separated
2346      * list of scopes.
2347      * @return (Collection)handleGetSeamComponentRoleScopeTypes()
2348      */
2349     public final Collection getSeamComponentRoleScopeTypes()
2350     {
2351         Collection seamComponentRoleScopeTypes72a = this.__seamComponentRoleScopeTypes72a;
2352         if (!this.__seamComponentRoleScopeTypes72aSet)
2353         {
2354             // seamComponentRoleScopeTypes has no pre constraints
2355             seamComponentRoleScopeTypes72a = handleGetSeamComponentRoleScopeTypes();
2356             // seamComponentRoleScopeTypes has no post constraints
2357             this.__seamComponentRoleScopeTypes72a = seamComponentRoleScopeTypes72a;
2358             if (isMetafacadePropertyCachingEnabled())
2359             {
2360                 this.__seamComponentRoleScopeTypes72aSet = true;
2361             }
2362         }
2363         return seamComponentRoleScopeTypes72a;
2364     }
2365 
2366    /**
2367     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getFullyQualifiedServiceTestName()
2368     * @return String
2369     */
2370     protected abstract String handleGetFullyQualifiedServiceTestName();
2371 
2372     private String __fullyQualifiedServiceTestName73a;
2373     private boolean __fullyQualifiedServiceTestName73aSet = false;
2374 
2375     /**
2376      * Returns the fully qualified service test class name
2377      * @return (String)handleGetFullyQualifiedServiceTestName()
2378      */
2379     public final String getFullyQualifiedServiceTestName()
2380     {
2381         String fullyQualifiedServiceTestName73a = this.__fullyQualifiedServiceTestName73a;
2382         if (!this.__fullyQualifiedServiceTestName73aSet)
2383         {
2384             // fullyQualifiedServiceTestName has no pre constraints
2385             fullyQualifiedServiceTestName73a = handleGetFullyQualifiedServiceTestName();
2386             // fullyQualifiedServiceTestName has no post constraints
2387             this.__fullyQualifiedServiceTestName73a = fullyQualifiedServiceTestName73a;
2388             if (isMetafacadePropertyCachingEnabled())
2389             {
2390                 this.__fullyQualifiedServiceTestName73aSet = true;
2391             }
2392         }
2393         return fullyQualifiedServiceTestName73a;
2394     }
2395 
2396    /**
2397     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getServiceTestName()
2398     * @return String
2399     */
2400     protected abstract String handleGetServiceTestName();
2401 
2402     private String __serviceTestName74a;
2403     private boolean __serviceTestName74aSet = false;
2404 
2405     /**
2406      * Returns the service bean test class name
2407      * @return (String)handleGetServiceTestName()
2408      */
2409     public final String getServiceTestName()
2410     {
2411         String serviceTestName74a = this.__serviceTestName74a;
2412         if (!this.__serviceTestName74aSet)
2413         {
2414             // serviceTestName has no pre constraints
2415             serviceTestName74a = handleGetServiceTestName();
2416             // serviceTestName has no post constraints
2417             this.__serviceTestName74a = serviceTestName74a;
2418             if (isMetafacadePropertyCachingEnabled())
2419             {
2420                 this.__serviceTestName74aSet = true;
2421             }
2422         }
2423         return serviceTestName74a;
2424     }
2425 
2426    /**
2427     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getTestPackageName()
2428     * @return String
2429     */
2430     protected abstract String handleGetTestPackageName();
2431 
2432     private String __testPackageName75a;
2433     private boolean __testPackageName75aSet = false;
2434 
2435     /**
2436      * Returns the service test package name. This simply appends .test to the existing service
2437      * class package.
2438      * @return (String)handleGetTestPackageName()
2439      */
2440     public final String getTestPackageName()
2441     {
2442         String testPackageName75a = this.__testPackageName75a;
2443         if (!this.__testPackageName75aSet)
2444         {
2445             // testPackageName has no pre constraints
2446             testPackageName75a = handleGetTestPackageName();
2447             // testPackageName has no post constraints
2448             this.__testPackageName75a = testPackageName75a;
2449             if (isMetafacadePropertyCachingEnabled())
2450             {
2451                 this.__testPackageName75aSet = true;
2452             }
2453         }
2454         return testPackageName75a;
2455     }
2456 
2457    /**
2458     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getServiceInterfaceName()
2459     * @return String
2460     */
2461     protected abstract String handleGetServiceInterfaceName();
2462 
2463     private String __serviceInterfaceName76a;
2464     private boolean __serviceInterfaceName76aSet = false;
2465 
2466     /**
2467      * The parent business interface name for this session bean.
2468      * @return (String)handleGetServiceInterfaceName()
2469      */
2470     public final String getServiceInterfaceName()
2471     {
2472         String serviceInterfaceName76a = this.__serviceInterfaceName76a;
2473         if (!this.__serviceInterfaceName76aSet)
2474         {
2475             // serviceInterfaceName has no pre constraints
2476             serviceInterfaceName76a = handleGetServiceInterfaceName();
2477             // serviceInterfaceName has no post constraints
2478             this.__serviceInterfaceName76a = serviceInterfaceName76a;
2479             if (isMetafacadePropertyCachingEnabled())
2480             {
2481                 this.__serviceInterfaceName76aSet = true;
2482             }
2483         }
2484         return serviceInterfaceName76a;
2485     }
2486 
2487    /**
2488     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade#getFullyQualifiedServiceInterfaceName()
2489     * @return String
2490     */
2491     protected abstract String handleGetFullyQualifiedServiceInterfaceName();
2492 
2493     private String __fullyQualifiedServiceInterfaceName77a;
2494     private boolean __fullyQualifiedServiceInterfaceName77aSet = false;
2495 
2496     /**
2497      * The fully qualified parent business interface name for this session bean.
2498      * @return (String)handleGetFullyQualifiedServiceInterfaceName()
2499      */
2500     public final String getFullyQualifiedServiceInterfaceName()
2501     {
2502         String fullyQualifiedServiceInterfaceName77a = this.__fullyQualifiedServiceInterfaceName77a;
2503         if (!this.__fullyQualifiedServiceInterfaceName77aSet)
2504         {
2505             // fullyQualifiedServiceInterfaceName has no pre constraints
2506             fullyQualifiedServiceInterfaceName77a = handleGetFullyQualifiedServiceInterfaceName();
2507             // fullyQualifiedServiceInterfaceName has no post constraints
2508             this.__fullyQualifiedServiceInterfaceName77a = fullyQualifiedServiceInterfaceName77a;
2509             if (isMetafacadePropertyCachingEnabled())
2510             {
2511                 this.__fullyQualifiedServiceInterfaceName77aSet = true;
2512             }
2513         }
2514         return fullyQualifiedServiceInterfaceName77a;
2515     }
2516 
2517     // ---------------- business methods ----------------------
2518 
2519     /**
2520      * Method to be implemented in descendants
2521      * Gets create methods for this session EJB.  If 'follow' is set to true, it will follow the
2522      * inheritance hierarchy and retrieve those defined on any super types.
2523      * @param follow
2524      * @return Collection
2525      */
2526     protected abstract Collection handleGetCreateMethods(boolean follow);
2527 
2528     /**
2529      * Gets create methods for this session EJB.  If 'follow' is set to true, it will follow the
2530      * inheritance hierarchy and retrieve those defined on any super types.
2531      * @param follow boolean
2532      * If set to true, then all create methods from the super type will also be included.
2533      * @return handleGetCreateMethods(follow)
2534      */
2535     public Collection getCreateMethods(boolean follow)
2536     {
2537         // getCreateMethods has no pre constraints
2538         Collection returnValue = handleGetCreateMethods(follow);
2539         // getCreateMethods has no post constraints
2540         return returnValue;
2541     }
2542 
2543     /**
2544      * Method to be implemented in descendants
2545      * Gets all env-entries for the specified session EJB. Env-entries are stored as static
2546      * attributes on the entity and stereotyped as <<EnvEntry>>.  If 'follow' is true, then the
2547      * inheritance hierarchy will be followed and we'll retrieve all env-entries from any super
2548      * types as well.
2549      * @param follow
2550      * @return Collection
2551      */
2552     protected abstract Collection handleGetEnvironmentEntries(boolean follow);
2553 
2554     /**
2555      * Gets all env-entries for the specified session EJB. Env-entries are stored as static
2556      * attributes on the entity and stereotyped as <<EnvEntry>>.  If 'follow' is true, then the
2557      * inheritance hierarchy will be followed and we'll retrieve all env-entries from any super
2558      * types as well.
2559      * @param follow boolean
2560      * If true, then the inheritance hierarchy will be followed and we'll retrieve all env-entries
2561      * from any super types as well.
2562      * @return handleGetEnvironmentEntries(follow)
2563      */
2564     public Collection getEnvironmentEntries(boolean follow)
2565     {
2566         // getEnvironmentEntries has no pre constraints
2567         Collection returnValue = handleGetEnvironmentEntries(follow);
2568         // getEnvironmentEntries has no post constraints
2569         return returnValue;
2570     }
2571 
2572     /**
2573      * Method to be implemented in descendants
2574      * Gets all constants for this session EJB. Constants are defined as static read-only attributes
2575      * which do NOT have the <<EnvEntry>> stereotype.  If 'follow' is true, then the inheritance
2576      * hierarchy will be followed and we'll retrieve all constants from any super types as well.
2577      * @param follow
2578      * @return Collection
2579      */
2580     protected abstract Collection handleGetConstants(boolean follow);
2581 
2582     /**
2583      * Gets all constants for this session EJB. Constants are defined as static read-only attributes
2584      * which do NOT have the <<EnvEntry>> stereotype.  If 'follow' is true, then the inheritance
2585      * hierarchy will be followed and we'll retrieve all constants from any super types as well.
2586      * @param follow boolean
2587      * If true, then the inheritance hierarchy will be followed and we'll retrieve all constants
2588      * from any super types as well.
2589      * @return handleGetConstants(follow)
2590      */
2591     public Collection getConstants(boolean follow)
2592     {
2593         // getConstants has no pre constraints
2594         Collection returnValue = handleGetConstants(follow);
2595         // getConstants has no post constraints
2596         return returnValue;
2597     }
2598 
2599     /**
2600      * Method to be implemented in descendants
2601      * Returns the comma separated list of attributes.<p/>This method can be used to generate
2602      * argument lists for constructors and method calls.
2603      * @param attributes
2604      * @param includeTypes
2605      * @param includeNames
2606      * @return String
2607      */
2608     protected abstract String handleGetAttributesAsList(Collection attributes, boolean includeTypes, boolean includeNames);
2609 
2610     /**
2611      * Returns the comma separated list of attributes.<p/>This method can be used to generate
2612      * argument lists for constructors and method calls.
2613      * @param attributes Collection
2614      * a collection of {@link Attribute} objects
2615      * @param includeTypes boolean
2616      * if <code>true</code>, the type names of the attributes are included.
2617      * @param includeNames boolean
2618      * if <code>true</code>, the names of the attributes are included
2619      * @return handleGetAttributesAsList(attributes, includeTypes, includeNames)
2620      */
2621     public String getAttributesAsList(Collection attributes, boolean includeTypes, boolean includeNames)
2622     {
2623         // getAttributesAsList has no pre constraints
2624         String returnValue = handleGetAttributesAsList(attributes, includeTypes, includeNames);
2625         // getAttributesAsList has no post constraints
2626         return returnValue;
2627     }
2628 
2629     /**
2630      * Method to be implemented in descendants
2631      * Filter out seam component attributes
2632      * @param attributes
2633      * @return Collection
2634      */
2635     protected abstract Collection handleFilterSeamAttributes(Collection attributes);
2636 
2637     /**
2638      * Filter out seam component attributes
2639      * @param attributes Collection
2640      * TODO: Model Documentation for
2641      * org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade.filterSeamAttributes(attributes)
2642      * @return handleFilterSeamAttributes(attributes)
2643      */
2644     public Collection filterSeamAttributes(Collection attributes)
2645     {
2646         // filterSeamAttributes has no pre constraints
2647         Collection returnValue = handleFilterSeamAttributes(attributes);
2648         // filterSeamAttributes has no post constraints
2649         return returnValue;
2650     }
2651 
2652     // ------------- associations ------------------
2653 
2654     /**
2655      * Represents a Session EJB.
2656      * @return (Collection<Role>)handleGetNonRunAsRoles()
2657      */
2658     public final Collection<Role> getNonRunAsRoles()
2659     {
2660         Collection<Role> getNonRunAsRoles1r = null;
2661         // eJB3SessionFacade has no pre constraints
2662         Collection result = handleGetNonRunAsRoles();
2663         List shieldedResult = this.shieldedElements(result);
2664         try
2665         {
2666             getNonRunAsRoles1r = (Collection<Role>)shieldedResult;
2667         }
2668         catch (ClassCastException ex)
2669         {
2670             // Bad things happen if the metafacade type mapping in metafacades.xml is wrong - Warn
2671             EJB3SessionFacadeLogic.logger.warn("incorrect metafacade cast for EJB3SessionFacadeLogic.getNonRunAsRoles Collection<Role> " + result + ": " + shieldedResult);
2672         }
2673         // eJB3SessionFacade has no post constraints
2674         return getNonRunAsRoles1r;
2675     }
2676 
2677     /**
2678      * UML Specific type is returned in Collection, transformed by shieldedElements to AndroMDA Metafacade type
2679      * @return  Collection
2680      */
2681     protected abstract Collection handleGetNonRunAsRoles();
2682 
2683     /**
2684      * @return true
2685      * @see Service
2686      */
2687     public boolean isServiceMetaType()
2688     {
2689         return true;
2690     }
2691 
2692     /**
2693      * @return true
2694      * @see ClassifierFacade
2695      */
2696     public boolean isClassifierFacadeMetaType()
2697     {
2698         return true;
2699     }
2700 
2701     /**
2702      * @return true
2703      * @see GeneralizableElementFacade
2704      */
2705     public boolean isGeneralizableElementFacadeMetaType()
2706     {
2707         return true;
2708     }
2709 
2710     /**
2711      * @return true
2712      * @see ModelElementFacade
2713      */
2714     public boolean isModelElementFacadeMetaType()
2715     {
2716         return true;
2717     }
2718 
2719     // ----------- delegates to Service ------------
2720     /**
2721      * Return the attribute which name matches the parameter
2722      * @see ClassifierFacade#findAttribute(String name)
2723      */
2724     public AttributeFacade findAttribute(String name)
2725     {
2726         return this.getSuperService().findAttribute(name);
2727     }
2728 
2729     /**
2730      * Those abstraction dependencies for which this classifier is the client.
2731      * @see ClassifierFacade#getAbstractions()
2732      */
2733     public Collection<ClassifierFacade> getAbstractions()
2734     {
2735         return this.getSuperService().getAbstractions();
2736     }
2737 
2738     /**
2739      * Lists all classes associated to this one and any ancestor classes (through generalization).
2740      * There will be no duplicates. The order of the elements is predictable.
2741      * @see ClassifierFacade#getAllAssociatedClasses()
2742      */
2743     public Collection<ClassifierFacade> getAllAssociatedClasses()
2744     {
2745         return this.getSuperService().getAllAssociatedClasses();
2746     }
2747 
2748     /**
2749      * A collection containing all 'properties' of the classifier and its ancestors.  Properties are
2750      * any attributes and navigable connecting association ends.
2751      * @see ClassifierFacade#getAllProperties()
2752      */
2753     public Collection<ModelElementFacade> getAllProperties()
2754     {
2755         return this.getSuperService().getAllProperties();
2756     }
2757 
2758     /**
2759      * A collection containing all required and/or read-only 'properties' of the classifier and its
2760      * ancestors. Properties are any attributes and navigable connecting association ends.
2761      * @see ClassifierFacade#getAllRequiredConstructorParameters()
2762      */
2763     public Collection<ModelElementFacade> getAllRequiredConstructorParameters()
2764     {
2765         return this.getSuperService().getAllRequiredConstructorParameters();
2766     }
2767 
2768     /**
2769      * Gets the array type for this classifier.  If this classifier already represents an array, it
2770      * just returns itself.
2771      * @see ClassifierFacade#getArray()
2772      */
2773     public ClassifierFacade getArray()
2774     {
2775         return this.getSuperService().getArray();
2776     }
2777 
2778     /**
2779      * The name of the classifier as an array.
2780      * @see ClassifierFacade#getArrayName()
2781      */
2782     public String getArrayName()
2783     {
2784         return this.getSuperService().getArrayName();
2785     }
2786 
2787     /**
2788      * Lists the classes associated to this one, there is no repitition of classes. The order of the
2789      * elements is predictable.
2790      * @see ClassifierFacade#getAssociatedClasses()
2791      */
2792     public Collection<ClassifierFacade> getAssociatedClasses()
2793     {
2794         return this.getSuperService().getAssociatedClasses();
2795     }
2796 
2797     /**
2798      * Gets the association ends belonging to a classifier.
2799      * @see ClassifierFacade#getAssociationEnds()
2800      */
2801     public List<AssociationEndFacade> getAssociationEnds()
2802     {
2803         return this.getSuperService().getAssociationEnds();
2804     }
2805 
2806     /**
2807      * Gets the attributes that belong to the classifier.
2808      * @see ClassifierFacade#getAttributes()
2809      */
2810     public List<AttributeFacade> getAttributes()
2811     {
2812         return this.getSuperService().getAttributes();
2813     }
2814 
2815     /**
2816      * Gets all attributes for the classifier and if 'follow' is true goes up the inheritance
2817      * hierarchy and gets the attributes from the super classes as well.
2818      * @see ClassifierFacade#getAttributes(boolean follow)
2819      */
2820     public List<AttributeFacade> getAttributes(boolean follow)
2821     {
2822         return this.getSuperService().getAttributes(follow);
2823     }
2824 
2825     /**
2826      * The fully qualified name of the classifier as an array.
2827      * @see ClassifierFacade#getFullyQualifiedArrayName()
2828      */
2829     public String getFullyQualifiedArrayName()
2830     {
2831         return this.getSuperService().getFullyQualifiedArrayName();
2832     }
2833 
2834     /**
2835      * Returns all those operations that could be implemented at this classifier's level. This means
2836      * the operations owned by this classifier as well as any realized interface's operations
2837      * (recursively) in case this classifier itself is not already an interface, or generalized when
2838      * this classifier is an interface.
2839      * @see ClassifierFacade#getImplementationOperations()
2840      */
2841     public Collection<OperationFacade> getImplementationOperations()
2842     {
2843         return this.getSuperService().getImplementationOperations();
2844     }
2845 
2846     /**
2847      * A comma separated list of the fully qualified names of all implemented interfaces.
2848      * @see ClassifierFacade#getImplementedInterfaceList()
2849      */
2850     public String getImplementedInterfaceList()
2851     {
2852         return this.getSuperService().getImplementedInterfaceList();
2853     }
2854 
2855     /**
2856      * Those attributes that are scoped to an instance of this class.
2857      * @see ClassifierFacade#getInstanceAttributes()
2858      */
2859     public Collection<AttributeFacade> getInstanceAttributes()
2860     {
2861         return this.getSuperService().getInstanceAttributes();
2862     }
2863 
2864     /**
2865      * Those operations that are scoped to an instance of this class.
2866      * @see ClassifierFacade#getInstanceOperations()
2867      */
2868     public List<OperationFacade> getInstanceOperations()
2869     {
2870         return this.getSuperService().getInstanceOperations();
2871     }
2872 
2873     /**
2874      * Those interfaces that are abstractions of this classifier, this basically means this
2875      * classifier realizes them.
2876      * @see ClassifierFacade#getInterfaceAbstractions()
2877      */
2878     public Collection<ClassifierFacade> getInterfaceAbstractions()
2879     {
2880         return this.getSuperService().getInterfaceAbstractions();
2881     }
2882 
2883     /**
2884      * A String representing a new Constructor declaration for this classifier type to be used in a
2885      * Java environment.
2886      * @see ClassifierFacade#getJavaNewString()
2887      */
2888     public String getJavaNewString()
2889     {
2890         return this.getSuperService().getJavaNewString();
2891     }
2892 
2893     /**
2894      * A String representing the null-value for this classifier type to be used in a Java
2895      * environment.
2896      * @see ClassifierFacade#getJavaNullString()
2897      */
2898     public String getJavaNullString()
2899     {
2900         return this.getSuperService().getJavaNullString();
2901     }
2902 
2903     /**
2904      * The other ends of this classifier's association ends which are navigable.
2905      * @see ClassifierFacade#getNavigableConnectingEnds()
2906      */
2907     public Collection<AssociationEndFacade> getNavigableConnectingEnds()
2908     {
2909         return this.getSuperService().getNavigableConnectingEnds();
2910     }
2911 
2912     /**
2913      * Get the other ends of this classifier's association ends which are navigable and if 'follow'
2914      * is true goes up the inheritance hierarchy and gets the super association ends as well.
2915      * @see ClassifierFacade#getNavigableConnectingEnds(boolean follow)
2916      */
2917     public List<AssociationEndFacade> getNavigableConnectingEnds(boolean follow)
2918     {
2919         return this.getSuperService().getNavigableConnectingEnds(follow);
2920     }
2921 
2922     /**
2923      * Assuming that the classifier is an array, this will return the non array type of the
2924      * classifier from
2925      * the model.  If the classifier is NOT an array, it will just return itself.
2926      * @see ClassifierFacade#getNonArray()
2927      */
2928     public ClassifierFacade getNonArray()
2929     {
2930         return this.getSuperService().getNonArray();
2931     }
2932 
2933     /**
2934      * The attributes from this classifier in the form of an operation call (this example would be
2935      * in Java): '(String attributeOne, String attributeTwo).  If there were no attributes on the
2936      * classifier, the result would be an empty '()'.
2937      * @see ClassifierFacade#getOperationCallFromAttributes()
2938      */
2939     public String getOperationCallFromAttributes()
2940     {
2941         return this.getSuperService().getOperationCallFromAttributes();
2942     }
2943 
2944     /**
2945      * The operations owned by this classifier.
2946      * @see ClassifierFacade#getOperations()
2947      */
2948     public List<OperationFacade> getOperations()
2949     {
2950         return this.getSuperService().getOperations();
2951     }
2952 
2953     /**
2954      * A collection containing all 'properties' of the classifier.  Properties are any attributes
2955      * and navigable connecting association ends.
2956      * @see ClassifierFacade#getProperties()
2957      */
2958     public List<ModelElementFacade> getProperties()
2959     {
2960         return this.getSuperService().getProperties();
2961     }
2962 
2963     /**
2964      * Gets all properties (attributes and navigable association ends) for the classifier and if
2965      * 'follow' is true goes up the inheritance hierarchy and gets the properties from the super
2966      * classes as well.
2967      * @see ClassifierFacade#getProperties(boolean follow)
2968      */
2969     public List getProperties(boolean follow)
2970     {
2971         return this.getSuperService().getProperties(follow);
2972     }
2973 
2974     /**
2975      * A collection containing all required and/or read-only 'properties' of the classifier. 
2976      * Properties are any attributes and navigable connecting association ends.
2977      * @see ClassifierFacade#getRequiredConstructorParameters()
2978      */
2979     public Collection<ModelElementFacade> getRequiredConstructorParameters()
2980     {
2981         return this.getSuperService().getRequiredConstructorParameters();
2982     }
2983 
2984     /**
2985      * Returns the serial version UID of the underlying model element.
2986      * @see ClassifierFacade#getSerialVersionUID()
2987      */
2988     public long getSerialVersionUID()
2989     {
2990         return this.getSuperService().getSerialVersionUID();
2991     }
2992 
2993     /**
2994      * Those attributes that are scoped to the definition of this class.
2995      * @see ClassifierFacade#getStaticAttributes()
2996      */
2997     public Collection<AttributeFacade> getStaticAttributes()
2998     {
2999         return this.getSuperService().getStaticAttributes();
3000     }
3001 
3002     /**
3003      * Those operations that are scoped to the definition of this class.
3004      * @see ClassifierFacade#getStaticOperations()
3005      */
3006     public List<OperationFacade> getStaticOperations()
3007     {
3008         return this.getSuperService().getStaticOperations();
3009     }
3010 
3011     /**
3012      * This class' superclass, returns the generalization if it is a ClassifierFacade, null
3013      * otherwise.
3014      * @see ClassifierFacade#getSuperClass()
3015      */
3016     public ClassifierFacade getSuperClass()
3017     {
3018         return this.getSuperService().getSuperClass();
3019     }
3020 
3021     /**
3022      * The wrapper name for this classifier if a mapped type has a defined wrapper class (ie. 'long'
3023      * maps to 'Long').  If the classifier doesn't have a wrapper defined for it, this method will
3024      * return a null.  Note that wrapper mappings must be defined for the namespace by defining the
3025      * 'wrapperMappingsUri', this property must point to the location of the mappings file which
3026      * maps the primitives to wrapper types.
3027      * @see ClassifierFacade#getWrapperName()
3028      */
3029     public String getWrapperName()
3030     {
3031         return this.getSuperService().getWrapperName();
3032     }
3033 
3034     /**
3035      * Indicates if this classifier is 'abstract'.
3036      * @see ClassifierFacade#isAbstract()
3037      */
3038     public boolean isAbstract()
3039     {
3040         return this.getSuperService().isAbstract();
3041     }
3042 
3043     /**
3044      * True if this classifier represents an array type. False otherwise.
3045      * @see ClassifierFacade#isArrayType()
3046      */
3047     public boolean isArrayType()
3048     {
3049         return this.getSuperService().isArrayType();
3050     }
3051 
3052     /**
3053      * True if the ClassifierFacade is an AssociationClass.
3054      * @see ClassifierFacade#isAssociationClass()
3055      */
3056     public boolean isAssociationClass()
3057     {
3058         return this.getSuperService().isAssociationClass();
3059     }
3060 
3061     /**
3062      * Returns true if this type represents a Blob type.
3063      * @see ClassifierFacade#isBlobType()
3064      */
3065     public boolean isBlobType()
3066     {
3067         return this.getSuperService().isBlobType();
3068     }
3069 
3070     /**
3071      * Indicates if this type represents a boolean type or not.
3072      * @see ClassifierFacade#isBooleanType()
3073      */
3074     public boolean isBooleanType()
3075     {
3076         return this.getSuperService().isBooleanType();
3077     }
3078 
3079     /**
3080      * Indicates if this type represents a char, Character, or java.lang.Character type or not.
3081      * @see ClassifierFacade#isCharacterType()
3082      */
3083     public boolean isCharacterType()
3084     {
3085         return this.getSuperService().isCharacterType();
3086     }
3087 
3088     /**
3089      * Returns true if this type represents a Clob type.
3090      * @see ClassifierFacade#isClobType()
3091      */
3092     public boolean isClobType()
3093     {
3094         return this.getSuperService().isClobType();
3095     }
3096 
3097     /**
3098      * True if this classifier represents a collection type. False otherwise.
3099      * @see ClassifierFacade#isCollectionType()
3100      */
3101     public boolean isCollectionType()
3102     {
3103         return this.getSuperService().isCollectionType();
3104     }
3105 
3106     /**
3107      * True/false depending on whether or not this classifier represents a datatype. A data type is
3108      * a type whose instances are identified only by their value. A data type may contain attributes
3109      * to support the modeling of structured data types.
3110      * @see ClassifierFacade#isDataType()
3111      */
3112     public boolean isDataType()
3113     {
3114         return this.getSuperService().isDataType();
3115     }
3116 
3117     /**
3118      * True when this classifier is a date type.
3119      * @see ClassifierFacade#isDateType()
3120      */
3121     public boolean isDateType()
3122     {
3123         return this.getSuperService().isDateType();
3124     }
3125 
3126     /**
3127      * Indicates if this type represents a Double type or not.
3128      * @see ClassifierFacade#isDoubleType()
3129      */
3130     public boolean isDoubleType()
3131     {
3132         return this.getSuperService().isDoubleType();
3133     }
3134 
3135     /**
3136      * Indicates whether or not this classifier represents an "EmbeddedValue'.
3137      * @see ClassifierFacade#isEmbeddedValue()
3138      */
3139     public boolean isEmbeddedValue()
3140     {
3141         return this.getSuperService().isEmbeddedValue();
3142     }
3143 
3144     /**
3145      * True if this classifier is in fact marked as an enumeration.
3146      * @see ClassifierFacade#isEnumeration()
3147      */
3148     public boolean isEnumeration()
3149     {
3150         return this.getSuperService().isEnumeration();
3151     }
3152 
3153     /**
3154      * Returns true if this type represents a 'file' type.
3155      * @see ClassifierFacade#isFileType()
3156      */
3157     public boolean isFileType()
3158     {
3159         return this.getSuperService().isFileType();
3160     }
3161 
3162     /**
3163      * Indicates if this type represents a Float type or not.
3164      * @see ClassifierFacade#isFloatType()
3165      */
3166     public boolean isFloatType()
3167     {
3168         return this.getSuperService().isFloatType();
3169     }
3170 
3171     /**
3172      * Indicates if this type represents an int or Integer or java.lang.Integer type or not.
3173      * @see ClassifierFacade#isIntegerType()
3174      */
3175     public boolean isIntegerType()
3176     {
3177         return this.getSuperService().isIntegerType();
3178     }
3179 
3180     /**
3181      * True/false depending on whether or not this Classifier represents an interface.
3182      * @see ClassifierFacade#isInterface()
3183      */
3184     public boolean isInterface()
3185     {
3186         return this.getSuperService().isInterface();
3187     }
3188 
3189     /**
3190      * True if this classifier cannot be extended and represent a leaf in the inheritance tree.
3191      * @see ClassifierFacade#isLeaf()
3192      */
3193     public boolean isLeaf()
3194     {
3195         return this.getSuperService().isLeaf();
3196     }
3197 
3198     /**
3199      * True if this classifier represents a list type. False otherwise.
3200      * @see ClassifierFacade#isListType()
3201      */
3202     public boolean isListType()
3203     {
3204         return this.getSuperService().isListType();
3205     }
3206 
3207     /**
3208      * Indicates if this type represents a Long type or not.
3209      * @see ClassifierFacade#isLongType()
3210      */
3211     public boolean isLongType()
3212     {
3213         return this.getSuperService().isLongType();
3214     }
3215 
3216     /**
3217      * Indicates whether or not this classifier represents a Map type.
3218      * @see ClassifierFacade#isMapType()
3219      */
3220     public boolean isMapType()
3221     {
3222         return this.getSuperService().isMapType();
3223     }
3224 
3225     /**
3226      * Indicates whether or not this classifier represents a primitive type.
3227      * @see ClassifierFacade#isPrimitive()
3228      */
3229     public boolean isPrimitive()
3230     {
3231         return this.getSuperService().isPrimitive();
3232     }
3233 
3234     /**
3235      * True if this classifier represents a set type. False otherwise.
3236      * @see ClassifierFacade#isSetType()
3237      */
3238     public boolean isSetType()
3239     {
3240         return this.getSuperService().isSetType();
3241     }
3242 
3243     /**
3244      * Indicates whether or not this classifier represents a string type.
3245      * @see ClassifierFacade#isStringType()
3246      */
3247     public boolean isStringType()
3248     {
3249         return this.getSuperService().isStringType();
3250     }
3251 
3252     /**
3253      * Indicates whether or not this classifier represents a time type.
3254      * @see ClassifierFacade#isTimeType()
3255      */
3256     public boolean isTimeType()
3257     {
3258         return this.getSuperService().isTimeType();
3259     }
3260 
3261     /**
3262      * Returns true if this type is a wrapped primitive type.
3263      * @see ClassifierFacade#isWrappedPrimitive()
3264      */
3265     public boolean isWrappedPrimitive()
3266     {
3267         return this.getSuperService().isWrappedPrimitive();
3268     }
3269 
3270     /**
3271      * Finds the tagged value optional searching the entire inheritance hierarchy if 'follow' is set
3272      * to true.
3273      * @see GeneralizableElementFacade#findTaggedValue(String tagName, boolean follow)
3274      */
3275     public Object findTaggedValue(String tagName, boolean follow)
3276     {
3277         return this.getSuperService().findTaggedValue(tagName, follow);
3278     }
3279 
3280     /**
3281      * All generalizations for this generalizable element, goes up the inheritance tree.
3282      * @see GeneralizableElementFacade#getAllGeneralizations()
3283      */
3284     public Collection<GeneralizableElementFacade> getAllGeneralizations()
3285     {
3286         return this.getSuperService().getAllGeneralizations();
3287     }
3288 
3289     /**
3290      * All specializations (travels down the inheritance hierarchy).
3291      * @see GeneralizableElementFacade#getAllSpecializations()
3292      */
3293     public Collection<GeneralizableElementFacade> getAllSpecializations()
3294     {
3295         return this.getSuperService().getAllSpecializations();
3296     }
3297 
3298     /**
3299      * Gets the direct generalization for this generalizable element.
3300      * @see GeneralizableElementFacade#getGeneralization()
3301      */
3302     public GeneralizableElementFacade getGeneralization()
3303     {
3304         return this.getSuperService().getGeneralization();
3305     }
3306 
3307     /**
3308      * Gets the actual links that this generalization element is part of (it plays either the
3309      * specialization or generalization).
3310      * @see GeneralizableElementFacade#getGeneralizationLinks()
3311      */
3312     public Collection<GeneralizationFacade> getGeneralizationLinks()
3313     {
3314         return this.getSuperService().getGeneralizationLinks();
3315     }
3316 
3317     /**
3318      * A comma separated list of the fully qualified names of all generalizations.
3319      * @see GeneralizableElementFacade#getGeneralizationList()
3320      */
3321     public String getGeneralizationList()
3322     {
3323         return this.getSuperService().getGeneralizationList();
3324     }
3325 
3326     /**
3327      * The element found when you recursively follow the generalization path up to the root. If an
3328      * element has no generalization itself will be considered the root.
3329      * @see GeneralizableElementFacade#getGeneralizationRoot()
3330      */
3331     public GeneralizableElementFacade getGeneralizationRoot()
3332     {
3333         return this.getSuperService().getGeneralizationRoot();
3334     }
3335 
3336     /**
3337      * Return all generalizations (ancestors) from this generalizable element.
3338      * @see GeneralizableElementFacade#getGeneralizations()
3339      */
3340     public Collection<GeneralizableElementFacade> getGeneralizations()
3341     {
3342         return this.getSuperService().getGeneralizations();
3343     }
3344 
3345     /**
3346      * Gets the direct specializations (i.e. sub elements) for this generalizatble element.
3347      * @see GeneralizableElementFacade#getSpecializations()
3348      */
3349     public Collection<GeneralizableElementFacade> getSpecializations()
3350     {
3351         return this.getSuperService().getSpecializations();
3352     }
3353 
3354     /**
3355      * Copies all tagged values from the given ModelElementFacade to this model element facade.
3356      * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
3357      */
3358     public void copyTaggedValues(ModelElementFacade element)
3359     {
3360         this.getSuperService().copyTaggedValues(element);
3361     }
3362 
3363     /**
3364      * Finds the tagged value with the specified 'tagName'. In case there are more values the first
3365      * one found will be returned.
3366      * @see ModelElementFacade#findTaggedValue(String tagName)
3367      */
3368     public Object findTaggedValue(String tagName)
3369     {
3370         return this.getSuperService().findTaggedValue(tagName);
3371     }
3372 
3373     /**
3374      * Returns all the values for the tagged value with the specified name. The returned collection
3375      * will contains only String instances, or will be empty. Never null.
3376      * @see ModelElementFacade#findTaggedValues(String tagName)
3377      */
3378     public Collection<Object> findTaggedValues(String tagName)
3379     {
3380         return this.getSuperService().findTaggedValues(tagName);
3381     }
3382 
3383     /**
3384      * Returns the fully qualified name of the model element. The fully qualified name includes
3385      * complete package qualified name of the underlying model element. The templates parameter will
3386      * be replaced by the correct one given the binding relation of the parameter to this element.
3387      * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
3388      */
3389     public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
3390     {
3391         return this.getSuperService().getBindedFullyQualifiedName(bindedElement);
3392     }
3393 
3394     /**
3395      * Gets all constraints belonging to the model element.
3396      * @see ModelElementFacade#getConstraints()
3397      */
3398     public Collection<ConstraintFacade> getConstraints()
3399     {
3400         return this.getSuperService().getConstraints();
3401     }
3402 
3403     /**
3404      * Returns the constraints of the argument kind that have been placed onto this model. Typical
3405      * kinds are "inv", "pre" and "post". Other kinds are possible.
3406      * @see ModelElementFacade#getConstraints(String kind)
3407      */
3408     public Collection<ConstraintFacade> getConstraints(String kind)
3409     {
3410         return this.getSuperService().getConstraints(kind);
3411     }
3412 
3413     /**
3414      * Gets the documentation for the model element, The indent argument is prefixed to each line.
3415      * By default this method wraps lines after 64 characters.
3416      * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
3417      * @see ModelElementFacade#getDocumentation(String indent)
3418      */
3419     public String getDocumentation(String indent)
3420     {
3421         return this.getSuperService().getDocumentation(indent);
3422     }
3423 
3424     /**
3425      * This method returns the documentation for this model element, with the lines wrapped after
3426      * the specified number of characters, values of less than 1 will indicate no line wrapping is
3427      * required. By default paragraphs are returned as HTML.
3428      * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
3429      * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
3430      */
3431     public String getDocumentation(String indent, int lineLength)
3432     {
3433         return this.getSuperService().getDocumentation(indent, lineLength);
3434     }
3435 
3436     /**
3437      * This method returns the documentation for this model element, with the lines wrapped after
3438      * the specified number of characters, values of less than 1 will indicate no line wrapping is
3439      * required. HTML style determines if HTML Escaping is applied.
3440      * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
3441      */
3442     public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
3443     {
3444         return this.getSuperService().getDocumentation(indent, lineLength, htmlStyle);
3445     }
3446 
3447     /**
3448      * The fully qualified name of this model element.
3449      * @see ModelElementFacade#getFullyQualifiedName()
3450      */
3451     public String getFullyQualifiedName()
3452     {
3453         return this.getSuperService().getFullyQualifiedName();
3454     }
3455 
3456     /**
3457      * Returns the fully qualified name of the model element. The fully qualified name includes
3458      * complete package qualified name of the underlying model element.  If modelName is true, then
3459      * the original name of the model element (the name contained within the model) will be the name
3460      * returned, otherwise a name from a language mapping will be returned.
3461      * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
3462      */
3463     public String getFullyQualifiedName(boolean modelName)
3464     {
3465         return this.getSuperService().getFullyQualifiedName(modelName);
3466     }
3467 
3468     /**
3469      * Returns the fully qualified name as a path, the returned value always starts with out a slash
3470      * '/'.
3471      * @see ModelElementFacade#getFullyQualifiedNamePath()
3472      */
3473     public String getFullyQualifiedNamePath()
3474     {
3475         return this.getSuperService().getFullyQualifiedNamePath();
3476     }
3477 
3478     /**
3479      * Gets the unique identifier of the underlying model element.
3480      * @see ModelElementFacade#getId()
3481      */
3482     public String getId()
3483     {
3484         return this.getSuperService().getId();
3485     }
3486 
3487     /**
3488      * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
3489      * are not represented by other properties, i.e. native, transient, volatile, synchronized,
3490      * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
3491      * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
3492      * JDK5 compiler level.
3493      * @see ModelElementFacade#getKeywords()
3494      */
3495     public Collection<String> getKeywords()
3496     {
3497         return this.getSuperService().getKeywords();
3498     }
3499 
3500     /**
3501      * UML2: Retrieves a localized label for this named element.
3502      * @see ModelElementFacade#getLabel()
3503      */
3504     public String getLabel()
3505     {
3506         return this.getSuperService().getLabel();
3507     }
3508 
3509     /**
3510      * The language mappings that have been set for this model element.
3511      * @see ModelElementFacade#getLanguageMappings()
3512      */
3513     public TypeMappings getLanguageMappings()
3514     {
3515         return this.getSuperService().getLanguageMappings();
3516     }
3517 
3518     /**
3519      * Return the model containing this model element (multiple models may be loaded and processed
3520      * at the same time).
3521      * @see ModelElementFacade#getModel()
3522      */
3523     public ModelFacade getModel()
3524     {
3525         return this.getSuperService().getModel();
3526     }
3527 
3528     /**
3529      * The name of the model element.
3530      * @see ModelElementFacade#getName()
3531      */
3532     public String getName()
3533     {
3534         return this.getSuperService().getName();
3535     }
3536 
3537     /**
3538      * Gets the package to which this model element belongs.
3539      * @see ModelElementFacade#getPackage()
3540      */
3541     public ModelElementFacade getPackage()
3542     {
3543         return this.getSuperService().getPackage();
3544     }
3545 
3546     /**
3547      * The name of this model element's package.
3548      * @see ModelElementFacade#getPackageName()
3549      */
3550     public String getPackageName()
3551     {
3552         return this.getSuperService().getPackageName();
3553     }
3554 
3555     /**
3556      * Gets the package name (optionally providing the ability to retrieve the model name and not
3557      * the mapped name).
3558      * @see ModelElementFacade#getPackageName(boolean modelName)
3559      */
3560     public String getPackageName(boolean modelName)
3561     {
3562         return this.getSuperService().getPackageName(modelName);
3563     }
3564 
3565     /**
3566      * Returns the package as a path, the returned value always starts with out a slash '/'.
3567      * @see ModelElementFacade#getPackagePath()
3568      */
3569     public String getPackagePath()
3570     {
3571         return this.getSuperService().getPackagePath();
3572     }
3573 
3574     /**
3575      * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
3576      * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
3577      * the names of the containing namespaces starting at the root of the hierarchy and ending with
3578      * the name of the NamedElement itself.
3579      * @see ModelElementFacade#getQualifiedName()
3580      */
3581     public String getQualifiedName()
3582     {
3583         return this.getSuperService().getQualifiedName();
3584     }
3585 
3586     /**
3587      * Gets the root package for the model element.
3588      * @see ModelElementFacade#getRootPackage()
3589      */
3590     public PackageFacade getRootPackage()
3591     {
3592         return this.getSuperService().getRootPackage();
3593     }
3594 
3595     /**
3596      * Gets the dependencies for which this model element is the source.
3597      * @see ModelElementFacade#getSourceDependencies()
3598      */
3599     public Collection<DependencyFacade> getSourceDependencies()
3600     {
3601         return this.getSuperService().getSourceDependencies();
3602     }
3603 
3604     /**
3605      * If this model element is the context of an activity graph, this represents that activity
3606      * graph.
3607      * @see ModelElementFacade#getStateMachineContext()
3608      */
3609     public StateMachineFacade getStateMachineContext()
3610     {
3611         return this.getSuperService().getStateMachineContext();
3612     }
3613 
3614     /**
3615      * The collection of ALL stereotype names for this model element.
3616      * @see ModelElementFacade#getStereotypeNames()
3617      */
3618     public Collection<String> getStereotypeNames()
3619     {
3620         return this.getSuperService().getStereotypeNames();
3621     }
3622 
3623     /**
3624      * Gets all stereotypes for this model element.
3625      * @see ModelElementFacade#getStereotypes()
3626      */
3627     public Collection<StereotypeFacade> getStereotypes()
3628     {
3629         return this.getSuperService().getStereotypes();
3630     }
3631 
3632     /**
3633      * Return the TaggedValues associated with this model element, under all stereotypes.
3634      * @see ModelElementFacade#getTaggedValues()
3635      */
3636     public Collection<TaggedValueFacade> getTaggedValues()
3637     {
3638         return this.getSuperService().getTaggedValues();
3639     }
3640 
3641     /**
3642      * Gets the dependencies for which this model element is the target.
3643      * @see ModelElementFacade#getTargetDependencies()
3644      */
3645     public Collection<DependencyFacade> getTargetDependencies()
3646     {
3647         return this.getSuperService().getTargetDependencies();
3648     }
3649 
3650     /**
3651      * Get the template parameter for this model element having the parameterName
3652      * @see ModelElementFacade#getTemplateParameter(String parameterName)
3653      */
3654     public Object getTemplateParameter(String parameterName)
3655     {
3656         return this.getSuperService().getTemplateParameter(parameterName);
3657     }
3658 
3659     /**
3660      * Get the template parameters for this model element
3661      * @see ModelElementFacade#getTemplateParameters()
3662      */
3663     public Collection<TemplateParameterFacade> getTemplateParameters()
3664     {
3665         return this.getSuperService().getTemplateParameters();
3666     }
3667 
3668     /**
3669      * The visibility (i.e. public, private, protected or package) of the model element, will
3670      * attempt a lookup for these values in the language mappings (if any).
3671      * @see ModelElementFacade#getVisibility()
3672      */
3673     public String getVisibility()
3674     {
3675         return this.getSuperService().getVisibility();
3676     }
3677 
3678     /**
3679      * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
3680      * is taken into account when searching for the stereotype), false otherwise.
3681      * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
3682      */
3683     public boolean hasExactStereotype(String stereotypeName)
3684     {
3685         return this.getSuperService().hasExactStereotype(stereotypeName);
3686     }
3687 
3688     /**
3689      * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
3690      * pipe, semicolon, or << >>
3691      * @see ModelElementFacade#hasKeyword(String keywordName)
3692      */
3693     public boolean hasKeyword(String keywordName)
3694     {
3695         return this.getSuperService().hasKeyword(keywordName);
3696     }
3697 
3698     /**
3699      * Returns true if the model element has the specified stereotype.  If the stereotype itself
3700      * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
3701      * one of the stereotype's ancestors has a matching name this method will return true, false
3702      * otherwise.
3703      * For example, if we have a certain stereotype called <<exception>> and a model element has a
3704      * stereotype called <<applicationException>> which extends <<exception>>, when calling this
3705      * method with 'stereotypeName' defined as 'exception' the method would return true since
3706      * <<applicationException>> inherits from <<exception>>.  If you want to check if the model
3707      * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
3708      * @see ModelElementFacade#hasStereotype(String stereotypeName)
3709      */
3710     public boolean hasStereotype(String stereotypeName)
3711     {
3712         return this.getSuperService().hasStereotype(stereotypeName);
3713     }
3714 
3715     /**
3716      * True if there are target dependencies from this element that are instances of BindingFacade.
3717      * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
3718      * @see ModelElementFacade#isBindingDependenciesPresent()
3719      */
3720     public boolean isBindingDependenciesPresent()
3721     {
3722         return this.getSuperService().isBindingDependenciesPresent();
3723     }
3724 
3725     /**
3726      * Indicates if any constraints are present on this model element.
3727      * @see ModelElementFacade#isConstraintsPresent()
3728      */
3729     public boolean isConstraintsPresent()
3730     {
3731         return this.getSuperService().isConstraintsPresent();
3732     }
3733 
3734     /**
3735      * Indicates if any documentation is present on this model element.
3736      * @see ModelElementFacade#isDocumentationPresent()
3737      */
3738     public boolean isDocumentationPresent()
3739     {
3740         return this.getSuperService().isDocumentationPresent();
3741     }
3742 
3743     /**
3744      * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
3745      * @see ModelElementFacade#isReservedWord()
3746      */
3747     public boolean isReservedWord()
3748     {
3749         return this.getSuperService().isReservedWord();
3750     }
3751 
3752     /**
3753      * True is there are template parameters on this model element. For UML2, applies to Class,
3754      * Operation, Property, and Parameter.
3755      * @see ModelElementFacade#isTemplateParametersPresent()
3756      */
3757     public boolean isTemplateParametersPresent()
3758     {
3759         return this.getSuperService().isTemplateParametersPresent();
3760     }
3761 
3762     /**
3763      * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
3764      * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
3765      * Enumerations and Interfaces, optionally applies on other model elements.
3766      * @see ModelElementFacade#isValidIdentifierName()
3767      */
3768     public boolean isValidIdentifierName()
3769     {
3770         return this.getSuperService().isValidIdentifierName();
3771     }
3772 
3773     /**
3774      * Searches for the constraint with the specified 'name' on this model element, and if found
3775      * translates it using the specified 'translation' from a translation library discovered by the
3776      * framework.
3777      * @see ModelElementFacade#translateConstraint(String name, String translation)
3778      */
3779     public String translateConstraint(String name, String translation)
3780     {
3781         return this.getSuperService().translateConstraint(name, translation);
3782     }
3783 
3784     /**
3785      * Translates all constraints belonging to this model element with the given 'translation'.
3786      * @see ModelElementFacade#translateConstraints(String translation)
3787      */
3788     public String[] translateConstraints(String translation)
3789     {
3790         return this.getSuperService().translateConstraints(translation);
3791     }
3792 
3793     /**
3794      * Translates the constraints of the specified 'kind' belonging to this model element.
3795      * @see ModelElementFacade#translateConstraints(String kind, String translation)
3796      */
3797     public String[] translateConstraints(String kind, String translation)
3798     {
3799         return this.getSuperService().translateConstraints(kind, translation);
3800     }
3801 
3802     /**
3803      * Returns a collection of all entities this service and its ancestors have a relation to.
3804      * @see Service#getAllEntityReferences()
3805      */
3806     public Collection<DependencyFacade> getAllEntityReferences()
3807     {
3808         return this.getSuperService().getAllEntityReferences();
3809     }
3810 
3811     /**
3812      * All messaging destinations that belong to this service and all decendent services.
3813      * @see Service#getAllMessagingDestinations()
3814      */
3815     public Collection<Destination> getAllMessagingDestinations()
3816     {
3817         return this.getSuperService().getAllMessagingDestinations();
3818     }
3819 
3820     /**
3821      * All roles associated with the service, this includes both roles that have access to the
3822      * entire service, and any roles that have access to a single operation.
3823      * @see Service#getAllRoles()
3824      */
3825     public Collection<Role> getAllRoles()
3826     {
3827         return this.getSuperService().getAllRoles();
3828     }
3829 
3830     /**
3831      * Returns a collection of all services this service and its ancestors have a relation to.
3832      * @see Service#getAllServiceReferences()
3833      */
3834     public Collection<DependencyFacade> getAllServiceReferences()
3835     {
3836         return this.getSuperService().getAllServiceReferences();
3837     }
3838 
3839     /**
3840      * References to all entities to which this service has a dependency.
3841      * @see Service#getEntityReferences()
3842      */
3843     public Collection<DependencyFacade> getEntityReferences()
3844     {
3845         return this.getSuperService().getEntityReferences();
3846     }
3847 
3848     /**
3849      * All messaging destinations available to this service.
3850      * @see Service#getMessagingDestinations()
3851      */
3852     public Collection<Destination> getMessagingDestinations()
3853     {
3854         return this.getSuperService().getMessagingDestinations();
3855     }
3856 
3857     /**
3858      * The roles of the service, these are the actor's that can access this service.
3859      * @see Service#getRoles()
3860      */
3861     public Collection<Role> getRoles()
3862     {
3863         return this.getSuperService().getRoles();
3864     }
3865 
3866     /**
3867      * References to all services to which this service has a dependency.
3868      * @see Service#getServiceReferences()
3869      */
3870     public Collection<DependencyFacade> getServiceReferences()
3871     {
3872         return this.getSuperService().getServiceReferences();
3873     }
3874 
3875     /**
3876      * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
3877      */
3878     @Override
3879     public void initialize()
3880     {
3881         this.getSuperService().initialize();
3882     }
3883 
3884     /**
3885      * @return Object getSuperService().getValidationOwner()
3886      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
3887      */
3888     @Override
3889     public Object getValidationOwner()
3890     {
3891         Object owner = this.getSuperService().getValidationOwner();
3892         return owner;
3893     }
3894 
3895     /**
3896      * @return String getSuperService().getValidationName()
3897      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
3898      */
3899     @Override
3900     public String getValidationName()
3901     {
3902         String name = this.getSuperService().getValidationName();
3903         return name;
3904     }
3905 
3906     /**
3907      * @param validationMessages Collection<ModelValidationMessage>
3908      * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
3909      */
3910     @Override
3911     public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
3912     {
3913         this.getSuperService().validateInvariants(validationMessages);
3914     }
3915 
3916     /**
3917      * The property that stores the name of the metafacade.
3918      */
3919     private static final String NAME_PROPERTY = "name";
3920     private static final String FQNAME_PROPERTY = "fullyQualifiedName";
3921 
3922     /**
3923      * @see Object#toString()
3924      */
3925     @Override
3926     public String toString()
3927     {
3928         final StringBuilder toString = new StringBuilder(this.getClass().getName());
3929         toString.append("[");
3930         try
3931         {
3932             toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
3933         }
3934         catch (final Throwable tryAgain)
3935         {
3936             try
3937             {
3938                 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
3939             }
3940             catch (final Throwable ignore)
3941             {
3942                 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
3943             }
3944         }
3945         toString.append("]");
3946         return toString.toString();
3947     }
3948 }