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.ClassifierFacade;
14  import org.andromda.metafacades.uml.ConstraintFacade;
15  import org.andromda.metafacades.uml.DependencyFacade;
16  import org.andromda.metafacades.uml.Destination;
17  import org.andromda.metafacades.uml.ModelElementFacade;
18  import org.andromda.metafacades.uml.ModelFacade;
19  import org.andromda.metafacades.uml.OperationFacade;
20  import org.andromda.metafacades.uml.PackageFacade;
21  import org.andromda.metafacades.uml.ParameterFacade;
22  import org.andromda.metafacades.uml.Role;
23  import org.andromda.metafacades.uml.Service;
24  import org.andromda.metafacades.uml.ServiceOperation;
25  import org.andromda.metafacades.uml.StateMachineFacade;
26  import org.andromda.metafacades.uml.StereotypeFacade;
27  import org.andromda.metafacades.uml.TaggedValueFacade;
28  import org.andromda.metafacades.uml.TemplateParameterFacade;
29  import org.andromda.metafacades.uml.TypeMappings;
30  import org.apache.log4j.Logger;
31  
32  /**
33   * TODO: Model Documentation for org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade
34   * MetafacadeLogic for EJB3SessionOperationFacade
35   *
36   * @see EJB3SessionOperationFacade
37   */
38  public abstract class EJB3SessionOperationFacadeLogic
39      extends MetafacadeBase
40      implements EJB3SessionOperationFacade
41  {
42      /**
43       * The underlying UML object
44       * @see Object
45       */
46      protected Object metaObject;
47  
48      /** Create Metafacade implementation instance using the MetafacadeFactory from the context
49       * @param metaObjectIn
50       * @param context
51       */
52      protected EJB3SessionOperationFacadeLogic(Object metaObjectIn, String context)
53      {
54          super(metaObjectIn, getContext(context));
55          this.superServiceOperation =
56             (ServiceOperation)
57              MetafacadeFactory.getInstance().createFacadeImpl(
58                      "org.andromda.metafacades.uml.ServiceOperation",
59                      metaObjectIn,
60                      getContext(context));
61          this.metaObject = metaObjectIn;
62      }
63  
64      /**
65       * The logger instance.
66       */
67      private static final Logger logger = Logger.getLogger(EJB3SessionOperationFacadeLogic.class);
68  
69      /**
70       * Gets the context for this metafacade logic instance.
71       * @param context String. Set to EJB3SessionOperationFacade if null
72       * @return context String
73       */
74      private static String getContext(String context)
75      {
76          if (context == null)
77          {
78              context = "org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade";
79          }
80          return context;
81      }
82  
83      private ServiceOperation superServiceOperation;
84      private boolean superServiceOperationInitialized = false;
85  
86      /**
87       * Gets the ServiceOperation parent instance.
88       * @return this.superServiceOperation ServiceOperation
89       */
90      private ServiceOperation getSuperServiceOperation()
91      {
92          if (!this.superServiceOperationInitialized)
93          {
94              ((MetafacadeBase)this.superServiceOperation).setMetafacadeContext(this.getMetafacadeContext());
95              this.superServiceOperationInitialized = true;
96          }
97          return this.superServiceOperation;
98      }
99  
100     /** Reset context only for non-root metafacades
101      * @param context
102      * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
103      */
104     @Override
105     public void resetMetafacadeContext(String context)
106     {
107         if (!this.contextRoot) // reset context only for non-root metafacades
108         {
109             context = getContext(context);  // to have same value as in original constructor call
110             setMetafacadeContext (context);
111             if (this.superServiceOperationInitialized)
112             {
113                 ((MetafacadeBase)this.superServiceOperation).resetMetafacadeContext(context);
114             }
115         }
116     }
117 
118     /**
119      * @return boolean true always
120      * @see EJB3SessionOperationFacade
121      */
122     public boolean isEJB3SessionOperationFacadeMetaType()
123     {
124         return true;
125     }
126 
127     // --------------- attributes ---------------------
128 
129    /**
130     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getViewType()
131     * @return String
132     */
133     protected abstract String handleGetViewType();
134 
135     private String __viewType1a;
136     private boolean __viewType1aSet = false;
137 
138     /**
139      * Returns a string representing whether this operation is local, remotely or both local and
140      * remotely accessible.  This overrides the default from the session bean view type.
141      * @return (String)handleGetViewType()
142      */
143     public final String getViewType()
144     {
145         String viewType1a = this.__viewType1a;
146         if (!this.__viewType1aSet)
147         {
148             // viewType has no pre constraints
149             viewType1a = handleGetViewType();
150             // viewType has no post constraints
151             this.__viewType1a = viewType1a;
152             if (isMetafacadePropertyCachingEnabled())
153             {
154                 this.__viewType1aSet = true;
155             }
156         }
157         return viewType1a;
158     }
159 
160    /**
161     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isViewTypeRemote()
162     * @return boolean
163     */
164     protected abstract boolean handleIsViewTypeRemote();
165 
166     private boolean __viewTypeRemote2a;
167     private boolean __viewTypeRemote2aSet = false;
168 
169     /**
170      * Returns true if the view type accessability for the operation is remote.
171      * @return (boolean)handleIsViewTypeRemote()
172      */
173     public final boolean isViewTypeRemote()
174     {
175         boolean viewTypeRemote2a = this.__viewTypeRemote2a;
176         if (!this.__viewTypeRemote2aSet)
177         {
178             // viewTypeRemote has no pre constraints
179             viewTypeRemote2a = handleIsViewTypeRemote();
180             // viewTypeRemote has no post constraints
181             this.__viewTypeRemote2a = viewTypeRemote2a;
182             if (isMetafacadePropertyCachingEnabled())
183             {
184                 this.__viewTypeRemote2aSet = true;
185             }
186         }
187         return viewTypeRemote2a;
188     }
189 
190    /**
191     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isViewTypeLocal()
192     * @return boolean
193     */
194     protected abstract boolean handleIsViewTypeLocal();
195 
196     private boolean __viewTypeLocal3a;
197     private boolean __viewTypeLocal3aSet = false;
198 
199     /**
200      * Return true if the view type accessability for this operation is local.
201      * @return (boolean)handleIsViewTypeLocal()
202      */
203     public final boolean isViewTypeLocal()
204     {
205         boolean viewTypeLocal3a = this.__viewTypeLocal3a;
206         if (!this.__viewTypeLocal3aSet)
207         {
208             // viewTypeLocal has no pre constraints
209             viewTypeLocal3a = handleIsViewTypeLocal();
210             // viewTypeLocal has no post constraints
211             this.__viewTypeLocal3a = viewTypeLocal3a;
212             if (isMetafacadePropertyCachingEnabled())
213             {
214                 this.__viewTypeLocal3aSet = true;
215             }
216         }
217         return viewTypeLocal3a;
218     }
219 
220    /**
221     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isViewTypeBoth()
222     * @return boolean
223     */
224     protected abstract boolean handleIsViewTypeBoth();
225 
226     private boolean __viewTypeBoth4a;
227     private boolean __viewTypeBoth4aSet = false;
228 
229     /**
230      * Returns true if the view type accessability for this operation is both local and remote.
231      * @return (boolean)handleIsViewTypeBoth()
232      */
233     public final boolean isViewTypeBoth()
234     {
235         boolean viewTypeBoth4a = this.__viewTypeBoth4a;
236         if (!this.__viewTypeBoth4aSet)
237         {
238             // viewTypeBoth has no pre constraints
239             viewTypeBoth4a = handleIsViewTypeBoth();
240             // viewTypeBoth has no post constraints
241             this.__viewTypeBoth4a = viewTypeBoth4a;
242             if (isMetafacadePropertyCachingEnabled())
243             {
244                 this.__viewTypeBoth4aSet = true;
245             }
246         }
247         return viewTypeBoth4a;
248     }
249 
250    /**
251     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getTransactionType()
252     * @return String
253     */
254     protected abstract String handleGetTransactionType();
255 
256     private String __transactionType5a;
257     private boolean __transactionType5aSet = false;
258 
259     /**
260      * Gets the transaction type for this attribute (i.e. REQUIRED, etc)
261      * @return (String)handleGetTransactionType()
262      */
263     public final String getTransactionType()
264     {
265         String transactionType5a = this.__transactionType5a;
266         if (!this.__transactionType5aSet)
267         {
268             // transactionType has no pre constraints
269             transactionType5a = handleGetTransactionType();
270             // transactionType has no post constraints
271             this.__transactionType5a = transactionType5a;
272             if (isMetafacadePropertyCachingEnabled())
273             {
274                 this.__transactionType5aSet = true;
275             }
276         }
277         return transactionType5a;
278     }
279 
280    /**
281     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isBusinessOperation()
282     * @return boolean
283     */
284     protected abstract boolean handleIsBusinessOperation();
285 
286     private boolean __businessOperation6a;
287     private boolean __businessOperation6aSet = false;
288 
289     /**
290      * True/false on whether or not this operation is an EJB session business operation.
291      * @return (boolean)handleIsBusinessOperation()
292      */
293     public final boolean isBusinessOperation()
294     {
295         boolean businessOperation6a = this.__businessOperation6a;
296         if (!this.__businessOperation6aSet)
297         {
298             // businessOperation has no pre constraints
299             businessOperation6a = handleIsBusinessOperation();
300             // businessOperation has no post constraints
301             this.__businessOperation6a = businessOperation6a;
302             if (isMetafacadePropertyCachingEnabled())
303             {
304                 this.__businessOperation6aSet = true;
305             }
306         }
307         return businessOperation6a;
308     }
309 
310    /**
311     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getRolesAllowed()
312     * @return String
313     */
314     protected abstract String handleGetRolesAllowed();
315 
316     private String __rolesAllowed7a;
317     private boolean __rolesAllowed7aSet = false;
318 
319     /**
320      * Returns the comma separated list of roles allowd to execute this operation.  This is defined
321      * by actor dependencies.
322      * @return (String)handleGetRolesAllowed()
323      */
324     public final String getRolesAllowed()
325     {
326         String rolesAllowed7a = this.__rolesAllowed7a;
327         if (!this.__rolesAllowed7aSet)
328         {
329             // rolesAllowed has no pre constraints
330             rolesAllowed7a = handleGetRolesAllowed();
331             // rolesAllowed has no post constraints
332             this.__rolesAllowed7a = rolesAllowed7a;
333             if (isMetafacadePropertyCachingEnabled())
334             {
335                 this.__rolesAllowed7aSet = true;
336             }
337         }
338         return rolesAllowed7a;
339     }
340 
341    /**
342     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isPermitAll()
343     * @return boolean
344     */
345     protected abstract boolean handleIsPermitAll();
346 
347     private boolean __permitAll8a;
348     private boolean __permitAll8aSet = false;
349 
350     /**
351      * Returns true if all roles are permitted to execute this operation.  This is specified in the
352      * andromda.ejb.security.permitAll tagged value.  It will override the
353      * andromda.ejb.security.rolesAllowed tagged value.
354      * @return (boolean)handleIsPermitAll()
355      */
356     public final boolean isPermitAll()
357     {
358         boolean permitAll8a = this.__permitAll8a;
359         if (!this.__permitAll8aSet)
360         {
361             // permitAll has no pre constraints
362             permitAll8a = handleIsPermitAll();
363             // permitAll has no post constraints
364             this.__permitAll8a = permitAll8a;
365             if (isMetafacadePropertyCachingEnabled())
366             {
367                 this.__permitAll8aSet = true;
368             }
369         }
370         return permitAll8a;
371     }
372 
373    /**
374     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isDenyAll()
375     * @return boolean
376     */
377     protected abstract boolean handleIsDenyAll();
378 
379     private boolean __denyAll9a;
380     private boolean __denyAll9aSet = false;
381 
382     /**
383      * Returns true if NO roles are permitted to execute this operation in this bean.  This is
384      * specified in the andromda.ejb.security.denyAll tagged value.
385      * @return (boolean)handleIsDenyAll()
386      */
387     public final boolean isDenyAll()
388     {
389         boolean denyAll9a = this.__denyAll9a;
390         if (!this.__denyAll9aSet)
391         {
392             // denyAll has no pre constraints
393             denyAll9a = handleIsDenyAll();
394             // denyAll has no post constraints
395             this.__denyAll9a = denyAll9a;
396             if (isMetafacadePropertyCachingEnabled())
397             {
398                 this.__denyAll9aSet = true;
399             }
400         }
401         return denyAll9a;
402     }
403 
404    /**
405     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getFlushMode()
406     * @return String
407     */
408     protected abstract String handleGetFlushMode();
409 
410     private String __flushMode10a;
411     private boolean __flushMode10aSet = false;
412 
413     /**
414      * Return the flush mode to determine when the changes to the database are performed in the
415      * application transaction.  This is typically set on a Stateful session bean where a
416      * transaction span several methods and the database update is only required upon completion of
417      * the final method.
418      * @return (String)handleGetFlushMode()
419      */
420     public final String getFlushMode()
421     {
422         String flushMode10a = this.__flushMode10a;
423         if (!this.__flushMode10aSet)
424         {
425             // flushMode has no pre constraints
426             flushMode10a = handleGetFlushMode();
427             // flushMode has no post constraints
428             this.__flushMode10a = flushMode10a;
429             if (isMetafacadePropertyCachingEnabled())
430             {
431                 this.__flushMode10aSet = true;
432             }
433         }
434         return flushMode10a;
435     }
436 
437    /**
438     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getThrowsClause()
439     * @return String
440     */
441     protected abstract String handleGetThrowsClause();
442 
443     private String __throwsClause11a;
444     private boolean __throwsClause11aSet = false;
445 
446     /**
447      * Gets the throws clause for this service or null if the operation doesn't have any exceptions.
448      * @return (String)handleGetThrowsClause()
449      */
450     public final String getThrowsClause()
451     {
452         String throwsClause11a = this.__throwsClause11a;
453         if (!this.__throwsClause11aSet)
454         {
455             // throwsClause has no pre constraints
456             throwsClause11a = handleGetThrowsClause();
457             // throwsClause has no post constraints
458             this.__throwsClause11a = throwsClause11a;
459             if (isMetafacadePropertyCachingEnabled())
460             {
461                 this.__throwsClause11aSet = true;
462             }
463         }
464         return throwsClause11a;
465     }
466 
467    /**
468     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isTimeoutCallback()
469     * @return boolean
470     */
471     protected abstract boolean handleIsTimeoutCallback();
472 
473     private boolean __timeoutCallback12a;
474     private boolean __timeoutCallback12aSet = false;
475 
476     /**
477      * Returns true if the Timeout stereotype is modelled on the session bean operation.  This will
478      * associate the operation as a timeout callback with the Timer Service.  It does not setup the
479      * timer.
480      * @return (boolean)handleIsTimeoutCallback()
481      */
482     public final boolean isTimeoutCallback()
483     {
484         boolean timeoutCallback12a = this.__timeoutCallback12a;
485         if (!this.__timeoutCallback12aSet)
486         {
487             // timeoutCallback has no pre constraints
488             timeoutCallback12a = handleIsTimeoutCallback();
489             // timeoutCallback has no post constraints
490             this.__timeoutCallback12a = timeoutCallback12a;
491             if (isMetafacadePropertyCachingEnabled())
492             {
493                 this.__timeoutCallback12aSet = true;
494             }
495         }
496         return timeoutCallback12a;
497     }
498 
499    /**
500     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getImplementationName()
501     * @return String
502     */
503     protected abstract String handleGetImplementationName();
504 
505     private String __implementationName13a;
506     private boolean __implementationName13aSet = false;
507 
508     /**
509      * The name of the operation used within the service implementation that contains the core
510      * logic.
511      * @return (String)handleGetImplementationName()
512      */
513     public final String getImplementationName()
514     {
515         String implementationName13a = this.__implementationName13a;
516         if (!this.__implementationName13aSet)
517         {
518             // implementationName has no pre constraints
519             implementationName13a = handleGetImplementationName();
520             // implementationName has no post constraints
521             this.__implementationName13a = implementationName13a;
522             if (isMetafacadePropertyCachingEnabled())
523             {
524                 this.__implementationName13aSet = true;
525             }
526         }
527         return implementationName13a;
528     }
529 
530    /**
531     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getImplementationCall()
532     * @return String
533     */
534     protected abstract String handleGetImplementationCall();
535 
536     private String __implementationCall14a;
537     private boolean __implementationCall14aSet = false;
538 
539     /**
540      * The method call for the implementation operation.
541      * @return (String)handleGetImplementationCall()
542      */
543     public final String getImplementationCall()
544     {
545         String implementationCall14a = this.__implementationCall14a;
546         if (!this.__implementationCall14aSet)
547         {
548             // implementationCall has no pre constraints
549             implementationCall14a = handleGetImplementationCall();
550             // implementationCall has no post constraints
551             this.__implementationCall14a = implementationCall14a;
552             if (isMetafacadePropertyCachingEnabled())
553             {
554                 this.__implementationCall14aSet = true;
555             }
556         }
557         return implementationCall14a;
558     }
559 
560    /**
561     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getImplementationSignature()
562     * @return String
563     */
564     protected abstract String handleGetImplementationSignature();
565 
566     private String __implementationSignature15a;
567     private boolean __implementationSignature15aSet = false;
568 
569     /**
570      * The signature of the implementation operation.
571      * @return (String)handleGetImplementationSignature()
572      */
573     public final String getImplementationSignature()
574     {
575         String implementationSignature15a = this.__implementationSignature15a;
576         if (!this.__implementationSignature15aSet)
577         {
578             // implementationSignature has no pre constraints
579             implementationSignature15a = handleGetImplementationSignature();
580             // implementationSignature has no post constraints
581             this.__implementationSignature15a = implementationSignature15a;
582             if (isMetafacadePropertyCachingEnabled())
583             {
584                 this.__implementationSignature15aSet = true;
585             }
586         }
587         return implementationSignature15a;
588     }
589 
590    /**
591     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getInterceptorReferences()
592     * @return Collection
593     */
594     protected abstract Collection handleGetInterceptorReferences();
595 
596     private Collection __interceptorReferences16a;
597     private boolean __interceptorReferences16aSet = false;
598 
599     /**
600      * Returns the Collection of target elements from the service bean method where  the target
601      * class has a stereotype of Interceptor.
602      * @return (Collection)handleGetInterceptorReferences()
603      */
604     public final Collection getInterceptorReferences()
605     {
606         Collection interceptorReferences16a = this.__interceptorReferences16a;
607         if (!this.__interceptorReferences16aSet)
608         {
609             // interceptorReferences has no pre constraints
610             interceptorReferences16a = handleGetInterceptorReferences();
611             // interceptorReferences has no post constraints
612             this.__interceptorReferences16a = interceptorReferences16a;
613             if (isMetafacadePropertyCachingEnabled())
614             {
615                 this.__interceptorReferences16aSet = true;
616             }
617         }
618         return interceptorReferences16a;
619     }
620 
621    /**
622     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isExcludeDefaultInterceptors()
623     * @return boolean
624     */
625     protected abstract boolean handleIsExcludeDefaultInterceptors();
626 
627     private boolean __excludeDefaultInterceptors17a;
628     private boolean __excludeDefaultInterceptors17aSet = false;
629 
630     /**
631      * Determines whether to exclude the invocation of the default interceptors for the applied
632      * business method.
633      * @return (boolean)handleIsExcludeDefaultInterceptors()
634      */
635     public final boolean isExcludeDefaultInterceptors()
636     {
637         boolean excludeDefaultInterceptors17a = this.__excludeDefaultInterceptors17a;
638         if (!this.__excludeDefaultInterceptors17aSet)
639         {
640             // excludeDefaultInterceptors has no pre constraints
641             excludeDefaultInterceptors17a = handleIsExcludeDefaultInterceptors();
642             // excludeDefaultInterceptors has no post constraints
643             this.__excludeDefaultInterceptors17a = excludeDefaultInterceptors17a;
644             if (isMetafacadePropertyCachingEnabled())
645             {
646                 this.__excludeDefaultInterceptors17aSet = true;
647             }
648         }
649         return excludeDefaultInterceptors17a;
650     }
651 
652    /**
653     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isExcludeClassInterceptors()
654     * @return boolean
655     */
656     protected abstract boolean handleIsExcludeClassInterceptors();
657 
658     private boolean __excludeClassInterceptors18a;
659     private boolean __excludeClassInterceptors18aSet = false;
660 
661     /**
662      * Specifies whether to exclude the invocation of the class interceptors for the applied
663      * business method.
664      * @return (boolean)handleIsExcludeClassInterceptors()
665      */
666     public final boolean isExcludeClassInterceptors()
667     {
668         boolean excludeClassInterceptors18a = this.__excludeClassInterceptors18a;
669         if (!this.__excludeClassInterceptors18aSet)
670         {
671             // excludeClassInterceptors has no pre constraints
672             excludeClassInterceptors18a = handleIsExcludeClassInterceptors();
673             // excludeClassInterceptors has no post constraints
674             this.__excludeClassInterceptors18a = excludeClassInterceptors18a;
675             if (isMetafacadePropertyCachingEnabled())
676             {
677                 this.__excludeClassInterceptors18aSet = true;
678             }
679         }
680         return excludeClassInterceptors18a;
681     }
682 
683    /**
684     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isPostConstruct()
685     * @return boolean
686     */
687     protected abstract boolean handleIsPostConstruct();
688 
689     private boolean __postConstruct19a;
690     private boolean __postConstruct19aSet = false;
691 
692     /**
693      * Returns true if the associated operation has the <<PostConstruct>> stereotype.
694      * NOTE: The method signature must return void and have no args.
695      * @return (boolean)handleIsPostConstruct()
696      */
697     public final boolean isPostConstruct()
698     {
699         boolean postConstruct19a = this.__postConstruct19a;
700         if (!this.__postConstruct19aSet)
701         {
702             // postConstruct has no pre constraints
703             postConstruct19a = handleIsPostConstruct();
704             // postConstruct has no post constraints
705             this.__postConstruct19a = postConstruct19a;
706             if (isMetafacadePropertyCachingEnabled())
707             {
708                 this.__postConstruct19aSet = true;
709             }
710         }
711         return postConstruct19a;
712     }
713 
714    /**
715     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isPreDestroy()
716     * @return boolean
717     */
718     protected abstract boolean handleIsPreDestroy();
719 
720     private boolean __preDestroy20a;
721     private boolean __preDestroy20aSet = false;
722 
723     /**
724      * Returns true if the associated operation has the <<PreDestroy>> stereotype.
725      * NOTE: The method signature must return void and have no args.
726      * @return (boolean)handleIsPreDestroy()
727      */
728     public final boolean isPreDestroy()
729     {
730         boolean preDestroy20a = this.__preDestroy20a;
731         if (!this.__preDestroy20aSet)
732         {
733             // preDestroy has no pre constraints
734             preDestroy20a = handleIsPreDestroy();
735             // preDestroy has no post constraints
736             this.__preDestroy20a = preDestroy20a;
737             if (isMetafacadePropertyCachingEnabled())
738             {
739                 this.__preDestroy20aSet = true;
740             }
741         }
742         return preDestroy20a;
743     }
744 
745    /**
746     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isPostActivate()
747     * @return boolean
748     */
749     protected abstract boolean handleIsPostActivate();
750 
751     private boolean __postActivate21a;
752     private boolean __postActivate21aSet = false;
753 
754     /**
755      * Returns true if the associated operation has the <<PostActivate>> stereotype.
756      * This is only applicable for operations in a stateful session bean.
757      * NOTE: The method signature must return void and have no args.
758      * @return (boolean)handleIsPostActivate()
759      */
760     public final boolean isPostActivate()
761     {
762         boolean postActivate21a = this.__postActivate21a;
763         if (!this.__postActivate21aSet)
764         {
765             // postActivate has no pre constraints
766             postActivate21a = handleIsPostActivate();
767             // postActivate has no post constraints
768             this.__postActivate21a = postActivate21a;
769             if (isMetafacadePropertyCachingEnabled())
770             {
771                 this.__postActivate21aSet = true;
772             }
773         }
774         return postActivate21a;
775     }
776 
777    /**
778     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isPrePassivate()
779     * @return boolean
780     */
781     protected abstract boolean handleIsPrePassivate();
782 
783     private boolean __prePassivate22a;
784     private boolean __prePassivate22aSet = false;
785 
786     /**
787      * Returns true if the associated operation has the <<PrePassivate>> stereotype.
788      * This is only applicable for operations in a stateful session bean.
789      * NOTE: The method signature must return void and have no args.
790      * @return (boolean)handleIsPrePassivate()
791      */
792     public final boolean isPrePassivate()
793     {
794         boolean prePassivate22a = this.__prePassivate22a;
795         if (!this.__prePassivate22aSet)
796         {
797             // prePassivate has no pre constraints
798             prePassivate22a = handleIsPrePassivate();
799             // prePassivate has no post constraints
800             this.__prePassivate22a = prePassivate22a;
801             if (isMetafacadePropertyCachingEnabled())
802             {
803                 this.__prePassivate22aSet = true;
804             }
805         }
806         return prePassivate22a;
807     }
808 
809    /**
810     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isLifecycleCallback()
811     * @return boolean
812     */
813     protected abstract boolean handleIsLifecycleCallback();
814 
815     private boolean __lifecycleCallback23a;
816     private boolean __lifecycleCallback23aSet = false;
817 
818     /**
819      * Returns true if this operation is marked with any of the lifecycle callback stereotypes like
820      * PostCostructs, PreDestroy etc.
821      * @return (boolean)handleIsLifecycleCallback()
822      */
823     public final boolean isLifecycleCallback()
824     {
825         boolean lifecycleCallback23a = this.__lifecycleCallback23a;
826         if (!this.__lifecycleCallback23aSet)
827         {
828             // lifecycleCallback has no pre constraints
829             lifecycleCallback23a = handleIsLifecycleCallback();
830             // lifecycleCallback has no post constraints
831             this.__lifecycleCallback23a = lifecycleCallback23a;
832             if (isMetafacadePropertyCachingEnabled())
833             {
834                 this.__lifecycleCallback23aSet = true;
835             }
836         }
837         return lifecycleCallback23a;
838     }
839 
840    /**
841     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamValidationValidator()
842     * @return boolean
843     */
844     protected abstract boolean handleIsSeamValidationValidator();
845 
846     private boolean __seamValidationValidator24a;
847     private boolean __seamValidationValidator24aSet = false;
848 
849     /**
850      * Returns true if the <<Validator>> stereotype is modelled on this operation and the session
851      * bean is a Seam component.
852      * @return (boolean)handleIsSeamValidationValidator()
853      */
854     public final boolean isSeamValidationValidator()
855     {
856         boolean seamValidationValidator24a = this.__seamValidationValidator24a;
857         if (!this.__seamValidationValidator24aSet)
858         {
859             // seamValidationValidator has no pre constraints
860             seamValidationValidator24a = handleIsSeamValidationValidator();
861             // seamValidationValidator has no post constraints
862             this.__seamValidationValidator24a = seamValidationValidator24a;
863             if (isMetafacadePropertyCachingEnabled())
864             {
865                 this.__seamValidationValidator24aSet = true;
866             }
867         }
868         return seamValidationValidator24a;
869     }
870 
871    /**
872     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getSeamValidationOutcome()
873     * @return String
874     */
875     protected abstract String handleGetSeamValidationOutcome();
876 
877     private String __seamValidationOutcome25a;
878     private boolean __seamValidationOutcome25aSet = false;
879 
880     /**
881      * Returns the JSF outcome when validation fails, set using andromda.seam.validation.outcome.
882      * @return (String)handleGetSeamValidationOutcome()
883      */
884     public final String getSeamValidationOutcome()
885     {
886         String seamValidationOutcome25a = this.__seamValidationOutcome25a;
887         if (!this.__seamValidationOutcome25aSet)
888         {
889             // seamValidationOutcome has no pre constraints
890             seamValidationOutcome25a = handleGetSeamValidationOutcome();
891             // seamValidationOutcome has no post constraints
892             this.__seamValidationOutcome25a = seamValidationOutcome25a;
893             if (isMetafacadePropertyCachingEnabled())
894             {
895                 this.__seamValidationOutcome25aSet = true;
896             }
897         }
898         return seamValidationOutcome25a;
899     }
900 
901    /**
902     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamValidationRefreshEntities()
903     * @return boolean
904     */
905     protected abstract boolean handleIsSeamValidationRefreshEntities();
906 
907     private boolean __seamValidationRefreshEntities26a;
908     private boolean __seamValidationRefreshEntities26aSet = false;
909 
910     /**
911      * Returns true if the andromda.seam.validation.refreshEntities is modelled on the operation as
912      * true to indicate that any invalid entities in the managed state should be refreshed from the
913      * database when validation fails.
914      * @return (boolean)handleIsSeamValidationRefreshEntities()
915      */
916     public final boolean isSeamValidationRefreshEntities()
917     {
918         boolean seamValidationRefreshEntities26a = this.__seamValidationRefreshEntities26a;
919         if (!this.__seamValidationRefreshEntities26aSet)
920         {
921             // seamValidationRefreshEntities has no pre constraints
922             seamValidationRefreshEntities26a = handleIsSeamValidationRefreshEntities();
923             // seamValidationRefreshEntities has no post constraints
924             this.__seamValidationRefreshEntities26a = seamValidationRefreshEntities26a;
925             if (isMetafacadePropertyCachingEnabled())
926             {
927                 this.__seamValidationRefreshEntities26aSet = true;
928             }
929         }
930         return seamValidationRefreshEntities26a;
931     }
932 
933    /**
934     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isViewTypeStrictlyLocal()
935     * @return boolean
936     */
937     protected abstract boolean handleIsViewTypeStrictlyLocal();
938 
939     private boolean __viewTypeStrictlyLocal27a;
940     private boolean __viewTypeStrictlyLocal27aSet = false;
941 
942     /**
943      * Returns true if the operation view type was explicitly set to local view using tagged value.
944      * @return (boolean)handleIsViewTypeStrictlyLocal()
945      */
946     public final boolean isViewTypeStrictlyLocal()
947     {
948         boolean viewTypeStrictlyLocal27a = this.__viewTypeStrictlyLocal27a;
949         if (!this.__viewTypeStrictlyLocal27aSet)
950         {
951             // viewTypeStrictlyLocal has no pre constraints
952             viewTypeStrictlyLocal27a = handleIsViewTypeStrictlyLocal();
953             // viewTypeStrictlyLocal has no post constraints
954             this.__viewTypeStrictlyLocal27a = viewTypeStrictlyLocal27a;
955             if (isMetafacadePropertyCachingEnabled())
956             {
957                 this.__viewTypeStrictlyLocal27aSet = true;
958             }
959         }
960         return viewTypeStrictlyLocal27a;
961     }
962 
963    /**
964     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isViewTypeStrictlyRemote()
965     * @return boolean
966     */
967     protected abstract boolean handleIsViewTypeStrictlyRemote();
968 
969     private boolean __viewTypeStrictlyRemote28a;
970     private boolean __viewTypeStrictlyRemote28aSet = false;
971 
972     /**
973      * Returns true if the operation view type was explicitly set to remote view using tagged value.
974      * @return (boolean)handleIsViewTypeStrictlyRemote()
975      */
976     public final boolean isViewTypeStrictlyRemote()
977     {
978         boolean viewTypeStrictlyRemote28a = this.__viewTypeStrictlyRemote28a;
979         if (!this.__viewTypeStrictlyRemote28aSet)
980         {
981             // viewTypeStrictlyRemote has no pre constraints
982             viewTypeStrictlyRemote28a = handleIsViewTypeStrictlyRemote();
983             // viewTypeStrictlyRemote has no post constraints
984             this.__viewTypeStrictlyRemote28a = viewTypeStrictlyRemote28a;
985             if (isMetafacadePropertyCachingEnabled())
986             {
987                 this.__viewTypeStrictlyRemote28aSet = true;
988             }
989         }
990         return viewTypeStrictlyRemote28a;
991     }
992 
993    /**
994     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isViewTypeAbsoluteLocal()
995     * @return boolean
996     */
997     protected abstract boolean handleIsViewTypeAbsoluteLocal();
998 
999     private boolean __viewTypeAbsoluteLocal29a;
1000     private boolean __viewTypeAbsoluteLocal29aSet = false;
1001 
1002     /**
1003      * Return true if the view type of the operation is local after examing all aspects of the owner
1004      * and operation. This is used to determine if operation is included in local interface.
1005      * @return (boolean)handleIsViewTypeAbsoluteLocal()
1006      */
1007     public final boolean isViewTypeAbsoluteLocal()
1008     {
1009         boolean viewTypeAbsoluteLocal29a = this.__viewTypeAbsoluteLocal29a;
1010         if (!this.__viewTypeAbsoluteLocal29aSet)
1011         {
1012             // viewTypeAbsoluteLocal has no pre constraints
1013             viewTypeAbsoluteLocal29a = handleIsViewTypeAbsoluteLocal();
1014             // viewTypeAbsoluteLocal has no post constraints
1015             this.__viewTypeAbsoluteLocal29a = viewTypeAbsoluteLocal29a;
1016             if (isMetafacadePropertyCachingEnabled())
1017             {
1018                 this.__viewTypeAbsoluteLocal29aSet = true;
1019             }
1020         }
1021         return viewTypeAbsoluteLocal29a;
1022     }
1023 
1024    /**
1025     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isViewTypeAbsoluteRemote()
1026     * @return boolean
1027     */
1028     protected abstract boolean handleIsViewTypeAbsoluteRemote();
1029 
1030     private boolean __viewTypeAbsoluteRemote30a;
1031     private boolean __viewTypeAbsoluteRemote30aSet = false;
1032 
1033     /**
1034      * Return true if the view type of the operation is local after examing all aspects of the owner
1035      * and operation. This is used to determine if operation is included in remote interface.
1036      * @return (boolean)handleIsViewTypeAbsoluteRemote()
1037      */
1038     public final boolean isViewTypeAbsoluteRemote()
1039     {
1040         boolean viewTypeAbsoluteRemote30a = this.__viewTypeAbsoluteRemote30a;
1041         if (!this.__viewTypeAbsoluteRemote30aSet)
1042         {
1043             // viewTypeAbsoluteRemote has no pre constraints
1044             viewTypeAbsoluteRemote30a = handleIsViewTypeAbsoluteRemote();
1045             // viewTypeAbsoluteRemote has no post constraints
1046             this.__viewTypeAbsoluteRemote30a = viewTypeAbsoluteRemote30a;
1047             if (isMetafacadePropertyCachingEnabled())
1048             {
1049                 this.__viewTypeAbsoluteRemote30aSet = true;
1050             }
1051         }
1052         return viewTypeAbsoluteRemote30a;
1053     }
1054 
1055    /**
1056     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isViewTypeAbsoluteBoth()
1057     * @return boolean
1058     */
1059     protected abstract boolean handleIsViewTypeAbsoluteBoth();
1060 
1061     private boolean __viewTypeAbsoluteBoth31a;
1062     private boolean __viewTypeAbsoluteBoth31aSet = false;
1063 
1064     /**
1065      * Return true if the view type of the operation is both after examing all aspects of the owner
1066      * and operation. This is used to determine which interface to use in the service delegate.
1067      * @return (boolean)handleIsViewTypeAbsoluteBoth()
1068      */
1069     public final boolean isViewTypeAbsoluteBoth()
1070     {
1071         boolean viewTypeAbsoluteBoth31a = this.__viewTypeAbsoluteBoth31a;
1072         if (!this.__viewTypeAbsoluteBoth31aSet)
1073         {
1074             // viewTypeAbsoluteBoth has no pre constraints
1075             viewTypeAbsoluteBoth31a = handleIsViewTypeAbsoluteBoth();
1076             // viewTypeAbsoluteBoth has no post constraints
1077             this.__viewTypeAbsoluteBoth31a = viewTypeAbsoluteBoth31a;
1078             if (isMetafacadePropertyCachingEnabled())
1079             {
1080                 this.__viewTypeAbsoluteBoth31aSet = true;
1081             }
1082         }
1083         return viewTypeAbsoluteBoth31a;
1084     }
1085 
1086    /**
1087     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isViewTypeStrictlyBoth()
1088     * @return boolean
1089     */
1090     protected abstract boolean handleIsViewTypeStrictlyBoth();
1091 
1092     private boolean __viewTypeStrictlyBoth32a;
1093     private boolean __viewTypeStrictlyBoth32aSet = false;
1094 
1095     /**
1096      * Returns true if the operation view type was explicitly set to both using tagged value.
1097      * @return (boolean)handleIsViewTypeStrictlyBoth()
1098      */
1099     public final boolean isViewTypeStrictlyBoth()
1100     {
1101         boolean viewTypeStrictlyBoth32a = this.__viewTypeStrictlyBoth32a;
1102         if (!this.__viewTypeStrictlyBoth32aSet)
1103         {
1104             // viewTypeStrictlyBoth has no pre constraints
1105             viewTypeStrictlyBoth32a = handleIsViewTypeStrictlyBoth();
1106             // viewTypeStrictlyBoth has no post constraints
1107             this.__viewTypeStrictlyBoth32a = viewTypeStrictlyBoth32a;
1108             if (isMetafacadePropertyCachingEnabled())
1109             {
1110                 this.__viewTypeStrictlyBoth32aSet = true;
1111             }
1112         }
1113         return viewTypeStrictlyBoth32a;
1114     }
1115 
1116    /**
1117     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamAsynchronous()
1118     * @return boolean
1119     */
1120     protected abstract boolean handleIsSeamAsynchronous();
1121 
1122     private boolean __seamAsynchronous33a;
1123     private boolean __seamAsynchronous33aSet = false;
1124 
1125     /**
1126      * Stereotype Asynchronous. Specifies that the method call is processed asynchronously.
1127      * @return (boolean)handleIsSeamAsynchronous()
1128      */
1129     public final boolean isSeamAsynchronous()
1130     {
1131         boolean seamAsynchronous33a = this.__seamAsynchronous33a;
1132         if (!this.__seamAsynchronous33aSet)
1133         {
1134             // seamAsynchronous has no pre constraints
1135             seamAsynchronous33a = handleIsSeamAsynchronous();
1136             // seamAsynchronous has no post constraints
1137             this.__seamAsynchronous33a = seamAsynchronous33a;
1138             if (isMetafacadePropertyCachingEnabled())
1139             {
1140                 this.__seamAsynchronous33aSet = true;
1141             }
1142         }
1143         return seamAsynchronous33a;
1144     }
1145 
1146    /**
1147     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamConversationBegin()
1148     * @return boolean
1149     */
1150     protected abstract boolean handleIsSeamConversationBegin();
1151 
1152     private boolean __seamConversationBegin34a;
1153     private boolean __seamConversationBegin34aSet = false;
1154 
1155     /**
1156      * Returns true if the <<Begin>> stereotype is set. Specifies that a long-running conversation
1157      * begins when this method returns a non-null outcome without exception.
1158      * @return (boolean)handleIsSeamConversationBegin()
1159      */
1160     public final boolean isSeamConversationBegin()
1161     {
1162         boolean seamConversationBegin34a = this.__seamConversationBegin34a;
1163         if (!this.__seamConversationBegin34aSet)
1164         {
1165             // seamConversationBegin has no pre constraints
1166             seamConversationBegin34a = handleIsSeamConversationBegin();
1167             // seamConversationBegin has no post constraints
1168             this.__seamConversationBegin34a = seamConversationBegin34a;
1169             if (isMetafacadePropertyCachingEnabled())
1170             {
1171                 this.__seamConversationBegin34aSet = true;
1172             }
1173         }
1174         return seamConversationBegin34a;
1175     }
1176 
1177    /**
1178     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamConversationBeginTask()
1179     * @return boolean
1180     */
1181     protected abstract boolean handleIsSeamConversationBeginTask();
1182 
1183     private boolean __seamConversationBeginTask35a;
1184     private boolean __seamConversationBeginTask35aSet = false;
1185 
1186     /**
1187      * Returns true if stereotype <<BeginTask>> is set. Resumes work on an incomplete jBPM task.
1188      * Specifies that a long-running conversation begins when this method returns a non-null outcome
1189      * without exception. This conversation is associated with the jBPM task specified in the named
1190      * request parameter. Within the context of this conversation, a business process context is
1191      * also defined, for the business process instance of the task instance.
1192      * @return (boolean)handleIsSeamConversationBeginTask()
1193      */
1194     public final boolean isSeamConversationBeginTask()
1195     {
1196         boolean seamConversationBeginTask35a = this.__seamConversationBeginTask35a;
1197         if (!this.__seamConversationBeginTask35aSet)
1198         {
1199             // seamConversationBeginTask has no pre constraints
1200             seamConversationBeginTask35a = handleIsSeamConversationBeginTask();
1201             // seamConversationBeginTask has no post constraints
1202             this.__seamConversationBeginTask35a = seamConversationBeginTask35a;
1203             if (isMetafacadePropertyCachingEnabled())
1204             {
1205                 this.__seamConversationBeginTask35aSet = true;
1206             }
1207         }
1208         return seamConversationBeginTask35a;
1209     }
1210 
1211    /**
1212     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamConversationCreateProcess()
1213     * @return boolean
1214     */
1215     protected abstract boolean handleIsSeamConversationCreateProcess();
1216 
1217     private boolean __seamConversationCreateProcess36a;
1218     private boolean __seamConversationCreateProcess36aSet = false;
1219 
1220     /**
1221      * Returns true if stereotype <<CreateProcess>> is set. Creates a new jBPM process instance when
1222      * the method returns a non-null outcome without exception. The ProcessInstance object will be
1223      * available in a context variable named processInstance.
1224      * @return (boolean)handleIsSeamConversationCreateProcess()
1225      */
1226     public final boolean isSeamConversationCreateProcess()
1227     {
1228         boolean seamConversationCreateProcess36a = this.__seamConversationCreateProcess36a;
1229         if (!this.__seamConversationCreateProcess36aSet)
1230         {
1231             // seamConversationCreateProcess has no pre constraints
1232             seamConversationCreateProcess36a = handleIsSeamConversationCreateProcess();
1233             // seamConversationCreateProcess has no post constraints
1234             this.__seamConversationCreateProcess36a = seamConversationCreateProcess36a;
1235             if (isMetafacadePropertyCachingEnabled())
1236             {
1237                 this.__seamConversationCreateProcess36aSet = true;
1238             }
1239         }
1240         return seamConversationCreateProcess36a;
1241     }
1242 
1243    /**
1244     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamConversationEnd()
1245     * @return boolean
1246     */
1247     protected abstract boolean handleIsSeamConversationEnd();
1248 
1249     private boolean __seamConversationEnd37a;
1250     private boolean __seamConversationEnd37aSet = false;
1251 
1252     /**
1253      * Returns true if stereotype <<End>> is set. Specifies that a long-running conversation ends
1254      * when this method returns a non-null outcome without exception.
1255      * @return (boolean)handleIsSeamConversationEnd()
1256      */
1257     public final boolean isSeamConversationEnd()
1258     {
1259         boolean seamConversationEnd37a = this.__seamConversationEnd37a;
1260         if (!this.__seamConversationEnd37aSet)
1261         {
1262             // seamConversationEnd has no pre constraints
1263             seamConversationEnd37a = handleIsSeamConversationEnd();
1264             // seamConversationEnd has no post constraints
1265             this.__seamConversationEnd37a = seamConversationEnd37a;
1266             if (isMetafacadePropertyCachingEnabled())
1267             {
1268                 this.__seamConversationEnd37aSet = true;
1269             }
1270         }
1271         return seamConversationEnd37a;
1272     }
1273 
1274    /**
1275     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamConversationEndTask()
1276     * @return boolean
1277     */
1278     protected abstract boolean handleIsSeamConversationEndTask();
1279 
1280     private boolean __seamConversationEndTask38a;
1281     private boolean __seamConversationEndTask38aSet = false;
1282 
1283     /**
1284      * Returns true if stereotype <<EndTask>> is set and "Ends" a jBPM task. Specifies that a
1285      * long-running conversation ends when this method returns a non-null outcome, and that the
1286      * current task is complete. Triggers a jBPM transition. The actual transition triggered will be
1287      * the default transition unless the application has called Transition.setName() on the built-in
1288      * component named transition.
1289      * @return (boolean)handleIsSeamConversationEndTask()
1290      */
1291     public final boolean isSeamConversationEndTask()
1292     {
1293         boolean seamConversationEndTask38a = this.__seamConversationEndTask38a;
1294         if (!this.__seamConversationEndTask38aSet)
1295         {
1296             // seamConversationEndTask has no pre constraints
1297             seamConversationEndTask38a = handleIsSeamConversationEndTask();
1298             // seamConversationEndTask has no post constraints
1299             this.__seamConversationEndTask38a = seamConversationEndTask38a;
1300             if (isMetafacadePropertyCachingEnabled())
1301             {
1302                 this.__seamConversationEndTask38aSet = true;
1303             }
1304         }
1305         return seamConversationEndTask38a;
1306     }
1307 
1308    /**
1309     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamBijectionFactory()
1310     * @return boolean
1311     */
1312     protected abstract boolean handleIsSeamBijectionFactory();
1313 
1314     private boolean __seamBijectionFactory39a;
1315     private boolean __seamBijectionFactory39aSet = false;
1316 
1317     /**
1318      * Returns true when stereotype <<Factory>> is set. When it is used on an operation which return
1319      * void that operation will be used to initialize the value of the named context variable, when
1320      * the context variable has no value.
1321      * When it is used on an operation that returns a value then Seam should use that value to
1322      * initialize the value of the named context variable, when the context variable has no value.
1323      * The context variable is specified by tagged value andromda.seam.bijection.factory.value. If
1324      * the method is a getter method, default to the JavaBeans property name.
1325      * If no scope is explicitly specified by tagged value andromda.seam.bijection.factory.scope,
1326      * the scope of the component with the Factory method is used (unless the component is
1327      * stateless, in which case the EVENT context is used).
1328      * @return (boolean)handleIsSeamBijectionFactory()
1329      */
1330     public final boolean isSeamBijectionFactory()
1331     {
1332         boolean seamBijectionFactory39a = this.__seamBijectionFactory39a;
1333         if (!this.__seamBijectionFactory39aSet)
1334         {
1335             // seamBijectionFactory has no pre constraints
1336             seamBijectionFactory39a = handleIsSeamBijectionFactory();
1337             // seamBijectionFactory has no post constraints
1338             this.__seamBijectionFactory39a = seamBijectionFactory39a;
1339             if (isMetafacadePropertyCachingEnabled())
1340             {
1341                 this.__seamBijectionFactory39aSet = true;
1342             }
1343         }
1344         return seamBijectionFactory39a;
1345     }
1346 
1347    /**
1348     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getSeamObserverEventName()
1349     * @return String
1350     */
1351     protected abstract String handleGetSeamObserverEventName();
1352 
1353     private String __seamObserverEventName40a;
1354     private boolean __seamObserverEventName40aSet = false;
1355 
1356     /**
1357      * Specifies that the method should be called when a component-driven event of the specified
1358      * type occurs.
1359      * @return (String)handleGetSeamObserverEventName()
1360      */
1361     public final String getSeamObserverEventName()
1362     {
1363         String seamObserverEventName40a = this.__seamObserverEventName40a;
1364         if (!this.__seamObserverEventName40aSet)
1365         {
1366             // seamObserverEventName has no pre constraints
1367             seamObserverEventName40a = handleGetSeamObserverEventName();
1368             // seamObserverEventName has no post constraints
1369             this.__seamObserverEventName40a = seamObserverEventName40a;
1370             if (isMetafacadePropertyCachingEnabled())
1371             {
1372                 this.__seamObserverEventName40aSet = true;
1373             }
1374         }
1375         return seamObserverEventName40a;
1376     }
1377 
1378    /**
1379     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamConversationResumeProcess()
1380     * @return boolean
1381     */
1382     protected abstract boolean handleIsSeamConversationResumeProcess();
1383 
1384     private boolean __seamConversationResumeProcess41a;
1385     private boolean __seamConversationResumeProcess41aSet = false;
1386 
1387     /**
1388      * Returns true if stereotype <<ResumeProcess>> is set. Re-enters the scope of an existing jBPM
1389      * process instance when the method returns a non-null outcome without exception. The
1390      * ProcessInstance object will be available in a context variable named processInstance.
1391      * @return (boolean)handleIsSeamConversationResumeProcess()
1392      */
1393     public final boolean isSeamConversationResumeProcess()
1394     {
1395         boolean seamConversationResumeProcess41a = this.__seamConversationResumeProcess41a;
1396         if (!this.__seamConversationResumeProcess41aSet)
1397         {
1398             // seamConversationResumeProcess has no pre constraints
1399             seamConversationResumeProcess41a = handleIsSeamConversationResumeProcess();
1400             // seamConversationResumeProcess has no post constraints
1401             this.__seamConversationResumeProcess41a = seamConversationResumeProcess41a;
1402             if (isMetafacadePropertyCachingEnabled())
1403             {
1404                 this.__seamConversationResumeProcess41aSet = true;
1405             }
1406         }
1407         return seamConversationResumeProcess41a;
1408     }
1409 
1410    /**
1411     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamTransactionRollback()
1412     * @return boolean
1413     */
1414     protected abstract boolean handleIsSeamTransactionRollback();
1415 
1416     private boolean __seamTransactionRollback42a;
1417     private boolean __seamTransactionRollback42aSet = false;
1418 
1419     /**
1420      * Returns true if stereotype <<Rollback>> is set. If the outcome of the method matches any of
1421      * the listed outcomes, or if no outcomes are listed, set the transaction to rollback only when
1422      * the method completes.
1423      * @return (boolean)handleIsSeamTransactionRollback()
1424      */
1425     public final boolean isSeamTransactionRollback()
1426     {
1427         boolean seamTransactionRollback42a = this.__seamTransactionRollback42a;
1428         if (!this.__seamTransactionRollback42aSet)
1429         {
1430             // seamTransactionRollback has no pre constraints
1431             seamTransactionRollback42a = handleIsSeamTransactionRollback();
1432             // seamTransactionRollback has no post constraints
1433             this.__seamTransactionRollback42a = seamTransactionRollback42a;
1434             if (isMetafacadePropertyCachingEnabled())
1435             {
1436                 this.__seamTransactionRollback42aSet = true;
1437             }
1438         }
1439         return seamTransactionRollback42a;
1440     }
1441 
1442    /**
1443     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamConversationStartTask()
1444     * @return boolean
1445     */
1446     protected abstract boolean handleIsSeamConversationStartTask();
1447 
1448     private boolean __seamConversationStartTask43a;
1449     private boolean __seamConversationStartTask43aSet = false;
1450 
1451     /**
1452      * Returns true if stereotype <<StartTask>> is set. It "Starts" a jBPM task. Specifies that a
1453      * long-running conversation begins when this method returns a non-null outcome without
1454      * exception. This conversation is associated with the jBPM task specified in the named request
1455      * parameter. Within the context of this conversation, a business process context is also
1456      * defined, for the business process instance of the task instance.
1457      * The jBPM TaskInstance will be available in a request context variable named taskInstance. The
1458      * jPBM ProcessInstance will be available in a request context variable named processInstance.
1459      * (Of course, these objects are available for injection via In.)
1460      * @return (boolean)handleIsSeamConversationStartTask()
1461      */
1462     public final boolean isSeamConversationStartTask()
1463     {
1464         boolean seamConversationStartTask43a = this.__seamConversationStartTask43a;
1465         if (!this.__seamConversationStartTask43aSet)
1466         {
1467             // seamConversationStartTask has no pre constraints
1468             seamConversationStartTask43a = handleIsSeamConversationStartTask();
1469             // seamConversationStartTask has no post constraints
1470             this.__seamConversationStartTask43a = seamConversationStartTask43a;
1471             if (isMetafacadePropertyCachingEnabled())
1472             {
1473                 this.__seamConversationStartTask43aSet = true;
1474             }
1475         }
1476         return seamConversationStartTask43a;
1477     }
1478 
1479    /**
1480     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamTransactional()
1481     * @return boolean
1482     */
1483     protected abstract boolean handleIsSeamTransactional();
1484 
1485     private boolean __seamTransactional44a;
1486     private boolean __seamTransactional44aSet = false;
1487 
1488     /**
1489      * Specifies that a JavaBean component should have a similar transactional behavior to the
1490      * default behavior of a session bean component. ie. method invocations should take place in a
1491      * transaction, and if no transaction exists when the method is called, a transaction will be
1492      * started just for that method. This annotation may be applied at either class or method level.
1493      * @return (boolean)handleIsSeamTransactional()
1494      */
1495     public final boolean isSeamTransactional()
1496     {
1497         boolean seamTransactional44a = this.__seamTransactional44a;
1498         if (!this.__seamTransactional44aSet)
1499         {
1500             // seamTransactional has no pre constraints
1501             seamTransactional44a = handleIsSeamTransactional();
1502             // seamTransactional has no post constraints
1503             this.__seamTransactional44a = seamTransactional44a;
1504             if (isMetafacadePropertyCachingEnabled())
1505             {
1506                 this.__seamTransactional44aSet = true;
1507             }
1508         }
1509         return seamTransactional44a;
1510     }
1511 
1512    /**
1513     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamWebRemote()
1514     * @return boolean
1515     */
1516     protected abstract boolean handleIsSeamWebRemote();
1517 
1518     private boolean __seamWebRemote45a;
1519     private boolean __seamWebRemote45aSet = false;
1520 
1521     /**
1522      * True if <<WebRemote>> stereotype is set. Indicates that the annotated method may be called
1523      * from client-side JavaScript.
1524      * @return (boolean)handleIsSeamWebRemote()
1525      */
1526     public final boolean isSeamWebRemote()
1527     {
1528         boolean seamWebRemote45a = this.__seamWebRemote45a;
1529         if (!this.__seamWebRemote45aSet)
1530         {
1531             // seamWebRemote has no pre constraints
1532             seamWebRemote45a = handleIsSeamWebRemote();
1533             // seamWebRemote has no post constraints
1534             this.__seamWebRemote45a = seamWebRemote45a;
1535             if (isMetafacadePropertyCachingEnabled())
1536             {
1537                 this.__seamWebRemote45aSet = true;
1538             }
1539         }
1540         return seamWebRemote45a;
1541     }
1542 
1543    /**
1544     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamLifecycleDestroy()
1545     * @return boolean
1546     */
1547     protected abstract boolean handleIsSeamLifecycleDestroy();
1548 
1549     private boolean __seamLifecycleDestroy46a;
1550     private boolean __seamLifecycleDestroy46aSet = false;
1551 
1552     /**
1553      * Returns true if the operation has the <<Destroy>> stereotype modelled.
1554      * @return (boolean)handleIsSeamLifecycleDestroy()
1555      */
1556     public final boolean isSeamLifecycleDestroy()
1557     {
1558         boolean seamLifecycleDestroy46a = this.__seamLifecycleDestroy46a;
1559         if (!this.__seamLifecycleDestroy46aSet)
1560         {
1561             // seamLifecycleDestroy has no pre constraints
1562             seamLifecycleDestroy46a = handleIsSeamLifecycleDestroy();
1563             // seamLifecycleDestroy has no post constraints
1564             this.__seamLifecycleDestroy46a = seamLifecycleDestroy46a;
1565             if (isMetafacadePropertyCachingEnabled())
1566             {
1567                 this.__seamLifecycleDestroy46aSet = true;
1568             }
1569         }
1570         return seamLifecycleDestroy46a;
1571     }
1572 
1573    /**
1574     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamLifecycleCreate()
1575     * @return boolean
1576     */
1577     protected abstract boolean handleIsSeamLifecycleCreate();
1578 
1579     private boolean __seamLifecycleCreate47a;
1580     private boolean __seamLifecycleCreate47aSet = false;
1581 
1582     /**
1583      * Returns true if the operation has the <<Create>> stereotype modelled.
1584      * @return (boolean)handleIsSeamLifecycleCreate()
1585      */
1586     public final boolean isSeamLifecycleCreate()
1587     {
1588         boolean seamLifecycleCreate47a = this.__seamLifecycleCreate47a;
1589         if (!this.__seamLifecycleCreate47aSet)
1590         {
1591             // seamLifecycleCreate has no pre constraints
1592             seamLifecycleCreate47a = handleIsSeamLifecycleCreate();
1593             // seamLifecycleCreate has no post constraints
1594             this.__seamLifecycleCreate47a = seamLifecycleCreate47a;
1595             if (isMetafacadePropertyCachingEnabled())
1596             {
1597                 this.__seamLifecycleCreate47aSet = true;
1598             }
1599         }
1600         return seamLifecycleCreate47a;
1601     }
1602 
1603    /**
1604     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getSeamWebRemoteParameters()
1605     * @return String
1606     */
1607     protected abstract String handleGetSeamWebRemoteParameters();
1608 
1609     private String __seamWebRemoteParameters48a;
1610     private boolean __seamWebRemoteParameters48aSet = false;
1611 
1612     /**
1613      * Returns a string with parameters for the org.jboss.seam.annotations.WebRemote annotation.
1614      * Supported parameters:
1615      * exclude - Allows objects to be excluded from the result's object graph. Example:
1616      * WebRemote(exclude="path.to.exclude")
1617      * @return (String)handleGetSeamWebRemoteParameters()
1618      */
1619     public final String getSeamWebRemoteParameters()
1620     {
1621         String seamWebRemoteParameters48a = this.__seamWebRemoteParameters48a;
1622         if (!this.__seamWebRemoteParameters48aSet)
1623         {
1624             // seamWebRemoteParameters has no pre constraints
1625             seamWebRemoteParameters48a = handleGetSeamWebRemoteParameters();
1626             // seamWebRemoteParameters has no post constraints
1627             this.__seamWebRemoteParameters48a = seamWebRemoteParameters48a;
1628             if (isMetafacadePropertyCachingEnabled())
1629             {
1630                 this.__seamWebRemoteParameters48aSet = true;
1631             }
1632         }
1633         return seamWebRemoteParameters48a;
1634     }
1635 
1636    /**
1637     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getSeamConversationBeginParameters()
1638     * @return String
1639     */
1640     protected abstract String handleGetSeamConversationBeginParameters();
1641 
1642     private String __seamConversationBeginParameters49a;
1643     private boolean __seamConversationBeginParameters49aSet = false;
1644 
1645     /**
1646      * Returns a parameter string for the org.jboss.seam.annotations.Begin annotation. Supported
1647      * parameters:
1648      * * ifOutcome — specifies the JSF outcome or outcomes that result in a new long-running
1649      * conversation context.
1650      * * join — determines the behavior when a long-running conversation is already in progress. If
1651      * true, the context is propagated. If false, an exception is thrown. Default to false. This
1652      * setting is ignored when nested=true is specified
1653      * * nested — specifies that a nested conversation should be started if a long-running
1654      * conversation is already in progress.
1655      * * flushMode — set the flush mode of any Seam-managed Hibernate sessions or JPA persistence
1656      * contexts that are created during this conversation.
1657      * * pageflow — a process definition name of a jBPM process definition deployed via
1658      * org.jboss.seam.core.jbpm.pageflowDefinitions.
1659      * @return (String)handleGetSeamConversationBeginParameters()
1660      */
1661     public final String getSeamConversationBeginParameters()
1662     {
1663         String seamConversationBeginParameters49a = this.__seamConversationBeginParameters49a;
1664         if (!this.__seamConversationBeginParameters49aSet)
1665         {
1666             // seamConversationBeginParameters has no pre constraints
1667             seamConversationBeginParameters49a = handleGetSeamConversationBeginParameters();
1668             // seamConversationBeginParameters has no post constraints
1669             this.__seamConversationBeginParameters49a = seamConversationBeginParameters49a;
1670             if (isMetafacadePropertyCachingEnabled())
1671             {
1672                 this.__seamConversationBeginParameters49aSet = true;
1673             }
1674         }
1675         return seamConversationBeginParameters49a;
1676     }
1677 
1678    /**
1679     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getSeamConversationBeginTaskParameters()
1680     * @return String
1681     */
1682     protected abstract String handleGetSeamConversationBeginTaskParameters();
1683 
1684     private String __seamConversationBeginTaskParameters50a;
1685     private boolean __seamConversationBeginTaskParameters50aSet = false;
1686 
1687     /**
1688      * Returns a parameter string for the org.jboss.seam.annotations.BeginTask annotation. Supported
1689      * parameters:
1690      * * taskIdParameter — the name of a request parameter which holds the id of the task. Default
1691      * to "taskId", which is also the default used by the Seam taskList JSF component.
1692      * * flushMode — set the flush mode of any Seam-managed Hibernate sessions or JPA persistence
1693      * contexts that are created during this conversation.
1694      * @return (String)handleGetSeamConversationBeginTaskParameters()
1695      */
1696     public final String getSeamConversationBeginTaskParameters()
1697     {
1698         String seamConversationBeginTaskParameters50a = this.__seamConversationBeginTaskParameters50a;
1699         if (!this.__seamConversationBeginTaskParameters50aSet)
1700         {
1701             // seamConversationBeginTaskParameters has no pre constraints
1702             seamConversationBeginTaskParameters50a = handleGetSeamConversationBeginTaskParameters();
1703             // seamConversationBeginTaskParameters has no post constraints
1704             this.__seamConversationBeginTaskParameters50a = seamConversationBeginTaskParameters50a;
1705             if (isMetafacadePropertyCachingEnabled())
1706             {
1707                 this.__seamConversationBeginTaskParameters50aSet = true;
1708             }
1709         }
1710         return seamConversationBeginTaskParameters50a;
1711     }
1712 
1713    /**
1714     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getSeamConversationCreateProcessParameters()
1715     * @return String
1716     */
1717     protected abstract String handleGetSeamConversationCreateProcessParameters();
1718 
1719     private String __seamConversationCreateProcessParameters51a;
1720     private boolean __seamConversationCreateProcessParameters51aSet = false;
1721 
1722     /**
1723      * Returns a parameter string for the org.jboss.seam.annotations.CreateProcess annotation.
1724      * Supported parameters:
1725      * * definition — the name of the jBPM process definition deployed via
1726      * org.jboss.seam.core.jbpm.processDefinitions.
1727      * @return (String)handleGetSeamConversationCreateProcessParameters()
1728      */
1729     public final String getSeamConversationCreateProcessParameters()
1730     {
1731         String seamConversationCreateProcessParameters51a = this.__seamConversationCreateProcessParameters51a;
1732         if (!this.__seamConversationCreateProcessParameters51aSet)
1733         {
1734             // seamConversationCreateProcessParameters has no pre constraints
1735             seamConversationCreateProcessParameters51a = handleGetSeamConversationCreateProcessParameters();
1736             // seamConversationCreateProcessParameters has no post constraints
1737             this.__seamConversationCreateProcessParameters51a = seamConversationCreateProcessParameters51a;
1738             if (isMetafacadePropertyCachingEnabled())
1739             {
1740                 this.__seamConversationCreateProcessParameters51aSet = true;
1741             }
1742         }
1743         return seamConversationCreateProcessParameters51a;
1744     }
1745 
1746    /**
1747     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getSeamConversationEndParameters()
1748     * @return String
1749     */
1750     protected abstract String handleGetSeamConversationEndParameters();
1751 
1752     private String __seamConversationEndParameters52a;
1753     private boolean __seamConversationEndParameters52aSet = false;
1754 
1755     /**
1756      * Returns a parameter string for the org.jboss.seam.annotations.End annotation. Supported
1757      * parameters:
1758      * * ifOutcome — specifies the JSF outcome or outcomes that result in the end of the current
1759      * long-running conversation.
1760      * * beforeRedirect — by default, the conversation will not actually be destroyed until after
1761      * any redirect has occurred. Setting beforeRedirect=true specifies that the conversation should
1762      * be destroyed at the end of the current request, and that the redirect will be processed in a
1763      * new temporary conversation context.
1764      * @return (String)handleGetSeamConversationEndParameters()
1765      */
1766     public final String getSeamConversationEndParameters()
1767     {
1768         String seamConversationEndParameters52a = this.__seamConversationEndParameters52a;
1769         if (!this.__seamConversationEndParameters52aSet)
1770         {
1771             // seamConversationEndParameters has no pre constraints
1772             seamConversationEndParameters52a = handleGetSeamConversationEndParameters();
1773             // seamConversationEndParameters has no post constraints
1774             this.__seamConversationEndParameters52a = seamConversationEndParameters52a;
1775             if (isMetafacadePropertyCachingEnabled())
1776             {
1777                 this.__seamConversationEndParameters52aSet = true;
1778             }
1779         }
1780         return seamConversationEndParameters52a;
1781     }
1782 
1783    /**
1784     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getSeamConversationEndTaskParameters()
1785     * @return String
1786     */
1787     protected abstract String handleGetSeamConversationEndTaskParameters();
1788 
1789     private String __seamConversationEndTaskParameters53a;
1790     private boolean __seamConversationEndTaskParameters53aSet = false;
1791 
1792     /**
1793      * Returns a parameter string for the org.jboss.seam.annotations.EndTask annotation. Supported
1794      * parameters:
1795      * * transition — the name of the jBPM transition to be triggered when ending the task. Defaults
1796      * to the default transition.
1797      * * ifOutcome — specifies the JSF outcome or outcomes that result in the end of the task.
1798      * * beforeRedirect — by default, the conversation will not actually be destroyed until after
1799      * any redirect has occurred. Setting beforeRedirect=true specifies that the conversation should
1800      * be destroyed at the end of the current request, and that the redirect will be processed in a
1801      * new temporary conversation context.
1802      * @return (String)handleGetSeamConversationEndTaskParameters()
1803      */
1804     public final String getSeamConversationEndTaskParameters()
1805     {
1806         String seamConversationEndTaskParameters53a = this.__seamConversationEndTaskParameters53a;
1807         if (!this.__seamConversationEndTaskParameters53aSet)
1808         {
1809             // seamConversationEndTaskParameters has no pre constraints
1810             seamConversationEndTaskParameters53a = handleGetSeamConversationEndTaskParameters();
1811             // seamConversationEndTaskParameters has no post constraints
1812             this.__seamConversationEndTaskParameters53a = seamConversationEndTaskParameters53a;
1813             if (isMetafacadePropertyCachingEnabled())
1814             {
1815                 this.__seamConversationEndTaskParameters53aSet = true;
1816             }
1817         }
1818         return seamConversationEndTaskParameters53a;
1819     }
1820 
1821    /**
1822     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getSeamBijectionFactoryParameters()
1823     * @return String
1824     */
1825     protected abstract String handleGetSeamBijectionFactoryParameters();
1826 
1827     private String __seamBijectionFactoryParameters54a;
1828     private boolean __seamBijectionFactoryParameters54aSet = false;
1829 
1830     /**
1831      * Returns a parameter string for the org.jboss.seam.annotations.Factory annotation. Supported
1832      * parameters:
1833      * * value — specifies the name of the context variable. If the method is a getter method,
1834      * default to the JavaBeans property name.
1835      * * scope — specifies the scope that Seam should bind the returned value to. Only meaningful
1836      * for factory methods which return a value.
1837      * @return (String)handleGetSeamBijectionFactoryParameters()
1838      */
1839     public final String getSeamBijectionFactoryParameters()
1840     {
1841         String seamBijectionFactoryParameters54a = this.__seamBijectionFactoryParameters54a;
1842         if (!this.__seamBijectionFactoryParameters54aSet)
1843         {
1844             // seamBijectionFactoryParameters has no pre constraints
1845             seamBijectionFactoryParameters54a = handleGetSeamBijectionFactoryParameters();
1846             // seamBijectionFactoryParameters has no post constraints
1847             this.__seamBijectionFactoryParameters54a = seamBijectionFactoryParameters54a;
1848             if (isMetafacadePropertyCachingEnabled())
1849             {
1850                 this.__seamBijectionFactoryParameters54aSet = true;
1851             }
1852         }
1853         return seamBijectionFactoryParameters54a;
1854     }
1855 
1856    /**
1857     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getSeamConversationResumeProcessParameters()
1858     * @return String
1859     */
1860     protected abstract String handleGetSeamConversationResumeProcessParameters();
1861 
1862     private String __seamConversationResumeProcessParameters55a;
1863     private boolean __seamConversationResumeProcessParameters55aSet = false;
1864 
1865     /**
1866      * Returns a parameter string for the org.jboss.seam.annotations.ResumeProcess annotation.
1867      * Supported parameters:
1868      * * processIdParameter — the name a request parameter holding the process id. Default to
1869      * "processId".
1870      * @return (String)handleGetSeamConversationResumeProcessParameters()
1871      */
1872     public final String getSeamConversationResumeProcessParameters()
1873     {
1874         String seamConversationResumeProcessParameters55a = this.__seamConversationResumeProcessParameters55a;
1875         if (!this.__seamConversationResumeProcessParameters55aSet)
1876         {
1877             // seamConversationResumeProcessParameters has no pre constraints
1878             seamConversationResumeProcessParameters55a = handleGetSeamConversationResumeProcessParameters();
1879             // seamConversationResumeProcessParameters has no post constraints
1880             this.__seamConversationResumeProcessParameters55a = seamConversationResumeProcessParameters55a;
1881             if (isMetafacadePropertyCachingEnabled())
1882             {
1883                 this.__seamConversationResumeProcessParameters55aSet = true;
1884             }
1885         }
1886         return seamConversationResumeProcessParameters55a;
1887     }
1888 
1889    /**
1890     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getSeamConversationStartTaskParameters()
1891     * @return String
1892     */
1893     protected abstract String handleGetSeamConversationStartTaskParameters();
1894 
1895     private String __seamConversationStartTaskParameters56a;
1896     private boolean __seamConversationStartTaskParameters56aSet = false;
1897 
1898     /**
1899      * Returns a parameter string for the org.jboss.seam.annotations.StartTask annotation. Supported
1900      * parameters:
1901      * * taskIdParameter — the name of a request parameter which holds the id of the task. Default
1902      * to "taskId", which is also the default used by the Seam taskList JSF component.
1903      * * flushMode — set the flush mode of any Seam-managed Hibernate sessions or JPA persistence
1904      * contexts that are created during this conversation.
1905      * @return (String)handleGetSeamConversationStartTaskParameters()
1906      */
1907     public final String getSeamConversationStartTaskParameters()
1908     {
1909         String seamConversationStartTaskParameters56a = this.__seamConversationStartTaskParameters56a;
1910         if (!this.__seamConversationStartTaskParameters56aSet)
1911         {
1912             // seamConversationStartTaskParameters has no pre constraints
1913             seamConversationStartTaskParameters56a = handleGetSeamConversationStartTaskParameters();
1914             // seamConversationStartTaskParameters has no post constraints
1915             this.__seamConversationStartTaskParameters56a = seamConversationStartTaskParameters56a;
1916             if (isMetafacadePropertyCachingEnabled())
1917             {
1918                 this.__seamConversationStartTaskParameters56aSet = true;
1919             }
1920         }
1921         return seamConversationStartTaskParameters56a;
1922     }
1923 
1924    /**
1925     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getSeamTransactionRollbackParameters()
1926     * @return String
1927     */
1928     protected abstract String handleGetSeamTransactionRollbackParameters();
1929 
1930     private String __seamTransactionRollbackParameters57a;
1931     private boolean __seamTransactionRollbackParameters57aSet = false;
1932 
1933     /**
1934      * Returns a parameter string for the org.jboss.seam.annotations.Rollback annotation. Supported
1935      * parameters:
1936      * * ifOutcome — the JSF outcomes that cause a transaction rollback (no outcomes is interpreted
1937      * to mean any outcome).
1938      * @return (String)handleGetSeamTransactionRollbackParameters()
1939      */
1940     public final String getSeamTransactionRollbackParameters()
1941     {
1942         String seamTransactionRollbackParameters57a = this.__seamTransactionRollbackParameters57a;
1943         if (!this.__seamTransactionRollbackParameters57aSet)
1944         {
1945             // seamTransactionRollbackParameters has no pre constraints
1946             seamTransactionRollbackParameters57a = handleGetSeamTransactionRollbackParameters();
1947             // seamTransactionRollbackParameters has no post constraints
1948             this.__seamTransactionRollbackParameters57a = seamTransactionRollbackParameters57a;
1949             if (isMetafacadePropertyCachingEnabled())
1950             {
1951                 this.__seamTransactionRollbackParameters57aSet = true;
1952             }
1953         }
1954         return seamTransactionRollbackParameters57a;
1955     }
1956 
1957    /**
1958     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#isSeamObserver()
1959     * @return boolean
1960     */
1961     protected abstract boolean handleIsSeamObserver();
1962 
1963     private boolean __seamObserver58a;
1964     private boolean __seamObserver58aSet = false;
1965 
1966     /**
1967      * True if the annotated method is a seam component-driven event observer.
1968      * @return (boolean)handleIsSeamObserver()
1969      */
1970     public final boolean isSeamObserver()
1971     {
1972         boolean seamObserver58a = this.__seamObserver58a;
1973         if (!this.__seamObserver58aSet)
1974         {
1975             // seamObserver has no pre constraints
1976             seamObserver58a = handleIsSeamObserver();
1977             // seamObserver has no post constraints
1978             this.__seamObserver58a = seamObserver58a;
1979             if (isMetafacadePropertyCachingEnabled())
1980             {
1981                 this.__seamObserver58aSet = true;
1982             }
1983         }
1984         return seamObserver58a;
1985     }
1986 
1987    /**
1988     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getTestSignature()
1989     * @return String
1990     */
1991     protected abstract String handleGetTestSignature();
1992 
1993     private String __testSignature59a;
1994     private boolean __testSignature59aSet = false;
1995 
1996     /**
1997      * Returns the session operation test signature used to generate the test method for the
1998      * operation  in the session bean test class.
1999      * @return (String)handleGetTestSignature()
2000      */
2001     public final String getTestSignature()
2002     {
2003         String testSignature59a = this.__testSignature59a;
2004         if (!this.__testSignature59aSet)
2005         {
2006             // testSignature has no pre constraints
2007             testSignature59a = handleGetTestSignature();
2008             // testSignature has no post constraints
2009             this.__testSignature59a = testSignature59a;
2010             if (isMetafacadePropertyCachingEnabled())
2011             {
2012                 this.__testSignature59aSet = true;
2013             }
2014         }
2015         return testSignature59a;
2016     }
2017 
2018    /**
2019     * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade#getTestName()
2020     * @return String
2021     */
2022     protected abstract String handleGetTestName();
2023 
2024     private String __testName60a;
2025     private boolean __testName60aSet = false;
2026 
2027     /**
2028      * Returns the operation test name
2029      * @return (String)handleGetTestName()
2030      */
2031     public final String getTestName()
2032     {
2033         String testName60a = this.__testName60a;
2034         if (!this.__testName60aSet)
2035         {
2036             // testName has no pre constraints
2037             testName60a = handleGetTestName();
2038             // testName has no post constraints
2039             this.__testName60a = testName60a;
2040             if (isMetafacadePropertyCachingEnabled())
2041             {
2042                 this.__testName60aSet = true;
2043             }
2044         }
2045         return testName60a;
2046     }
2047 
2048     // ---------------- business methods ----------------------
2049 
2050     /**
2051      * Method to be implemented in descendants
2052      * Retrieves the throws clause allowing a comma separated list of exceptions to be passed in and
2053      * appended to the list.
2054      * @param initialExceptions
2055      * @return String
2056      */
2057     protected abstract String handleGetThrowsClause(String initialExceptions);
2058 
2059     /**
2060      * Retrieves the throws clause allowing a comma separated list of exceptions to be passed in and
2061      * appended to the list.
2062      * @param initialExceptions String
2063      * A comma separated list of exceptions to be passed in.
2064      * @return handleGetThrowsClause(initialExceptions)
2065      */
2066     public String getThrowsClause(String initialExceptions)
2067     {
2068         // getThrowsClause has no pre constraints
2069         String returnValue = handleGetThrowsClause(initialExceptions);
2070         // getThrowsClause has no post constraints
2071         return returnValue;
2072     }
2073 
2074     // ------------- associations ------------------
2075 
2076     /**
2077      * TODO: Model Documentation for
2078      * org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade
2079      * @return (Collection<Role>)handleGetNonRunAsRoles()
2080      */
2081     public final Collection<Role> getNonRunAsRoles()
2082     {
2083         Collection<Role> getNonRunAsRoles1r = null;
2084         // eJB3SessionOperationFacade has no pre constraints
2085         Collection result = handleGetNonRunAsRoles();
2086         List shieldedResult = this.shieldedElements(result);
2087         try
2088         {
2089             getNonRunAsRoles1r = (Collection<Role>)shieldedResult;
2090         }
2091         catch (ClassCastException ex)
2092         {
2093             // Bad things happen if the metafacade type mapping in metafacades.xml is wrong - Warn
2094             EJB3SessionOperationFacadeLogic.logger.warn("incorrect metafacade cast for EJB3SessionOperationFacadeLogic.getNonRunAsRoles Collection<Role> " + result + ": " + shieldedResult);
2095         }
2096         // eJB3SessionOperationFacade has no post constraints
2097         return getNonRunAsRoles1r;
2098     }
2099 
2100     /**
2101      * UML Specific type is returned in Collection, transformed by shieldedElements to AndroMDA Metafacade type
2102      * @return  Collection
2103      */
2104     protected abstract Collection handleGetNonRunAsRoles();
2105 
2106     /**
2107      * @return true
2108      * @see ServiceOperation
2109      */
2110     public boolean isServiceOperationMetaType()
2111     {
2112         return true;
2113     }
2114 
2115     /**
2116      * @return true
2117      * @see OperationFacade
2118      */
2119     public boolean isOperationFacadeMetaType()
2120     {
2121         return true;
2122     }
2123 
2124     /**
2125      * @return true
2126      * @see ModelElementFacade
2127      */
2128     public boolean isModelElementFacadeMetaType()
2129     {
2130         return true;
2131     }
2132 
2133     // ----------- delegates to ServiceOperation ------------
2134     /**
2135      * Copies all tagged values from the given ModelElementFacade to this model element facade.
2136      * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
2137      */
2138     public void copyTaggedValues(ModelElementFacade element)
2139     {
2140         this.getSuperServiceOperation().copyTaggedValues(element);
2141     }
2142 
2143     /**
2144      * Finds the tagged value with the specified 'tagName'. In case there are more values the first
2145      * one found will be returned.
2146      * @see ModelElementFacade#findTaggedValue(String tagName)
2147      */
2148     public Object findTaggedValue(String tagName)
2149     {
2150         return this.getSuperServiceOperation().findTaggedValue(tagName);
2151     }
2152 
2153     /**
2154      * Returns all the values for the tagged value with the specified name. The returned collection
2155      * will contains only String instances, or will be empty. Never null.
2156      * @see ModelElementFacade#findTaggedValues(String tagName)
2157      */
2158     public Collection<Object> findTaggedValues(String tagName)
2159     {
2160         return this.getSuperServiceOperation().findTaggedValues(tagName);
2161     }
2162 
2163     /**
2164      * Returns the fully qualified name of the model element. The fully qualified name includes
2165      * complete package qualified name of the underlying model element. The templates parameter will
2166      * be replaced by the correct one given the binding relation of the parameter to this element.
2167      * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
2168      */
2169     public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
2170     {
2171         return this.getSuperServiceOperation().getBindedFullyQualifiedName(bindedElement);
2172     }
2173 
2174     /**
2175      * Gets all constraints belonging to the model element.
2176      * @see ModelElementFacade#getConstraints()
2177      */
2178     public Collection<ConstraintFacade> getConstraints()
2179     {
2180         return this.getSuperServiceOperation().getConstraints();
2181     }
2182 
2183     /**
2184      * Returns the constraints of the argument kind that have been placed onto this model. Typical
2185      * kinds are "inv", "pre" and "post". Other kinds are possible.
2186      * @see ModelElementFacade#getConstraints(String kind)
2187      */
2188     public Collection<ConstraintFacade> getConstraints(String kind)
2189     {
2190         return this.getSuperServiceOperation().getConstraints(kind);
2191     }
2192 
2193     /**
2194      * Gets the documentation for the model element, The indent argument is prefixed to each line.
2195      * By default this method wraps lines after 64 characters.
2196      * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
2197      * @see ModelElementFacade#getDocumentation(String indent)
2198      */
2199     public String getDocumentation(String indent)
2200     {
2201         return this.getSuperServiceOperation().getDocumentation(indent);
2202     }
2203 
2204     /**
2205      * This method returns the documentation for this model element, with the lines wrapped after
2206      * the specified number of characters, values of less than 1 will indicate no line wrapping is
2207      * required. By default paragraphs are returned as HTML.
2208      * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
2209      * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
2210      */
2211     public String getDocumentation(String indent, int lineLength)
2212     {
2213         return this.getSuperServiceOperation().getDocumentation(indent, lineLength);
2214     }
2215 
2216     /**
2217      * This method returns the documentation for this model element, with the lines wrapped after
2218      * the specified number of characters, values of less than 1 will indicate no line wrapping is
2219      * required. HTML style determines if HTML Escaping is applied.
2220      * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
2221      */
2222     public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
2223     {
2224         return this.getSuperServiceOperation().getDocumentation(indent, lineLength, htmlStyle);
2225     }
2226 
2227     /**
2228      * The fully qualified name of this model element.
2229      * @see ModelElementFacade#getFullyQualifiedName()
2230      */
2231     public String getFullyQualifiedName()
2232     {
2233         return this.getSuperServiceOperation().getFullyQualifiedName();
2234     }
2235 
2236     /**
2237      * Returns the fully qualified name of the model element. The fully qualified name includes
2238      * complete package qualified name of the underlying model element.  If modelName is true, then
2239      * the original name of the model element (the name contained within the model) will be the name
2240      * returned, otherwise a name from a language mapping will be returned.
2241      * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
2242      */
2243     public String getFullyQualifiedName(boolean modelName)
2244     {
2245         return this.getSuperServiceOperation().getFullyQualifiedName(modelName);
2246     }
2247 
2248     /**
2249      * Returns the fully qualified name as a path, the returned value always starts with out a slash
2250      * '/'.
2251      * @see ModelElementFacade#getFullyQualifiedNamePath()
2252      */
2253     public String getFullyQualifiedNamePath()
2254     {
2255         return this.getSuperServiceOperation().getFullyQualifiedNamePath();
2256     }
2257 
2258     /**
2259      * Gets the unique identifier of the underlying model element.
2260      * @see ModelElementFacade#getId()
2261      */
2262     public String getId()
2263     {
2264         return this.getSuperServiceOperation().getId();
2265     }
2266 
2267     /**
2268      * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
2269      * are not represented by other properties, i.e. native, transient, volatile, synchronized,
2270      * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
2271      * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
2272      * JDK5 compiler level.
2273      * @see ModelElementFacade#getKeywords()
2274      */
2275     public Collection<String> getKeywords()
2276     {
2277         return this.getSuperServiceOperation().getKeywords();
2278     }
2279 
2280     /**
2281      * UML2: Retrieves a localized label for this named element.
2282      * @see ModelElementFacade#getLabel()
2283      */
2284     public String getLabel()
2285     {
2286         return this.getSuperServiceOperation().getLabel();
2287     }
2288 
2289     /**
2290      * The language mappings that have been set for this model element.
2291      * @see ModelElementFacade#getLanguageMappings()
2292      */
2293     public TypeMappings getLanguageMappings()
2294     {
2295         return this.getSuperServiceOperation().getLanguageMappings();
2296     }
2297 
2298     /**
2299      * Return the model containing this model element (multiple models may be loaded and processed
2300      * at the same time).
2301      * @see ModelElementFacade#getModel()
2302      */
2303     public ModelFacade getModel()
2304     {
2305         return this.getSuperServiceOperation().getModel();
2306     }
2307 
2308     /**
2309      * The name of the model element.
2310      * @see ModelElementFacade#getName()
2311      */
2312     public String getName()
2313     {
2314         return this.getSuperServiceOperation().getName();
2315     }
2316 
2317     /**
2318      * Gets the package to which this model element belongs.
2319      * @see ModelElementFacade#getPackage()
2320      */
2321     public ModelElementFacade getPackage()
2322     {
2323         return this.getSuperServiceOperation().getPackage();
2324     }
2325 
2326     /**
2327      * The name of this model element's package.
2328      * @see ModelElementFacade#getPackageName()
2329      */
2330     public String getPackageName()
2331     {
2332         return this.getSuperServiceOperation().getPackageName();
2333     }
2334 
2335     /**
2336      * Gets the package name (optionally providing the ability to retrieve the model name and not
2337      * the mapped name).
2338      * @see ModelElementFacade#getPackageName(boolean modelName)
2339      */
2340     public String getPackageName(boolean modelName)
2341     {
2342         return this.getSuperServiceOperation().getPackageName(modelName);
2343     }
2344 
2345     /**
2346      * Returns the package as a path, the returned value always starts with out a slash '/'.
2347      * @see ModelElementFacade#getPackagePath()
2348      */
2349     public String getPackagePath()
2350     {
2351         return this.getSuperServiceOperation().getPackagePath();
2352     }
2353 
2354     /**
2355      * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
2356      * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
2357      * the names of the containing namespaces starting at the root of the hierarchy and ending with
2358      * the name of the NamedElement itself.
2359      * @see ModelElementFacade#getQualifiedName()
2360      */
2361     public String getQualifiedName()
2362     {
2363         return this.getSuperServiceOperation().getQualifiedName();
2364     }
2365 
2366     /**
2367      * Gets the root package for the model element.
2368      * @see ModelElementFacade#getRootPackage()
2369      */
2370     public PackageFacade getRootPackage()
2371     {
2372         return this.getSuperServiceOperation().getRootPackage();
2373     }
2374 
2375     /**
2376      * Gets the dependencies for which this model element is the source.
2377      * @see ModelElementFacade#getSourceDependencies()
2378      */
2379     public Collection<DependencyFacade> getSourceDependencies()
2380     {
2381         return this.getSuperServiceOperation().getSourceDependencies();
2382     }
2383 
2384     /**
2385      * If this model element is the context of an activity graph, this represents that activity
2386      * graph.
2387      * @see ModelElementFacade#getStateMachineContext()
2388      */
2389     public StateMachineFacade getStateMachineContext()
2390     {
2391         return this.getSuperServiceOperation().getStateMachineContext();
2392     }
2393 
2394     /**
2395      * The collection of ALL stereotype names for this model element.
2396      * @see ModelElementFacade#getStereotypeNames()
2397      */
2398     public Collection<String> getStereotypeNames()
2399     {
2400         return this.getSuperServiceOperation().getStereotypeNames();
2401     }
2402 
2403     /**
2404      * Gets all stereotypes for this model element.
2405      * @see ModelElementFacade#getStereotypes()
2406      */
2407     public Collection<StereotypeFacade> getStereotypes()
2408     {
2409         return this.getSuperServiceOperation().getStereotypes();
2410     }
2411 
2412     /**
2413      * Return the TaggedValues associated with this model element, under all stereotypes.
2414      * @see ModelElementFacade#getTaggedValues()
2415      */
2416     public Collection<TaggedValueFacade> getTaggedValues()
2417     {
2418         return this.getSuperServiceOperation().getTaggedValues();
2419     }
2420 
2421     /**
2422      * Gets the dependencies for which this model element is the target.
2423      * @see ModelElementFacade#getTargetDependencies()
2424      */
2425     public Collection<DependencyFacade> getTargetDependencies()
2426     {
2427         return this.getSuperServiceOperation().getTargetDependencies();
2428     }
2429 
2430     /**
2431      * Get the template parameter for this model element having the parameterName
2432      * @see ModelElementFacade#getTemplateParameter(String parameterName)
2433      */
2434     public Object getTemplateParameter(String parameterName)
2435     {
2436         return this.getSuperServiceOperation().getTemplateParameter(parameterName);
2437     }
2438 
2439     /**
2440      * Get the template parameters for this model element
2441      * @see ModelElementFacade#getTemplateParameters()
2442      */
2443     public Collection<TemplateParameterFacade> getTemplateParameters()
2444     {
2445         return this.getSuperServiceOperation().getTemplateParameters();
2446     }
2447 
2448     /**
2449      * The visibility (i.e. public, private, protected or package) of the model element, will
2450      * attempt a lookup for these values in the language mappings (if any).
2451      * @see ModelElementFacade#getVisibility()
2452      */
2453     public String getVisibility()
2454     {
2455         return this.getSuperServiceOperation().getVisibility();
2456     }
2457 
2458     /**
2459      * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
2460      * is taken into account when searching for the stereotype), false otherwise.
2461      * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
2462      */
2463     public boolean hasExactStereotype(String stereotypeName)
2464     {
2465         return this.getSuperServiceOperation().hasExactStereotype(stereotypeName);
2466     }
2467 
2468     /**
2469      * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
2470      * pipe, semicolon, or << >>
2471      * @see ModelElementFacade#hasKeyword(String keywordName)
2472      */
2473     public boolean hasKeyword(String keywordName)
2474     {
2475         return this.getSuperServiceOperation().hasKeyword(keywordName);
2476     }
2477 
2478     /**
2479      * Returns true if the model element has the specified stereotype.  If the stereotype itself
2480      * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
2481      * one of the stereotype's ancestors has a matching name this method will return true, false
2482      * otherwise.
2483      * For example, if we have a certain stereotype called <<exception>> and a model element has a
2484      * stereotype called <<applicationException>> which extends <<exception>>, when calling this
2485      * method with 'stereotypeName' defined as 'exception' the method would return true since
2486      * <<applicationException>> inherits from <<exception>>.  If you want to check if the model
2487      * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
2488      * @see ModelElementFacade#hasStereotype(String stereotypeName)
2489      */
2490     public boolean hasStereotype(String stereotypeName)
2491     {
2492         return this.getSuperServiceOperation().hasStereotype(stereotypeName);
2493     }
2494 
2495     /**
2496      * True if there are target dependencies from this element that are instances of BindingFacade.
2497      * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
2498      * @see ModelElementFacade#isBindingDependenciesPresent()
2499      */
2500     public boolean isBindingDependenciesPresent()
2501     {
2502         return this.getSuperServiceOperation().isBindingDependenciesPresent();
2503     }
2504 
2505     /**
2506      * Indicates if any constraints are present on this model element.
2507      * @see ModelElementFacade#isConstraintsPresent()
2508      */
2509     public boolean isConstraintsPresent()
2510     {
2511         return this.getSuperServiceOperation().isConstraintsPresent();
2512     }
2513 
2514     /**
2515      * Indicates if any documentation is present on this model element.
2516      * @see ModelElementFacade#isDocumentationPresent()
2517      */
2518     public boolean isDocumentationPresent()
2519     {
2520         return this.getSuperServiceOperation().isDocumentationPresent();
2521     }
2522 
2523     /**
2524      * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
2525      * @see ModelElementFacade#isReservedWord()
2526      */
2527     public boolean isReservedWord()
2528     {
2529         return this.getSuperServiceOperation().isReservedWord();
2530     }
2531 
2532     /**
2533      * True is there are template parameters on this model element. For UML2, applies to Class,
2534      * Operation, Property, and Parameter.
2535      * @see ModelElementFacade#isTemplateParametersPresent()
2536      */
2537     public boolean isTemplateParametersPresent()
2538     {
2539         return this.getSuperServiceOperation().isTemplateParametersPresent();
2540     }
2541 
2542     /**
2543      * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
2544      * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
2545      * Enumerations and Interfaces, optionally applies on other model elements.
2546      * @see ModelElementFacade#isValidIdentifierName()
2547      */
2548     public boolean isValidIdentifierName()
2549     {
2550         return this.getSuperServiceOperation().isValidIdentifierName();
2551     }
2552 
2553     /**
2554      * Searches for the constraint with the specified 'name' on this model element, and if found
2555      * translates it using the specified 'translation' from a translation library discovered by the
2556      * framework.
2557      * @see ModelElementFacade#translateConstraint(String name, String translation)
2558      */
2559     public String translateConstraint(String name, String translation)
2560     {
2561         return this.getSuperServiceOperation().translateConstraint(name, translation);
2562     }
2563 
2564     /**
2565      * Translates all constraints belonging to this model element with the given 'translation'.
2566      * @see ModelElementFacade#translateConstraints(String translation)
2567      */
2568     public String[] translateConstraints(String translation)
2569     {
2570         return this.getSuperServiceOperation().translateConstraints(translation);
2571     }
2572 
2573     /**
2574      * Translates the constraints of the specified 'kind' belonging to this model element.
2575      * @see ModelElementFacade#translateConstraints(String kind, String translation)
2576      */
2577     public String[] translateConstraints(String kind, String translation)
2578     {
2579         return this.getSuperServiceOperation().translateConstraints(kind, translation);
2580     }
2581 
2582     /**
2583      * Finds the parameter on this operation having the given name, if no parameter is found, null
2584      * is returned instead.
2585      * @see OperationFacade#findParameter(String name)
2586      */
2587     public ParameterFacade findParameter(String name)
2588     {
2589         return this.getSuperServiceOperation().findParameter(name);
2590     }
2591 
2592     /**
2593      * Searches the given feature for the specified tag.
2594      * If the follow boolean is set to true then the search will continue from the class operation
2595      * to the class itself and then up the class hierarchy.
2596      * @see OperationFacade#findTaggedValue(String name, boolean follow)
2597      */
2598     public Object findTaggedValue(String name, boolean follow)
2599     {
2600         return this.getSuperServiceOperation().findTaggedValue(name, follow);
2601     }
2602 
2603     /**
2604      * A comma separated list of all argument names.
2605      * @see OperationFacade#getArgumentNames()
2606      */
2607     public String getArgumentNames()
2608     {
2609         return this.getSuperServiceOperation().getArgumentNames();
2610     }
2611 
2612     /**
2613      * A comma separated list of all types of each argument, in order.
2614      * @see OperationFacade#getArgumentTypeNames()
2615      */
2616     public String getArgumentTypeNames()
2617     {
2618         return this.getSuperServiceOperation().getArgumentTypeNames();
2619     }
2620 
2621     /**
2622      * Specification of an argument used to pass information into or out of an invocation of a
2623      * behavioral
2624      * feature. Parameters are allowed to be treated as connectable elements. Parameters have
2625      * support for
2626      * streaming, exceptions, and parameter sets.
2627      * @see OperationFacade#getArguments()
2628      */
2629     public Collection<ParameterFacade> getArguments()
2630     {
2631         return this.getSuperServiceOperation().getArguments();
2632     }
2633 
2634     /**
2635      * Constructs the operation call with the operation name
2636      * @see OperationFacade#getCall()
2637      */
2638     public String getCall()
2639     {
2640         return this.getSuperServiceOperation().getCall();
2641     }
2642 
2643     /**
2644      * Returns the concurrency modifier for this operation (i.e. concurrent, guarded or sequential)
2645      * of the model element, will attempt a lookup for these values in the language mappings (if
2646      * any).
2647      * @see OperationFacade#getConcurrency()
2648      */
2649     public String getConcurrency()
2650     {
2651         return this.getSuperServiceOperation().getConcurrency();
2652     }
2653 
2654     /**
2655      * A comma separated list containing all exceptions that this operation throws.  Exceptions are
2656      * determined through dependencies that have the target element stereotyped as <<Exception>>.
2657      * @see OperationFacade#getExceptionList()
2658      */
2659     public String getExceptionList()
2660     {
2661         return this.getSuperServiceOperation().getExceptionList();
2662     }
2663 
2664     /**
2665      * Returns a comma separated list of exceptions appended to the comma separated list of fully
2666      * qualified 'initialException' classes passed in to this method.
2667      * @see OperationFacade#getExceptionList(String initialExceptions)
2668      */
2669     public String getExceptionList(String initialExceptions)
2670     {
2671         return this.getSuperServiceOperation().getExceptionList(initialExceptions);
2672     }
2673 
2674     /**
2675      * A collection of all exceptions thrown by this operation.
2676      * @see OperationFacade#getExceptions()
2677      */
2678     public Collection<ModelElementFacade> getExceptions()
2679     {
2680         return this.getSuperServiceOperation().getExceptions();
2681     }
2682 
2683     /**
2684      * Return Type with multiplicity taken into account. UML14 does not allow multiplicity *.
2685      * @see OperationFacade#getGetterSetterReturnTypeName()
2686      */
2687     public String getGetterSetterReturnTypeName()
2688     {
2689         return this.getSuperServiceOperation().getGetterSetterReturnTypeName();
2690     }
2691 
2692     /**
2693      * the lower value for the multiplicity
2694      * -only applicable for UML2
2695      * @see OperationFacade#getLower()
2696      */
2697     public int getLower()
2698     {
2699         return this.getSuperServiceOperation().getLower();
2700     }
2701 
2702     /**
2703      * Returns the operation method body determined from UML sequence diagrams or other UML sources.
2704      * @see OperationFacade#getMethodBody()
2705      */
2706     public String getMethodBody()
2707     {
2708         return this.getSuperServiceOperation().getMethodBody();
2709     }
2710 
2711     /**
2712      * The operation this operation overrides, null if this operation is not overriding.
2713      * @see OperationFacade#getOverriddenOperation()
2714      */
2715     public OperationFacade getOverriddenOperation()
2716     {
2717         return this.getSuperServiceOperation().getOverriddenOperation();
2718     }
2719 
2720     /**
2721      * Gets the owner of this operation
2722      * @see OperationFacade#getOwner()
2723      */
2724     public ClassifierFacade getOwner()
2725     {
2726         return this.getSuperServiceOperation().getOwner();
2727     }
2728 
2729     /**
2730      * Return all parameters for the operation, including the return parameter.
2731      * @see OperationFacade#getParameters()
2732      */
2733     public Collection<ParameterFacade> getParameters()
2734     {
2735         return this.getSuperServiceOperation().getParameters();
2736     }
2737 
2738     /**
2739      * The name of the operation that handles postcondition constraints.
2740      * @see OperationFacade#getPostconditionName()
2741      */
2742     public String getPostconditionName()
2743     {
2744         return this.getSuperServiceOperation().getPostconditionName();
2745     }
2746 
2747     /**
2748      * The postcondition constraints belonging to this operation.
2749      * @see OperationFacade#getPostconditions()
2750      */
2751     public Collection<ConstraintFacade> getPostconditions()
2752     {
2753         return this.getSuperServiceOperation().getPostconditions();
2754     }
2755 
2756     /**
2757      * The call to the precondition operation.
2758      * @see OperationFacade#getPreconditionCall()
2759      */
2760     public String getPreconditionCall()
2761     {
2762         return this.getSuperServiceOperation().getPreconditionCall();
2763     }
2764 
2765     /**
2766      * The name of the operation that handles precondition constraints.
2767      * @see OperationFacade#getPreconditionName()
2768      */
2769     public String getPreconditionName()
2770     {
2771         return this.getSuperServiceOperation().getPreconditionName();
2772     }
2773 
2774     /**
2775      * The signature of the precondition operation.
2776      * @see OperationFacade#getPreconditionSignature()
2777      */
2778     public String getPreconditionSignature()
2779     {
2780         return this.getSuperServiceOperation().getPreconditionSignature();
2781     }
2782 
2783     /**
2784      * The precondition constraints belonging to this operation.
2785      * @see OperationFacade#getPreconditions()
2786      */
2787     public Collection<ConstraintFacade> getPreconditions()
2788     {
2789         return this.getSuperServiceOperation().getPreconditions();
2790     }
2791 
2792     /**
2793      * (UML2 Only). Get the actual return parameter (which may have stereotypes etc).
2794      * @see OperationFacade#getReturnParameter()
2795      */
2796     public ParameterFacade getReturnParameter()
2797     {
2798         return this.getSuperServiceOperation().getReturnParameter();
2799     }
2800 
2801     /**
2802      * The operation return type parameter.
2803      * @see OperationFacade#getReturnType()
2804      */
2805     public ClassifierFacade getReturnType()
2806     {
2807         return this.getSuperServiceOperation().getReturnType();
2808     }
2809 
2810     /**
2811      * Return the operation signature, including public/protested abstract returnType name plus
2812      * argument type and name
2813      * @see OperationFacade#getSignature()
2814      */
2815     public String getSignature()
2816     {
2817         return this.getSuperServiceOperation().getSignature();
2818     }
2819 
2820     /**
2821      * Returns the signature of the operation and optionally appends the argument names (if
2822      * withArgumentNames is true), otherwise returns the signature with just the types alone in the
2823      * signature.
2824      * @see OperationFacade#getSignature(boolean withArgumentNames)
2825      */
2826     public String getSignature(boolean withArgumentNames)
2827     {
2828         return this.getSuperServiceOperation().getSignature(withArgumentNames);
2829     }
2830 
2831     /**
2832      * Returns the signature of the operation and optionally appends the given 'argumentModifier' to
2833      * each argument.
2834      * @see OperationFacade#getSignature(String argumentModifier)
2835      */
2836     public String getSignature(String argumentModifier)
2837     {
2838         return this.getSuperServiceOperation().getSignature(argumentModifier);
2839     }
2840 
2841     /**
2842      * A comma-separated parameter list  (type and name of each parameter) of an operation.
2843      * @see OperationFacade#getTypedArgumentList()
2844      */
2845     public String getTypedArgumentList()
2846     {
2847         return this.getSuperServiceOperation().getTypedArgumentList();
2848     }
2849 
2850     /**
2851      * A comma-separated parameter list  (type and name of each parameter) of an operation with an
2852      * optional modifier (i.e final) before each parameter.
2853      * @see OperationFacade#getTypedArgumentList(String modifier)
2854      */
2855     public String getTypedArgumentList(String modifier)
2856     {
2857         return this.getSuperServiceOperation().getTypedArgumentList(modifier);
2858     }
2859 
2860     /**
2861      * the upper value for the multiplicity (will be -1 for *)
2862      * - only applicable for UML2
2863      * @see OperationFacade#getUpper()
2864      */
2865     public int getUpper()
2866     {
2867         return this.getSuperServiceOperation().getUpper();
2868     }
2869 
2870     /**
2871      * True is the operation is abstract.
2872      * @see OperationFacade#isAbstract()
2873      */
2874     public boolean isAbstract()
2875     {
2876         return this.getSuperServiceOperation().isAbstract();
2877     }
2878 
2879     /**
2880      * True if the operation has (i.e. throws any exceptions) false otherwise.
2881      * @see OperationFacade#isExceptionsPresent()
2882      */
2883     public boolean isExceptionsPresent()
2884     {
2885         return this.getSuperServiceOperation().isExceptionsPresent();
2886     }
2887 
2888     /**
2889      * IsLeaf property in the operation. If true, operation is final, cannot be extended or
2890      * implemented by a descendant. Default=false.
2891      * @see OperationFacade#isLeaf()
2892      */
2893     public boolean isLeaf()
2894     {
2895         return this.getSuperServiceOperation().isLeaf();
2896     }
2897 
2898     /**
2899      * UML2 only. If the return type parameter multiplicity>1 OR the operation multiplicity>1.
2900      * Default=false.
2901      * @see OperationFacade#isMany()
2902      */
2903     public boolean isMany()
2904     {
2905         return this.getSuperServiceOperation().isMany();
2906     }
2907 
2908     /**
2909      * UML2 only: If isMany (Collection type returned), is the type unique within the collection. 
2910      * Unique+Ordered determines CollectionType implementation of return result. Default=false.
2911      * @see OperationFacade#isOrdered()
2912      */
2913     public boolean isOrdered()
2914     {
2915         return this.getSuperServiceOperation().isOrdered();
2916     }
2917 
2918     /**
2919      * True if this operation overrides an operation defined in an ancestor class. An operation
2920      * overrides when the names of the operations as well as the types of the arguments are equal.
2921      * The return type may be different and is, as well as any exceptions, ignored.
2922      * @see OperationFacade#isOverriding()
2923      */
2924     public boolean isOverriding()
2925     {
2926         return this.getSuperServiceOperation().isOverriding();
2927     }
2928 
2929     /**
2930      * Whether any postcondition constraints are present on this operation.
2931      * @see OperationFacade#isPostconditionsPresent()
2932      */
2933     public boolean isPostconditionsPresent()
2934     {
2935         return this.getSuperServiceOperation().isPostconditionsPresent();
2936     }
2937 
2938     /**
2939      * Whether any precondition constraints are present on this operation.
2940      * @see OperationFacade#isPreconditionsPresent()
2941      */
2942     public boolean isPreconditionsPresent()
2943     {
2944         return this.getSuperServiceOperation().isPreconditionsPresent();
2945     }
2946 
2947     /**
2948      * Indicates whether or not this operation is a query operation.
2949      * @see OperationFacade#isQuery()
2950      */
2951     public boolean isQuery()
2952     {
2953         return this.getSuperServiceOperation().isQuery();
2954     }
2955 
2956     /**
2957      * True/false depending on whether or not the operation has a return type or not (i.e. a return
2958      * type of something other than void).
2959      * @see OperationFacade#isReturnTypePresent()
2960      */
2961     public boolean isReturnTypePresent()
2962     {
2963         return this.getSuperServiceOperation().isReturnTypePresent();
2964     }
2965 
2966     /**
2967      * True is the operation is static (only a single instance can be instantiated).
2968      * @see OperationFacade#isStatic()
2969      */
2970     public boolean isStatic()
2971     {
2972         return this.getSuperServiceOperation().isStatic();
2973     }
2974 
2975     /**
2976      * UML2 only: for Collection return type, is the type unique within the collection.
2977      * Unique+Ordered determines the returned CollectionType. Default=false.
2978      * @see OperationFacade#isUnique()
2979      */
2980     public boolean isUnique()
2981     {
2982         return this.getSuperServiceOperation().isUnique();
2983     }
2984 
2985     /**
2986      * The destination for any incoming messages.
2987      * @see ServiceOperation#getIncomingDestination()
2988      */
2989     public Destination getIncomingDestination()
2990     {
2991         return this.getSuperServiceOperation().getIncomingDestination();
2992     }
2993 
2994     /**
2995      * The destination for any outgoing messages.
2996      * @see ServiceOperation#getOutgoingDestination()
2997      */
2998     public Destination getOutgoingDestination()
2999     {
3000         return this.getSuperServiceOperation().getOutgoingDestination();
3001     }
3002 
3003     /**
3004      * The users of the service operation, these are the actor's that can access this operation.
3005      * @see ServiceOperation#getRoles()
3006      */
3007     public Collection<Role> getRoles()
3008     {
3009         return this.getSuperServiceOperation().getRoles();
3010     }
3011 
3012     /**
3013      * The service which owns the service operation.
3014      * @see ServiceOperation#getService()
3015      */
3016     public Service getService()
3017     {
3018         return this.getSuperServiceOperation().getService();
3019     }
3020 
3021     /**
3022      * Whether or not this operation represents an "incoming" message operation (i.e. it receives
3023      * messages from Queues or Topics).
3024      * @see ServiceOperation#isIncomingMessageOperation()
3025      */
3026     public boolean isIncomingMessageOperation()
3027     {
3028         return this.getSuperServiceOperation().isIncomingMessageOperation();
3029     }
3030 
3031     /**
3032      * Whether or not this is operation accepts incoming or outgoing messages.
3033      * @see ServiceOperation#isMessageOperation()
3034      */
3035     public boolean isMessageOperation()
3036     {
3037         return this.getSuperServiceOperation().isMessageOperation();
3038     }
3039 
3040     /**
3041      * Whether or not this service operation represents an "outgoing" messaging operation (i.e. it
3042      * sends messages to Queues or Topics).
3043      * @see ServiceOperation#isOutgoingMessageOperation()
3044      */
3045     public boolean isOutgoingMessageOperation()
3046     {
3047         return this.getSuperServiceOperation().isOutgoingMessageOperation();
3048     }
3049 
3050     /**
3051      * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
3052      */
3053     @Override
3054     public void initialize()
3055     {
3056         this.getSuperServiceOperation().initialize();
3057     }
3058 
3059     /**
3060      * @return Object getSuperServiceOperation().getValidationOwner()
3061      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
3062      */
3063     @Override
3064     public Object getValidationOwner()
3065     {
3066         Object owner = this.getSuperServiceOperation().getValidationOwner();
3067         return owner;
3068     }
3069 
3070     /**
3071      * @return String getSuperServiceOperation().getValidationName()
3072      * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
3073      */
3074     @Override
3075     public String getValidationName()
3076     {
3077         String name = this.getSuperServiceOperation().getValidationName();
3078         return name;
3079     }
3080 
3081     /**
3082      * @param validationMessages Collection<ModelValidationMessage>
3083      * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
3084      */
3085     @Override
3086     public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
3087     {
3088         this.getSuperServiceOperation().validateInvariants(validationMessages);
3089     }
3090 
3091     /**
3092      * The property that stores the name of the metafacade.
3093      */
3094     private static final String NAME_PROPERTY = "name";
3095     private static final String FQNAME_PROPERTY = "fullyQualifiedName";
3096 
3097     /**
3098      * @see Object#toString()
3099      */
3100     @Override
3101     public String toString()
3102     {
3103         final StringBuilder toString = new StringBuilder(this.getClass().getName());
3104         toString.append("[");
3105         try
3106         {
3107             toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
3108         }
3109         catch (final Throwable tryAgain)
3110         {
3111             try
3112             {
3113                 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
3114             }
3115             catch (final Throwable ignore)
3116             {
3117                 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
3118             }
3119         }
3120         toString.append("]");
3121         return toString.toString();
3122     }
3123 }