## org.eclipse.uml2.uml
Interface RedefinableElement

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

All Known Subinterfaces:
  AcceptCallAction, AcceptEventAction, Action, ActionInputPin, Activity, ActivityEdge, ActivityFinalNode, ActivityNode, ActivityParameterNode, Actor, AddStructuralFeatureValueAction, AddVariableValueAction, Artifact, Association, AssociationClass, Behavior, BehavioralFeature, BehavioredClassifier, BroadcastSignalAction, CallAction, CallBehaviorAction, CallOperationAction, CentralBufferNode, Class, Classifier, ClearAssociationAction, ClearStructuralFeatureAction, ClearVariableAction, Collaboration, CommunicationPath, Component, ConditionalNode, Connector, ControlFlow, ControlNode, CreateLinkAction, CreateLinkObjectAction, CreateObjectAction, DataStoreNode, DataType, DecisionNode, DeploymentSpecification, DestroyLinkAction, DestroyObjectAction, Device, EncapsulatedClassifier, Enumeration, ExecutableNode, ExecutionEnvironment, ExpansionNode, ExpansionRegion, Extension, ExtensionEnd, ExtensionPoint, Feature, FinalNode, FinalState, FlowFinalNode, ForkNode, FunctionBehavior, InformationItem, InitialNode, InputPin, Interaction, Interface, InvocationAction, JoinNode, LinkAction, LoopNode, MergeNode, Node, ObjectFlow, ObjectNode, OpaqueAction, OpaqueBehavior, Operation, OutputPin, Pin, Port, PrimitiveType, Property, ProtocolStateMachine, ProtocolTransition, RaiseExceptionAction, ReadExtentAction, ReadIsClassifiedObjectAction, ReadLinkAction, ReadLinkObjectEndAction, ReadLinkObjectEndQualifierAction, ReadSelfAction, ReadStructuralFeatureAction, ReadVariableAction, Reception, ReclassifyObjectAction, RedefinableTemplateSignature, ReduceAction, Region, RemoveStructuralFeatureValueAction, RemoveVariableValueAction, ReplyAction, SendObjectAction, SendSignalAction, SequenceNode, Signal, StartClassifierBehaviorAction, StartObjectBehaviorAction, State, StateMachine, Stereotype, StructuralFeature, StructuralFeatureAction, StructuredActivityNode, StructuredClassifier, TestIdentityAction, Transition, UnmarshallAction, UseCase, ValuePin, ValueSpecificationAction, VariableAction, WriteLinkAction, WriteStructuralFeatureAction, WriteVariableAction

    public interface RedefinableElement

extends NamedElement

A representation of the model object 'Redefinable Element'. A redefinable element is an element that, when defined in the context of a classifier, can be redefined more specifically or differently in the context of another classifier that specializes (directly or indirectly) the context classifier.

The following features are supported:

- `Is Leaf`
- `Redefined Element`
- `Redefinition Context`

See Also:
  `UMLPackage.getRedefinableElement()`

Field Summary

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

Method Summary
`RedefinableElement` `getRedefinedElement(java.lang.String name)` Retrieves the first `RedefinableElement` with the specified 'Name' from the 'Redefined Element' reference list
`RedefinableElement` `getRedefinedElement(java.lang.String name, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass)` Retrieves the first `RedefinableElement` with the specified 'Name' from the 'Redefined Element' reference list
`org.eclipse.emf.common.util.EList<RedefinableElement>` `getRedefinedElements()` Returns the value of the 'Redefined Element' reference list.
`Classifier` `getRedefinitionContext(java.lang.String name)` Retrieves the first `Classifier` with the specified 'Name' from the 'Redefinition Context' reference list
`Classifier` `getRedefinitionContext(java.lang.String name, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass)` Retrieves the first `Classifier` with the specified 'Name' from the 'Redefinition Context' reference list
`org.eclipse.emf.common.util.EList<Classifier>` `getRedefinitionContexts()` Returns the value of the 'Redefinition Context' reference list.
`boolean` `isConsistentWith(RedefinableElement redefinee)` The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent.
`boolean` `isLeaf()` Returns the value of the 'Is Leaf' attribute.
`boolean` `isRedefinitionContextValid(RedefinableElement redefined)` The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other.
`void` `setIsLeaf(boolean value)` Sets the value of the '`Is Leaf`' attribute
`boolean` `validateRedefinitionConsistent(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` A redefining element must be consistent with each redefined element.
`boolean` `validateRedefinitionContextValid(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` At least one of the redefinition contexts of the redefining element must be a specialization of at least one of the redefinition contexts for each redefined element.

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

