Class UML 2.3::AddStructuralFeatureValueAction
Description:
An add structural feature value action is a write structural feature action
for adding values to a structural feature.
Direct Superclasses: WriteStructuralFeatureActionDirect Subclasses: Class Precedence List: AddStructuralFeatureValueAction,
WriteStructuralFeatureAction,
StructuralFeatureAction,
Action,
ExecutableNode,
ActivityNode,
RedefinableElement,
NamedElement,
ElementProperties:

insertAt :
InputPin (0 1); -- source
AddStructuralFeatureValueAction
isReplaceAll : Boolean (1 1); -- source
AddStructuralFeatureValueAction
result :
OutputPin (0 1); -- source
WriteStructuralFeatureAction
value :
InputPin (0 1); -- source
WriteStructuralFeatureAction Value to be added or removed from the structural feature.
{
composite}
Subsets: Action.input

object :
InputPin (1 1); -- source
StructuralFeatureAction
structuralFeature :
StructuralFeature (1 1); -- source
StructuralFeatureAction
context :
Classifier (0 1); -- source
Action
input :
InputPin (0 *); -- source
Action
isLocallyReentrant : Boolean (1 1); -- source
Action
localPostcondition :
Constraint (0 *); -- source
Action
localPrecondition :
Constraint (0 *); -- source
Action
output :
OutputPin (0 *); -- source
Action
handler :
ExceptionHandler (0 *); -- source
ExecutableNode
activity :
Activity (0 1); -- source
ActivityNode
inGroup :
ActivityGroup (0 *); -- source
ActivityNode
inInterruptibleRegion :
InterruptibleActivityRegion (0 *); -- source
ActivityNode
inPartition :
ActivityPartition (0 *); -- source
ActivityNode
inStructuredNode :
StructuredActivityNode (0 1); -- source
ActivityNode
incoming :
ActivityEdge (0 *); -- source
ActivityNode
outgoing :
ActivityEdge (0 *); -- source
ActivityNode
redefinedNode :
ActivityNode (0 *); -- source
ActivityNode
isLeaf : Boolean (1 1); -- source
RedefinableElement
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement
redefinitionContext :
Classifier (0 *); -- source
RedefinableElement
clientDependency :
Dependency (0 *); -- source
NamedElement
name : String (0 1); -- source
NamedElement
nameExpression :
StringExpression (0 1); -- source
NamedElement
namespace :
Namespace (0 1); -- source
NamedElement
qualifiedName : String (0 1); -- source
NamedElement
visibility :
VisibilityKind (0 1); -- source
NamedElement
ownedComment :
Comment (0 *); -- source
Element
ownedElement :
Element (0 *); -- source
Element
owner :
Element (0 1); -- source
ElementConstraints:
Signature: unlimited_natural_and_multiplicity() : Boolean;
Description: Actions adding a value to ordered structural features must have a single
input pin for the insertion point with type UnlimitedNatural and multiplicity
of 1..1, otherwise the action has no input pin for the insertion point.
The OCL used here is not normative.Editor's notes: No multiplicity. Other issues. Need investigation.
Expression: structuralFeature.isOrdered implies
(insertAt->size() = 1 and
insertAt.is(1,1) and
insertAt.type.oclIsKindOf(UnlimitedNatural))
or insertAt->size() = 0
Original: let insertAtPins : Collection = self.insertAt in
if self.structuralFeature.isOrdered = #false
then insertAtPins->size() = 0
else let insertAtPin : InputPin= insertAt->asSequence()->first() in
insertAtPins->size() = 1
and insertAtPin.type = UnlimitedNatural
and insertAtPin.multiplicity.is(1,1)) endif
Signature: required_value() : Boolean;
Description: A value input pin is required.
Expression: self.value -> notEmpty()
Operations:
No additional operations.
Send questions or comments to
[email protected].