Abstract Class UML 2.3::StructuralFeatureAction
Description:
StructuralFeatureAction is an abstract class for all structural feature
actions.
Direct Superclasses: ActionDirect Subclasses: WriteStructuralFeatureAction,
ReadStructuralFeatureAction,
ClearStructuralFeatureActionClass Precedence List: StructuralFeatureAction,
Action,
ExecutableNode,
ActivityNode,
RedefinableElement,
NamedElement,
ElementProperties:

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: visibility() : Boolean;
Description: Visibility of structural feature must allow access to the object performing
the action.
The OCL used here is not normative.Editor's notes: allSupertypes not defined.
Expression: true
Original: let host : Classifier = self.context in
self.structuralFeature.visibility = #public
or host = self.structuralFeature.featuringClassifier.type
or (self.structuralFeature.visibility = #protected and host.allSupertypes
->includes(self.structuralFeature.featuringClassifier.type)))
Signature: same_type() : Boolean;
Description: The structural feature must either be owned by the type of the object input
pin, or it must be an owned end of a binary association with the type of
the opposite end being the type of the object input pin.
Expression: self.structuralFeature.featuringClassifier.oclAsType(Type)->includes(self.object.type) or
self.structuralFeature.oclAsType(Property).opposite.type = self.object.type
Signature: one_featuring_classifier() : Boolean;
Description: A structural feature has exactly one featuringClassifier.
Expression: self.structuralFeature.featuringClassifier->size() = 1
Signature: not_static() : Boolean;
Description: The structural feature must not be static.
Expression: self.structuralFeature.isStatic = #false
Signature: multiplicity() : Boolean;
Description: The multiplicity of the input pin must be 1..1.
The OCL used here is not normative.Editor's notes: No multiplicity
Expression: self.object.is(1,1)
Original: self.object.multiplicity.is(1,1)
Operations:
No additional operations.
Send questions or comments to
[email protected].