blob: 13a1a673064d8cdc8973279c954460c30adfabd9 [file] [log] [blame]
<?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="gtasmmodel"
nsURI="http:///gtasmmodel.ecore" nsPrefix="gtasmmodel">
<eSubpackages name="vpm" nsURI="http:///viatragtasmmodel/vpm.ecore" nsPrefix="viatragtasmmodel.vpm">
<eSubpackages name="editmodel" nsURI="http:///viatragtasmmodel/vpm/editmodel.ecore"
nsPrefix="viatragtasmmodel.vpm.editmodel">
<eClassifiers xsi:type="ecore:EClass" name="ModelElement" abstract="true" eSuperTypes="#//vpm/editmodel/VPMElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false"
upperBound="-1" eType="#//vpm/editmodel/ModelElement" eOpposite="#//vpm/editmodel/ModelElement/instance"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="instance" ordered="false"
upperBound="-1" eType="#//vpm/editmodel/ModelElement" eOpposite="#//vpm/editmodel/ModelElement/type"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="supertype" ordered="false"
upperBound="-1" eType="#//vpm/editmodel/ModelElement" eOpposite="#//vpm/editmodel/ModelElement/subtype"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="subtype" ordered="false"
upperBound="-1" eType="#//vpm/editmodel/ModelElement" eOpposite="#//vpm/editmodel/ModelElement/supertype"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="relationsTo" upperBound="-1"
eType="#//vpm/editmodel/Relation" eOpposite="#//vpm/editmodel/Relation/to"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="subRelationships" ordered="false"
upperBound="-1" eType="#//vpm/editmodel/Relationship" eOpposite="#//vpm/editmodel/Relationship/supplier"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="superRelationships"
ordered="false" upperBound="-1" eType="#//vpm/editmodel/Relationship"
containment="true" eOpposite="#//vpm/editmodel/Relationship/client"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="typeStr" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="namespaceStr" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="realElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="relationsFrom" upperBound="-1"
eType="#//vpm/editmodel/Relation" containment="true" eOpposite="#//vpm/editmodel/Relation/from"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Relationship" abstract="true" eSuperTypes="#//vpm/editmodel/VPMElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="clientStr" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="supplierStr" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="client" ordered="false"
eType="#//vpm/editmodel/ModelElement" transient="true" eOpposite="#//vpm/editmodel/ModelElement/superRelationships"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="supplier" ordered="false"
lowerBound="1" eType="#//vpm/editmodel/ModelElement" eOpposite="#//vpm/editmodel/ModelElement/subRelationships"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Entity" eSuperTypes="#//vpm/editmodel/ModelElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//vpm/editmodel/Entity"
eOpposite="#//vpm/editmodel/Entity/components"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="components" ordered="false"
upperBound="-1" eType="#//vpm/editmodel/Entity" containment="true" eOpposite="#//vpm/editmodel/Entity/parent"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Relation" eSuperTypes="#//vpm/editmodel/ModelElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="to" ordered="false"
lowerBound="1" eType="#//vpm/editmodel/ModelElement" eOpposite="#//vpm/editmodel/ModelElement/relationsTo"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="fromStr" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="toStr" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//vpm/editmodel/ModelElement"
eOpposite="#//vpm/editmodel/ModelElement/relationsFrom"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TypeOf" eSuperTypes="#//vpm/editmodel/Relationship"/>
<eClassifiers xsi:type="ecore:EClass" name="SupertypeOf" eSuperTypes="#//vpm/editmodel/Relationship"/>
<eClassifiers xsi:type="ecore:EClass" name="VPMElement" abstract="true" eSuperTypes="#//gtasm/metamodel/asm/core/AnnotatedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="variableReferences"
upperBound="-1" eType="#//gtasm/metamodel/asm/terms/VariableReference"
containment="true"/>
</eClassifiers>
</eSubpackages>
</eSubpackages>
<eSubpackages name="gtasm" nsURI="http:///viatragtasmmodel/gtasm.ecore" nsPrefix="viatragtasmmodel.gtasm">
<eSubpackages name="metamodel" nsURI="http:///viatragtasmmodel/gtasm/metamodel.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel">
<eSubpackages name="modelmanagement" nsURI="http:///viatragtasmmodel/gtasm/metamodel/modelmanagement.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.modelmanagement">
<eSubpackages name="queryFunctions" nsURI="http:///viatragtasmmodel/gtasm/metamodel/modelmanagement/queryFunctions.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.modelmanagement.queryFunctions">
<eClassifiers xsi:type="ecore:EClass" name="Aggregate" eSuperTypes="#//gtasm/metamodel/asm/terms/ModelElementQuery"/>
<eClassifiers xsi:type="ecore:EClass" name="Source" eSuperTypes="#//gtasm/metamodel/asm/terms/ModelElementQuery"/>
<eClassifiers xsi:type="ecore:EClass" name="Target" eSuperTypes="#//gtasm/metamodel/asm/terms/ModelElementQuery"/>
<eClassifiers xsi:type="ecore:EClass" name="ElementReference" eSuperTypes="#//gtasm/metamodel/asm/terms/ModelElementQuery"/>
<eClassifiers xsi:type="ecore:EClass" name="FullyQualifiedName" eSuperTypes="#//gtasm/metamodel/asm/terms/ModelElementQuery"/>
<eClassifiers xsi:type="ecore:EClass" name="Name" eSuperTypes="#//gtasm/metamodel/asm/terms/ModelElementQuery"/>
<eClassifiers xsi:type="ecore:EClass" name="Value" eSuperTypes="#//gtasm/metamodel/asm/terms/ModelElementQuery"/>
<eClassifiers xsi:type="ecore:EClass" name="Inverse" eSuperTypes="#//gtasm/metamodel/asm/terms/ModelElementQuery"/>
<eClassifiers xsi:type="ecore:EClass" name="Multiplicity" eSuperTypes="#//gtasm/metamodel/asm/terms/ModelElementQuery"/>
</eSubpackages>
<eSubpackages name="manipulationRules" nsURI="http:///viatragtasmmodel/gtasm/metamodel/modelmanagement/manipulationRules.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.modelmanagement.manipulationRules">
<eSubpackages name="deletion" nsURI="http:///viatragtasmmodel/gtasm/metamodel/modelmanagement/manipulationRules/deletion.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.modelmanagement.manipulationRules.deletion">
<eClassifiers xsi:type="ecore:EClass" name="RelationshipDeleteRule" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ModelManipulationRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="super" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sub" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ElementDeleteRule" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ModelManipulationRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="element" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="semantics" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/enums/DeleteSemantics"
defaultValueLiteral="dropContent"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DeleteInstanceOf" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/deletion/RelationshipDeleteRule"/>
<eClassifiers xsi:type="ecore:EClass" name="DeleteSupertypeOf" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/deletion/RelationshipDeleteRule"/>
</eSubpackages>
<eSubpackages name="creation" nsURI="http:///viatragtasmmodel/gtasm/metamodel/modelmanagement/manipulationRules/creation.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.modelmanagement.manipulationRules.creation">
<eClassifiers xsi:type="ecore:EClass" name="RelationshipCreateRule" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ModelManipulationRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="super" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sub" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RelationCreateRule" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/creation/ElementCreateRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ElementCreateRule" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ModelManipulationRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="targetVariable"
ordered="false" lowerBound="1" eType="#//gtasm/metamodel/asm/terms/VariableReference"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EntityCreateRule" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/creation/ElementCreateRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="parent" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CreateSupertypeOf" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/creation/RelationshipCreateRule"/>
<eClassifiers xsi:type="ecore:EClass" name="CreateInstanceOf" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/creation/RelationshipCreateRule"/>
</eSubpackages>
<eSubpackages name="copymove" nsURI="http:///viatragtasmmodel/gtasm/metamodel/modelmanagement/manipulationRules/copymove.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.modelmanagement.manipulationRules.copymove">
<eClassifiers xsi:type="ecore:EClass" name="MoveRule" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ModelManipulationRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="trgContainer"
ordered="false" lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="srcRoot" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModelCopyRule" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ModelManipulationRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="targetVariable"
ordered="false" eType="#//gtasm/metamodel/asm/terms/VariableReference"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="trgContainer"
ordered="false" lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="srcRoot" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="semantics" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/enums/CopySemantics"
defaultValueLiteral="dropOuterEdges"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="update" nsURI="http:///viatragtasmmodel/gtasm/metamodel/modelmanagement/manipulationRules/update.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.modelmanagement.manipulationRules.update">
<eClassifiers xsi:type="ecore:EClass" name="RenameRule" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/update/SetRule"/>
<eClassifiers xsi:type="ecore:EClass" name="SetRule" abstract="true" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ModelManipulationRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="element" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SetValueRule" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/update/SetRule"/>
<eClassifiers xsi:type="ecore:EClass" name="SetRelationTo" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/update/SetRelationEndPoint"/>
<eClassifiers xsi:type="ecore:EClass" name="SetRelationEndPoint" abstract="true"
eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/update/SetRule"/>
<eClassifiers xsi:type="ecore:EClass" name="SetRelationFrom" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/update/SetRelationEndPoint"/>
<eClassifiers xsi:type="ecore:EClass" name="SetMultiplicityRule" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/update/SetRule"/>
<eClassifiers xsi:type="ecore:EClass" name="SetInverseRule" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/update/SetRule"/>
<eClassifiers xsi:type="ecore:EClass" name="SetAnyTargetRule" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/update/SetAnyEndpointRule"/>
<eClassifiers xsi:type="ecore:EClass" name="SetAnyEndpointRule" abstract="true"
eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/update/SetRule"/>
<eClassifiers xsi:type="ecore:EClass" name="SetAnySourceRule" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/update/SetAnyEndpointRule"/>
<eClassifiers xsi:type="ecore:EClass" name="SetAggregationRule" eSuperTypes="#//gtasm/metamodel/modelmanagement/manipulationRules/update/SetRule"/>
</eSubpackages>
</eSubpackages>
</eSubpackages>
<eSubpackages name="asm" nsURI="http:///viatragtasmmodel/gtasm/metamodel/asm.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.asm">
<eSubpackages name="definitions" nsURI="http:///viatragtasmmodel/gtasm/metamodel/asm/definitions.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.asm.definitions">
<eClassifiers xsi:type="ecore:EClass" name="Machine" eSuperTypes="#//gtasm/metamodel/gt/PatternContainer">
<eStructuralFeatures xsi:type="ecore:EReference" name="mainRule" ordered="false"
eType="#//gtasm/metamodel/asm/definitions/Rule"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="gtRuleDefinitions"
ordered="false" upperBound="-1" eType="#//gtasm/metamodel/gt/GTRule"
containment="true" eOpposite="#//gtasm/metamodel/gt/GTRule/namespace"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="asmFunctionDefinitions"
ordered="false" upperBound="-1" eType="#//gtasm/metamodel/asm/definitions/ASMFunction"
containment="true" eOpposite="#//gtasm/metamodel/asm/definitions/ASMFunction/namespace"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="asmRuleDefinitions"
ordered="false" upperBound="-1" eType="#//gtasm/metamodel/asm/definitions/Rule"
containment="true" eOpposite="#//gtasm/metamodel/asm/definitions/Rule/namespace"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="module" eType="#//gtasm/metamodel/asm/definitions/Module"
eOpposite="#//gtasm/metamodel/asm/definitions/Module/machine"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Rule" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false"
eType="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation" containment="true"
eOpposite="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation/asmRule"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="symParameters"
ordered="false" upperBound="-1" eType="#//gtasm/metamodel/asm/definitions/SymbolicRuleParameter"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="localVariables"
ordered="false" upperBound="-1" eType="#//gtasm/metamodel/asm/definitions/Variable"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="namespace" lowerBound="1"
eType="#//gtasm/metamodel/asm/definitions/Machine" eOpposite="#//gtasm/metamodel/asm/definitions/Machine/asmRuleDefinitions"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="references" ordered="false"
upperBound="-1" eType="#//gtasm/metamodel/asm/terms/VariableReference"
eOpposite="#//gtasm/metamodel/asm/terms/VariableReference/variable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="scope" ordered="false"
eType="#//gtasm/metamodel/asm/compoundRules/BlockRule" transient="true"
eOpposite="#//gtasm/metamodel/asm/compoundRules/BlockRule/localVariables"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="variableType" eType="#//gtasm/metamodel/asm/definitions/TypeConstant"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="VariableDefinition" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/definitions/Variable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ASMFunction" eSuperTypes="#//gtasm/metamodel/asm/definitions/FunctionDefinition">
<eStructuralFeatures xsi:type="ecore:EReference" name="initialValues"
ordered="false" upperBound="-1" eType="#//gtasm/metamodel/asm/definitions/InitialValue"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="arity" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="namespace" lowerBound="1"
eType="#//gtasm/metamodel/asm/definitions/Machine" eOpposite="#//gtasm/metamodel/asm/definitions/Machine/asmFunctionDefinitions"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="returnType" eType="#//gtasm/metamodel/asm/definitions/TypeConstant"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="argumentTypes"
upperBound="-1" eType="#//gtasm/metamodel/asm/definitions/TypeConstant"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FunctionDefinition" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement"/>
<eClassifiers xsi:type="ecore:EClass" name="InitialValue" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="locations" ordered="false"
upperBound="-1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SymbolicRuleParameter" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/definitions/Variable"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/enums/DirectionKind"
defaultValueLiteral="in"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Module" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="fileName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="machine" upperBound="-1"
eType="#//gtasm/metamodel/asm/definitions/Machine" containment="true"
eOpposite="#//gtasm/metamodel/asm/definitions/Machine/module"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="import" upperBound="-1"
eType="#//gtasm/metamodel/asm/definitions/ImportDeclaration" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="namespace" eType="#//gtasm/metamodel/asm/definitions/NamespaceDefinition"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ImportDeclaration" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="importValue" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NamespaceDefinition" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="namespaceValue"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Transformation" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="modules" upperBound="-1"
eType="#//gtasm/metamodel/asm/definitions/Module" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TypeConstant" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1"
eType="#//gtasm/metamodel/asm/enums/ValueKind"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ChangeEvent" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="changeKind" lowerBound="1"
eType="#//gtasm/metamodel/asm/enums/ChangeKind" defaultValueLiteral="new"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="variableReference"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/VariableReference"
containment="true"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="core" nsURI="http:///viatragtasmmodel/gtasm/metamodel/asm/core.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.asm.core">
<eClassifiers xsi:type="ecore:EClass" name="Annotation">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GTASMElement" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/core/AnnotatedElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="id" ordered="false"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="fqn" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runtimeAnnotations"
ordered="false" upperBound="-1" eType="#//gtasm/metamodel/asm/core/RuntimeAnnotation"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RuntimeAnnotation" eSuperTypes="#//gtasm/metamodel/asm/core/AnnotatedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
eType="#//gtasm/metamodel/asm/core/RuntimeAnnotationElement" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="annotationName"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RuntimeAnnotationElement" eSuperTypes="#//gtasm/metamodel/asm/core/AnnotatedElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AnnotatedElement" abstract="true">
<eStructuralFeatures xsi:type="ecore:EReference" name="annotations" ordered="false"
upperBound="-1" eType="#//gtasm/metamodel/asm/core/Annotation" containment="true"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="simpleRules" nsURI="http:///viatragtasmmodel/gtasm/metamodel/asm/simpleRules.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.asm.simpleRules">
<eClassifiers xsi:type="ecore:EClass" name="ConditionalRuleTry" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation">
<eStructuralFeatures xsi:type="ecore:EReference" name="ruleToTry" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ruleElse" ordered="false"
eType="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConditionalRuleIf" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation">
<eStructuralFeatures xsi:type="ecore:EReference" name="expressionToTest"
ordered="false" lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ruleTrue" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ruleFalse" ordered="false"
eType="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CallRule" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation">
<eStructuralFeatures xsi:type="ecore:EReference" name="rule" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/definitions/Rule"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="actualParameters"
upperBound="-1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RuleUpdateVariable" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/RuleUpdate">
<eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/VariableReference"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RuleUpdate" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation">
<eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GTRuleInvocation" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation">
<eStructuralFeatures xsi:type="ecore:EReference" name="rule" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/gt/GTRule"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="invoker" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/compoundRules/CollectionIteratorRule"
transient="true" eOpposite="#//gtasm/metamodel/asm/compoundRules/CollectionIteratorRule/gtrule"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="actualParameters"
upperBound="-1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RuleUpdateASMFunction" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/RuleUpdate">
<eStructuralFeatures xsi:type="ecore:EReference" name="locations" ordered="false"
upperBound="-1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="function" ordered="false"
eType="#//gtasm/metamodel/asm/definitions/ASMFunction"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FailRule" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation"/>
<eClassifiers xsi:type="ecore:EClass" name="LogRule" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation">
<eStructuralFeatures xsi:type="ecore:EReference" name="out" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="level" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/enums/LogLevel" defaultValueLiteral="debug"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PrintRule" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation">
<eStructuralFeatures xsi:type="ecore:EReference" name="out" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="buffer" eType="#//gtasm/metamodel/asm/terms/Term"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SkipRule" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation"/>
<eClassifiers xsi:type="ecore:EClass" name="ModelManipulationRule" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation"/>
<eClassifiers xsi:type="ecore:EClass" name="ASMRuleInvocation" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="caller" ordered="false"
eType="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="asmRule" eType="#//gtasm/metamodel/asm/definitions/Rule"
eOpposite="#//gtasm/metamodel/asm/definitions/Rule/body"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PrintLnRule" eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation">
<eStructuralFeatures xsi:type="ecore:EReference" name="out" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="buffer" eType="#//gtasm/metamodel/asm/terms/Term"
containment="true"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="compoundRules" nsURI="http:///viatragtasmmodel/gtasm/metamodel/asm/compoundRules.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.asm.compoundRules">
<eClassifiers xsi:type="ecore:EClass" name="SequentialRule" eSuperTypes="#//gtasm/metamodel/asm/compoundRules/NestedRule"/>
<eClassifiers xsi:type="ecore:EClass" name="NestedRule" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation">
<eStructuralFeatures xsi:type="ecore:EReference" name="subrules" upperBound="-1"
eType="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RandomRule" eSuperTypes="#//gtasm/metamodel/asm/compoundRules/NestedRule"/>
<eClassifiers xsi:type="ecore:EClass" name="ParallelRule" eSuperTypes="#//gtasm/metamodel/asm/compoundRules/NestedRule"/>
<eClassifiers xsi:type="ecore:EClass" name="ChooseRule" eSuperTypes="#//gtasm/metamodel/asm/compoundRules/CollectionIteratorRule"/>
<eClassifiers xsi:type="ecore:EClass" name="CollectionIteratorRule" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/compoundRules/BlockRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="containmentConstraints"
upperBound="-1" eType="#//gtasm/metamodel/gt/ContainmentConstraint"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="condition" ordered="false"
eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="gtrule" ordered="false"
eType="#//gtasm/metamodel/asm/simpleRules/GTRuleInvocation" containment="true"
eOpposite="#//gtasm/metamodel/asm/simpleRules/GTRuleInvocation/invoker"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CompoundRule" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation">
<eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ForallRule" eSuperTypes="#//gtasm/metamodel/asm/compoundRules/CollectionIteratorRule"/>
<eClassifiers xsi:type="ecore:EClass" name="IterateRule" eSuperTypes="#//gtasm/metamodel/asm/compoundRules/CompoundRule"/>
<eClassifiers xsi:type="ecore:EClass" name="LetRule" eSuperTypes="#//gtasm/metamodel/asm/compoundRules/BlockRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="definitions" upperBound="-1"
eType="#//gtasm/metamodel/asm/definitions/VariableDefinition" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BlockRule" abstract="true" eSuperTypes="#//gtasm/metamodel/asm/compoundRules/CompoundRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="localVariables"
upperBound="-1" eType="#//gtasm/metamodel/asm/definitions/Variable"
containment="true" eOpposite="#//gtasm/metamodel/asm/definitions/Variable/scope"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="WhenRule" eSuperTypes="#//gtasm/metamodel/asm/compoundRules/CompoundRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="conditions" eType="#//gtasm/metamodel/asm/definitions/ChangeEvent"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="enums" nsURI="http:///viatragtasmmodel/gtasm/metamodel/asm/enums.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.asm.enums">
<eClassifiers xsi:type="ecore:EEnum" name="CopySemantics">
<eLiterals name="dropOuterEdges"/>
<eLiterals name="copyOuterEdges" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="DeleteSemantics">
<eLiterals name="dropContent"/>
<eLiterals name="moveContent" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="LogLevel">
<eLiterals name="debug"/>
<eLiterals name="warning" value="1"/>
<eLiterals name="error" value="2"/>
<eLiterals name="fatal" value="3"/>
<eLiterals name="info" value="4"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ContainmentMode">
<eLiterals name="in"/>
<eLiterals name="below" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ValueKind">
<eLiterals name="undef"/>
<eLiterals name="boolean" value="1"/>
<eLiterals name="string" value="2"/>
<eLiterals name="integer" value="3"/>
<eLiterals name="double" value="4"/>
<eLiterals name="modelelement" value="5"/>
<eLiterals name="multiplicity" value="6"/>
<eLiterals name="error" value="7"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="DirectionKind">
<eLiterals name="in"/>
<eLiterals name="inout" value="1"/>
<eLiterals name="out" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="MultiplicityKind">
<eLiterals name="one_to_one"/>
<eLiterals name="one_to_many" value="1"/>
<eLiterals name="many_to_one" value="2"/>
<eLiterals name="many_to_many" value="3"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ChangeKind">
<eLiterals name="new"/>
<eLiterals name="delete" value="1"/>
<eLiterals name="changed" value="2"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="terms" nsURI="http:///viatragtasmmodel/gtasm/metamodel/asm/terms.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.asm.terms">
<eClassifiers xsi:type="ecore:EClass" name="Term" abstract="true" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/enums/ValueKind" defaultValueLiteral="undef"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="VariableReference" eSuperTypes="#//gtasm/metamodel/asm/terms/Term">
<eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/definitions/Variable"
eOpposite="#//gtasm/metamodel/asm/definitions/Variable/references"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GTPatternCall" eSuperTypes="#//gtasm/metamodel/asm/terms/Term">
<eStructuralFeatures xsi:type="ecore:EReference" name="actualParameters"
upperBound="-1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="calledPattern"
ordered="false" eType="#//gtasm/metamodel/gt/GTPattern"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="matchCounter" eType="#//gtasm/metamodel/gt/GTMatchCounter"
containment="true" eOpposite="#//gtasm/metamodel/gt/GTMatchCounter/patternCall"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ASMFunctionInvocation" eSuperTypes="#//gtasm/metamodel/asm/terms/FunctionInvocation">
<eStructuralFeatures xsi:type="ecore:EReference" name="calledFunction"
ordered="false" eType="#//gtasm/metamodel/asm/definitions/ASMFunction"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FunctionInvocation" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/terms/Term">
<eStructuralFeatures xsi:type="ecore:EReference" name="actualParameters"
ordered="false" upperBound="-1" eType="#//gtasm/metamodel/asm/terms/Term"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Constant" eSuperTypes="#//gtasm/metamodel/asm/terms/Term">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NativeFunctionInvocation" eSuperTypes="#//gtasm/metamodel/asm/terms/FunctionInvocation">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="functionName" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModelElementQuery" eSuperTypes="#//gtasm/metamodel/asm/terms/Term">
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
</eClassifiers>
<eSubpackages name="builtInFunctions" nsURI="http:///viatragtasmmodel/gtasm/metamodel/asm/terms/builtInFunctions.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.asm.terms.builtInFunctions">
<eClassifiers xsi:type="ecore:EClass" name="ArithmeticOperation" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/terms/FunctionInvocation"/>
<eClassifiers xsi:type="ecore:EClass" name="Remainder" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/ArithmeticOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="Multiply" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/ArithmeticOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="Plus" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/ArithmeticOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="Minus" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/ArithmeticOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="Division" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/ArithmeticOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="RelationalOperation" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/terms/FunctionInvocation"/>
<eClassifiers xsi:type="ecore:EClass" name="And" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/RelationalOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="Equals" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/RelationalOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="GreaterThan" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/RelationalOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="GreaterThanOrEqualTo" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/RelationalOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="LessThan" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/RelationalOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="LessThanOrEqualTo" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/RelationalOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="Not" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/RelationalOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="NotEquals" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/RelationalOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="Or" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/RelationalOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="XOr" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/RelationalOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="ToString" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/ConversionOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="ToInt" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/ConversionOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="ToBoolean" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/ConversionOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="ToDouble" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/ConversionOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="ToModelElement" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/ConversionOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="ToMultiplicity" eSuperTypes="#//gtasm/metamodel/asm/terms/builtInFunctions/ConversionOperation"/>
<eClassifiers xsi:type="ecore:EClass" name="ConversionOperation" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/terms/FunctionInvocation"/>
</eSubpackages>
</eSubpackages>
</eSubpackages>
<eSubpackages name="gt" nsURI="http:///viatragtasmmodel/gtasm/metamodel/gt.ecore"
nsPrefix="viatragtasmmodel.gtasm.metamodel.gt">
<eClassifiers xsi:type="ecore:EClass" name="GTPatternBody" eSuperTypes="#//gtasm/metamodel/gt/PatternContainer">
<eStructuralFeatures xsi:type="ecore:EReference" name="negativePatterns"
ordered="false" upperBound="-1" eType="#//gtasm/metamodel/asm/terms/GTPatternCall"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="localVariables" ordered="false"
upperBound="-1" eType="#//gtasm/metamodel/gt/PatternVariable" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="calledPatterns" ordered="false"
upperBound="-1" eType="#//gtasm/metamodel/asm/terms/GTPatternCall" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="checkExpressions"
ordered="false" upperBound="-1" eType="#//gtasm/metamodel/asm/terms/Term"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="patternGraph" ordered="false"
lowerBound="1" eType="#//vpm/editmodel/Entity" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="containmentConstraints"
ordered="false" upperBound="-1" eType="#//gtasm/metamodel/gt/ContainmentConstraint"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="variableAssignments"
ordered="false" upperBound="-1" eType="#//gtasm/metamodel/gt/PatternVariableAssignment"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="header" lowerBound="1"
eType="#//gtasm/metamodel/gt/GTPattern" eOpposite="#//gtasm/metamodel/gt/GTPattern/patternBodies"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="elementWrappers"
upperBound="-1" eType="#//vpm/editmodel/ModelElement" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="danglingRelationships"
upperBound="-1" eType="#//vpm/editmodel/Relationship" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="danglingRelations"
upperBound="-1" eType="#//vpm/editmodel/Relation" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nonInjectivityConstraints"
upperBound="-1" eType="#//gtasm/metamodel/gt/NonInjectivityConstraint"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GTPattern" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="symParameters" ordered="false"
upperBound="-1" eType="#//gtasm/metamodel/gt/PatternVariable" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="patternBodies" ordered="false"
upperBound="-1" eType="#//gtasm/metamodel/gt/GTPatternBody" containment="true"
eOpposite="#//gtasm/metamodel/gt/GTPatternBody/header"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="namespace" lowerBound="1"
eType="#//gtasm/metamodel/asm/definitions/Machine"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="distinctMatching"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
eType="#//gtasm/metamodel/gt/PatternContainer" eOpposite="#//gtasm/metamodel/gt/PatternContainer/gtPatternDefinitions"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PatternVariable" eSuperTypes="#//gtasm/metamodel/asm/definitions/Variable">
<eStructuralFeatures xsi:type="ecore:EReference" name="elementInPattern"
ordered="false" upperBound="-1" eType="#//vpm/editmodel/ModelElement"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PatternVariableAssignment" eSuperTypes="#//gtasm/metamodel/gt/PatternVariableConstraint"/>
<eClassifiers xsi:type="ecore:EClass" name="GTRule" eSuperTypes="#//gtasm/metamodel/gt/PatternContainer">
<eStructuralFeatures xsi:type="ecore:EReference" name="symParameters" upperBound="-1"
eType="#//gtasm/metamodel/asm/definitions/SymbolicRuleParameter" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="precondition" ordered="false"
eType="#//gtasm/metamodel/asm/terms/GTPatternCall" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="localVariables" upperBound="-1"
eType="#//gtasm/metamodel/asm/definitions/Variable" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="action" ordered="false"
eType="#//gtasm/metamodel/asm/simpleRules/ASMRuleInvocation" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="postcondition" ordered="false"
eType="#//gtasm/metamodel/asm/terms/GTPatternCall" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="namespace" eType="#//gtasm/metamodel/asm/definitions/Machine"
eOpposite="#//gtasm/metamodel/asm/definitions/Machine/gtRuleDefinitions"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContainmentConstraint" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/definitions/Variable"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/enums/ContainmentMode"
defaultValueLiteral="in"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parent" ordered="false"
lowerBound="1" eType="#//gtasm/metamodel/asm/terms/Term" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GTMatchCounter" eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="patternCall" eType="#//gtasm/metamodel/asm/terms/GTPatternCall"
eOpposite="#//gtasm/metamodel/asm/terms/GTPatternCall/matchCounter"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="variableReference"
eType="#//gtasm/metamodel/asm/terms/VariableReference" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NonInjectivityConstraint" eSuperTypes="#//gtasm/metamodel/gt/PatternVariableConstraint"/>
<eClassifiers xsi:type="ecore:EClass" name="PatternVariableConstraint" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="leftValue" ordered="false"
eType="#//gtasm/metamodel/asm/terms/VariableReference" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="rightValue" ordered="false"
eType="#//gtasm/metamodel/asm/terms/VariableReference" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PatternContainer" abstract="true"
eSuperTypes="#//gtasm/metamodel/asm/core/GTASMElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="gtPatternDefinitions"
upperBound="-1" eType="#//gtasm/metamodel/gt/GTPattern" containment="true"
eOpposite="#//gtasm/metamodel/gt/GTPattern/container"/>
</eClassifiers>
</eSubpackages>
</eSubpackages>
</eSubpackages>
</ecore:EPackage>