Newer
Older
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="tdl" nsURI="http://www.etsi.org/spec/TDL/1.4.1" nsPrefix="tdl">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
<details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
<details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
</eAnnotations>
<eClassifiers xsi:type="ecore:EClass" name="Element" abstract="true">
<eOperations name="container" eType="#//Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (not self.oclContainer().oclIsUndefined()) then
 self.oclContainer().oclAsType(Element)
 else 
 null
 endif"/>
</eAnnotations>
</eOperations>
<eOperations name="getParentTestDescription" eType="#//TestDescription">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value=" 
 if (not self.container().oclIsUndefined()) then
 if (self.container().oclIsKindOf(TestDescription)) then
 self.container().oclAsType(TestDescription)
 else
 self.container().getParentTestDescription()
 endif
 else 
 null
 endif"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="comment" upperBound="-1"
eType="#//Comment" containment="true" eOpposite="#//Comment/commentedElement"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="annotation" upperBound="-1"
eType="#//Annotation" containment="true" eOpposite="#//Annotation/annotatedElement"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Comment" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="commentedElement" lowerBound="1"
eType="#//Element" eOpposite="#//Element/comment"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Annotation" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="key" lowerBound="1" eType="#//AnnotationType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="annotatedElement" lowerBound="1"
eType="#//Element" eOpposite="#//Element/annotation"/>
<eClassifiers xsi:type="ecore:EClass" name="AnnotationType" eSuperTypes="#//PackageableElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="extension" eType="#//Extension"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PackageableElement" abstract="true"
<eOperations name="conformsTo" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value=" 
 if (self.getElementNamed(n).oclIsUndefined()) then
 false
 else
 self.conformsTo(self.getElementNamed(n)) 
 endif
 "/>
</eAnnotations>
<eParameters name="n" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="getElementNamed" eType="#//PackageableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 self.oclType().allInstances()->select(e | e.name = n)->asOrderedSet()->first()
 "/>
Philip Makedonski
committed
</eAnnotations>
<eParameters name="n" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="conformsTo" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (self = element) then
 true
 else
 if (self.oclIsKindOf(AnnotationType) and not self.oclAsType(AnnotationType).extension.oclIsUndefined()) then
 self.oclAsType(AnnotationType).extension.isExtending(element)
 else
 if (self.oclIsKindOf(ComponentType) and not self.oclAsType(ComponentType).extension.oclIsUndefined()) then
 self.oclAsType(ComponentType).extension.isExtending(element)
 else
 if (self.oclIsKindOf(GateType) and not self.oclAsType(GateType).extension.oclIsUndefined()) then
 self.oclAsType(GateType).extension.isExtending(element)
 else
 if (self.oclIsKindOf(StructuredDataType)) then
 self.oclAsType(StructuredDataType).extension->exists(ex | ex.isExtending(element))
 else
 if (self.oclIsKindOf(SimpleDataType) and not self.oclAsType(SimpleDataType).extension.oclIsUndefined()) then
 self.oclAsType(SimpleDataType).extension.isExtending(element)
 else
 false
 endif
 endif
 endif
 endif
 endif
 endif
 "/>
<eParameters name="element" eType="#//PackageableElement"/>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" changeable="false"
volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="derivation" value="
 if (self.name.oclIsUndefined()) then
 ''
 else
 if (not self.oclContainer().oclIsUndefined()) then
 if (self.oclContainer().oclIsKindOf(NamedElement)) then
 self.oclContainer().oclAsType(NamedElement).qualifiedName + '::' + self.name
 else
 self.oclContainer().oclAsType(ocl::OclElement)->closure(oclContainer())
 ->select(c | c.oclIsKindOf(NamedElement))
 ->asOrderedSet()
 ->first().oclAsType(NamedElement).qualifiedName + '::' + self.name
 endif
 else
 self.name
 endif
 endif"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="packagedElement" ordered="false"
