## org.eclipse.uml2.uml
Interface Pseudostate

All Superinterfaces:
  Element, org.eclipse.emf.ecore.EModelElement, org.eclipse.emf.ecore.EObject, NamedElement, org.eclipse.emf.common.notify.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:

- `Kind`
- `State Machine`
- `State`

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(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition.
`boolean` `validateForkVertex(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition.
`boolean` `validateHistoryVertices(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` History vertices can have at most one outgoing transition.
`boolean` `validateInitialVertex(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` An initial vertex can have at most one outgoing transition.
`boolean` `validateJoinVertex(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition.
`boolean` `validateJunctionVertex(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition.
`boolean` `validateOutgoingFromInitial(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard.
`boolean` `validateTransitionsIncoming(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` All transitions incoming a join vertex must originate in different regions of an orthogonal state.
`boolean` `validateTransitionsOutgoing(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> 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, createUsage, 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

    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`, `setKind(PseudostateKind)`, `UMLPackage.getPseudostate_Kind()`

### setKind

    void setKind(PseudostateKind value)

  Sets the value of the '`Kind`' attribute.

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

### getStateMachine

    StateMachine getStateMachine()

  Returns the value of the 'State Machine' container reference. It is bidirectional and its opposite is '`Connection Point`'.

  This feature subsets the following features:

  - '`Namespace`'
  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:
    `setStateMachine(StateMachine)`, `UMLPackage.getPseudostate_StateMachine()`, `StateMachine.getConnectionPoints()`

### setStateMachine

    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:
    `getStateMachine()`

### getState

    State getState()

  Returns the value of the 'State' container reference. It is bidirectional and its opposite is '`Connection Point`'.

  This feature subsets the following features:

  - '`Owner`'
  The State that owns this pseudostate and in which it appears.

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

### setState

    void setState(State value)

  Sets the value of the '`State`' container reference.

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

### validateInitialVertex

    boolean validateInitialVertex(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                  java.util.Map<java.lang.Object,java.lang.Object> context)

  An initial vertex can have at most one outgoing transition. (self.kind = #initial) implies (self.outgoing->size <= 1)

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### validateHistoryVertices

    boolean validateHistoryVertices(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                    java.util.Map<java.lang.Object,java.lang.Object> context)

  History vertices can have at most one outgoing transition. ((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies (self.outgoing->size <= 1)

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### validateJoinVertex

    boolean validateJoinVertex(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                               java.util.Map<java.lang.Object,java.lang.Object> 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))

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### validateTransitionsIncoming

    boolean validateTransitionsIncoming(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                        java.util.Map<java.lang.Object,java.lang.Object> 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))

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### validateForkVertex

    boolean validateForkVertex(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                               java.util.Map<java.lang.Object,java.lang.Object> 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))

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### validateTransitionsOutgoing

    boolean validateTransitionsOutgoing(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                        java.util.Map<java.lang.Object,java.lang.Object> 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))

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### validateJunctionVertex

    boolean validateJunctionVertex(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                   java.util.Map<java.lang.Object,java.lang.Object> 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))

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### validateChoiceVertex

    boolean validateChoiceVertex(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                 java.util.Map<java.lang.Object,java.lang.Object> 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))

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### validateOutgoingFromInitial

    boolean validateOutgoingFromInitial(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                        java.util.Map<java.lang.Object,java.lang.Object> 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())

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

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