uk.ac.ucl.cs.uml.jmi.BehavioralElements.Actions.ReadWriteActions
Interface CreateLinkAction
- All Superinterfaces:
- Action, Element, ExtObject, LinkAction, ModelElement, PrimitiveAction, javax.jmi.reflect.RefBaseObject, javax.jmi.reflect.RefFeatured, javax.jmi.reflect.RefObject, WriteLinkAction
- All Known Subinterfaces:
- CreateLinkObjectAction
- All Known Implementing Classes:
- CreateLinkAction_Impl, CreateLinkObjectAction_Impl
public interface CreateLinkAction
- extends WriteLinkAction
This action creates a link or link object for an association or
association class. This action has no output pin, because links
are not necessarily values that can be passed to and from
actions. When the action creates a link object, the object could
be returned on output pin, but it is not for consistency with
links. This allows actions to remain unchanged when an
association is changed to an association class or vice versa.
The semantics of CreateLinkObjectAction applies to creating link
objects with CreateLinkAction.
This action also supports the destruction of existing links of
the association that connect any of the objects of the new link.
This option is available on an end-by-end basis, and causes all
links of the association emanating from the specified ends to be
destroyed before the new link is created. If the link already
exists, then it is not destroyed under this option. Otherwise,
recreating an existing link has no effect. The semantics is
undefined for creating a link for an association class that is
abstract. The semantics is undefined for creating a link that
violates the upper multiplicity of one of its association ends.
A new link violates the upper multiplicity of an end if the
cardinality of that end after the link is created would be
greater than the upper multiplicity of that end. The cardinality
of an end is equal to the number of links with objects
participating in the other ends that are the same as those
participating in those other ends in the new link, and with
qualifier values on all ends the same as the new link, if any.
The semantics is undefined for creating a link that has an
association end with changeability frozen after initialization
of the other end objects, unless the link being created already
exists. Objects participating in the association across from an
unfrozen end can have links created as long as the objects
across from the frozen ends are still being initialized. This
means that objects participating in links with two or more
frozen ends cannot have links created unless all the linked
objects are being initialized. Creating ordered association
ends requires an insertion point for a new link using the
insertAt input pin of LinkEndCreationData. The pin is of type
UnlimitedInteger with multiplicity of 1..1. A pin value that is
a positive integer less than or equal to the current number of
links means to insert the new link at that position in the
sequence of existing links, with the integer one meaning the new
link will be first in the sequence. A value of unlimited for
insertAt means to insert the new link at the end of the
sequence. The semantics is undefined for value of zero or an
integer greater than the number of existing links. The insertAt
input pin does not exist for unordered association ends.
Reinserting an existing end at a new position moves the end to
that position.
Methods inherited from interface uk.ac.ucl.cs.uml.jmi.BehavioralElements.Actions.ReadWriteActions.LinkAction |
getEndData |
Methods inherited from interface uk.ac.ucl.cs.uml.jmi.BehavioralElements.Actions.ActionFoundation.Action |
getAntecedent, getAvailableInput, getAvailableOutput, getConsequent, getGroup, getInputPin, getIsReadOnly, getJumpHandler, getOutputPin, setGroup, setIsReadOnly |
Methods inherited from interface uk.ac.ucl.cs.uml.jmi.Foundation.Core.ModelElement |
getAsArgument, getBehavior, getClientDependency, getComment, getConstraint, getContainer, getDefaultElement, getIsSpecification, getName, getNamespace, getPackage, getPresentation, getReferenceTag, getSourceFlow, getStereotype, getSupplierDependency, getTaggedValue, getTargetFlow, getTemplate, getTemplateArgument, getTemplateParameter, getVisibility, setDefaultElement, setIsSpecification, setName, setNamespace, setTemplate, setVisibility |
Methods inherited from interface javax.jmi.reflect.RefObject |
refClass, refDelete, refImmediateComposite, refIsInstanceOf, refOutermostComposite |
Methods inherited from interface javax.jmi.reflect.RefFeatured |
refGetValue, refGetValue, refInvokeOperation, refInvokeOperation, refSetValue, refSetValue |
Methods inherited from interface javax.jmi.reflect.RefBaseObject |
equals, hashCode, refImmediatePackage, refMetaObject, refMofId, refOutermostPackage, refVerifyConstraints |