upperBound="-1" eType="#//PackageableElement" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="import" ordered="false"
upperBound="-1" eType="#//ElementImport" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nestedPackage" ordered="false"
upperBound="-1" eType="#//Package" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ElementImport" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="importedElement" ordered="false"
upperBound="-1" eType="#//PackageableElement"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="importedPackage" lowerBound="1"
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TestObjective" eSuperTypes="#//PackageableElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="objectiveURI" ordered="false"
unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataInstance" abstract="true" eSuperTypes="#//MappableDataElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="dataType" lowerBound="1"
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MappableDataElement" abstract="true"
<eClassifiers xsi:type="ecore:EClass" name="DataType" abstract="true" eSuperTypes="#//MappableDataElement">
<eOperations name="allConstraints" upperBound="-1" eType="#//Constraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 self.constraint
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="constraint" upperBound="-1"
eType="#//Constraint" containment="true">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataResourceMapping" eSuperTypes="#//PackageableElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataElementMapping" eSuperTypes="#//PackageableElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="mappableDataElement" lowerBound="1"
<eStructuralFeatures xsi:type="ecore:EAttribute" name="elementURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataResourceMapping" lowerBound="1"
<eStructuralFeatures xsi:type="ecore:EReference" name="parameterMapping" ordered="false"
upperBound="-1" eType="#//ParameterMapping" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ParameterMapping" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="parameterURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
Martti Käärik
committed
<eClassifiers xsi:type="ecore:EClass" name="Parameter" abstract="true" eSuperTypes="#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="dataType" lowerBound="1"
<eClassifiers xsi:type="ecore:EClass" name="SimpleDataType" eSuperTypes="#//DataType">
<eOperations name="allConstraints" upperBound="-1" eType="#//Constraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (not self.extension.oclIsUndefined()) then
 self.extension.extending.oclAsType(SimpleDataType).allConstraints()->union(self.constraint)->asOrderedSet()
 else 
 self.constraint
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
Philip Makedonski
committed
<eStructuralFeatures xsi:type="ecore:EReference" name="extension" eType="#//Extension"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SimpleDataInstance" eSuperTypes="#//DataInstance"/>
<eClassifiers xsi:type="ecore:EClass" name="StructuredDataType" eSuperTypes="#//DataType">
<eOperations name="allMembers" upperBound="-1" eType="#//Member">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (not self.extension->isEmpty()) then
 self.extension->collect(e | e.extending.oclAsType(StructuredDataType).allMembers())->union(self.member)->asOrderedSet()
 else 
 self.member
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eOperations name="allConstraints" upperBound="-1" eType="#//Constraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (not self.extension->isEmpty()) then
 self.extension->collect(e | e.extending.oclAsType(StructuredDataType).allConstraints())->union(self.constraint)->asOrderedSet()
 else 
 self.constraint
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
Philip Makedonski
committed
<eStructuralFeatures xsi:type="ecore:EReference" name="extension" upperBound="-1"
eType="#//Extension" containment="true">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="member" upperBound="-1"
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Member" eSuperTypes="#//Parameter">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isOptional" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="constraint" upperBound="-1"
eType="#//Constraint" containment="true">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StructuredDataInstance" eSuperTypes="#//DataInstance">
<eStructuralFeatures xsi:type="ecore:EReference" name="memberAssignment" upperBound="-1"
eType="#//MemberAssignment" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="unassignedMember" eType="#//UnassignedMemberTreatment"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MemberAssignment" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="member" lowerBound="1"
<eStructuralFeatures xsi:type="ecore:EReference" name="memberSpec" lowerBound="1"
eType="#//DataUse" containment="true"/>
<eClassifiers xsi:type="ecore:EClass" name="StaticDataUse" abstract="true" eSuperTypes="#//DataUse"/>
<eClassifiers xsi:type="ecore:EClass" name="DataUse" abstract="true" eSuperTypes="#//Element">
<eOperations name="resolveDataType" eType="#//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="null"/>
</eAnnotations>
</eOperations>
Philip Makedonski
committed
<eOperations name="isEffectivelyStatic" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 (self.oclIsKindOf(StaticDataUse)
 or (self.oclIsKindOf(DataElementUse) and 
 (self.oclAsType(DataElementUse).dataElement.oclIsUndefined()
 or self.oclAsType(DataElementUse).dataElement.oclIsKindOf(DataInstance)
 or self.oclAsType(DataElementUse).dataElement.oclIsKindOf(DataType)
 )
 )
 )
 and self.argument->forAll(a | a.dataUse.isEffectivelyStatic())
 "/>
