uk.ac.ucl.cs.uml.jmi.Foundation.Core
Interface AssociationEnd

All Superinterfaces:
Element, ExtObject, ModelElement, javax.jmi.reflect.RefBaseObject, javax.jmi.reflect.RefFeatured, javax.jmi.reflect.RefObject
All Known Subinterfaces:
AssociationEndRole
All Known Implementing Classes:
AssociationEnd_Impl, AssociationEndRole_Impl

public interface AssociationEnd
extends ModelElement

An association end is an endpoint of an association, which connects the association to a classifier. Each association end is part of one association. The association-ends of each association are ordered. In the metamodel, an AssociationEnd is part of an Association and specifies the connection of an Association to a Classifier. It has a name and defines a set of properties of the connection (e.g., which Classifier the Instances must conform to, their multiplicity, and if they may be reached from another Instance via this connection). In the following descriptions when referring to an association end for a binary association, the source end is the other end. The target end is the one whose properties are being discussed.


Method Summary
 AggregationKind getAggregation()
          When placed on one end (the “target” end), specifies whether the class on the target end is an aggregation with respect to the class on the other end (the “source”end).
 Association getAssociation()
          Designates the Association that owns the AssociationEnd.
 ChangeableKind getChangeability()
          Specifies whether or not links may be created or destroyed after the initialization of objects at the opposite ends.
 boolean getIsNavigable()
          When placed on a target end, specifies whether traversal from a source instance to its associated target instances is possible.
 Multiplicity getMultiplicity()
          When placed on a target end, specifies the number of target instances that may be associated with a single source instance across the given Association.
 OrderingKind getOrdering()
          When placed on a target end, specifies whether the set of links from the source instance to the target instance is ordered.
 Classifier getParticipant()
          Designates the Classifier participating in the Association at the given end.
 List getQualifier()
          An optional list of qualifier Attributes for the end.
 Collection getSpecification()
          Designates zero or more Classifiers that specify the Operations that may be applied to an Instance accessed by the AssociationEnd across the Association.
 ScopeKind getTargetScope()
          Specifies whether the target value is an instance or a classifier.
 void setAggregation(AggregationKind aggregation)
          Setter for atomic property aggregation)
 void setAssociation(Association association)
          Setter for atomic property association)
 void setChangeability(ChangeableKind changeability)
          Setter for atomic property changeability)
 void setIsNavigable(boolean isNavigable)
          Setter for atomic property isNavigable)
 void setMultiplicity(Multiplicity multiplicity)
          Setter for atomic property multiplicity)
 void setOrdering(OrderingKind ordering)
          Setter for atomic property ordering)
 void setParticipant(Classifier participant)
          Setter for atomic property participant)
 void setTargetScope(ScopeKind targetScope)
          Setter for atomic property targetScope)
 int upperBound()
          The operation upperBound returns the maximum upperbound value across all potential ranges of a multiplicity.
 
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 uk.ac.ucl.cs.emofocl.jmi.reflect.extended.ExtObject
extAddObjectListener, extDeepCopy, extDeepCopy, extEquals, extRemoveObjectListener, extValueHash, extVisit
 
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
 

Method Detail

getAggregation

AggregationKind getAggregation()
                               throws javax.jmi.reflect.JmiException
When placed on one end (the “target” end), specifies whether the class on the target end is an aggregation with respect to the class on the other end (the “source”end). Only one end can be an aggregation. Possibilities are: • none - The target class is not an aggregate. • aggregate - The target class is an aggregate; therefore, the source class is a part and must have the aggregation value of none. The part may be contained in other aggregates. • composite - The target class is a composite; therefore, the source class is a part and must have the aggregation value of none. The part is strongly owned by the composite and may not be part of any other composite.

Throws:
javax.jmi.reflect.JmiException

setAggregation

void setAggregation(AggregationKind aggregation)
                    throws javax.jmi.reflect.JmiException
Setter for atomic property aggregation)

Throws:
javax.jmi.reflect.JmiException

getChangeability

ChangeableKind getChangeability()
                                throws javax.jmi.reflect.JmiException
Specifies whether or not links may be created or destroyed after the initialization of objects at the opposite ends. Possibilities are: • changeable - No restrictions on creation and destruction of links. • frozen - No links may be destroyed after the objects at the opposite ends have been initialized, and no new links may be created after the objects that would participate in the new link at the opposite ends have been initialized. • addOnly - No link may be destroyed after the objects at the opposite ends have been initialized. Links may be created anytime.

