001// license-header java merge-point
002//
003// Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
004//
005package org.andromda.cartridges.ejb3.metafacades;
006
007import java.util.Collection;
008import java.util.List;
009import org.andromda.core.common.Introspector;
010import org.andromda.core.metafacade.MetafacadeBase;
011import org.andromda.core.metafacade.MetafacadeFactory;
012import org.andromda.core.metafacade.ModelValidationMessage;
013import org.andromda.metafacades.uml.ClassifierFacade;
014import org.andromda.metafacades.uml.ConstraintFacade;
015import org.andromda.metafacades.uml.DependencyFacade;
016import org.andromda.metafacades.uml.Destination;
017import org.andromda.metafacades.uml.ModelElementFacade;
018import org.andromda.metafacades.uml.ModelFacade;
019import org.andromda.metafacades.uml.OperationFacade;
020import org.andromda.metafacades.uml.PackageFacade;
021import org.andromda.metafacades.uml.ParameterFacade;
022import org.andromda.metafacades.uml.Role;
023import org.andromda.metafacades.uml.Service;
024import org.andromda.metafacades.uml.ServiceOperation;
025import org.andromda.metafacades.uml.StateMachineFacade;
026import org.andromda.metafacades.uml.StereotypeFacade;
027import org.andromda.metafacades.uml.TaggedValueFacade;
028import org.andromda.metafacades.uml.TemplateParameterFacade;
029import org.andromda.metafacades.uml.TypeMappings;
030import org.apache.log4j.Logger;
031
032/**
033 * TODO: Model Documentation for org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade
034 * MetafacadeLogic for EJB3SessionOperationFacade
035 *
036 * @see EJB3SessionOperationFacade
037 */
038public abstract class EJB3SessionOperationFacadeLogic
039    extends MetafacadeBase
040    implements EJB3SessionOperationFacade
041{
042    /**
043     * The underlying UML object
044     * @see Object
045     */
046    protected Object metaObject;
047
048    /** Create Metafacade implementation instance using the MetafacadeFactory from the context
049     * @param metaObjectIn
050     * @param context
051     */
052    protected EJB3SessionOperationFacadeLogic(Object metaObjectIn, String context)
053    {
054        super(metaObjectIn, getContext(context));
055        this.superServiceOperation =
056           (ServiceOperation)
057            MetafacadeFactory.getInstance().createFacadeImpl(
058                    "org.andromda.metafacades.uml.ServiceOperation",
059                    metaObjectIn,
060                    getContext(context));
061        this.metaObject = metaObjectIn;
062    }
063
064    /**
065     * The logger instance.
066     */
067    private static final Logger logger = Logger.getLogger(EJB3SessionOperationFacadeLogic.class);
068
069    /**
070     * Gets the context for this metafacade logic instance.
071     * @param context String. Set to EJB3SessionOperationFacade if null
072     * @return context String
073     */
074    private static String getContext(String context)
075    {
076        if (context == null)
077        {
078            context = "org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade";
079        }
080        return context;
081    }
082
083    private ServiceOperation superServiceOperation;
084    private boolean superServiceOperationInitialized = false;
085
086    /**
087     * Gets the ServiceOperation parent instance.
088     * @return this.superServiceOperation ServiceOperation
089     */
090    private ServiceOperation getSuperServiceOperation()
091    {
092        if (!this.superServiceOperationInitialized)
093        {
094            ((MetafacadeBase)this.superServiceOperation).setMetafacadeContext(this.getMetafacadeContext());
095            this.superServiceOperationInitialized = true;
096        }
097        return this.superServiceOperation;
098    }
099
100    /** Reset context only for non-root metafacades
101     * @param context
102     * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
103     */
104    @Override
105    public void resetMetafacadeContext(String context)
106    {
107        if (!this.contextRoot) // reset context only for non-root metafacades
108        {
109            context = getContext(context);  // to have same value as in original constructor call
110            setMetafacadeContext (context);
111            if (this.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}