Philip Makedonski
committed
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
eType="#//ParameterBinding" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="reduction" upperBound="-1"
eType="#//MemberReference" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ParameterBinding" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="dataUse" lowerBound="1"
<eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="UnassignedMemberTreatment">
Philip Makedonski
committed
<eLiterals name="undefined"/>
<eLiterals name="AnyValue" value="1"/>
<eLiterals name="AnyValueOrOmit" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Action" eSuperTypes="#//MappableDataElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="formalParameter" upperBound="-1"
eType="#//FormalParameter" containment="true"/>
<eClassifiers xsi:type="ecore:EClass" name="FormalParameter" eSuperTypes="#//Parameter"/>
<eClassifiers xsi:type="ecore:EClass" name="Function" eSuperTypes="#//Action">
<eStructuralFeatures xsi:type="ecore:EReference" name="returnType" lowerBound="1"
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FormalParameterUse" eSuperTypes="#//DynamicDataUse">
<eOperations name="resolveDataType" eType="#//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="self.parameter.dataType"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
<eClassifiers xsi:type="ecore:EClass" name="DynamicDataUse" abstract="true" eSuperTypes="#//DataUse"/>
<eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="dataType" lowerBound="1"
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FunctionCall" eSuperTypes="#//DynamicDataUse">
<eOperations name="resolveDataType" eType="#//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="self.function.returnType"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
<eClassifiers xsi:type="ecore:EClass" name="VariableUse" eSuperTypes="#//DynamicDataUse">
<eOperations name="resolveDataType" eType="#//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="self.variable.dataType"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="componentInstance" lowerBound="1"
<eStructuralFeatures xsi:type="ecore:EReference" name="variable" lowerBound="1"
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ComponentInstance" eSuperTypes="#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="type" lowerBound="1" eType="#//ComponentType"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="role" lowerBound="1" eType="#//ComponentInstanceRole"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ComponentType" eSuperTypes="#//PackageableElement">
<eOperations name="allGates" upperBound="-1" eType="#//GateInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (not self.extension.oclIsUndefined()) then
 self.extension.extending.oclAsType(ComponentType).allGates()->union(self.gateInstance)->asOrderedSet()
 else 
 self.gateInstance
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eOperations name="allTimers" upperBound="-1" eType="#//Timer">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (not self.extension.oclIsUndefined()) then
 self.extension.extending.oclAsType(ComponentType).allTimers()->union(self.timer)->asOrderedSet()
 else 
 self.timer
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eOperations name="allVariables" upperBound="-1" eType="#//Variable">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (not self.extension.oclIsUndefined()) then
 self.extension.extending.oclAsType(ComponentType).allVariables()->union(self.variable)->asOrderedSet()
 else 
 self.variable
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="gateInstance" lowerBound="1"
upperBound="-1" eType="#//GateInstance" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="timer" upperBound="-1"
eType="#//Timer" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="variable" upperBound="-1"
eType="#//Variable" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="extension" eType="#//Extension"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GateInstance" eSuperTypes="#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="type" lowerBound="1" eType="#//GateType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GateType" eSuperTypes="#//PackageableElement">
<eOperations name="allDataTypes" upperBound="-1" eType="#//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (not self.extension.oclIsUndefined()) then
 self.extension.extending.oclAsType(GateType).allDataTypes()->union(self.dataType)->asOrderedSet()
 else 
 self.dataType
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataType" lowerBound="1"
upperBound="-1" eType="#//DataType"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="#//GateTypeKind"
<eStructuralFeatures xsi:type="ecore:EReference" name="extension" eType="#//Extension"
containment="true"/>
<eClassifiers xsi:type="ecore:EClass" name="Timer" eSuperTypes="#//NamedElement"/>
<eClassifiers xsi:type="ecore:EEnum" name="ComponentInstanceRole">
<eLiterals name="SUT"/>
<eLiterals name="Tester" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OmitValue" eSuperTypes="#//SpecialValueUse"/>
<eClassifiers xsi:type="ecore:EClass" name="SpecialValueUse" abstract="true" eSuperTypes="#//StaticDataUse">
<eOperations name="resolveDataType" eType="#//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (self.container().oclIsTypeOf(MemberAssignment)) then
 self.container().oclAsType(MemberAssignment).member.dataType
 else 
 if (self.container().oclIsTypeOf(ParameterBinding)) then
 self.container().oclAsType(ParameterBinding).parameter.dataType
 else 
 if (self.container().oclIsTypeOf(Interaction) and 
 self.oclIsTypeOf(AnyValue)) then
 self.oclAsType(AnyValue).dataType
 else
 null
 endif
 endif
 endif
 "/>