### isLeaf

    boolean isLeaf()

  Returns the value of the 'Is Leaf' attribute. The default value is `"false"`. Indicates whether it is possible to further specialize a RedefinableElement. If the value is true, then it is not possible to further specialize the RedefinableElement.

  Returns:
    the value of the 'Is Leaf' attribute.
  See Also:
    `setIsLeaf(boolean)`, `UMLPackage.getRedefinableElement_IsLeaf()`

### setIsLeaf

    void setIsLeaf(boolean value)

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

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

### getRedefinedElements

    org.eclipse.emf.common.util.EList<RedefinableElement> getRedefinedElements()

  Returns the value of the 'Redefined Element' reference list. The list contents are of type `RedefinableElement`. This feature is a derived union. The redefinable element that is being redefined by this element.

  Returns:
    the value of the 'Redefined Element' reference list.
  See Also:
    `UMLPackage.getRedefinableElement_RedefinedElement()`

### getRedefinedElement

    RedefinableElement getRedefinedElement(java.lang.String name)

  Retrieves the first `RedefinableElement` with the specified 'Name' from the 'Redefined Element' reference list.

  Parameters:
    `name` - The 'Name' of the `RedefinableElement` to retrieve, or `null`.
  Returns:
    The first `RedefinableElement` with the specified 'Name', or `null`.
  See Also:
    `getRedefinedElements()`

### getRedefinedElement

    RedefinableElement getRedefinedElement(java.lang.String name,
                                           boolean ignoreCase,
                                           org.eclipse.emf.ecore.EClass eClass)

  Retrieves the first `RedefinableElement` with the specified 'Name' from the 'Redefined Element' reference list.

  Parameters:
    `name` - The 'Name' of the `RedefinableElement` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `eClass` - The Ecore class of the `RedefinableElement` to retrieve, or `null`.
  Returns:
    The first `RedefinableElement` with the specified 'Name', or `null`.
  See Also:
    `getRedefinedElements()`

### getRedefinitionContexts

    org.eclipse.emf.common.util.EList<Classifier> getRedefinitionContexts()

  Returns the value of the 'Redefinition Context' reference list. The list contents are of type `Classifier`. This feature is a derived union. References the contexts that this element may be redefined from.

  Returns:
    the value of the 'Redefinition Context' reference list.
  See Also:
    `UMLPackage.getRedefinableElement_RedefinitionContext()`

### getRedefinitionContext

    Classifier getRedefinitionContext(java.lang.String name)

  Retrieves the first `Classifier` with the specified 'Name' from the 'Redefinition Context' reference list.

  Parameters:
    `name` - The 'Name' of the `Classifier` to retrieve, or `null`.
  Returns:
    The first `Classifier` with the specified 'Name', or `null`.
  See Also:
    `getRedefinitionContexts()`

### getRedefinitionContext

    Classifier getRedefinitionContext(java.lang.String name,
                                      boolean ignoreCase,
                                      org.eclipse.emf.ecore.EClass eClass)

  Retrieves the first `Classifier` with the specified 'Name' from the 'Redefinition Context' reference list.

  Parameters:
    `name` - The 'Name' of the `Classifier` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `eClass` - The Ecore class of the `Classifier` to retrieve, or `null`.
  Returns:
    The first `Classifier` with the specified 'Name', or `null`.
  See Also:
    `getRedefinitionContexts()`

### validateRedefinitionContextValid

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

  At least one of the redefinition contexts of the redefining element must be a specialization of at least one of the redefinition contexts for each redefined element. self.redefinedElement->forAll(e | self.isRedefinitionContextValid(e))

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

### validateRedefinitionConsistent

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

  A redefining element must be consistent with each redefined element. self.redefinedElement->forAll(re | re.isConsistentWith(self))

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

### isRedefinitionContextValid

    boolean isRedefinitionContextValid(RedefinableElement redefined)

  The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element. result = redefinitionContext->exists(c | c.allParents()->includes(redefined.redefinitionContext)))

### isConsistentWith

    boolean isConsistentWith(RedefinableElement redefinee)

  The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent. By default, this is false; this operation must be overridden for subclasses of RedefinableElement to define the consistency conditions. redefinee.isRedefinitionContextValid(self) result = false

Copyright 2003, 2007 IBM Corporation and others. All Rights Reserved.