Added new connection patterns to metamodel. Updated editors. Bug

correction in MWE2 generation scripts of XText editors.
This commit is contained in:
Arnaud Dieumegard
2019-01-10 16:19:07 +01:00
parent 79820f4433
commit 3bf1aadfd6
26 changed files with 11762 additions and 10298 deletions

View File

@@ -1,122 +1,129 @@
<?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="pseim" nsURI="http://www.irt-saintexupery.com/pseim/0.1" nsPrefix="pseim">
<eAnnotations source="http://www.eclipse.org/OCL/Import">
<details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
<details key="seim" value="seim.ecore#/"/>
</eAnnotations>
<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="Library" eSuperTypes="seim.ecore#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="patterns" upperBound="-1"
eType="#//Pattern" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Pattern" eSuperTypes="seim.ecore#//Model">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="typeHS" ordered="false"
upperBound="-1" eType="#//PatternTypeHS"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="typeFailure" eType="#//PatternTypeFailureMode"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="alsoKnownAs" ordered="false"
upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="usedTactics" ordered="false"
upperBound="-1" eType="#//SafetyTactic">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="domain" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isSingleChannel" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="interfaceElements" upperBound="-1"
eType="ecore:EClass seim.ecore#//PropertyHolder"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="cardinalityElements" upperBound="-1"
eType="#//CardinalityElement" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PatternTypeHS">
<eLiterals name="Hardware"/>
<eLiterals name="Software" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PatternTypeFailureMode">
<eLiterals name="Fail_safe"/>
<eLiterals name="Fail_over" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="SafetyTactic">
<eLiterals name="Simplicity"/>
<eLiterals name="Substitution" value="1"/>
<eLiterals name="Sanity_Check" value="2"/>
<eLiterals name="Condition_Monitoring" value="3"/>
<eLiterals name="Comparison" value="4"/>
<eLiterals name="Diverse_Redundancy" value="5"/>
<eLiterals name="Replication_Redundancy" value="6"/>
<eLiterals name="Repair" value="7"/>
<eLiterals name="Degradation" value="8"/>
<eLiterals name="Voting" value="9"/>
<eLiterals name="Override" value="10"/>
<eLiterals name="Barrier" value="11"/>
<eLiterals name="Heartbeat" value="12"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CardinalityElement" eSuperTypes="seim.ecore#//PropertyHolder">
<eStructuralFeatures xsi:type="ecore:EReference" name="calculatedVia" upperBound="-1"
eType="ecore:EClass seim.ecore#//PropertyHolder"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="LinkType">
<eLiterals name="TRANSPOSE"/>
<eLiterals name="IDENTITY" value="1"/>
<eLiterals name="SHIFT" value="2"/>
<eLiterals name="FIRST" value="3"/>
<eLiterals name="ROTATE" value="4"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PatternComponent" eSuperTypes="#//MultiplicityElement #//IdentifiedElement seim.ecore#//Component">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="contentIsPatternContent"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="contentIsPatternContent" value="content->forAll(c | c.oclIsTypeOf(PatternComponent) or c.oclIsTypeOf(PatternPort) or c.oclIsTypeOf(PatternLink))"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="mergeContent" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PatternPort" eSuperTypes="#//MultiplicityElement #//IdentifiedElement seim.ecore#//Port">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="dir" lowerBound="1" eType="#//PatternPortDirection"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PatternLink" eSuperTypes="#//IdentifiedElement seim.ecore#//Link">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="srcIsPatternPort dstIsPatternPort"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="srcIsPatternPort" value="src.oclIsTypeOf(PatternLink)"/>
<details key="dstIsPatternPort" value="dst.oclIsTypeOf(PatternLink)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="linkType" lowerBound="1"
eType="#//LinkType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="#//CardinalityElement"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MultiplicityElement" abstract="true"
interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="cardinalityAsElementOrMult"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="cardinalityAsElementOrMult" value="(not (cardinalityElement.oclIsUndefined())) implies multiplicityValue = 1"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="multiplicityValue" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="1"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="cardinalityElement" eType="#//CardinalityElement"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IdentifiedElement" abstract="true" interface="true">
<eStructuralFeatures xsi:type="ecore:EReference" name="identifiedAs" eType="ecore:EClass seim.ecore#//PropertyHolder"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PatternPortDirection">
<eLiterals name="UNSPECIFIED" value="3"/>
<eLiterals name="IN"/>
<eLiterals name="OUT" value="1"/>
<eLiterals name="INOUT" value="2"/>
</eClassifiers>
</ecore:EPackage>
<?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="pseim" nsURI="http://www.irt-saintexupery.com/pseim/0.1" nsPrefix="pseim">
<eAnnotations source="http://www.eclipse.org/OCL/Import">
<details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
<details key="seim" value="seim.ecore#/"/>
</eAnnotations>
<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="Library" eSuperTypes="seim.ecore#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="patterns" upperBound="-1"
eType="#//Pattern" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Pattern" eSuperTypes="seim.ecore#//Model">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="typeHS" ordered="false"
upperBound="-1" eType="#//PatternTypeHS"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="typeFailure" eType="#//PatternTypeFailureMode"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="alsoKnownAs" ordered="false"
upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="usedTactics" ordered="false"
upperBound="-1" eType="#//SafetyTactic">
<eAnnotations source="http://www.eclipse.org/OCL/Collection">
<details key="nullFree" value="false"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="domain" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isSingleChannel" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="interfaceElements" upperBound="-1"
eType="ecore:EClass seim.ecore#//PropertyHolder"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="cardinalityElements" upperBound="-1"
eType="#//CardinalityElement" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PatternTypeHS">
<eLiterals name="Hardware"/>
<eLiterals name="Software" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PatternTypeFailureMode">
<eLiterals name="Fail_safe"/>
<eLiterals name="Fail_over" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="SafetyTactic">
<eLiterals name="Simplicity"/>
<eLiterals name="Substitution" value="1"/>
<eLiterals name="Sanity_Check" value="2"/>
<eLiterals name="Condition_Monitoring" value="3"/>
<eLiterals name="Comparison" value="4"/>
<eLiterals name="Diverse_Redundancy" value="5"/>
<eLiterals name="Replication_Redundancy" value="6"/>
<eLiterals name="Repair" value="7"/>
<eLiterals name="Degradation" value="8"/>
<eLiterals name="Voting" value="9"/>
<eLiterals name="Override" value="10"/>
<eLiterals name="Barrier" value="11"/>
<eLiterals name="Heartbeat" value="12"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CardinalityElement" eSuperTypes="seim.ecore#//PropertyHolder">
<eStructuralFeatures xsi:type="ecore:EReference" name="calculatedVia" upperBound="-1"
eType="ecore:EClass seim.ecore#//PropertyHolder"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="LinkType">
<eLiterals name="TRANSPOSE" value="4"/>
<eLiterals name="IDENTITY"/>
<eLiterals name="SHIFTC" value="9"/>
<eLiterals name="FIRST" value="1"/>
<eLiterals name="ROTATE" value="3"/>
<eLiterals name="JOINC" value="7"/>
<eLiterals name="JOINP" value="8"/>
<eLiterals name="FORKC" value="5"/>
<eLiterals name="FORKP" value="6"/>
<eLiterals name="SHIFTP" value="10"/>
<eLiterals name="FLATTENC" value="11"/>
<eLiterals name="LAST" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PatternComponent" eSuperTypes="#//MultiplicityElement #//IdentifiedElement seim.ecore#//Component">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="contentIsPatternContent"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="contentIsPatternContent" value="content->forAll(c | c.oclIsTypeOf(PatternComponent) or c.oclIsTypeOf(PatternPort) or c.oclIsTypeOf(PatternLink))"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="mergeContent" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PatternPort" eSuperTypes="#//MultiplicityElement #//IdentifiedElement seim.ecore#//Port">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="dir" lowerBound="1" eType="#//PatternPortDirection"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PatternLink" eSuperTypes="#//IdentifiedElement seim.ecore#//Link">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="srcIsPatternPort dstIsPatternPort"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="srcIsPatternPort" value="src.oclIsTypeOf(PatternLink)"/>
<details key="dstIsPatternPort" value="dst.oclIsTypeOf(PatternLink)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="linkType" lowerBound="1"
eType="#//LinkType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="#//CardinalityElement"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MultiplicityElement" abstract="true"
interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="cardinalityAsElementOrMult"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="cardinalityAsElementOrMult" value="(not (cardinalityElement.oclIsUndefined())) implies multiplicityValue = 1"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="multiplicityValue" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="1"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="cardinalityElement" eType="#//CardinalityElement"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IdentifiedElement" abstract="true" interface="true">
<eStructuralFeatures xsi:type="ecore:EReference" name="identifiedAs" eType="ecore:EClass seim.ecore#//PropertyHolder"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PatternPortDirection">
<eLiterals name="UNSPECIFIED" value="3"/>
<eLiterals name="IN"/>
<eLiterals name="OUT" value="1"/>
<eLiterals name="INOUT" value="2"/>
</eClassifiers>
</ecore:EPackage>