</eAnnotations>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AnyValue" eSuperTypes="#//SpecialValueUse">
<eOperations name="resolveDataType" eType="#//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (not self.dataType.oclIsUndefined()) then
 self.dataType
 else 
 if (self.container().oclIsTypeOf(MemberAssignment)) then
 self.container().oclAsType(MemberAssignment).member.dataType
 else 
 if (self.container().oclIsTypeOf(ParameterBinding)) then
 self.container().oclAsType(ParameterBinding).parameter.dataType
 else
 if (self.container().oclIsTypeOf(CollectionDataInstance)) then
 self.container().oclAsType(CollectionDataInstance).dataType.oclAsType(CollectionDataType).itemType
 else
 if (self.container().oclIsTypeOf(DataElementUse)) then
 self.container().oclAsType(DataElementUse).resolveDataType().oclAsType(CollectionDataType).itemType
 else
 if (self.container().oclIsTypeOf(DataInstanceUse)) then
 self.container().oclAsType(DataInstanceUse).resolveDataType().oclAsType(CollectionDataType).itemType
 else
 null
 endif
 endif
 endif
 endif
 endif
 endif
 "/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"/>
<eClassifiers xsi:type="ecore:EClass" name="AnyValueOrOmit" eSuperTypes="#//SpecialValueUse"/>
<eClassifiers xsi:type="ecore:EClass" name="DataInstanceUse" eSuperTypes="#//StaticDataUse">
<eOperations name="resolveDataType" eType="#//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (not self.dataInstance.oclIsUndefined()) then
 self.dataInstance.dataType
 else 
 if (not self.dataType.oclIsUndefined()) then
 self.dataType
 else 
 if (self.container().oclIsTypeOf(MemberAssignment)) then
 self.container().oclAsType(MemberAssignment).member.dataType
 else 
 if (self.container().oclIsTypeOf(ParameterBinding)) then
 self.container().oclAsType(ParameterBinding).parameter.dataType
 else
 if (self.container().oclIsTypeOf(CollectionDataInstance)) then
 self.container().oclAsType(CollectionDataInstance).dataType.oclAsType(CollectionDataType).itemType
 else
 if (self.container().oclIsTypeOf(DataElementUse)) then
 self.container().oclAsType(DataElementUse).resolveDataType().oclAsType(CollectionDataType).itemType
 else
 if (self.container().oclIsTypeOf(DataInstanceUse)) then
 self.container().oclAsType(DataInstanceUse).resolveDataType().oclAsType(CollectionDataType).itemType
 else
 null
 endif
 endif
 endif
 endif
 endif
 endif
 endif
 "/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataInstance" eType="#//DataInstance"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="unassignedMember" eType="#//UnassignedMemberTreatment"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="item" upperBound="-1" eType="#//DataUse"
containment="true">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
<eClassifiers xsi:type="ecore:EClass" name="Time" eSuperTypes="#//SimpleDataType"/>
<eClassifiers xsi:type="ecore:EClass" name="TimeLabel" eSuperTypes="#//NamedElement"/>
<eClassifiers xsi:type="ecore:EClass" name="TimerOperation" abstract="true" eSuperTypes="#//AtomicBehaviour">
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then
 OrderedSet { self.componentInstance }
 else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="timer" lowerBound="1" eType="#//Timer"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="componentInstance" lowerBound="1"
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AtomicBehaviour" abstract="true" eSuperTypes="#//Behaviour">
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then
 self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()
 else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="timeConstraint" ordered="false"
upperBound="-1" eType="#//TimeConstraint" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="timeLabel" eType="#//TimeLabel"
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Behaviour" abstract="true" eSuperTypes="#//Element">
<eOperations name="isTesterInputEvent" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (self.oclIsKindOf(TimeOut) or 
 self.oclIsKindOf(Quiescence) or
 (self.oclIsKindOf(Interaction) and
 self.oclAsType(Interaction).sourceGate.component.role = ComponentInstanceRole::SUT and
 self.oclAsType(Interaction).target->exists(t | t.targetGate.component.role = ComponentInstanceRole::Tester)
 )
 ) then
 true
 else
 false
 endif"/>
