Class UML 2.4.1::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:
![](/se-interop/image/right-arrow.png)
insertAt :
InputPin (0 1); -- source
AddStructuralFeatureValueActionGives the position at which to insert a new value or move an existing value
in ordered structural features. The type of the pin is UnlimitedNatural,
but the value cannot be zero. This pin is omitted for unordered structural
features.
{
composite}
Subsets: Action.input
![](/se-interop/image/down-arrow.png)
isReplaceAll : Boolean (1 1); -- source
AddStructuralFeatureValueAction![](/se-interop/image/down-arrow.png)
result :
OutputPin (0 1); -- source
WriteStructuralFeatureAction![](/se-interop/image/down-arrow.png)
value :
InputPin (0 1); -- source
WriteStructuralFeatureAction![](/se-interop/image/down-arrow.png)
object :
InputPin (1 1); -- source
StructuralFeatureAction![](/se-interop/image/down-arrow.png)
structuralFeature :
StructuralFeature (1 1); -- source
StructuralFeatureAction![](/se-interop/image/down-arrow.png)
context :
Classifier (0 1); -- source
Action![](/se-interop/image/down-arrow.png)
input :
InputPin (0 *); -- source
Action![](/se-interop/image/down-arrow.png)
isLocallyReentrant : Boolean (1 1); -- source
Action![](/se-interop/image/down-arrow.png)
localPostcondition :
Constraint (0 *); -- source
Action![](/se-interop/image/down-arrow.png)
localPrecondition :
Constraint (0 *); -- source
Action![](/se-interop/image/down-arrow.png)
output :
OutputPin (0 *); -- source
Action![](/se-interop/image/down-arrow.png)
handler :
ExceptionHandler (0 *); -- source
ExecutableNode![](/se-interop/image/down-arrow.png)
activity :
Activity (0 1); -- source
ActivityNode![](/se-interop/image/down-arrow.png)
inGroup :
ActivityGroup (0 *); -- source
ActivityNode![](/se-interop/image/down-arrow.png)
inInterruptibleRegion :
InterruptibleActivityRegion (0 *); -- source
ActivityNode![](/se-interop/image/down-arrow.png)
inPartition :
ActivityPartition (0 *); -- source
ActivityNode![](/se-interop/image/down-arrow.png)
inStructuredNode :
StructuredActivityNode (0 1); -- source
ActivityNode![](/se-interop/image/down-arrow.png)
incoming :
ActivityEdge (0 *); -- source
ActivityNode![](/se-interop/image/down-arrow.png)
outgoing :
ActivityEdge (0 *); -- source
ActivityNode![](/se-interop/image/down-arrow.png)
redefinedNode :
ActivityNode (0 *); -- source
ActivityNode![](/se-interop/image/down-arrow.png)
isLeaf : Boolean (1 1); -- source
RedefinableElement![](/se-interop/image/down-arrow.png)
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png)
redefinitionContext :
Classifier (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
namespace :
Namespace (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
visibility :
VisibilityKind (0 1); -- source
NamedElement![](/se-interop/image/right-arrow.png)
ownedComment :
Comment (0 *); -- source
ElementThe Comments owned by this element.
{
composite}
Subsets: Element.ownedElement
![](/se-interop/image/down-arrow.png)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png)
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].