## org.eclipse.uml2.uml
Interface ObjectFlow

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

    public interface ObjectFlow

extends ActivityEdge

A representation of the model object 'Object Flow'. An object flow is an activity edge that can have objects or data passing along it. Object flows have support for multicast/receive, token selection from object nodes, and transformation of tokens.

The following features are supported:

- `Is Multicast`
- `Is Multireceive`
- `Transformation`
- `Selection`

See Also:
  `UMLPackage.getObjectFlow()`

Field Summary

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

Method Summary
`Behavior` `getSelection()` Returns the value of the 'Selection' reference
`Behavior` `getTransformation()` Returns the value of the 'Transformation' reference
`boolean` `isMulticast()` Returns the value of the 'Is Multicast' attribute.
`boolean` `isMultireceive()` Returns the value of the 'Is Multireceive' attribute.
`void` `setIsMulticast(boolean value)` Sets the value of the '`Is Multicast`' attribute
`void` `setIsMultireceive(boolean value)` Sets the value of the '`Is Multireceive`' attribute
`void` `setSelection(Behavior value)` Sets the value of the '`Selection`' reference
`void` `setTransformation(Behavior value)` Sets the value of the '`Transformation`' reference
`boolean` `validateCompatibleTypes(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` Object nodes connected by an object flow, with optionally intervening control nodes, must have compatible types.
`boolean` `validateInputAndOutputParameter(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` A selection behavior has one input parameter and one output parameter.
`boolean` `validateIsMulticastOrIsMultireceive(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` isMulticast and isMultireceive cannot both be true.
`boolean` `validateNoActions(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` Object flows may not have actions at either end.
`boolean` `validateSameUpperBounds(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` Object nodes connected by an object flow, with optionally intervening control nodes, must have the same upper bounds.
`boolean` `validateSelectionBehaviour(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` An object flow may have a selection behavior only if has an object node as a source.
`boolean` `validateTarget(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` An edge with constant weight may not target an object node, or lead to an object node downstream with no intervening actions, that has an upper bound less than the weight.
`boolean` `validateTransformationBehaviour(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` A transformation behavior has one input parameter and one output parameter.

Methods inherited from interface org.eclipse.uml2.uml.ActivityEdge
`createGuard, createWeight, getActivity, getGuard, getInGroups, getInPartition, getInPartition, getInPartitions, getInStructuredNode, getInterrupts, getRedefinedEdge, getRedefinedEdge, getRedefinedEdges, getSource, getTarget, getWeight, setActivity, setGuard, setInStructuredNode, setInterrupts, setSource, setTarget, setWeight, validateOwned, validateSourceAndTarget, validateStructuredNode`

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

### isMulticast

    boolean isMulticast()

  Returns the value of the 'Is Multicast' attribute. The default value is `"false"`. Tells whether the objects in the flow are passed by multicasting.

  Returns:
    the value of the 'Is Multicast' attribute.
  See Also:
    `setIsMulticast(boolean)`, `UMLPackage.getObjectFlow_IsMulticast()`

### setIsMulticast

    void setIsMulticast(boolean value)

  Sets the value of the '`Is Multicast`' attribute.

  Parameters:
    `value` - the new value of the 'Is Multicast' attribute.
  See Also:
    `isMulticast()`

### isMultireceive

    boolean isMultireceive()

  Returns the value of the 'Is Multireceive' attribute. The default value is `"false"`. Tells whether the objects in the flow are gathered from respondents to multicasting.

  Returns:
    the value of the 'Is Multireceive' attribute.
  See Also:
    `setIsMultireceive(boolean)`, `UMLPackage.getObjectFlow_IsMultireceive()`

### setIsMultireceive

    void setIsMultireceive(boolean value)

  Sets the value of the '`Is Multireceive`' attribute.

  Parameters:
    `value` - the new value of the 'Is Multireceive' attribute.
  See Also:
    `isMultireceive()`

### getTransformation

    Behavior getTransformation()

  Returns the value of the 'Transformation' reference. Changes or replaces data tokens flowing along edge.

  Returns:
    the value of the 'Transformation' reference.
  See Also:
    `setTransformation(Behavior)`, `UMLPackage.getObjectFlow_Transformation()`

### setTransformation

    void setTransformation(Behavior value)

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

  Parameters:
    `value` - the new value of the 'Transformation' reference.
  See Also:
    `getTransformation()`

### getSelection

    Behavior getSelection()

  Returns the value of the 'Selection' reference. Selects tokens from a source object node.

  Returns:
    the value of the 'Selection' reference.
  See Also:
    `setSelection(Behavior)`, `UMLPackage.getObjectFlow_Selection()`

### setSelection

    void setSelection(Behavior value)

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

  Parameters:
    `value` - the new value of the 'Selection' reference.
  See Also:
    `getSelection()`

### validateNoActions

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

  Object flows may not have actions at either end. true

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

### validateCompatibleTypes

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

  Object nodes connected by an object flow, with optionally intervening control nodes, must have compatible types. In particular, the downstream object node type must be the same or a supertype of the upstream object node type. true

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

### validateSameUpperBounds

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

  Object nodes connected by an object flow, with optionally intervening control nodes, must have the same upper bounds. true

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

### validateTarget

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

  An edge with constant weight may not target an object node, or lead to an object node downstream with no intervening actions, that has an upper bound less than the weight. true

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

### validateTransformationBehaviour

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

  A transformation behavior has one input parameter and one output parameter. The input parameter must be the same as or a supertype of the type of object token coming from the source end. The output parameter must be the same or a subtype of the type of object token expected downstream. The behavior cannot have side effects. true

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

### validateSelectionBehaviour

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

  An object flow may have a selection behavior only if has an object node as a source. true

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

### validateInputAndOutputParameter

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

  A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same as or a supertype of the type of source object node. The output parameter must be the same or a subtype of the type of source object node. The behavior cannot have side effects. true

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

### validateIsMulticastOrIsMultireceive

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

  isMulticast and isMultireceive cannot both be true. 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.