</eAnnotations>
</eOperations>
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then
 OrderedSet{}
 else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="testObjective" ordered="false"
upperBound="-1" eType="#//TestObjective"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeConstraint" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="timeConstraintExpression"
lowerBound="1" eType="#//DataUse" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimerStart" eSuperTypes="#//TimerOperation">
<eStructuralFeatures xsi:type="ecore:EReference" name="period" lowerBound="1"
<eClassifiers xsi:type="ecore:EClass" name="TimerStop" eSuperTypes="#//TimerOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="TimeOut" eSuperTypes="#//TimerOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="TimeOperation" abstract="true" eSuperTypes="#//AtomicBehaviour">
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then (
 if not self.componentInstance.oclIsUndefined() then
 OrderedSet { self.componentInstance }
 else
 self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()
 endif
 ) else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="componentInstance" eType="#//ComponentInstance"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="period" lowerBound="1"
<eClassifiers xsi:type="ecore:EClass" name="Wait" eSuperTypes="#//TimeOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="Quiescence" eSuperTypes="#//TimeOperation">
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then (
 if not self.componentInstance.oclIsUndefined() or not self.gateReference.oclIsUndefined() then
 self.componentInstance->including(self.gateReference.component)->asOrderedSet()
 else
 self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()
 endif
 ) else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="gateReference" eType="#//GateReference"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GateReference" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="component" lowerBound="1"
eType="#//ComponentInstance"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="gate" lowerBound="1" eType="#//GateInstance"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeLabelUse" eSuperTypes="#//DynamicDataUse">
<eOperations name="resolveDataType" eType="#//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="Time.allInstances()->asOrderedSet()->first()"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="timeLabel" lowerBound="1"
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="#//TimeLabelUseKind"
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TestConfiguration" eSuperTypes="#//PackageableElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="componentInstance" ordered="false"
lowerBound="2" upperBound="-1" eType="#//ComponentInstance" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connection" ordered="false"
lowerBound="1" upperBound="-1" eType="#//Connection" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Connection" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="endPoint" ordered="false"
lowerBound="2" upperBound="2" eType="#//GateReference" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TestDescription" eSuperTypes="#//PackageableElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="testConfiguration" lowerBound="1"
<eStructuralFeatures xsi:type="ecore:EReference" name="formalParameter" upperBound="-1"
eType="#//FormalParameter" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="behaviourDescription" eType="#//BehaviourDescription"
<eStructuralFeatures xsi:type="ecore:EReference" name="testObjective" ordered="false"
upperBound="-1" eType="#//TestObjective"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isLocallyOrdered" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BehaviourDescription" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="behaviour" lowerBound="1"
eType="#//Behaviour" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Block" eSuperTypes="#//Element">
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then
 self.behaviour.getParticipatingComponents()->asOrderedSet()
 else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eOperations name="getParticipatingComponentsExcluding" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then
 self.behaviour->excluding(excluded).getParticipatingComponents()->asOrderedSet()
 else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
<eParameters name="excluded" eType="#//Behaviour"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="behaviour" lowerBound="1"
upperBound="-1" eType="#//Behaviour" containment="true"/>
Martti Käärik
committed
<eStructuralFeatures xsi:type="ecore:EReference" name="guard" upperBound="-1"
eType="#//LocalExpression" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CombinedBehaviour" abstract="true" eSuperTypes="#//Behaviour">
<eStructuralFeatures xsi:type="ecore:EReference" name="periodic" upperBound="-1"
eType="#//PeriodicBehaviour" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="exceptional" upperBound="-1"
eType="#//ExceptionalBehaviour" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PeriodicBehaviour" eSuperTypes="#//Behaviour">
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then
 self.block.getParticipatingComponents()->asOrderedSet()
 else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="block" lowerBound="1" eType="#//Block"
<eStructuralFeatures xsi:type="ecore:EReference" name="period" lowerBound="1"
upperBound="-1" eType="#//LocalExpression" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ExceptionalBehaviour" abstract="true"
eSuperTypes="#//Behaviour">
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then
 self.block.getParticipatingComponents()->asOrderedSet()
 else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="block" lowerBound="1" eType="#//Block"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="guardedComponent" eType="#//ComponentInstance"/>
