Software Disclaimer

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: WriteStructuralFeatureAction

Direct Subclasses:

Class Precedence List: AddStructuralFeatureValueAction, WriteStructuralFeatureAction, StructuralFeatureAction, Action, ExecutableNode, ActivityNode, RedefinableElement, NamedElement, Element

Properties:

insertAt : InputPin (0 1); -- source AddStructuralFeatureValueAction
isReplaceAll : Boolean (1 1); -- source AddStructuralFeatureValueAction
result : OutputPin (0 1); -- source WriteStructuralFeatureAction
value : InputPin (0 1); -- source WriteStructuralFeatureAction
object : InputPin (1 1); -- source StructuralFeatureAction
structuralFeature : StructuralFeature (1 1); -- source StructuralFeatureAction

Structural feature to be read.

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 Element

Constraints:

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].