001// license-header java merge-point
002//
003// Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
004//
005package org.andromda.cartridges.jbpm.metafacades;
006
007import java.util.Collection;
008import org.andromda.core.common.Introspector;
009import org.andromda.core.metafacade.MetafacadeBase;
010import org.andromda.core.metafacade.MetafacadeFactory;
011import org.andromda.core.metafacade.ModelValidationMessage;
012import org.andromda.metafacades.uml.ActionFacade;
013import org.andromda.metafacades.uml.ConstraintFacade;
014import org.andromda.metafacades.uml.DependencyFacade;
015import org.andromda.metafacades.uml.EventFacade;
016import org.andromda.metafacades.uml.GuardFacade;
017import org.andromda.metafacades.uml.ModelElementFacade;
018import org.andromda.metafacades.uml.ModelFacade;
019import org.andromda.metafacades.uml.PackageFacade;
020import org.andromda.metafacades.uml.StateMachineFacade;
021import org.andromda.metafacades.uml.StateVertexFacade;
022import org.andromda.metafacades.uml.StereotypeFacade;
023import org.andromda.metafacades.uml.TaggedValueFacade;
024import org.andromda.metafacades.uml.TemplateParameterFacade;
025import org.andromda.metafacades.uml.TransitionFacade;
026import org.andromda.metafacades.uml.TypeMappings;
027
028/**
029 * TODO: Model Documentation for org.andromda.cartridges.jbpm.metafacades.JBpmTransition
030 * MetafacadeLogic for JBpmTransition
031 *
032 * @see JBpmTransition
033 */
034public abstract class JBpmTransitionLogic
035    extends MetafacadeBase
036    implements JBpmTransition
037{
038    /**
039     * The underlying UML object
040     * @see Object
041     */
042    protected Object metaObject;
043
044    /** Create Metafacade implementation instance using the MetafacadeFactory from the context
045     * @param metaObjectIn
046     * @param context
047     */
048    protected JBpmTransitionLogic(Object metaObjectIn, String context)
049    {
050        super(metaObjectIn, getContext(context));
051        this.superTransitionFacade =
052           (TransitionFacade)
053            MetafacadeFactory.getInstance().createFacadeImpl(
054                    "org.andromda.metafacades.uml.TransitionFacade",
055                    metaObjectIn,
056                    getContext(context));
057        this.metaObject = metaObjectIn;
058    }
059
060    /**
061     * Gets the context for this metafacade logic instance.
062     * @param context String. Set to JBpmTransition if null
063     * @return context String
064     */
065    private static String getContext(String context)
066    {
067        if (context == null)
068        {
069            context = "org.andromda.cartridges.jbpm.metafacades.JBpmTransition";
070        }
071        return context;
072    }
073
074    private TransitionFacade superTransitionFacade;
075    private boolean superTransitionFacadeInitialized = false;
076
077    /**
078     * Gets the TransitionFacade parent instance.
079     * @return this.superTransitionFacade TransitionFacade
080     */
081    private TransitionFacade getSuperTransitionFacade()
082    {
083        if (!this.superTransitionFacadeInitialized)
084        {
085            ((MetafacadeBase)this.superTransitionFacade).setMetafacadeContext(this.getMetafacadeContext());
086            this.superTransitionFacadeInitialized = true;
087        }
088        return this.superTransitionFacade;
089    }
090
091    /** Reset context only for non-root metafacades
092     * @param context
093     * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
094     */
095    @Override
096    public void resetMetafacadeContext(String context)
097    {
098        if (!this.contextRoot) // reset context only for non-root metafacades
099        {
100            context = getContext(context);  // to have same value as in original constructor call
101            setMetafacadeContext (context);
102            if (this.superTransitionFacadeInitialized)
103            {
104                ((MetafacadeBase)this.superTransitionFacade).resetMetafacadeContext(context);
105            }
106        }
107    }
108
109    /**
110     * @return boolean true always
111     * @see JBpmTransition
112     */
113    public boolean isJBpmTransitionMetaType()
114    {
115        return true;
116    }
117
118    // --------------- attributes ---------------------
119
120   /**
121    * @see org.andromda.cartridges.jbpm.metafacades.JBpmTransition#getCondition()
122    * @return String
123    */
124    protected abstract String handleGetCondition();
125
126    private String __condition1a;
127    private boolean __condition1aSet = false;
128
129    /**
130     * TODO: Model Documentation for
131     * org.andromda.cartridges.jbpm.metafacades.JBpmTransition.condition
132     * @return (String)handleGetCondition()
133     */
134    public final String getCondition()
135    {
136        String condition1a = this.__condition1a;
137        if (!this.__condition1aSet)
138        {
139            // condition has no pre constraints
140            condition1a = handleGetCondition();
141            // condition has no post constraints
142            this.__condition1a = condition1a;
143            if (isMetafacadePropertyCachingEnabled())
144            {
145                this.__condition1aSet = true;
146            }
147        }
148        return condition1a;
149    }
150
151   /**
152    * @see org.andromda.cartridges.jbpm.metafacades.JBpmTransition#isTaskNode()
153    * @return boolean
154    */
155    protected abstract boolean handleIsTaskNode();
156
157    private boolean __taskNode2a;
158    private boolean __taskNode2aSet = false;
159
160    /**
161     * TODO: Model Documentation for
162     * org.andromda.cartridges.jbpm.metafacades.JBpmTransition.taskNode
163     * @return (boolean)handleIsTaskNode()
164     */
165    public final boolean isTaskNode()
166    {
167        boolean taskNode2a = this.__taskNode2a;
168        if (!this.__taskNode2aSet)
169        {
170            // taskNode has no pre constraints
171            taskNode2a = handleIsTaskNode();
172            // taskNode has no post constraints
173            this.__taskNode2a = taskNode2a;
174            if (isMetafacadePropertyCachingEnabled())
175            {
176                this.__taskNode2aSet = true;
177            }
178        }
179        return taskNode2a;
180    }
181
182   /**
183    * @see org.andromda.cartridges.jbpm.metafacades.JBpmTransition#isContainedInBusinessProcess()
184    * @return boolean
185    */
186    protected abstract boolean handleIsContainedInBusinessProcess();
187
188    private boolean __containedInBusinessProcess3a;
189    private boolean __containedInBusinessProcess3aSet = false;
190
191    /**
192     * True if this element is part of a business process usecase.
193     * @return (boolean)handleIsContainedInBusinessProcess()
194     */
195    public final boolean isContainedInBusinessProcess()
196    {
197        boolean containedInBusinessProcess3a = this.__containedInBusinessProcess3a;
198        if (!this.__containedInBusinessProcess3aSet)
199        {
200            // containedInBusinessProcess has no pre constraints
201            containedInBusinessProcess3a = handleIsContainedInBusinessProcess();
202            // containedInBusinessProcess has no post constraints
203            this.__containedInBusinessProcess3a = containedInBusinessProcess3a;
204            if (isMetafacadePropertyCachingEnabled())
205            {
206                this.__containedInBusinessProcess3aSet = true;
207            }
208        }
209        return containedInBusinessProcess3a;
210    }
211
212    /**
213     * @return true
214     * @see TransitionFacade
215     */
216    public boolean isTransitionFacadeMetaType()
217    {
218        return true;
219    }
220
221    /**
222     * @return true
223     * @see ModelElementFacade
224     */
225    public boolean isModelElementFacadeMetaType()
226    {
227        return true;
228    }
229
230    // ----------- delegates to TransitionFacade ------------
231    /**
232     * Copies all tagged values from the given ModelElementFacade to this model element facade.
233     * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
234     */
235    public void copyTaggedValues(ModelElementFacade element)
236    {
237        this.getSuperTransitionFacade().copyTaggedValues(element);
238    }
239
240    /**
241     * Finds the tagged value with the specified 'tagName'. In case there are more values the first
242     * one found will be returned.
243     * @see ModelElementFacade#findTaggedValue(String tagName)
244     */
245    public Object findTaggedValue(String tagName)
246    {
247        return this.getSuperTransitionFacade().findTaggedValue(tagName);
248    }
249
250    /**
251     * Returns all the values for the tagged value with the specified name. The returned collection
252     * will contains only String instances, or will be empty. Never null.
253     * @see ModelElementFacade#findTaggedValues(String tagName)
254     */
255    public Collection<Object> findTaggedValues(String tagName)
256    {
257        return this.getSuperTransitionFacade().findTaggedValues(tagName);
258    }
259
260    /**
261     * Returns the fully qualified name of the model element. The fully qualified name includes
262     * complete package qualified name of the underlying model element. The templates parameter will
263     * be replaced by the correct one given the binding relation of the parameter to this element.
264     * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
265     */
266    public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
267    {
268        return this.getSuperTransitionFacade().getBindedFullyQualifiedName(bindedElement);
269    }
270
271    /**
272     * Gets all constraints belonging to the model element.
273     * @see ModelElementFacade#getConstraints()
274     */
275    public Collection<ConstraintFacade> getConstraints()
276    {
277        return this.getSuperTransitionFacade().getConstraints();
278    }
279
280    /**
281     * Returns the constraints of the argument kind that have been placed onto this model. Typical
282     * kinds are "inv", "pre" and "post". Other kinds are possible.
283     * @see ModelElementFacade#getConstraints(String kind)
284     */
285    public Collection<ConstraintFacade> getConstraints(String kind)
286    {
287        return this.getSuperTransitionFacade().getConstraints(kind);
288    }
289
290    /**
291     * Gets the documentation for the model element, The indent argument is prefixed to each line.
292     * By default this method wraps lines after 64 characters.
293     * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
294     * @see ModelElementFacade#getDocumentation(String indent)
295     */
296    public String getDocumentation(String indent)
297    {
298        return this.getSuperTransitionFacade().getDocumentation(indent);
299    }
300
301    /**
302     * This method returns the documentation for this model element, with the lines wrapped after
303     * the specified number of characters, values of less than 1 will indicate no line wrapping is
304     * required. By default paragraphs are returned as HTML.
305     * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
306     * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
307     */
308    public String getDocumentation(String indent, int lineLength)
309    {
310        return this.getSuperTransitionFacade().getDocumentation(indent, lineLength);
311    }
312
313    /**
314     * This method returns the documentation for this model element, with the lines wrapped after
315     * the specified number of characters, values of less than 1 will indicate no line wrapping is
316     * required. HTML style determines if HTML Escaping is applied.
317     * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
318     */
319    public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
320    {
321        return this.getSuperTransitionFacade().getDocumentation(indent, lineLength, htmlStyle);
322    }
323
324    /**
325     * The fully qualified name of this model element.
326     * @see ModelElementFacade#getFullyQualifiedName()
327     */
328    public String getFullyQualifiedName()
329    {
330        return this.getSuperTransitionFacade().getFullyQualifiedName();
331    }
332
333    /**
334     * Returns the fully qualified name of the model element. The fully qualified name includes
335     * complete package qualified name of the underlying model element.  If modelName is true, then
336     * the original name of the model element (the name contained within the model) will be the name
337     * returned, otherwise a name from a language mapping will be returned.
338     * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
339     */
340    public String getFullyQualifiedName(boolean modelName)
341    {
342        return this.getSuperTransitionFacade().getFullyQualifiedName(modelName);
343    }
344
345    /**
346     * Returns the fully qualified name as a path, the returned value always starts with out a slash
347     * '/'.
348     * @see ModelElementFacade#getFullyQualifiedNamePath()
349     */
350    public String getFullyQualifiedNamePath()
351    {
352        return this.getSuperTransitionFacade().getFullyQualifiedNamePath();
353    }
354
355    /**
356     * Gets the unique identifier of the underlying model element.
357     * @see ModelElementFacade#getId()
358     */
359    public String getId()
360    {
361        return this.getSuperTransitionFacade().getId();
362    }
363
364    /**
365     * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
366     * are not represented by other properties, i.e. native, transient, volatile, synchronized,
367     * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
368     * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
369     * JDK5 compiler level.
370     * @see ModelElementFacade#getKeywords()
371     */
372    public Collection<String> getKeywords()
373    {
374        return this.getSuperTransitionFacade().getKeywords();
375    }
376
377    /**
378     * UML2: Retrieves a localized label for this named element.
379     * @see ModelElementFacade#getLabel()
380     */
381    public String getLabel()
382    {
383        return this.getSuperTransitionFacade().getLabel();
384    }
385
386    /**
387     * The language mappings that have been set for this model element.
388     * @see ModelElementFacade#getLanguageMappings()
389     */
390    public TypeMappings getLanguageMappings()
391    {
392        return this.getSuperTransitionFacade().getLanguageMappings();
393    }
394
395    /**
396     * Return the model containing this model element (multiple models may be loaded and processed
397     * at the same time).
398     * @see ModelElementFacade#getModel()
399     */
400    public ModelFacade getModel()
401    {
402        return this.getSuperTransitionFacade().getModel();
403    }
404
405    /**
406     * The name of the model element.
407     * @see ModelElementFacade#getName()
408     */
409    public String getName()
410    {
411        return this.getSuperTransitionFacade().getName();
412    }
413
414    /**
415     * Gets the package to which this model element belongs.
416     * @see ModelElementFacade#getPackage()
417     */
418    public ModelElementFacade getPackage()
419    {
420        return this.getSuperTransitionFacade().getPackage();
421    }
422
423    /**
424     * The name of this model element's package.
425     * @see ModelElementFacade#getPackageName()
426     */
427    public String getPackageName()
428    {
429        return this.getSuperTransitionFacade().getPackageName();
430    }
431
432    /**
433     * Gets the package name (optionally providing the ability to retrieve the model name and not
434     * the mapped name).
435     * @see ModelElementFacade#getPackageName(boolean modelName)
436     */
437    public String getPackageName(boolean modelName)
438    {
439        return this.getSuperTransitionFacade().getPackageName(modelName);
440    }
441
442    /**
443     * Returns the package as a path, the returned value always starts with out a slash '/'.
444     * @see ModelElementFacade#getPackagePath()
445     */
446    public String getPackagePath()
447    {
448        return this.getSuperTransitionFacade().getPackagePath();
449    }
450
451    /**
452     * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
453     * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
454     * the names of the containing namespaces starting at the root of the hierarchy and ending with
455     * the name of the NamedElement itself.
456     * @see ModelElementFacade#getQualifiedName()
457     */
458    public String getQualifiedName()
459    {
460        return this.getSuperTransitionFacade().getQualifiedName();
461    }
462
463    /**
464     * Gets the root package for the model element.
465     * @see ModelElementFacade#getRootPackage()
466     */
467    public PackageFacade getRootPackage()
468    {
469        return this.getSuperTransitionFacade().getRootPackage();
470    }
471
472    /**
473     * Gets the dependencies for which this model element is the source.
474     * @see ModelElementFacade#getSourceDependencies()
475     */
476    public Collection<DependencyFacade> getSourceDependencies()
477    {
478        return this.getSuperTransitionFacade().getSourceDependencies();
479    }
480
481    /**
482     * If this model element is the context of an activity graph, this represents that activity
483     * graph.
484     * @see ModelElementFacade#getStateMachineContext()
485     */
486    public StateMachineFacade getStateMachineContext()
487    {
488        return this.getSuperTransitionFacade().getStateMachineContext();
489    }
490
491    /**
492     * The collection of ALL stereotype names for this model element.
493     * @see ModelElementFacade#getStereotypeNames()
494     */
495    public Collection<String> getStereotypeNames()
496    {
497        return this.getSuperTransitionFacade().getStereotypeNames();
498    }
499
500    /**
501     * Gets all stereotypes for this model element.
502     * @see ModelElementFacade#getStereotypes()
503     */
504    public Collection<StereotypeFacade> getStereotypes()
505    {
506        return this.getSuperTransitionFacade().getStereotypes();
507    }
508
509    /**
510     * Return the TaggedValues associated with this model element, under all stereotypes.
511     * @see ModelElementFacade#getTaggedValues()
512     */
513    public Collection<TaggedValueFacade> getTaggedValues()
514    {
515        return this.getSuperTransitionFacade().getTaggedValues();
516    }
517
518    /**
519     * Gets the dependencies for which this model element is the target.
520     * @see ModelElementFacade#getTargetDependencies()
521     */
522    public Collection<DependencyFacade> getTargetDependencies()
523    {
524        return this.getSuperTransitionFacade().getTargetDependencies();
525    }
526
527    /**
528     * Get the template parameter for this model element having the parameterName
529     * @see ModelElementFacade#getTemplateParameter(String parameterName)
530     */
531    public Object getTemplateParameter(String parameterName)
532    {
533        return this.getSuperTransitionFacade().getTemplateParameter(parameterName);
534    }
535
536    /**
537     * Get the template parameters for this model element
538     * @see ModelElementFacade#getTemplateParameters()
539     */
540    public Collection<TemplateParameterFacade> getTemplateParameters()
541    {
542        return this.getSuperTransitionFacade().getTemplateParameters();
543    }
544
545    /**
546     * The visibility (i.e. public, private, protected or package) of the model element, will
547     * attempt a lookup for these values in the language mappings (if any).
548     * @see ModelElementFacade#getVisibility()
549     */
550    public String getVisibility()
551    {
552        return this.getSuperTransitionFacade().getVisibility();
553    }
554
555    /**
556     * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
557     * is taken into account when searching for the stereotype), false otherwise.
558     * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
559     */
560    public boolean hasExactStereotype(String stereotypeName)
561    {
562        return this.getSuperTransitionFacade().hasExactStereotype(stereotypeName);
563    }
564
565    /**
566     * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
567     * pipe, semicolon, or << >>
568     * @see ModelElementFacade#hasKeyword(String keywordName)
569     */
570    public boolean hasKeyword(String keywordName)
571    {
572        return this.getSuperTransitionFacade().hasKeyword(keywordName);
573    }
574
575    /**
576     * Returns true if the model element has the specified stereotype.  If the stereotype itself
577     * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
578     * one of the stereotype's ancestors has a matching name this method will return true, false
579     * otherwise.
580     * For example, if we have a certain stereotype called <<exception>> and a model element has a
581     * stereotype called <<applicationException>> which extends <<exception>>, when calling this
582     * method with 'stereotypeName' defined as 'exception' the method would return true since
583     * <<applicationException>> inherits from <<exception>>.  If you want to check if the model
584     * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
585     * @see ModelElementFacade#hasStereotype(String stereotypeName)
586     */
587    public boolean hasStereotype(String stereotypeName)
588    {
589        return this.getSuperTransitionFacade().hasStereotype(stereotypeName);
590    }
591
592    /**
593     * True if there are target dependencies from this element that are instances of BindingFacade.
594     * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
595     * @see ModelElementFacade#isBindingDependenciesPresent()
596     */
597    public boolean isBindingDependenciesPresent()
598    {
599        return this.getSuperTransitionFacade().isBindingDependenciesPresent();
600    }
601
602    /**
603     * Indicates if any constraints are present on this model element.
604     * @see ModelElementFacade#isConstraintsPresent()
605     */
606    public boolean isConstraintsPresent()
607    {
608        return this.getSuperTransitionFacade().isConstraintsPresent();
609    }
610
611    /**
612     * Indicates if any documentation is present on this model element.
613     * @see ModelElementFacade#isDocumentationPresent()
614     */
615    public boolean isDocumentationPresent()
616    {
617        return this.getSuperTransitionFacade().isDocumentationPresent();
618    }
619
620    /**
621     * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
622     * @see ModelElementFacade#isReservedWord()
623     */
624    public boolean isReservedWord()
625    {
626        return this.getSuperTransitionFacade().isReservedWord();
627    }
628
629    /**
630     * True is there are template parameters on this model element. For UML2, applies to Class,
631     * Operation, Property, and Parameter.
632     * @see ModelElementFacade#isTemplateParametersPresent()
633     */
634    public boolean isTemplateParametersPresent()
635    {
636        return this.getSuperTransitionFacade().isTemplateParametersPresent();
637    }
638
639    /**
640     * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
641     * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
642     * Enumerations and Interfaces, optionally applies on other model elements.
643     * @see ModelElementFacade#isValidIdentifierName()
644     */
645    public boolean isValidIdentifierName()
646    {
647        return this.getSuperTransitionFacade().isValidIdentifierName();
648    }
649
650    /**
651     * Searches for the constraint with the specified 'name' on this model element, and if found
652     * translates it using the specified 'translation' from a translation library discovered by the
653     * framework.
654     * @see ModelElementFacade#translateConstraint(String name, String translation)
655     */
656    public String translateConstraint(String name, String translation)
657    {
658        return this.getSuperTransitionFacade().translateConstraint(name, translation);
659    }
660
661    /**
662     * Translates all constraints belonging to this model element with the given 'translation'.
663     * @see ModelElementFacade#translateConstraints(String translation)
664     */
665    public String[] translateConstraints(String translation)
666    {
667        return this.getSuperTransitionFacade().translateConstraints(translation);
668    }
669
670    /**
671     * Translates the constraints of the specified 'kind' belonging to this model element.
672     * @see ModelElementFacade#translateConstraints(String kind, String translation)
673     */
674    public String[] translateConstraints(String kind, String translation)
675    {
676        return this.getSuperTransitionFacade().translateConstraints(kind, translation);
677    }
678
679    /**
680     * An action is a named element that is the fundamental unit of executable functionality. The
681     * execution
682     * of an action represents some transformation or processing in the modeled system, be it a
683     * computer
684     * system or otherwise. An action represents a single step within an activity, that is, one that
685     * is not
686     * further decomposed within the activity. An action has pre- and post-conditions.
687     * @see TransitionFacade#getEffect()
688     */
689    public ActionFacade getEffect()
690    {
691        return this.getSuperTransitionFacade().getEffect();
692    }
693
694    /**
695     * A representation of the model object 'Constraint'. A condition or restriction expressed in
696     * natural
697     * language text or in a machine readable language for the purpose of declaring some of the
698     * semantics
699     * of an element.
700     * @see TransitionFacade#getGuard()
701     */
702    public GuardFacade getGuard()
703    {
704        return this.getSuperTransitionFacade().getGuard();
705    }
706
707    /**
708     * A representation of the model object 'Vertex'. An abstraction of a node in a state machine
709     * graph. In
710     * general, it can be the source or destination of any number of transitions.
711     * @see TransitionFacade#getSource()
712     */
713    public StateVertexFacade getSource()
714    {
715        return this.getSuperTransitionFacade().getSource();
716    }
717
718    /**
719     * A representation of the model object 'Vertex'. An abstraction of a node in a state machine
720     * graph. In
721     * general, it can be the source or destination of any number of transitions.
722     * @see TransitionFacade#getTarget()
723     */
724    public StateVertexFacade getTarget()
725    {
726        return this.getSuperTransitionFacade().getTarget();
727    }
728
729    /**
730     * If a trigger is present on this transition, this event represents that trigger.
731     * @see TransitionFacade#getTrigger()
732     */
733    public EventFacade getTrigger()
734    {
735        return this.getSuperTransitionFacade().getTrigger();
736    }
737
738    /**
739     * TODO: Model Documentation for
740     * TransitionFacade.enteringActionState
741     * @see TransitionFacade#isEnteringActionState()
742     */
743    public boolean isEnteringActionState()
744    {
745        return this.getSuperTransitionFacade().isEnteringActionState();
746    }
747
748    /**
749     * TODO: Model Documentation for
750     * TransitionFacade.enteringDecisionPoint
751     * @see TransitionFacade#isEnteringDecisionPoint()
752     */
753    public boolean isEnteringDecisionPoint()
754    {
755        return this.getSuperTransitionFacade().isEnteringDecisionPoint();
756    }
757
758    /**
759     * TODO: Model Documentation for
760     * TransitionFacade.enteringFinalState
761     * @see TransitionFacade#isEnteringFinalState()
762     */
763    public boolean isEnteringFinalState()
764    {
765        return this.getSuperTransitionFacade().isEnteringFinalState();
766    }
767
768    /**
769     * TODO: Model Documentation for
770     * TransitionFacade.exitingActionState
771     * @see TransitionFacade#isExitingActionState()
772     */
773    public boolean isExitingActionState()
774    {
775        return this.getSuperTransitionFacade().isExitingActionState();
776    }
777
778    /**
779     * TODO: Model Documentation for
780     * TransitionFacade.exitingDecisionPoint
781     * @see TransitionFacade#isExitingDecisionPoint()
782     */
783    public boolean isExitingDecisionPoint()
784    {
785        return this.getSuperTransitionFacade().isExitingDecisionPoint();
786    }
787
788    /**
789     * TODO: Model Documentation for
790     * TransitionFacade.exitingInitialState
791     * @see TransitionFacade#isExitingInitialState()
792     */
793    public boolean isExitingInitialState()
794    {
795        return this.getSuperTransitionFacade().isExitingInitialState();
796    }
797
798    /**
799     * TODO: Model Documentation for TransitionFacade.triggerPresent
800     * @see TransitionFacade#isTriggerPresent()
801     */
802    public boolean isTriggerPresent()
803    {
804        return this.getSuperTransitionFacade().isTriggerPresent();
805    }
806
807    /**
808     * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
809     */
810    @Override
811    public void initialize()
812    {
813        this.getSuperTransitionFacade().initialize();
814    }
815
816    /**
817     * @return Object getSuperTransitionFacade().getValidationOwner()
818     * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
819     */
820    @Override
821    public Object getValidationOwner()
822    {
823        Object owner = this.getSuperTransitionFacade().getValidationOwner();
824        return owner;
825    }
826
827    /**
828     * @return String getSuperTransitionFacade().getValidationName()
829     * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
830     */
831    @Override
832    public String getValidationName()
833    {
834        String name = this.getSuperTransitionFacade().getValidationName();
835        return name;
836    }
837
838    /**
839     * @param validationMessages Collection<ModelValidationMessage>
840     * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
841     */
842    @Override
843    public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
844    {
845        this.getSuperTransitionFacade().validateInvariants(validationMessages);
846    }
847
848    /**
849     * The property that stores the name of the metafacade.
850     */
851    private static final String NAME_PROPERTY = "name";
852    private static final String FQNAME_PROPERTY = "fullyQualifiedName";
853
854    /**
855     * @see Object#toString()
856     */
857    @Override
858    public String toString()
859    {
860        final StringBuilder toString = new StringBuilder(this.getClass().getName());
861        toString.append("[");
862        try
863        {
864            toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
865        }
866        catch (final Throwable tryAgain)
867        {
868            try
869            {
870                toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
871            }
872            catch (final Throwable ignore)
873            {
874                // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
875            }
876        }
877        toString.append("]");
878        return toString.toString();
879    }
880}