<eClassifiers xsi:type="ecore:EClass" name="AlternativeBehaviour" eSuperTypes="#//MultipleCombinedBehaviour"/>
<eClassifiers xsi:type="ecore:EClass" name="MultipleCombinedBehaviour" abstract="true"
eSuperTypes="#//CombinedBehaviour">
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then
 self.periodic.getParticipatingComponents()
 ->union(self.exceptional.getParticipatingComponents())
 ->union(self.block.getParticipatingComponents())->asOrderedSet()
 else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="block" lowerBound="1" upperBound="-1"
<eClassifiers xsi:type="ecore:EClass" name="ParallelBehaviour" eSuperTypes="#//MultipleCombinedBehaviour"/>
<eClassifiers xsi:type="ecore:EClass" name="BoundedLoopBehaviour" eSuperTypes="#//SingleCombinedBehaviour">
<eStructuralFeatures xsi:type="ecore:EReference" name="numIteration" lowerBound="1"
upperBound="-1" eType="#//LocalExpression" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SingleCombinedBehaviour" abstract="true"
eSuperTypes="#//CombinedBehaviour">
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then
 self.periodic.getParticipatingComponents()
 ->union(self.exceptional.getParticipatingComponents())
 ->union(self.block.getParticipatingComponents())->asOrderedSet()
 else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="block" lowerBound="1" eType="#//Block"
<eClassifiers xsi:type="ecore:EClass" name="OptionalBehaviour" eSuperTypes="#//SingleCombinedBehaviour"/>
<eClassifiers xsi:type="ecore:EClass" name="UnboundedLoopBehaviour" eSuperTypes="#//SingleCombinedBehaviour"/>
<eClassifiers xsi:type="ecore:EClass" name="ConditionalBehaviour" eSuperTypes="#//MultipleCombinedBehaviour"/>
<eClassifiers xsi:type="ecore:EClass" name="CompoundBehaviour" eSuperTypes="#//SingleCombinedBehaviour"/>
<eClassifiers xsi:type="ecore:EClass" name="DefaultBehaviour" eSuperTypes="#//ExceptionalBehaviour"/>
<eClassifiers xsi:type="ecore:EClass" name="InterruptBehaviour" eSuperTypes="#//ExceptionalBehaviour"/>
<eClassifiers xsi:type="ecore:EClass" name="Target" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="targetGate" lowerBound="1"
<eStructuralFeatures xsi:type="ecore:EReference" name="valueAssignment" upperBound="-1"
eType="#//ValueAssignment" containment="true">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="VerdictAssignment" eSuperTypes="#//AtomicBehaviour">
<eStructuralFeatures xsi:type="ecore:EReference" name="verdict" lowerBound="1"
eType="#//DataUse" containment="true"/>
<eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//ActionBehaviour">
<eStructuralFeatures xsi:type="ecore:EReference" name="otherwise" eType="#//DataUse"
<eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
<eClassifiers xsi:type="ecore:EClass" name="Stop" eSuperTypes="#//AtomicBehaviour"/>
<eClassifiers xsi:type="ecore:EClass" name="Break" eSuperTypes="#//AtomicBehaviour"/>
Philip Makedonski
committed
<eClassifiers xsi:type="ecore:EClass" name="Assignment" eSuperTypes="#//AtomicBehaviour">
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then (
 if not self.variable.componentInstance.oclIsUndefined() then
 OrderedSet { self.variable.componentInstance }
 else
 self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()
 endif
 ) else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
Philip Makedonski
committed
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="variable" lowerBound="1"
eType="#//VariableUse" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ActionBehaviour" abstract="true" eSuperTypes="#//AtomicBehaviour">
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then (
 if not self.componentInstance.oclIsUndefined() then
 OrderedSet { self.componentInstance }
 else
 self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()
 endif
 ) else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="componentInstance" eType="#//ComponentInstance"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InlineAction" eSuperTypes="#//ActionBehaviour">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ActionReference" eSuperTypes="#//ActionBehaviour">
<eStructuralFeatures xsi:type="ecore:EReference" name="action" lowerBound="1"
Philip Makedonski
committed
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
eType="#//ParameterBinding" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TestDescriptionReference" eSuperTypes="#//AtomicBehaviour">
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and not self.componentInstanceBinding->isEmpty() then
 self.componentInstanceBinding.actualComponent->asOrderedSet()
 else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="testDescription" lowerBound="1"
