## org.eclipse.uml2.uml
Interface Transition

All Superinterfaces:
  Element, org.eclipse.emf.ecore.EModelElement, org.eclipse.emf.ecore.EObject, NamedElement, Namespace, org.eclipse.emf.common.notify.Notifier, RedefinableElement

All Known Subinterfaces:
  ProtocolTransition

    public interface Transition

extends Namespace, RedefinableElement

A representation of the model object 'Transition'. A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type.

The following features are supported:

- `Kind`
- `Container`
- `Source`
- `Target`
- `Redefined Transition`
- `Guard`
- `Effect`
- `Trigger`

See Also:
  `UMLPackage.getTransition()`

Field Summary

Fields inherited from interface org.eclipse.uml2.uml.NamedElement
`SEPARATOR`

Fields inherited from interface org.eclipse.uml2.uml.NamedElement
`SEPARATOR`

Method Summary
`StateMachine` `containingStateMachine()` The query containingStateMachine() returns the state machine that contains the transition either directly or transitively.
`Behavior` `createEffect(java.lang.String name, org.eclipse.emf.ecore.EClass eClass)` Creates a new `Behavior`, with the specified 'Name', and sets the 'Effect' containment reference
`Constraint` `createGuard(java.lang.String name)` Creates a new `Constraint`,with the specified 'Name', and sets the 'Guard' reference
`Constraint` `createGuard(java.lang.String name, org.eclipse.emf.ecore.EClass eClass)` Creates a new `Constraint`, with the specified 'Name', and sets the 'Guard' reference
`Trigger` `createTrigger(java.lang.String name)` Creates a new `Trigger`, with the specified 'Name', and appends it to the 'Trigger' containment reference list
`Region` `getContainer()` Returns the value of the 'Container' container reference.
`Behavior` `getEffect()` Returns the value of the 'Effect' containment reference.
`Constraint` `getGuard()` Returns the value of the 'Guard' reference.
`TransitionKind` `getKind()` Returns the value of the 'Kind' attribute.
`Transition` `getRedefinedTransition()` Returns the value of the 'Redefined Transition' reference.
`Vertex` `getSource()` Returns the value of the 'Source' reference
`Vertex` `getTarget()` Returns the value of the 'Target' reference
`Trigger` `getTrigger(java.lang.String name)` Retrieves the first `Trigger` with the specified 'Name' from the 'Trigger' containment reference list
`Trigger` `getTrigger(java.lang.String name, boolean ignoreCase, boolean createOnDemand)` Retrieves the first `Trigger` with the specified 'Name' from the 'Trigger' containment reference list
`org.eclipse.emf.common.util.EList<Trigger>` `getTriggers()` Returns the value of the 'Trigger' containment reference list.
`Classifier` `redefinitionContext()` The redefinition context of a transition is the nearest containing statemachine.
`void` `setContainer(Region value)` Sets the value of the '`Container`' container reference
`void` `setEffect(Behavior value)` Sets the value of the '`Effect`' containment reference
`void` `setGuard(Constraint value)` Sets the value of the '`Guard`' reference
`void` `setKind(TransitionKind value)` Sets the value of the '`Kind`' attribute
`void` `setRedefinedTransition(Transition value)` Sets the value of the '`Redefined Transition`' reference
`void` `setSource(Vertex value)` Sets the value of the '`Source`' reference
`void` `setTarget(Vertex value)` Sets the value of the '`Target`' reference
`boolean` `validateForkSegmentGuards(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` A fork segment must not have guards or triggers.
`boolean` `validateForkSegmentState(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` A fork segment must always target a state.
`boolean` `validateInitialTransition(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype <<create>>.
`boolean` `validateJoinSegmentGuards(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` A join segment must not have guards or triggers.
`boolean` `validateJoinSegmentState(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` A join segment must always originate from a state.
`boolean` `validateOutgoingPseudostates(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` Transitions outgoing pseudostates may not have a trigger.
`boolean` `validateSignaturesCompatible(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` In case of more than one trigger, the signatures of these must be compatible in case the parameters of the signal are assigned to local variables/attributes.

Methods inherited from interface org.eclipse.uml2.uml.Namespace

`createElementImport, createElementImport, createOwnedRule, createOwnedRule, createPackageImport, createPackageImport, excludeCollisions, getElementImport, getElementImport, getElementImports, getImportedElements, getImportedMember, getImportedMember, getImportedMembers, getImportedPackages, getMember, getMember, getMembers, getNamesOfMember, getOwnedMember, getOwnedMember, getOwnedMembers, getOwnedRule, getOwnedRule, getOwnedRules, getPackageImport, getPackageImport, getPackageImports, importMembers, membersAreDistinguishable, validateMembersDistinguishable`

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, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Methods inherited from interface org.eclipse.uml2.uml.RedefinableElement
`getRedefinedElement, getRedefinedElement, getRedefinedElements, getRedefinitionContext, getRedefinitionContext, getRedefinitionContexts, isConsistentWith, isLeaf, isRedefinitionContextValid, setIsLeaf, validateRedefinitionConsistent, validateRedefinitionContextValid`

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, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Method Detail

### getKind

    TransitionKind getKind()

  Returns the value of the 'Kind' attribute. The default value is `"external"`. The literals are from the enumeration `TransitionKind`. Indicates the precise type of the transition.

  Returns:
    the value of the 'Kind' attribute.
  See Also:
    `TransitionKind`, `setKind(TransitionKind)`, `UMLPackage.getTransition_Kind()`

### setKind

    void setKind(TransitionKind value)

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

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

### getContainer

    Region getContainer()

  Returns the value of the 'Container' container reference. It is bidirectional and its opposite is '`Transition`'.

  This feature subsets the following features:

  - '`Namespace`'
  Designates the region that owns this transition.

  Returns:
    the value of the 'Container' container reference.
  See Also:
    `setContainer(Region)`, `UMLPackage.getTransition_Container()`, `Region.getTransitions()`

### setContainer

    void setContainer(Region value)

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

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

### getTarget

    Vertex getTarget()

  Returns the value of the 'Target' reference. Designates the target vertex that is reached when the transition is taken.

  Returns:
    the value of the 'Target' reference.
  See Also:
    `setTarget(Vertex)`, `UMLPackage.getTransition_Target()`

### setTarget

    void setTarget(Vertex value)

  Sets the value of the '`Target`' reference.

  Parameters:
    `value` - the new value of the 'Target' reference.
  See Also:
    `getTarget()`

### getRedefinedTransition

    Transition getRedefinedTransition()

  Returns the value of the 'Redefined Transition' reference.

  This feature subsets the following features:

  - '`Redefined Element`'
  The transition that is redefined by this transition.

  Returns:
    the value of the 'Redefined Transition' reference.
  See Also:
    `setRedefinedTransition(Transition)`, `UMLPackage.getTransition_RedefinedTransition()`

### setRedefinedTransition

    void setRedefinedTransition(Transition value)

  Sets the value of the '`Redefined Transition`' reference.

  Parameters:
    `value` - the new value of the 'Redefined Transition' reference.
  See Also:
    `getRedefinedTransition()`

### getGuard

    Constraint getGuard()

  Returns the value of the 'Guard' reference.

  This feature subsets the following features:

  - '`Owned Rule`'
  A guard is a constraint that provides a fine-grained control over the firing of the transition. The guard is evaluated when an event occurrence is dispatched by the state machine. If the guard is true at that time, the transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed.

  Returns:
    the value of the 'Guard' reference.
  See Also:
    `setGuard(Constraint)`, `UMLPackage.getTransition_Guard()`

### setGuard

    void setGuard(Constraint value)

  Sets the value of the '`Guard`' reference.

  Parameters:
    `value` - the new value of the 'Guard' reference.
  See Also:
    `getGuard()`

### createGuard

    Constraint createGuard(java.lang.String name,
                           org.eclipse.emf.ecore.EClass eClass)

  Creates a new `Constraint`, with the specified 'Name', and sets the 'Guard' reference.

  Parameters:
    `name` - The 'Name' for the new `Constraint`, or `null`.
    `eClass` - The Ecore class of the `Constraint` to create.
  Returns:
    The new `Constraint`.
  See Also:
    `getGuard()`

### createGuard

    Constraint createGuard(java.lang.String name)

  Creates a new `Constraint`,with the specified 'Name', and sets the 'Guard' reference.

  Parameters:
    `name` - The 'Name' for the new `Constraint`, or `null`.
  Returns:
    The new `Constraint`.
  See Also:
    `getGuard()`

### getEffect

    Behavior getEffect()

  Returns the value of the 'Effect' containment reference.

  This feature subsets the following features:

  - '`Owned Element`'
  Specifies an optional behavior to be performed when the transition fires.

  Returns:
    the value of the 'Effect' containment reference.
  See Also:
    `setEffect(Behavior)`, `UMLPackage.getTransition_Effect()`

### setEffect

    void setEffect(Behavior value)

  Sets the value of the '`Effect`' containment reference.

  Parameters:
    `value` - the new value of the 'Effect' containment reference.
  See Also:
    `getEffect()`

### createEffect

    Behavior createEffect(java.lang.String name,
                          org.eclipse.emf.ecore.EClass eClass)

  Creates a new `Behavior`, with the specified 'Name', and sets the 'Effect' containment reference.

  Parameters:
    `name` - The 'Name' for the new `Behavior`, or `null`.
    `eClass` - The Ecore class of the `Behavior` to create.
  Returns:
    The new `Behavior`.
  See Also:
    `getEffect()`

### getTriggers

    org.eclipse.emf.common.util.EList<Trigger> getTriggers()

  Returns the value of the 'Trigger' containment reference list. The list contents are of type `Trigger`. Specifies the triggers that may fire the transition.

  Returns:
    the value of the 'Trigger' containment reference list.
  See Also:
    `UMLPackage.getTransition_Trigger()`

### createTrigger

    Trigger createTrigger(java.lang.String name)

  Creates a new `Trigger`, with the specified 'Name', and appends it to the 'Trigger' containment reference list.

  Parameters:
    `name` - The 'Name' for the new `Trigger`, or `null`.
  Returns:
    The new `Trigger`.
  See Also:
    `getTriggers()`

### getTrigger

    Trigger getTrigger(java.lang.String name)

  Retrieves the first `Trigger` with the specified 'Name' from the 'Trigger' containment reference list.

  Parameters:
    `name` - The 'Name' of the `Trigger` to retrieve, or `null`.
  Returns:
    The first `Trigger` with the specified 'Name', or `null`.
  See Also:
    `getTriggers()`

### getTrigger

    Trigger getTrigger(java.lang.String name,
                       boolean ignoreCase,
                       boolean createOnDemand)

  Retrieves the first `Trigger` with the specified 'Name' from the 'Trigger' containment reference list.

  Parameters:
    `name` - The 'Name' of the `Trigger` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `createOnDemand` - Whether to create a `Trigger` on demand if not found.
  Returns:
    The first `Trigger` with the specified 'Name', or `null`.
  See Also:
    `getTriggers()`

### getSource

    Vertex getSource()

  Returns the value of the 'Source' reference. Designates the originating vertex (state or pseudostate) of the transition.

  Returns:
    the value of the 'Source' reference.
  See Also:
    `setSource(Vertex)`, `UMLPackage.getTransition_Source()`

### setSource

    void setSource(Vertex value)

  Sets the value of the '`Source`' reference.

  Parameters:
    `value` - the new value of the 'Source' reference.
  See Also:
    `getSource()`

### validateForkSegmentGuards

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

  A fork segment must not have guards or triggers. (source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty())

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

### validateJoinSegmentGuards

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

  A join segment must not have guards or triggers. (target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty())

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

### validateForkSegmentState

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

  A fork segment must always target a state. (source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State))

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

### validateJoinSegmentState

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

  A join segment must always originate from a state. (target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (source.oclIsKindOf(State))

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

### validateOutgoingPseudostates

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

  Transitions outgoing pseudostates may not have a trigger. source.oclIsKindOf(Pseudostate) and (source.kind <> #initial)) implies trigger->isEmpty()

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

### validateInitialTransition

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

  An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype <<create>>. self.source.oclIsKindOf(Pseudostate) implies (self.source.oclAsType(Pseudostate).kind = #initial) implies (self.source.container = self.stateMachine.top) implies ((self.trigger->isEmpty) or (self.trigger.stereotype.name = 'create'))

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

### validateSignaturesCompatible

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

  In case of more than one trigger, the signatures of these must be compatible in case the parameters of the signal are assigned to local variables/attributes. true

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

### redefinitionContext

    Classifier redefinitionContext()

  The redefinition context of a transition is the nearest containing statemachine. result = let sm = containingStateMachine() in if sm.context->isEmpty() or sm.general->notEmpty() then sm else sm.context endif

### containingStateMachine

    StateMachine containingStateMachine()

  The query containingStateMachine() returns the state machine that contains the transition either directly or transitively. result = container.containingStateMachine()

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