## org.eclipse.uml2.uml
Interface DecisionNode

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

    public interface DecisionNode

extends ControlNode

A representation of the model object 'Decision Node'. A decision node is a control node that chooses between outgoing flows.

The following features are supported:

- `Decision Input`
- `Decision Input Flow`

See Also:
  `UMLPackage.getDecisionNode()`

Field Summary

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

Method Summary
`Behavior` `getDecisionInput()` Returns the value of the 'Decision Input' reference
`ObjectFlow` `getDecisionInputFlow()` Returns the value of the 'Decision Input Flow' reference
`void` `setDecisionInput(Behavior value)` Sets the value of the '`Decision Input`' reference
`void` `setDecisionInputFlow(ObjectFlow value)` Sets the value of the '`Decision Input Flow`' reference
`boolean` `validateDecisionInputFlowIncoming(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` The decisionInputFlow of a decision node must be an incoming edge of the decision node.
`boolean` `validateEdges(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` The edges coming into and out of a decision node, other than the decision input flow (if any), must be either all object flows or all control flows.

`boolean`

`validateIncomingControlOneInputParameter(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)`
If the decision node has a decision input flow and an incoming control flow, then a decision input behavior has one input parameter whose type is the same as or a supertype of the type of object tokens offered on the decision input flow.

`boolean` `validateIncomingObjectOneInputParameter(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` If the decision node has no decision input flow and an incoming object flow, then a decision input behavior has one input parameter whose type is the same as or a supertype of the type of object tokens offered on the incoming edge.
`boolean` `validateIncomingOutgoingEdges(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` A decision node has one or two incoming edges and at least one outgoing edge.
`boolean` `validateParameters(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` A decision input behavior has no output parameters, no in-out parameters and one return parameter.

`boolean`

`validateTwoInputParameters(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)`
If the decision node has a decision input flow and an second incoming object flow, then a decision input behavior has two input parameters, the first of which has a type that is the same as or a supertype of the type of the type of object tokens offered on the nondecision input flow and the second of which has a type that is the same as or a supertype of the type of object tokens offered on the decision input flow.

`boolean` `validateZeroInputParameters(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` If the decision node has no decision input flow and an incoming control flow, then a decision input behavior has zero input parameters.

Methods inherited from interface org.eclipse.uml2.uml.ActivityNode
`getActivity, getIncoming, getIncoming, getIncomings, getInGroups, getInInterruptibleRegions, getInPartition, getInPartition, getInPartitions, getInStructuredNode, getOutgoing, getOutgoing, getOutgoings, getRedefinedNode, getRedefinedNode, getRedefinedNodes, setActivity, setInStructuredNode, validateOwned, validateOwnedStructuredNode`

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

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

Method Detail

### getDecisionInput

    Behavior getDecisionInput()

  Returns the value of the 'Decision Input' reference. Provides input to guard specifications on edges outgoing from the decision node.

  Returns:
    the value of the 'Decision Input' reference.
  See Also:
    `setDecisionInput(Behavior)`, `UMLPackage.getDecisionNode_DecisionInput()`

### setDecisionInput

    void setDecisionInput(Behavior value)

  Sets the value of the '`Decision Input`' reference.

  Parameters:
    `value` - the new value of the 'Decision Input' reference.
  See Also:
    `getDecisionInput()`

### getDecisionInputFlow

    ObjectFlow getDecisionInputFlow()

  Returns the value of the 'Decision Input Flow' reference. An additional edge incoming to the decision node that provides a decision input value.

  Returns:
    the value of the 'Decision Input Flow' reference.
  See Also:
    `setDecisionInputFlow(ObjectFlow)`, `UMLPackage.getDecisionNode_DecisionInputFlow()`

### setDecisionInputFlow

    void setDecisionInputFlow(ObjectFlow value)

  Sets the value of the '`Decision Input Flow`' reference.

  Parameters:
    `value` - the new value of the 'Decision Input Flow' reference.
  See Also:
    `getDecisionInputFlow()`

### validateIncomingOutgoingEdges

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

  A decision node has one or two incoming edges and at least one outgoing edge. true

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

### validateEdges

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

  The edges coming into and out of a decision node, other than the decision input flow (if any), must be either all object flows or all control flows. true

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

### validateDecisionInputFlowIncoming

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

  The decisionInputFlow of a decision node must be an incoming edge of the decision node. true

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

### validateParameters

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

  A decision input behavior has no output parameters, no in-out parameters and one return parameter. true

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

### validateZeroInputParameters

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

  If the decision node has no decision input flow and an incoming control flow, then a decision input behavior has zero input parameters. true

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

### validateIncomingObjectOneInputParameter

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

  If the decision node has no decision input flow and an incoming object flow, then a decision input behavior has one input parameter whose type is the same as or a supertype of the type of object tokens offered on the incoming edge. true

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

### validateIncomingControlOneInputParameter

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

  If the decision node has a decision input flow and an incoming control flow, then a decision input behavior has one input parameter whose type is the same as or a supertype of the type of object tokens offered on the decision input flow. true

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

### validateTwoInputParameters

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

  If the decision node has a decision input flow and an second incoming object flow, then a decision input behavior has two input parameters, the first of which has a type that is the same as or a supertype of the type of the type of object tokens offered on the nondecision input flow and the second of which has a type that is the same as or a supertype of the type of object tokens offered on the decision input flow. true

  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.