A read extent action is an action that retrieves the current instances of a classifier. The type of the result output pin is the classifier. OCL true The multiplicity of the result output pin is 0..*. OCL self.result.multiplicity.is(0,#null) The runtime instances of the classifier. The classifier whose instances are to be retrieved. A reclassify object action is an action that changes which classifiers classify an object. None of the new classifiers may be abstract. OCL not self.newClassifier->exists(isAbstract = true) The multiplicity of the input pin is 1..1. OCL self.argument.multiplicity.is(1,1) The input pin has no type. OCL self.argument.type->size() = 0 Specifies whether existing classifiers should be removed before adding the new classifiers. A set of classifiers to be removed from the classifiers of the object. A set of classifiers to be added to the classifiers of the object. Holds the object to be reclassified. A read is classified object action is an action that determines whether a runtime object is classified by a given classifier. The multiplicity of the input pin is 1..1. OCL self.object.multiplicity.is(1,1) The input pin has no type. OCL self.object.type->isEmpty() The multiplicity of the output pin is 1..1. OCL self.result.multiplicity.is(1,1) The type of the output pin is Boolean OCL self.result.type = Boolean Indicates whether the classifier must directly classify the input object. The classifier against which the classification of the input object is tested. After termination of the action, will hold the result of the test. Holds the object whose classification is to be tested. A start classifier behavior action is an action that starts the classifier behavior of the input. The multiplicity of the input pin is 1..1 OCL true If the input pin has a type, then the type must have a classifier behavior. OCL true Holds the object on which to start the owned behavior. A qualifier value is not an action. It is an element that identifies links. It gives a single qualifier within a link end data specification. The qualifier attribute must be a qualifier of the association end of the link-end data. OCL self.LinkEndData.end->collect(qualifier)->includes(self.qualifier) The type of the qualifier value input pin is the same as the type of the qualifier attribute. OCL self.value.type = self.qualifier.type The multiplicity of the qualifier value input pin is "1..1". OCL self.value.multiplicity.is(1,1) Attribute representing the qualifier for which the value is to be specified. Input pin from which the specified value for the qualifier is taken. The qualifiers include all and only the qualifiers of the association end. OCL self.qualifier->collect(qualifier) = self.end.qualifier The end object input pin is not also a qualifier value input pin. OCL self.value->excludesAll(self.qualifier.value) List of qualifier values A read link object end action is an action that retrieves an end object from a link object. The property must be an association end. OCL self.end.association.notEmpty() The association of the association end must be an association class. OCL self.end.Association.oclIsKindOf(AssociationClass) The ends of the association must not be static. OCL self.end.association.memberEnd->forall(e | not e.isStatic) The type of the object input pin is the association class that owns the association end. OCL self.object.type = self.end.association The multiplicity of the object input pin is 1..1. OCL self.object.multiplicity.is(1,1) The type of the result output pin is the same as the type of the association end. OCL self.result.type = self.end.type The multiplicity of the result output pin is 1..1. OCL self.result.multiplicity.is(1,1) Gives the input pin from which the link object is obtained. Link end to be read. Pin where the result value is placed. A read link object end qualifier action is an action that retrieves a qualifier end value from a link object. The qualifier attribute must be a qualifier attribute of an association end. OCL self.qualifier.associationEnd->size() = 1 The association of the association end of the qualifier attribute must be an association class. OCL self.qualifier.associationEnd.association.oclIsKindOf(AssociationClass) The ends of the association must not be static. OCL self.qualifier.associationEnd.association.memberEnd->forall(e | not e.isStatic) The type of the object input pin is the association class that owns the association end that has the given qualifier attribute. OCL self.object.type = self.qualifier.associationEnd.association The multiplicity of the qualifier attribute is 1..1. OCL self.qualifier.multiplicity.is(1,1) The multiplicity of the object input pin is 1..1. OCL self.object.multiplicity.is(1,1) The type of the result output pin is the same as the type of the qualifier attribute. OCL self.result.type = self.qualifier.type The multiplicity of the result output pin is 1..1. OCL self.result.multiplicity.is(1,1) Gives the input pin from which the link object is obtained. Pin where the result value is placed. The attribute representing the qualifier to be read. A create link object action creates a link object. The association must be an association class. OCL self.association().oclIsKindOf(Class) The type of the result pin must be the same as the association of the action. OCL self.result.type = self.association() The multiplicity of the output pin is 1..1. OCL self.result.multiplicity.is(1,1) Gives the output pin on which the result is put. A accept event action is an action that waits for the occurrence of an event meeting specified conditions. AcceptEventActions may have no input pins. OCL true There are no output pins if the trigger events are only ChangeEvents, or if they are only CallEvents when this action is an instance of AcceptEventAction and not an instance of a descendant of AcceptEventAction (such as AcceptCallAction). OCL true If the trigger events are all TimeEvents, there is exactly one output pin. OCL true If isUnmarshall is true, there must be exactly one trigger for events of type SignalEvent. The number of result output pins must be the same as the number of attributes of the signal. The type and ordering of each result output pin must be the same as the corresponding attribute of the signal. The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding attribute. OCL true Indicates whether there is a single output pin for the event, or multiple output pins for attributes of the event. Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved. The type of events accepted by the action, as specified by triggers. For triggers with signal events, a signal of the specified type or any subtype of the specified signal type is accepted. An accept call action is an accept event action representing the receipt of a synchronous call request. In addition to the normal operation parameters, the action produces an output that is needed later to supply the information to the reply action necessary to return control to the caller. This action is for synchronous calls. If it is used to handle an asynchronous call, execution of the subsequent reply action will complete immediately with no effects. The result pins must match the in and inout parameters of the operation specified by the trigger event in number, type, and order. OCL true The trigger event must be a CallEvent. OCL trigger.event.oclIsKindOf(CallEvent) isUnmrashall must be true for an AcceptCallAction. OCL isUnmarshall = true Pin where a value is placed containing sufficient information to perform a subsequent reply and return control to the caller. The contents of this value are opaque. It can be passed and copied but it cannot be manipulated by the model. A reply action is an action that accepts a set of return values and a value containing return information produced by a previous accept call action. The reply action returns the values to the caller of the previous call, completing execution of the call. The reply value pins must match the return, out, and inout parameters of the operation on the event on the trigger in number, type, and order. OCL true The event on replyToCall trigger must be a CallEvent replyToCallEvent.oclIsKindOf(CallEvent) OCL replyToCallEvent.oclIsKindOf(CallEvent) The trigger specifying the operation whose call is being replied to. A pin containing the return information value produced by an earlier AcceptCallAction. A list of pins containing the reply values of the operation. These values are returned to the caller. An unmarshall action is an action that breaks an object of a known type into outputs each of which is equal to a value from a structural feature of the object. The type of the object input pin must be the same as the unmarshall classifier. OCL true The multiplicity of the object input pin is 1..1 OCL true The number of result output pins must be the same as the number of structural features of the unmarshall classifier. OCL true The type and ordering of each result output pin must be the same as the corresponding structural feature of the unmarshall classifier. OCL true The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding structural features of the unmarshall classifier. OCL true The unmarshall classifier must have at least one structural feature. OCL true unmarshallType must be a Classifier with ordered attributes OCL true The values of the structural features of the input object. The type of the object to be unmarshalled. The object to be unmarshalled. A reduce action is an action that reduces a collection to a single value by combining the elements of the collection. The type of the input must be a collection. OCL true The type of the output must be compatible with the type of the output of the reducer behavior. OCL true The reducer behavior must have two input parameters and one output parameter, of types compatible with the types of elements of the input collection. OCL true Behavior that is applied to two elements of the input collection to produce a value that is the same type as elements of the collection. Gives the output pin on which the result is put. The collection to be reduced. Tells whether the order of the input collection should determine the order in which the behavior is applied to its elements. A create object action is an action that creates an object that conforms to a statically specified classifier and puts it on an output pin at runtime. The classifier cannot be abstract. OCL not (self.classifier.isAbstract = #true) The classifier cannot be an association class OCL not self.classifier.oclIsKindOf(AssociationClass) The type of the result pin must be the same as the classifier of the action. OCL self.result.type = self.classifier The multiplicity of the output pin is 1..1. OCL self.result.multiplicity.is(1,1) Classifier to be instantiated. Gives the output pin on which the result is put. A destroy object action is an action that destroys objects. The multiplicity of the input pin is 1..1. OCL self.target.multiplicity.is(1,1) The input pin has no type. OCL self.target.type->size() = 0 Specifies whether links in which the object participates are destroyed along with the object. Specifies whether objects owned by the object are destroyed along with the object. The input pin providing the object to be destroyed. A test identity action is an action that tests if two values are identical objects. The input pins have no type. OCL self.first.type->size() = 0 and self.second.type->size() = 0 The multiplicity of the input pins is 1..1. OCL self.first.multiplicity.is(1,1) and self.second.multiplicity.is(1,1) The type of the result is Boolean. OCL self.result.type.oclIsTypeOf(Boolean) Gives the pin on which an object is placed. Gives the pin on which an object is placed. Tells whether the two input objects are identical. A read self action is an action that retrieves the host object of an action. The action must be contained in an behavior that has a host classifier. OCL self.context->size() = 1 If the action is contained in an behavior that is acting as the body of a method, then the operation of the method must not be static. OCL true The type of the result output pin is the host classifier. OCL self.result.type = self.context The multiplicity of the result output pin is 1..1. OCL self.result.multiplicity.is(1,1) Gives the output pin on which the hosting object is placed. StructuralFeatureAction is an abstract class for all structural feature actions. The structural feature must not be static. OCL self.structuralFeature.isStatic = #false The type of the object input pin is the same as the classifier of the object passed on this pin. OCL true The multiplicity of the input pin must be 1..1. OCL self.object.multiplicity.is(1,1) Visibility of structural feature must allow access to the object performing the action. OCL 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))) A structural feature has exactly one featuringClassifier. OCL self.structuralFeature.featuringClassifier->size() = 1 Structural feature to be read. Gives the input pin from which the object whose structural feature is to be read or written is obtained. A read structural feature action is a structural feature action that retrieves the values of a structural feature. The type and ordering of the result output pin are the same as the type and ordering of the structural feature. OCL self.result.type = self.structuralFeature.type and self.result.ordering = self.structuralFeature.ordering The multiplicity of the structural feature must be compatible with the multiplicity of the output pin. OCL self.structuralFeature.multiplicity.compatibleWith(self.result.multiplicity) Gives the output pin on which the result is put. WriteStructuralFeatureAction is an abstract class for structural feature actions that change structural feature values. The type input pin is the same as the classifier of the structural feature. OCL self.value.type = self.structuralFeature.featuringClassifier The multiplicity of the input pin is 1..1. OCL self.value.multiplicity.is(1,1) Value to be added or removed from the structural feature. A clear structural feature action is a structural feature action that removes all values of a structural feature. A remove structural feature value action is a write structural feature action that removes values from structural features. Actions removing a value from ordered nonunique structural features must have a single removeAt input pin if isRemoveDuplicates is false. It must be of type Unlimited Natural with multiplicity 1..1. Otherwise, the action has no removeAt input pin. OCL true Specifies whether to remove duplicates of the value in nonunique structural features.