org.eclipse.uml2.uml
Interface Pseudostate

All Superinterfaces:
Element, EModelElement, EObject, NamedElement, Notifier, Vertex

public interface Pseudostate
extends Vertex

A representation of the model object 'Pseudostate'. A pseudostate is an abstraction that encompasses different types of transient vertices in the state machine graph.

The following features are supported:

See Also:
UMLPackage.getPseudostate()

Field Summary
 
Fields inherited from interface org.eclipse.uml2.uml.NamedElement
SEPARATOR
 
Method Summary
 PseudostateKind getKind()
          Returns the value of the 'Kind' attribute.
 State getState()
          Returns the value of the 'State' container reference.
 StateMachine getStateMachine()
          Returns the value of the 'State Machine' container reference.
 void setKind(PseudostateKind value)
          Sets the value of the 'Kind' attribute
 void setState(State value)
          Sets the value of the 'State' container reference
 void setStateMachine(StateMachine value)
          Sets the value of the 'State Machine' container reference
 boolean validateChoiceVertex(DiagnosticChain diagnostics, Map context)
           In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition.
 boolean validateForkVertex(DiagnosticChain diagnostics, Map context)
           In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition.
 boolean validateHistoryVertices(DiagnosticChain diagnostics, Map context)
           History vertices can have at most one outgoing transition.
 boolean validateInitialVertex(DiagnosticChain diagnostics, Map context)
           An initial vertex can have at most one outgoing transition.
 boolean validateJoinVertex(DiagnosticChain diagnostics, Map context)
           In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition.
 boolean validateJunctionVertex(DiagnosticChain diagnostics, Map context)
           In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition.
 boolean validateOutgoingFromInitial(DiagnosticChain diagnostics, Map context)
           The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard.
 boolean validateTransitionsIncoming(DiagnosticChain diagnostics, Map context)
           All transitions incoming a join vertex must originate in different regions of an orthogonal state.
 boolean validateTransitionsOutgoing(DiagnosticChain diagnostics, Map context)
           All transitions outgoing a fork vertex must target states in different regions of an orthogonal state.
 
Methods inherited from interface org.eclipse.uml2.uml.Vertex
containingStateMachine, getContainer, getIncoming, getIncoming, getIncomings, getOutgoing, getOutgoing, getOutgoings, setContainer
 
Methods inherited from interface org.eclipse.uml2.uml.NamedElement
allNamespaces, allOwningPackages, createDependency, createNameExpression, getClientDependencies, getClientDependency, getClientDependency, getLabel, getLabel, getName, getNameExpression, getNamespace, getQualifiedName, getVisibility, isDistinguishableFrom, isSetName, isSetVisibility, separator, setName, setNameExpression, setVisibility, unsetName, unsetVisibility, validateHasNoQualifiedName, validateHasQualifiedName, validateVisibilityNeedsOwnership
 
Methods inherited from interface org.eclipse.uml2.uml.Element
addKeyword, allOwnedElements, applyStereotype, createEAnnotation, createOwnedComment, destroy, getApplicableStereotype, getApplicableStereotypes, getAppliedStereotype, getAppliedStereotypes, getAppliedSubstereotype, getAppliedSubstereotypes, getKeywords, getModel, getNearestPackage, getOwnedComments, getOwnedElements, getOwner, getRelationships, getRelationships, getRequiredStereotype, getRequiredStereotypes, getSourceDirectedRelationships, getSourceDirectedRelationships, getStereotypeApplication, getStereotypeApplications, getTargetDirectedRelationships, getTargetDirectedRelationships, getValue, hasKeyword, hasValue, isStereotypeApplicable, isStereotypeApplied, isStereotypeRequired, mustBeOwned, removeKeyword, setValue, unapplyStereotype, validateHasOwner, validateNotOwnSelf
 
Methods inherited from interface org.eclipse.emf.ecore.EModelElement
getEAnnotation, getEAnnotations
 
Methods inherited from interface org.eclipse.emf.ecore.EObject
eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eIsProxy, eIsSet, eResource, eSet, eUnset
 
Methods inherited from interface org.eclipse.emf.common.notify.Notifier
eAdapters, eDeliver, eNotify, eSetDeliver
 

