Software Disclaimer

Class UML 2.3::FinalState

Description:

A special kind of state signifying that the enclosing region is completed. If the enclosing region is directly contained in a state machine and all other regions in the state machine also are completed, then it means that the entire state machine is completed.

Direct Superclasses: State

Direct Subclasses:

Class Precedence List: FinalState, State, Namespace, RedefinableElement, Vertex, NamedElement, Element

Properties:

connection : ConnectionPointReference (0 *); -- source State
connectionPoint : Pseudostate (0 *); -- source State

The entry and exit pseudostates of a composite state. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite states.
{composite}
Subsets: Element.ownedElement
Opposite: Pseudostate.state

deferrableTrigger : Trigger (0 *); -- source State
doActivity : Behavior (0 1); -- source State
entry : Behavior (0 1); -- source State

An optional behavior that is executed whenever this state is entered regardless of the transition taken to reach the state. If defined, entry actions are always executed to completion prior to any internal behavior or transitions performed within the state.
{composite}
Subsets: Element.ownedElement

exit : Behavior (0 1); -- source State
isComposite : Boolean (1 1); -- source State
isOrthogonal : Boolean (1 1); -- source State
isSimple : Boolean (1 1); -- source State
isSubmachineState : Boolean (1 1); -- source State
redefinedState : State (0 1); -- source State
redefinitionContext : Classifier (1 1); -- source State
region : Region (0 *); -- source State
stateInvariant : Constraint (0 1); -- source State
submachine : StateMachine (0 1); -- source State
elementImport : ElementImport (0 *); -- source Namespace
importedMember : PackageableElement (0 *); -- source Namespace
member : NamedElement (0 *); -- source Namespace
ownedMember : NamedElement (0 *); -- source Namespace
ownedRule : Constraint (0 *); -- source Namespace
packageImport : PackageImport (0 *); -- source Namespace
isLeaf : Boolean (1 1); -- source RedefinableElement

Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
Default value: FALSE

redefinedElement : RedefinableElement (0 *); -- source RedefinableElement
container : Region (0 1); -- source Vertex
incoming : Transition (0 *); -- source Vertex
outgoing : Transition (0 *); -- source Vertex
clientDependency : Dependency (0 *); -- source NamedElement
name : String (0 1); -- source NamedElement
nameExpression : StringExpression (0 1); -- source NamedElement
namespace : Namespace (0 1); -- source NamedElement
qualifiedName : String (0 1); -- source NamedElement

A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself.
{readonly, derived}

visibility : VisibilityKind (0 1); -- source NamedElement
ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element

Constraints:

Signature: no_state_behavior() : Boolean;
Description: A final state has no state (doActivity) behavior.
Expression: self.doActivity->isEmpty()

Signature: no_regions() : Boolean;
Description: A final state cannot have regions.
Expression: self.region->size() = 0

Signature: no_outgoing_transitions() : Boolean;
Description: A final state cannot have any outgoing transitions.
Expression: self.outgoing->size() = 0

Signature: no_exit_behavior() : Boolean;
Description: A final state has no exit behavior.
Expression: self.exit->isEmpty()

Signature: no_entry_behavior() : Boolean;
Description: A final state has no entry behavior.
Expression: self.entry->isEmpty()

Signature: cannot_reference_submachine() : Boolean;
Description: A final state cannot reference a submachine.
Expression: self.submachine->isEmpty()

Operations:

No additional operations.



Send questions or comments to [email protected].