<eStructuralFeatures xsi:type="ecore:EReference" name="componentInstanceBinding"
ordered="false" upperBound="-1" eType="#//ComponentInstanceBinding" containment="true"/>
Philip Makedonski
committed
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
eType="#//ParameterBinding" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ComponentInstanceBinding" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="formalComponent" lowerBound="1"
<eStructuralFeatures xsi:type="ecore:EReference" name="actualComponent" lowerBound="1"
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Interaction" eSuperTypes="#//AtomicBehaviour">
<eOperations name="getParticipatingComponents" upperBound="-1" eType="#//ComponentInstance">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then
 self.target
 ->collect(targetGate.component)
 ->including(sourceGate.component)
 ->asOrderedSet()
 else
 self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()
 endif
 "/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceGate" lowerBound="1"
<eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
lowerBound="1" upperBound="-1" eType="#//Target" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Message" eSuperTypes="#//Interaction">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isTrigger" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" lowerBound="1"
<eClassifiers xsi:type="ecore:EClass" name="PredefinedFunction" eSuperTypes="#//PackageableElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="returnType" eType="#//DataType"/>
Martti Käärik
committed
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MemberReference" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="member" eType="#//Member"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="collectionIndex" eType="#//DataUse"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PredefinedFunctionCall" eSuperTypes="#//DynamicDataUse">
Philip Makedonski
committed
<eOperations name="resolveDataType" eType="#//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="self.function.returnType"/>
</eAnnotations>
</eOperations>
Martti Käärik
committed
<eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
eType="#//PredefinedFunction"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="actualParameters" upperBound="-1"
eType="#//DataUse" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LocalExpression" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
eType="#//DataUse" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="scope" eType="#//ComponentInstance"/>
</eClassifiers>
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
<eClassifiers xsi:type="ecore:EEnum" name="GateTypeKind">
<eLiterals name="Message"/>
<eLiterals name="Procedure" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="TimeLabelUseKind">
<eLiterals name="Last"/>
<eLiterals name="Previous" value="1"/>
<eLiterals name="First" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ValueAssignment" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="variable" lowerBound="1"
eType="#//Variable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameter" eType="#//Parameter"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcedureCall" eSuperTypes="#//Interaction">
<eStructuralFeatures xsi:type="ecore:EReference" name="signature" lowerBound="1"
eType="#//ProcedureSignature"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" lowerBound="1"
upperBound="-1" eType="#//ParameterBinding" containment="true">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="replyTo" eType="#//ProcedureCall"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcedureSignature" eSuperTypes="#//DataType">
<eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
upperBound="-1" eType="#//ProcedureParameter" containment="true">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcedureParameter" eSuperTypes="#//Parameter">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="#//ParameterKind"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ParameterKind">
<eLiterals name="In"/>
<eLiterals name="Out" value="1"/>
<eLiterals name="Exception" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CollectionDataType" eSuperTypes="#//DataType">
<eStructuralFeatures xsi:type="ecore:EReference" name="itemType" lowerBound="1"
eType="#//DataType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CollectionDataInstance" eSuperTypes="#//DataInstance">
<eStructuralFeatures xsi:type="ecore:EReference" name="item" upperBound="-1" eType="#//DataUse"
containment="true">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
Philip Makedonski
committed
<eStructuralFeatures xsi:type="ecore:EAttribute" name="unassignedMember" eType="#//UnassignedMemberTreatment"/>
<eClassifiers xsi:type="ecore:EClass" name="Extension" eSuperTypes="#//Element">
Philip Makedonski
committed
<eOperations name="transitiveExtending" upperBound="-1" eType="#//Extension">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (self.extending.oclIsKindOf(AnnotationType)) then
 OrderedSet { self.extending.oclAsType(AnnotationType).extension }
 else
 if (self.extending.oclIsKindOf(ComponentType)) then
 OrderedSet { self.extending.oclAsType(ComponentType).extension }
 else
 if (self.extending.oclIsKindOf(GateType)) then
 OrderedSet { self.extending.oclAsType(GateType).extension }
 else
 if (self.extending.oclIsKindOf(StructuredDataType)) then
 self.extending.oclAsType(StructuredDataType).extension
 else
 if (self.extending.oclIsKindOf(SimpleDataType)) then
 OrderedSet { self.extending.oclAsType(SimpleDataType).extension }
 else
 OrderedSet { }
 endif
 endif
 endif
 endif
 endif
 "/>