Method Detail

getKind

public PseudostateKind getKind()
Returns the value of the 'Kind' attribute. The default value is "initial". The literals are from the enumeration PseudostateKind. Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice.

Returns:
the value of the 'Kind' attribute.
See Also:
PseudostateKind, Pseudostate.setKind(PseudostateKind), UMLPackage.getPseudostate_Kind()

setKind

public void setKind(PseudostateKind value)
Sets the value of the 'Kind' attribute.

Parameters:
value - the new value of the 'Kind' attribute.
See Also:
PseudostateKind, Pseudostate.getKind()

getStateMachine

public StateMachine getStateMachine()
Returns the value of the 'State Machine' container reference. It is bidirectional and its opposite is 'Connection Point'. The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint.

Returns:
the value of the 'State Machine' container reference.
See Also:
Pseudostate.setStateMachine(StateMachine), UMLPackage.getPseudostate_StateMachine(), StateMachine.getConnectionPoints()

setStateMachine

public void setStateMachine(StateMachine value)
Sets the value of the 'State Machine' container reference.

Parameters:
value - the new value of the 'State Machine' container reference.
See Also:
Pseudostate.getStateMachine()

getState

public State getState()
Returns the value of the 'State' container reference. It is bidirectional and its opposite is 'Connection Point'. The State that owns this pseudostate and in which it appears.

Returns:
the value of the 'State' container reference.
See Also:
Pseudostate.setState(State), UMLPackage.getPseudostate_State(), State.getConnectionPoints()

setState

public void setState(State value)
Sets the value of the 'State' container reference.

Parameters:
value - the new value of the 'State' container reference.
See Also:
Pseudostate.getState()

validateInitialVertex

public boolean validateInitialVertex(DiagnosticChain diagnostics,
                                     Map context)
An initial vertex can have at most one outgoing transition. (self.kind = #initial) implies (self.outgoing->size <= 1)


validateHistoryVertices

public boolean validateHistoryVertices(DiagnosticChain diagnostics,
                                       Map context)
History vertices can have at most one outgoing transition. ((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies (self.outgoing->size <= 1)


validateJoinVertex

public boolean validateJoinVertex(DiagnosticChain diagnostics,
                                  Map context)
In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition. (self.kind = #join) implies ((self.outgoing->size = 1) and (self.incoming->size >= 2))


validateTransitionsIncoming

public boolean validateTransitionsIncoming(DiagnosticChain diagnostics,
                                           Map context)
All transitions incoming a join vertex must originate in different regions of an orthogonal state. (self.kind = #join) implies self.incoming->forAll (t1, t2 | t1<>t2 implies (self.stateMachine.LCA(t1.source, t2.source).container.isOrthogonal))


validateForkVertex

public boolean validateForkVertex(DiagnosticChain diagnostics,
                                  Map context)
In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition. (self.kind = #fork) implies ((self.incoming->size = 1) and (self.outgoing->size >= 2))


validateTransitionsOutgoing

public boolean validateTransitionsOutgoing(DiagnosticChain diagnostics,
                                           Map context)
All transitions outgoing a fork vertex must target states in different regions of an orthogonal state. (self.kind = #fork) implies self.outgoing->forAll (t1, t2 | t1<>t2 implies (self.stateMachine.LCA(t1.target, t2.target).container.isOrthogonal))


validateJunctionVertex

public boolean validateJunctionVertex(DiagnosticChain diagnostics,
                                      Map context)
In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition. (self.kind = #junction) implies ((self.incoming->size >= 1) and (self.outgoing->size >= 1))


validateChoiceVertex

public boolean validateChoiceVertex(DiagnosticChain diagnostics,
                                    Map context)
In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition. (self.kind = #choice) implies ((self.incoming->size >= 1) and (self.outgoing->size >= 1))


validateOutgoingFromInitial

public boolean validateOutgoingFromInitial(DiagnosticChain diagnostics,
                                           Map context)
The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard. (self.kind = #initial) implies (self.outgoing.guard->isEmpty() and self.outgoing.trigger->isEmpty())


Copyright 2003, 2006 IBM Corporation and others.
All Rights Reserved.