Class UML 2.5::State
Description:
A State models a situation during which some (usually implicit) invariant
condition holds.
Direct Superclasses: RedefinableElement,
Namespace,
VertexDirect Subclasses: FinalStateClass Precedence List: State,
RedefinableElement,
Namespace,
Vertex,
NamedElement,
ElementProperties:
![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
connection :
ConnectionPointReference (0 *); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
connectionPoint :
Pseudostate (0 *); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
deferrableTrigger :
Trigger (0 *); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
doActivity :
Behavior (0 1); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
entry :
Behavior (0 1); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
exit :
Behavior (0 1); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
isComposite : Boolean (1 1); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
isOrthogonal : Boolean (1 1); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
isSimple : Boolean (1 1); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
isSubmachineState : Boolean (1 1); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
redefinedState :
State (0 1); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
redefinitionContext :
Classifier (1 1); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
region :
Region (0 *); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
stateInvariant :
Constraint (0 1); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
submachine :
StateMachine (0 1); -- source
State![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
isLeaf : Boolean (1 1); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
elementImport :
ElementImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
importedMember :
PackageableElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
member :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
ownedMember :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
ownedRule :
Constraint (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
packageImport :
PackageImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
container :
Region (0 1); -- source
Vertex![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
incoming :
Transition (0 *); -- source
Vertex![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
outgoing :
Transition (0 *); -- source
Vertex![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
namespace :
Namespace (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
visibility :
VisibilityKind (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
ownedComment :
Comment (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=159003%3ACBC9867F4B12FCDACBC57BD6E18E28DC)
owner :
Element (0 1); -- source
ElementConstraints:
No additional constraints.
Operations:
Signature: redefinitionContext.1() : Classifier;
Description: The redefinition context of a State is the nearest containing StateMachine.
Expression: result = (let sm : StateMachine = containingStateMachine() in if sm._'context' = null or sm.general->notEmpty() then sm else sm._'context' endif)
Signature: isSubmachineState.1() : Boolean;
Description: Only submachine State references another StateMachine.
Expression: result = (submachine <> null)
Signature: isSimple.1() : Boolean;
Description: A simple State is a State without any regions.
Expression: result = ((region->isEmpty()) and not isSubmachineState())
Signature: isRedefinitionContextValid(redefinedElement : RedefinableElement; ) : Boolean;
Description: The query isRedefinitionContextValid() specifies whether the redefinition
contexts of a State are properly related to the redefinition contexts of
the specified State to allow this element to redefine the other. This means
that the containing Region of a redefining State must redefine the containing
Region of the redefined State.
Expression: result = (if redefinedElement.oclIsKindOf(State) then let redefinedState : State = redefinedElement.oclAsType(State) in container.redefinedElement.oclAsType(Region)->exists(r:Region | r.subvertex->includes(redefinedState)) else false endif)
Signature: isOrthogonal.1() : Boolean;
Description: An orthogonal State is a composite state with at least 2 regions.
Expression: result = (region->size () > 1)
Signature: isConsistentWith(redefiningElement : RedefinableElement; ) : Boolean;
Description: The query isConsistentWith() specifies that a redefining State is consistent
with a redefined State provided that the redefining State is an extension
of the redefined State A simple State can be redefined (extended) to become
a composite State (by adding one or more Regions) and a composite State
can be redefined (extended) by adding Regions and by adding Vertices, States,
and Transitions to inherited Regions. All States may add or replace entry,
exit, and 'doActivity' Behaviors.
Expression: result = (-- the following is merely a default body; it is expected that the specific form of this constraint will be specified by profiles true)
Signature: isComposite.1() : Boolean;
Description: A composite State is a State with at least one Region.
Expression: result = (region->notEmpty())
Signature: containingStateMachine() : StateMachine;
Description: The query containingStateMachine() returns the StateMachine that contains
the State either directly or transitively.
Expression: result = (container.containingStateMachine())
Send questions or comments to
[email protected].