Previous | UML Classes | Table of Contents | UML Packages | Next |
ReclassifyObjectAction is an action that changes which classifiers classify an object.
•
Action (from BasicActions ) on page 247
ReclassifyObjectAction adds given classifier to an object and removes given classifiers from that object. Multiple classifiers
may be added and removed at a time.
• isReplaceAll : Boolean [1..1] Specifies whether existing classifiers should be removed before adding the new classifiers.
The default value is false.
• 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.
[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
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.
No specific notation
ReclassifyObjectAction is introduced to change the classifiers of an object.
ReclassifyObjectAction is unchanged from UML 1.5.
Issue 7977 -Add entry for ReduceAction .