Throws:
javax.jmi.reflect.JmiException

setChangeability

void setChangeability(ChangeableKind changeability)
                      throws javax.jmi.reflect.JmiException
Setter for atomic property changeability)

Throws:
javax.jmi.reflect.JmiException

getOrdering

OrderingKind getOrdering()
                         throws javax.jmi.reflect.JmiException
When placed on a target end, specifies whether the set of links from the source instance to the target instance is ordered. The ordering must be determined and maintained by Operations that add links. It represents additional information not inherent in the objects or links themselves. Possibilities are: • unordered - The links form a set with no inherent ordering. • ordered - A set of ordered links can be scanned in order. • Other possibilities (such as sorted) may be defined later by declaring additional keywords. As with user-defined stereotypes, this would be a private extension supported by particular editing tools.

Throws:
javax.jmi.reflect.JmiException

setOrdering

void setOrdering(OrderingKind ordering)
                 throws javax.jmi.reflect.JmiException
Setter for atomic property ordering)

Throws:
javax.jmi.reflect.JmiException

getIsNavigable

boolean getIsNavigable()
                       throws javax.jmi.reflect.JmiException
When placed on a target end, specifies whether traversal from a source instance to its associated target instances is possible. Specification of each direction across the Association is independent. A value of true means that the association can be navigated by the source class and the target rolename can be used in navigation expressions.

Throws:
javax.jmi.reflect.JmiException

setIsNavigable

void setIsNavigable(boolean isNavigable)
                    throws javax.jmi.reflect.JmiException
Setter for atomic property isNavigable)

Throws:
javax.jmi.reflect.JmiException

getMultiplicity

Multiplicity getMultiplicity()
                             throws javax.jmi.reflect.JmiException
When placed on a target end, specifies the number of target instances that may be associated with a single source instance across the given Association.

Throws:
javax.jmi.reflect.JmiException

setMultiplicity

void setMultiplicity(Multiplicity multiplicity)
                     throws javax.jmi.reflect.JmiException
Setter for atomic property multiplicity)

Throws:
javax.jmi.reflect.JmiException

getTargetScope

ScopeKind getTargetScope()
                         throws javax.jmi.reflect.JmiException
Specifies whether the target value is an instance or a classifier. Possibilities are: • instance. An instance value is part of each link. This is the default. • classifier. A classifier itself is part of each link. Normally this would be fixed at modeling time and need not be stored separately at run time.

Throws:
javax.jmi.reflect.JmiException

setTargetScope

void setTargetScope(ScopeKind targetScope)
                    throws javax.jmi.reflect.JmiException
Setter for atomic property targetScope)

Throws:
javax.jmi.reflect.JmiException

getQualifier

List getQualifier()
                  throws javax.jmi.reflect.JmiException
An optional list of qualifier Attributes for the end. If the list is empty, then the Association is not qualified.

Throws:
javax.jmi.reflect.JmiException

getSpecification

Collection getSpecification()
                            throws javax.jmi.reflect.JmiException
Designates zero or more Classifiers that specify the Operations that may be applied to an Instance accessed by the AssociationEnd across the Association. These determine the minimum interface that must be realized by the actual Classifier attached to the end to support the intent of the Association. May be an Interface or another Classifier. These classifiers do not indicate the classes of the participants in a link, merely the operations that may be applied when traversing a link.

Throws:
javax.jmi.reflect.JmiException

getParticipant

Classifier getParticipant()
                          throws javax.jmi.reflect.JmiException
Designates the Classifier participating in the Association at the given end. A link of the Association contains a reference to an instance of the class (including a descendant of the given class or a class that realizes a given interface) in the given position in the link.

Throws:
javax.jmi.reflect.JmiException

setParticipant

void setParticipant(Classifier participant)
                    throws javax.jmi.reflect.JmiException
Setter for atomic property participant)

Throws:
javax.jmi.reflect.JmiException

getAssociation

Association getAssociation()
                           throws javax.jmi.reflect.JmiException
Designates the Association that owns the AssociationEnd.

Throws:
javax.jmi.reflect.JmiException

setAssociation

void setAssociation(Association association)
                    throws javax.jmi.reflect.JmiException
Setter for atomic property association)

Throws:
javax.jmi.reflect.JmiException

upperBound

int upperBound()
The operation upperBound returns the maximum upperbound value across all potential ranges of a multiplicity. (rewritten from spec.)