Philip Makedonski
committed
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eOperations>
Philip Makedonski
committed
<eOperations name="isExtending" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (self.extending = e) then
 true
 else
 if (self->closure(transitiveExtending())->includes(e)) then
 true
 else
 false
 endif 
 endif
 "/>
</eAnnotations>
<eParameters name="e" eType="#//PackageableElement"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="extending" lowerBound="1"
eType="#//PackageableElement"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LiteralValueUse" eSuperTypes="#//StaticDataUse">
Philip Makedonski
committed
<eOperations name="resolveDataType" eType="#//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (not self.dataType.oclIsUndefined()) then
 self.dataType
 else 
 if (self.container().oclIsTypeOf(MemberAssignment)) then
 self.container().oclAsType(MemberAssignment).member.dataType
 else 
 if (self.container().oclIsTypeOf(ParameterBinding)) then
 self.container().oclAsType(ParameterBinding).parameter.dataType
 else
 if (not self.intValue.oclIsUndefined()) then
 SimpleDataType.allInstances()->select(t | t.name = 'Integer')->asOrderedSet()->first()
 else
 if (not self.boolValue.oclIsUndefined()) then
 SimpleDataType.allInstances()->select(t | t.name = 'Boolean')->asOrderedSet()->first()
 else 
 SimpleDataType.allInstances()->select(t | t.name = 'String')->asOrderedSet()->first()
 endif
 endif
 endif
 endif
 endif
 "/>
Philip Makedonski
committed
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="intValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="boolValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConstraintType" eSuperTypes="#//PackageableElement"/>
<eClassifiers xsi:type="ecore:EClass" name="Constraint" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="type" lowerBound="1" eType="#//ConstraintType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="quantifier" upperBound="-1"
Philip Makedonski
committed
eType="#//DataUse" containment="true">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EnumDataType" eSuperTypes="#//SimpleDataType">
<eStructuralFeatures xsi:type="ecore:EReference" name="value" upperBound="-1"
eType="#//SimpleDataInstance" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataElementUse" eSuperTypes="#//DataUse">
Philip Makedonski
committed
<eOperations name="resolveDataType" eType="#//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="
 if (not self.dataElement.oclIsUndefined()) then
 if (self.dataElement.oclIsKindOf(DataType)) then
 self.dataElement.oclAsType(DataType)
 else
 if (self.dataElement.oclIsKindOf(DataInstance)) then
 self.dataElement.oclAsType(DataInstance).dataType
 else 
 if (self.dataElement.oclIsTypeOf(FormalParameter)) then
 self.dataElement.oclAsType(FormalParameter).dataType
 else 
 if (self.dataElement.oclIsTypeOf(Function)) then
 self.dataElement.oclAsType(Function).returnType
 else
 null
 endif
 endif 
 endif
 endif
 else 
 if (self.container().oclIsTypeOf(MemberAssignment)) then
 self.container().oclAsType(MemberAssignment).member.dataType
 else 
 if (self.container().oclIsTypeOf(ParameterBinding)) then
 self.container().oclAsType(ParameterBinding).parameter.dataType
 else
 if (self.container().oclIsTypeOf(CollectionDataInstance)) then
 self.container().oclAsType(CollectionDataInstance).dataType.oclAsType(CollectionDataType).itemType
 else
 if (self.container().oclIsTypeOf(DataElementUse)) then
 self.container().oclAsType(DataElementUse).resolveDataType().oclAsType(CollectionDataType).itemType
 else
 if (self.container().oclIsTypeOf(DataInstanceUse)) then
 self.container().oclAsType(DataInstanceUse).resolveDataType().oclAsType(CollectionDataType).itemType
 else
 null
 endif
 endif
 endif
 endif
 endif
 endif
 "/>
Philip Makedonski
committed
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="unassignedMember" eType="#//UnassignedMemberTreatment"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataElement" eType="#//NamedElement"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="item" upperBound="-1" eType="#//DataUse"
containment="true">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>