View File

@@ -1,87 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2018 IRT AESE (IRT Saint Exupéry).&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v2.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;https://www.eclipse.org/legal/epl-2.0"
modelDirectory="/com.irtsaintexupery.pseim/src-gen" editDirectory="/com.irtsaintexupery.pseim.edit/src-gen"
editorDirectory="/com.irtsaintexupery.pseim.editor/src-gen" modelPluginID="com.irtsaintexupery.pseim"
modelName="Pseim" editPluginClass="com.irtsaintexupery.pseim.pseim.provider.PseimEditPlugin"
editorPluginClass="com.irtsaintexupery.pseim.pseim.presentation.PseimEditorPlugin"
rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true"
testsDirectory="/com.irtsaintexupery.pseim.tests/src-gen" testSuiteClass="com.irtsaintexupery.pseim.pseim.tests.PseimAllTests"
importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
editPluginID="com.irtsaintexupery.pseim.edit" editorPluginID="com.irtsaintexupery.pseim.editor"
usedGenPackages="seim.genmodel#//seim" operationReflection="true" importOrganizing="true">
<foreignModel>pseim.ecore</foreignModel>
<genPackages prefix="Pseim" basePackage="com.irtsaintexupery.pseim" disposableProviderFactory="true"
ecorePackage="pseim.ecore#/">
<genEnums typeSafeEnumCompatible="false" ecoreEnum="pseim.ecore#//PatternTypeHS">
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternTypeHS/Hardware"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternTypeHS/Software"/>
</genEnums>
<genEnums typeSafeEnumCompatible="false" ecoreEnum="pseim.ecore#//PatternTypeFailureMode">
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternTypeFailureMode/Fail_safe"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternTypeFailureMode/Fail_over"/>
</genEnums>
<genEnums typeSafeEnumCompatible="false" ecoreEnum="pseim.ecore#//SafetyTactic">
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Simplicity"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Substitution"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Sanity_Check"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Condition_Monitoring"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Comparison"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Diverse_Redundancy"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Replication_Redundancy"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Repair"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Degradation"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Voting"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Override"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Barrier"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Heartbeat"/>
</genEnums>
<genEnums typeSafeEnumCompatible="false" ecoreEnum="pseim.ecore#//LinkType">
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/TRANSPOSE"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/IDENTITY"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/SHIFT"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/FIRST"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/ROTATE"/>
</genEnums>
<genEnums typeSafeEnumCompatible="false" ecoreEnum="pseim.ecore#//PatternPortDirection">
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternPortDirection/UNSPECIFIED"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternPortDirection/IN"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternPortDirection/OUT"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternPortDirection/INOUT"/>
</genEnums>
<genClasses ecoreClass="pseim.ecore#//Library">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference pseim.ecore#//Library/patterns"/>
</genClasses>
<genClasses ecoreClass="pseim.ecore#//Pattern">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/typeHS"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/typeFailure"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/alsoKnownAs"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/usedTactics"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/context"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/domain"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/isSingleChannel"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference pseim.ecore#//Pattern/interfaceElements"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference pseim.ecore#//Pattern/cardinalityElements"/>
</genClasses>
<genClasses ecoreClass="pseim.ecore#//CardinalityElement">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference pseim.ecore#//CardinalityElement/calculatedVia"/>
</genClasses>
<genClasses ecoreClass="pseim.ecore#//PatternComponent">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//PatternComponent/mergeContent"/>
</genClasses>
<genClasses ecoreClass="pseim.ecore#//PatternPort">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//PatternPort/dir"/>
</genClasses>
<genClasses ecoreClass="pseim.ecore#//PatternLink">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//PatternLink/linkType"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference pseim.ecore#//PatternLink/element"/>
</genClasses>
<genClasses image="false" ecoreClass="pseim.ecore#//MultiplicityElement">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//MultiplicityElement/multiplicityValue"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference pseim.ecore#//MultiplicityElement/cardinalityElement"/>
</genClasses>
<genClasses image="false" ecoreClass="pseim.ecore#//IdentifiedElement">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference pseim.ecore#//IdentifiedElement/identifiedAs"/>
</genClasses>
</genPackages>
</genmodel:GenModel>
<?xml version="1.0" encoding="UTF-8"?>
<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2018 IRT AESE (IRT Saint Exupéry).&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v2.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;https://www.eclipse.org/legal/epl-2.0"
modelDirectory="/com.irtsaintexupery.pseim/src-gen" editDirectory="/com.irtsaintexupery.pseim.edit/src-gen"
editorDirectory="/com.irtsaintexupery.pseim.editor/src-gen" modelPluginID="com.irtsaintexupery.pseim"
modelName="Pseim" editPluginClass="com.irtsaintexupery.pseim.pseim.provider.PseimEditPlugin"
editorPluginClass="com.irtsaintexupery.pseim.pseim.presentation.PseimEditorPlugin"
rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true"
testsDirectory="/com.irtsaintexupery.pseim.tests/src-gen" testSuiteClass="com.irtsaintexupery.pseim.pseim.tests.PseimAllTests"
importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
editPluginID="com.irtsaintexupery.pseim.edit" editorPluginID="com.irtsaintexupery.pseim.editor"
usedGenPackages="seim.genmodel#//seim" operationReflection="true" importOrganizing="true">
<foreignModel>pseim.ecore</foreignModel>
<genPackages prefix="Pseim" basePackage="com.irtsaintexupery.pseim" disposableProviderFactory="true"
ecorePackage="pseim.ecore#/">
<genEnums typeSafeEnumCompatible="false" ecoreEnum="pseim.ecore#//PatternTypeHS">
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternTypeHS/Hardware"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternTypeHS/Software"/>
</genEnums>
<genEnums typeSafeEnumCompatible="false" ecoreEnum="pseim.ecore#//PatternTypeFailureMode">
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternTypeFailureMode/Fail_safe"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternTypeFailureMode/Fail_over"/>
</genEnums>
<genEnums typeSafeEnumCompatible="false" ecoreEnum="pseim.ecore#//SafetyTactic">
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Simplicity"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Substitution"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Sanity_Check"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Condition_Monitoring"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Comparison"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Diverse_Redundancy"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Replication_Redundancy"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Repair"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Degradation"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Voting"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Override"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Barrier"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//SafetyTactic/Heartbeat"/>
</genEnums>
<genEnums typeSafeEnumCompatible="false" ecoreEnum="pseim.ecore#//LinkType">
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/TRANSPOSE"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/IDENTITY"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/SHIFTC"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/FIRST"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/ROTATE"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/JOINC"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/JOINP"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/FORKC"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/FORKP"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/SHIFTP"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/FLATTENC"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//LinkType/LAST"/>
</genEnums>
<genEnums typeSafeEnumCompatible="false" ecoreEnum="pseim.ecore#//PatternPortDirection">
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternPortDirection/UNSPECIFIED"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternPortDirection/IN"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternPortDirection/OUT"/>
<genEnumLiterals ecoreEnumLiteral="pseim.ecore#//PatternPortDirection/INOUT"/>
</genEnums>
<genClasses ecoreClass="pseim.ecore#//Library">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference pseim.ecore#//Library/patterns"/>
</genClasses>
<genClasses ecoreClass="pseim.ecore#//Pattern">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/typeHS"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/typeFailure"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/alsoKnownAs"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/usedTactics"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/context"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/domain"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//Pattern/isSingleChannel"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference pseim.ecore#//Pattern/interfaceElements"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference pseim.ecore#//Pattern/cardinalityElements"/>
</genClasses>
<genClasses ecoreClass="pseim.ecore#//CardinalityElement">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference pseim.ecore#//CardinalityElement/calculatedVia"/>
</genClasses>
<genClasses ecoreClass="pseim.ecore#//PatternComponent">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//PatternComponent/mergeContent"/>
</genClasses>
<genClasses ecoreClass="pseim.ecore#//PatternPort">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//PatternPort/dir"/>
</genClasses>
<genClasses ecoreClass="pseim.ecore#//PatternLink">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//PatternLink/linkType"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference pseim.ecore#//PatternLink/element"/>
</genClasses>
<genClasses image="false" ecoreClass="pseim.ecore#//MultiplicityElement">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute pseim.ecore#//MultiplicityElement/multiplicityValue"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference pseim.ecore#//MultiplicityElement/cardinalityElement"/>
</genClasses>
<genClasses image="false" ecoreClass="pseim.ecore#//IdentifiedElement">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference pseim.ecore#//IdentifiedElement/identifiedAs"/>
</genClasses>
</genPackages>
</genmodel:GenModel>

