## org.eclipse.uml2.uml
Interface ReadLinkAction

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

    public interface ReadLinkAction

extends LinkAction

A representation of the model object 'Read Link Action'. A read link action is a link action that navigates across associations to retrieve objects on one end.

The following features are supported:

- `Result`

See Also:
  `UMLPackage.getReadLinkAction()`

Field Summary

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

Method Summary
`OutputPin` `createResult(java.lang.String name, Type type)` Creates a new `OutputPin`,with the specified 'Name', and 'Type', and sets the 'Result' containment reference
`OutputPin` `getResult()` Returns the value of the 'Result' containment reference.
`void` `setResult(OutputPin value)` Sets the value of the '`Result`' containment reference
`boolean` `validateCompatibleMultiplicity(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` The multiplicity of the open association end must be compatible with the multiplicity of the result output pin.
`boolean` `validateNavigableOpenEnd(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` The open end must be navigable.
`boolean` `validateOneOpenEnd(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` Exactly one link-end data specification (the 'open' end) must not have an end object input pin.
`boolean` `validateTypeAndOrdering(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` The type and ordering of the result output pin are same as the type and ordering of the open association end.
`boolean` `validateVisibility(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` Visibility of the open end must allow access to the object performing the action.

Methods inherited from interface org.eclipse.uml2.uml.LinkAction
`association, createEndData, createEndData, createInputValue, createInputValue, getEndData, getInputValue, getInputValue, getInputValues, validateNotStatic, validateSameAssociation, validateSamePins`

Methods inherited from interface org.eclipse.uml2.uml.Action
`createLocalPostcondition, createLocalPostcondition, createLocalPrecondition, createLocalPrecondition, getContext, getInput, getInput, getInputs, getLocalPostcondition, getLocalPostcondition, getLocalPostconditions, getLocalPrecondition, getLocalPrecondition, getLocalPreconditions, getOutput, getOutput, getOutputs`

Methods inherited from interface org.eclipse.uml2.uml.ExecutableNode
`createHandler, getHandlers`

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

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

Method Detail

### getResult

    OutputPin getResult()

  Returns the value of the 'Result' containment reference.

  This feature subsets the following features:

  - '`Output`'
  The pin on which are put the objects participating in the association at the end not specified by the inputs.

  Returns:
    the value of the 'Result' containment reference.
  See Also:
    `setResult(OutputPin)`, `UMLPackage.getReadLinkAction_Result()`

### setResult

    void setResult(OutputPin value)

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

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

### createResult

    OutputPin createResult(java.lang.String name,
                           Type type)

  Creates a new `OutputPin`,with the specified 'Name', and 'Type', and sets the 'Result' containment reference.

  Parameters:
    `name` - The 'Name' for the new `OutputPin`, or `null`.
    `type` - The 'Type' for the new `OutputPin`, or `null`.
  Returns:
    The new `OutputPin`.
  See Also:
    `getResult()`

### validateOneOpenEnd

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

  Exactly one link-end data specification (the 'open' end) must not have an end object input pin. self.endData->select(ed | ed.value->size() = 0)->size() = 1

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

### validateTypeAndOrdering

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

  The type and ordering of the result output pin are same as the type and ordering of the open association end. let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in self.result.type = openend.type and self.result.ordering = openend.ordering

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

### validateCompatibleMultiplicity

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

  The multiplicity of the open association end must be compatible with the multiplicity of the result output pin. let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in openend.multiplicity.compatibleWith(self.result.multiplicity)

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

### validateNavigableOpenEnd

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

  The open end must be navigable. let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in openend.isNavigable()

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

### validateVisibility

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

  Visibility of the open end must allow access to the object performing the action. let host : Classifier = self.context in let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in openend.visibility = #public or self.endData->exists(oed | not oed.end = openend and (host = oed.end.participant or (openend.visibility = #protected and host.allSupertypes->includes(oed.end.participant))))

  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.