Previous UML Classes Table of Contents UML Packages Next


11.3.39 ReclassifyObjectAction

CompleteActions


   ReclassifyObjectAction is an action that changes which classifiers classify an object.

*Generalizations

   

    Action (from BasicActions ) on page 247

*Description

   ReclassifyObjectAction adds given classifier to an object and removes given classifiers from that object. Multiple classifiers may be added and removed at a time.

*Attributes

   • isReplaceAll : Boolean [1..1] Specifies whether existing classifiers should be removed before adding the new classifiers. The default value is false.

*Associations

   • object : InputPin [1..1] Holds the object to be reclassified. (Subsets Action::input.)

   • newClassifier : Classifier [0..*] A set of classifiers to be added to the classifiers of the object.

   • oldClassifier : Classifier [0..*] A set of classifiers to be removed from the classifiers of the object.

*Constraints

   [1] None of the new classifiers may be abstract.

   not self.newClassifier->exists(isAbstract = true)

   [2] The multiplicity of the input pin is 1..1.

   self.argument.multiplicity.is(1,1)

   [3] The input pin has no type.

   self.argument.type->size() = 0

*Semantics

   After the action completes, the input object is classified by its existing classifiers and the new classifiers given to the action; however, the old classifiers given to the actions no longer classify the input object. The identity of the object is preserved, no behaviors are executed, and no initial expressions are evaluated. New classifiers replace existing classifiers in an atomic step, so that structural feature values and links are not lost during the reclassification, when the old and new classifiers have structural features and associations in common.

   Neither adding a classifier that duplicates an already existing classifier, nor removing a classifier that is not classifying the input object, has any effect. Adding and removing the same classifiers has no effect.

   If isReplaceAll is true, then the existing classifiers are removed before the new classifiers are added, except if the new classifier already classifies the input object, in which case this classifier is not removed. If isReplaceAll is false, then adding an existing value has no effect.

   It is an error, if any of the new classifiers is abstract or if all classifiers are removed from the input object.

*Notation

   No specific notation

   ReclassifyObjectAction is introduced to change the classifiers of an object.

*Changes from previous UML

   ReclassifyObjectAction is unchanged from UML 1.5.

Issue 7977 -Add entry for ReduceAction .