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: StateDirect Subclasses: Class Precedence List: FinalState,
State,
Namespace,
RedefinableElement,
Vertex,
NamedElement,
ElementProperties:
![](/se-interop/image/down-arrow.png)
connection :
ConnectionPointReference (0 *); -- source
State![](/se-interop/image/down-arrow.png)
connectionPoint :
Pseudostate (0 *); -- source
State![](/se-interop/image/down-arrow.png)
deferrableTrigger :
Trigger (0 *); -- source
State![](/se-interop/image/down-arrow.png)
doActivity :
Behavior (0 1); -- source
State![](/se-interop/image/down-arrow.png)
entry :
Behavior (0 1); -- source
State![](/se-interop/image/down-arrow.png)
exit :
Behavior (0 1); -- source
State![](/se-interop/image/down-arrow.png)
isComposite : Boolean (1 1); -- source
State![](/se-interop/image/down-arrow.png)
isOrthogonal : Boolean (1 1); -- source
State![](/se-interop/image/right-arrow.png)
isSimple : Boolean (1 1); -- source
State A state with isSimple=true is said to be a simple state. A simple state
does not have any regions and it does not refer to any submachine state
machine.
{
readonly,
derived}
Default value: TRUE
![](/se-interop/image/down-arrow.png)
isSubmachineState : Boolean (1 1); -- source
State![](/se-interop/image/down-arrow.png)
redefinedState :
State (0 1); -- source
State![](/se-interop/image/down-arrow.png)
redefinitionContext :
Classifier (1 1); -- source
State![](/se-interop/image/down-arrow.png)
region :
Region (0 *); -- source
State![](/se-interop/image/right-arrow.png)
stateInvariant :
Constraint (0 1); -- source
State Specifies conditions that are always true when this state is the current
state. In protocol state machines, state invariants are additional conditions
to the preconditions of the outgoing transitions, and to the postcondition
of the incoming transitions.
{
composite}
Subsets: Element.ownedElement
![](/se-interop/image/down-arrow.png)
submachine :
StateMachine (0 1); -- source
State![](/se-interop/image/down-arrow.png)
elementImport :
ElementImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
importedMember :
PackageableElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
member :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
ownedMember :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
ownedRule :
Constraint (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
packageImport :
PackageImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
isLeaf : Boolean (1 1); -- source
RedefinableElement![](/se-interop/image/down-arrow.png)
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png)
container :
Region (0 1); -- source
Vertex![](/se-interop/image/down-arrow.png)
incoming :
Transition (0 *); -- source
Vertex![](/se-interop/image/down-arrow.png)
outgoing :
Transition (0 *); -- source
Vertex![](/se-interop/image/down-arrow.png)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
namespace :
Namespace (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
visibility :
VisibilityKind (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
ownedComment :
Comment (0 *); -- source
Element![](/se-interop/image/down-arrow.png)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png)
owner :
Element (0 1); -- source
ElementConstraints:
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].