File diff suppressed because it is too large Load Diff

View File

@@ -1,98 +1,98 @@
<?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="seim" nsURI="http://www.irt-saintexupery.com/seim/0.1" nsPrefix="seim">
<eAnnotations source="http://www.eclipse.org/OCL/Import">
<details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
</eAnnotations>
<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="Component" eSuperTypes="#//GraphElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="content" upperBound="-1"
eType="#//Element" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//BorderElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" lowerBound="1"
eType="#//PortDirection"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Link" eSuperTypes="#//GraphElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="src" eType="#//Port"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dst" eType="#//Port"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GraphElement" abstract="true" interface="true"
eSuperTypes="#//Element"/>
<eClassifiers xsi:type="ecore:EClass" name="Property" abstract="true" interface="true"
eSuperTypes="#//IdentifiedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="keyNotNull"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="keyNotNull" value="key &lt;> ''"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BasicProperty" abstract="true" interface="true"
eSuperTypes="#//Property"/>
<eClassifiers xsi:type="ecore:EClass" name="IntegerProperty" eSuperTypes="#//BasicProperty">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StringProperty" eSuperTypes="#//BasicProperty">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
defaultValueLiteral="''"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BooleanProperty" eSuperTypes="#//BasicProperty">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ReferenceProperty" eSuperTypes="#//Property">
<eStructuralFeatures xsi:type="ecore:EReference" name="ref" lowerBound="1" eType="#//PropertyHolder"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PropertyHolder" abstract="true" interface="true"
eSuperTypes="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="uniqueKeys"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="uniqueKeys" value="properties->forAll(p1, p2 | p1 &lt;> p2 implies p1.key &lt;> p2.key)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
eType="#//Property" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" interface="true"
eSuperTypes="#//IdentifiedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="nameNotEmpty"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="nameNotEmpty" value="name &lt;> ''"/>
</eAnnotations>
<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="IdentifiedElement" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="uidNotEmpty"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="uidNotEmpty" value="uid &lt;> ''"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="uid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
changeable="false" unsettable="true" iD="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PortDirection">
<eLiterals name="UNSPECIFIED" value="3"/>
<eLiterals name="IN"/>
<eLiterals name="OUT" value="1"/>
<eLiterals name="INOUT" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Model" eSuperTypes="#//PropertyHolder">
<eStructuralFeatures xsi:type="ecore:EReference" name="modelElements" upperBound="-1"
eType="#//GraphElement" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BorderElement" abstract="true" interface="true"
eSuperTypes="#//Element"/>
<eClassifiers xsi:type="ecore:EClass" name="Element" abstract="true" interface="true"
eSuperTypes="#//PropertyHolder"/>
</ecore:EPackage>
<?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="seim" nsURI="http://www.irt-saintexupery.com/seim/0.1" nsPrefix="seim">
<eAnnotations source="http://www.eclipse.org/OCL/Import">
<details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
</eAnnotations>
<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="Component" eSuperTypes="#//GraphElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="content" upperBound="-1"
eType="#//Element" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//BorderElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" lowerBound="1"
eType="#//PortDirection"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Link" eSuperTypes="#//GraphElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="src" eType="#//Port"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dst" eType="#//Port"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GraphElement" abstract="true" interface="true"
eSuperTypes="#//Element"/>
<eClassifiers xsi:type="ecore:EClass" name="Property" abstract="true" interface="true"
eSuperTypes="#//IdentifiedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="keyNotNull"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="keyNotNull" value="key &lt;> ''"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BasicProperty" abstract="true" interface="true"
eSuperTypes="#//Property"/>
<eClassifiers xsi:type="ecore:EClass" name="IntegerProperty" eSuperTypes="#//BasicProperty">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StringProperty" eSuperTypes="#//BasicProperty">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
defaultValueLiteral="''"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BooleanProperty" eSuperTypes="#//BasicProperty">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ReferenceProperty" eSuperTypes="#//Property">
<eStructuralFeatures xsi:type="ecore:EReference" name="ref" lowerBound="1" eType="#//PropertyHolder"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PropertyHolder" abstract="true" interface="true"
eSuperTypes="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="uniqueKeys"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="uniqueKeys" value="properties->forAll(p1, p2 | p1 &lt;> p2 implies p1.key &lt;> p2.key)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
eType="#//Property" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" interface="true"
eSuperTypes="#//IdentifiedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="nameNotEmpty"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="nameNotEmpty" value="name &lt;> ''"/>
</eAnnotations>
<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="IdentifiedElement" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="uidNotEmpty"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="uidNotEmpty" value="uid &lt;> ''"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="uid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
changeable="false" unsettable="true" iD="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PortDirection">
<eLiterals name="UNSPECIFIED" value="3"/>
<eLiterals name="IN"/>
<eLiterals name="OUT" value="1"/>
<eLiterals name="INOUT" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Model" eSuperTypes="#//PropertyHolder">
<eStructuralFeatures xsi:type="ecore:EReference" name="modelElements" upperBound="-1"
eType="#//GraphElement" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BorderElement" abstract="true" interface="true"
eSuperTypes="#//Element"/>
<eClassifiers xsi:type="ecore:EClass" name="Element" abstract="true" interface="true"
eSuperTypes="#//PropertyHolder"/>
</ecore:EPackage>