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 Edges that have the node as source.
Opposite: ActivityEdge.source
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].