From 8138564663bf7eeb5e0aa77d3eca6d97ff87f65d Mon Sep 17 00:00:00 2001 From: nullsub <chrisudeussen@gmail.com> Date: Mon, 7 May 2018 22:14:08 +0200 Subject: [PATCH] readd editpolicymodel from separate repo --- org.framed.iorm.editpolicymodel/.classpath | 7 + org.framed.iorm.editpolicymodel/.gitignore | 1 + org.framed.iorm.editpolicymodel/.project | 35 + .../EditpolicymodelDiagram.png | Bin 0 -> 195433 bytes .../META-INF/MANIFEST.MF | 36 + .../build.properties | 10 + .../model/editpolicymodel.ecore | 153 + .../model/editpolicymodel.genmodel | 68 + .../model/representations.aird | 2801 +++++++++++++++++ .../model/test.xmi | 4 + .../model/test1.xmi | 7 + .../plugin.properties | 4 + org.framed.iorm.editpolicymodel/plugin.xml | 17 + .../src/Editpolicymodel/ActionEnum.java | 430 +++ .../Editpolicymodel/AndConstraintRule.java | 17 + .../src/Editpolicymodel/AndFeatureRule.java | 17 + .../Editpolicymodel/BinaryConstraintRule.java | 76 + .../Editpolicymodel/BinaryFeatureRule.java | 76 + .../src/Editpolicymodel/ConstraintRule.java | 18 + .../Editpolicymodel/ContainsCompartment.java | 17 + .../EditpolicymodelFactory.java | 258 ++ .../EditpolicymodelPackage.java | 2382 ++++++++++++++ .../Editpolicymodel/FalseConstraintRule.java | 17 + .../src/Editpolicymodel/FalseFeatureRule.java | 17 + .../src/Editpolicymodel/FeatureNameEnum.java | 1159 +++++++ .../src/Editpolicymodel/FeatureRule.java | 18 + .../ImplicationConstraintRule.java | 17 + .../ImplicationFeatureRule.java | 17 + .../src/Editpolicymodel/InCompartment.java | 17 + .../src/Editpolicymodel/IsFeature.java | 52 + .../src/Editpolicymodel/IsParent.java | 17 + .../src/Editpolicymodel/IsSourceType.java | 17 + .../src/Editpolicymodel/IsTarget.java | 17 + .../src/Editpolicymodel/IsTargetType.java | 17 + .../LogicalConstraintRule.java | 17 + .../Editpolicymodel/LogicalFeatureRule.java | 17 + .../src/Editpolicymodel/Model.java | 42 + .../Editpolicymodel/NaryConstraintRule.java | 40 + .../src/Editpolicymodel/NaryFeatureRule.java | 40 + .../Editpolicymodel/NotConstraintRule.java | 17 + .../src/Editpolicymodel/NotFeatureRule.java | 17 + .../src/Editpolicymodel/OrConstraintRule.java | 17 + .../src/Editpolicymodel/OrFeatureRule.java | 17 + .../src/Editpolicymodel/Policy.java | 166 + .../Editpolicymodel/SourceEqualsTarget.java | 17 + .../SourceEqualsTargetType.java | 17 + .../Editpolicymodel/TrueConstraintRule.java | 17 + .../src/Editpolicymodel/TrueFeatureRule.java | 17 + .../src/Editpolicymodel/TypeArgumentRule.java | 52 + .../src/Editpolicymodel/TypeEnum.java | 646 ++++ .../Editpolicymodel/UnaryConstraintRule.java | 49 + .../src/Editpolicymodel/UnaryFeatureRule.java | 49 + .../impl/AndConstraintRuleImpl.java | 37 + .../impl/AndFeatureRuleImpl.java | 37 + .../impl/BinaryConstraintRuleImpl.java | 241 ++ .../impl/BinaryFeatureRuleImpl.java | 241 ++ .../impl/ConstraintRuleImpl.java | 39 + .../impl/ContainsCompartmentImpl.java | 37 + .../impl/EditpolicymodelFactoryImpl.java | 458 +++ .../impl/EditpolicymodelPackageImpl.java | 1200 +++++++ .../impl/FalseConstraintRuleImpl.java | 37 + .../impl/FalseFeatureRuleImpl.java | 37 + .../Editpolicymodel/impl/FeatureRuleImpl.java | 39 + .../impl/ImplicationConstraintRuleImpl.java | 37 + .../impl/ImplicationFeatureRuleImpl.java | 37 + .../impl/InCompartmentImpl.java | 37 + .../Editpolicymodel/impl/IsFeatureImpl.java | 163 + .../Editpolicymodel/impl/IsParentImpl.java | 37 + .../impl/IsSourceTypeImpl.java | 37 + .../Editpolicymodel/impl/IsTargetImpl.java | 37 + .../impl/IsTargetTypeImpl.java | 37 + .../impl/LogicalConstraintRuleImpl.java | 37 + .../impl/LogicalFeatureRuleImpl.java | 37 + .../src/Editpolicymodel/impl/ModelImpl.java | 152 + .../impl/NaryConstraintRuleImpl.java | 150 + .../impl/NaryFeatureRuleImpl.java | 150 + .../impl/NotConstraintRuleImpl.java | 37 + .../impl/NotFeatureRuleImpl.java | 37 + .../impl/OrConstraintRuleImpl.java | 37 + .../impl/OrFeatureRuleImpl.java | 37 + .../src/Editpolicymodel/impl/PolicyImpl.java | 421 +++ .../impl/SourceEqualsTargetImpl.java | 37 + .../impl/SourceEqualsTargetTypeImpl.java | 37 + .../impl/TrueConstraintRuleImpl.java | 37 + .../impl/TrueFeatureRuleImpl.java | 37 + .../impl/TypeArgumentRuleImpl.java | 163 + .../impl/UnaryConstraintRuleImpl.java | 175 + .../impl/UnaryFeatureRuleImpl.java | 175 + .../util/EditpolicymodelAdapterFactory.java | 714 +++++ .../util/EditpolicymodelSwitch.java | 863 +++++ 90 files changed, 15228 insertions(+) create mode 100644 org.framed.iorm.editpolicymodel/.classpath create mode 100644 org.framed.iorm.editpolicymodel/.gitignore create mode 100644 org.framed.iorm.editpolicymodel/.project create mode 100644 org.framed.iorm.editpolicymodel/EditpolicymodelDiagram.png create mode 100644 org.framed.iorm.editpolicymodel/META-INF/MANIFEST.MF create mode 100644 org.framed.iorm.editpolicymodel/build.properties create mode 100644 org.framed.iorm.editpolicymodel/model/editpolicymodel.ecore create mode 100644 org.framed.iorm.editpolicymodel/model/editpolicymodel.genmodel create mode 100644 org.framed.iorm.editpolicymodel/model/representations.aird create mode 100644 org.framed.iorm.editpolicymodel/model/test.xmi create mode 100644 org.framed.iorm.editpolicymodel/model/test1.xmi create mode 100644 org.framed.iorm.editpolicymodel/plugin.properties create mode 100644 org.framed.iorm.editpolicymodel/plugin.xml create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/ActionEnum.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/AndConstraintRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/AndFeatureRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/BinaryConstraintRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/BinaryFeatureRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/ConstraintRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/ContainsCompartment.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/EditpolicymodelFactory.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/EditpolicymodelPackage.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/FalseConstraintRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/FalseFeatureRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/FeatureNameEnum.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/FeatureRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/ImplicationConstraintRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/ImplicationFeatureRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/InCompartment.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsFeature.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsParent.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsSourceType.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsTarget.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsTargetType.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/LogicalConstraintRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/LogicalFeatureRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/Model.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/NaryConstraintRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/NaryFeatureRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/NotConstraintRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/NotFeatureRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/OrConstraintRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/OrFeatureRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/Policy.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/SourceEqualsTarget.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/SourceEqualsTargetType.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/TrueConstraintRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/TrueFeatureRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/TypeArgumentRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/TypeEnum.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/UnaryConstraintRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/UnaryFeatureRule.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/AndConstraintRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/AndFeatureRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/BinaryConstraintRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/BinaryFeatureRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ConstraintRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ContainsCompartmentImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/EditpolicymodelFactoryImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/EditpolicymodelPackageImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/FalseConstraintRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/FalseFeatureRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/FeatureRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ImplicationConstraintRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ImplicationFeatureRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/InCompartmentImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsFeatureImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsParentImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsSourceTypeImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsTargetImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsTargetTypeImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/LogicalConstraintRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/LogicalFeatureRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ModelImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NaryConstraintRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NaryFeatureRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NotConstraintRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NotFeatureRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/OrConstraintRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/OrFeatureRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/PolicyImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/SourceEqualsTargetImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/SourceEqualsTargetTypeImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/TrueConstraintRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/TrueFeatureRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/TypeArgumentRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/UnaryConstraintRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/UnaryFeatureRuleImpl.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/util/EditpolicymodelAdapterFactory.java create mode 100644 org.framed.iorm.editpolicymodel/src/Editpolicymodel/util/EditpolicymodelSwitch.java diff --git a/org.framed.iorm.editpolicymodel/.classpath b/org.framed.iorm.editpolicymodel/.classpath new file mode 100644 index 00000000..22f30643 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/org.framed.iorm.editpolicymodel/.gitignore b/org.framed.iorm.editpolicymodel/.gitignore new file mode 100644 index 00000000..ae3c1726 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/org.framed.iorm.editpolicymodel/.project b/org.framed.iorm.editpolicymodel/.project new file mode 100644 index 00000000..d3400a30 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/.project @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.framed.iorm.editpolicymodel</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.sirius.nature.modelingproject</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + </natures> +</projectDescription> diff --git a/org.framed.iorm.editpolicymodel/EditpolicymodelDiagram.png b/org.framed.iorm.editpolicymodel/EditpolicymodelDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..9fdeb7b19a0dfd89a8b6b867333319578c5f6aa9 GIT binary patch literal 195433 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⪙ySF#R~gl#Bm6rnQTtrTy5KrFW)BDE#2BZDmrN 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 OZufNcb6Mw<&;$TkmSOt< literal 0 HcmV?d00001 diff --git a/org.framed.iorm.editpolicymodel/META-INF/MANIFEST.MF b/org.framed.iorm.editpolicymodel/META-INF/MANIFEST.MF new file mode 100644 index 00000000..4807e47d --- /dev/null +++ b/org.framed.iorm.editpolicymodel/META-INF/MANIFEST.MF @@ -0,0 +1,36 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.framed.iorm.editpolicymodel;singleton:=true +Bundle-Version: 0.1.0.qualifier +Bundle-ClassPath: . +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.emf.ecore;visibility:=reexport, + org.eclipse.emf.codegen.ecore, + org.framed.iorm.model;bundle-version="1.0.0";visibility:=reexport, + org.framed.iorm.featuremodel;bundle-version="1.0.0" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: Editpolicymodel; + uses:="org.eclipse.emf.ecore, + iorm, + iorm.featuremodel, + org.eclipse.emf.common.util", + Editpolicymodel.impl; + uses:="org.eclipse.emf.ecore, + org.eclipse.emf.ecore.impl, + iorm, + iorm.featuremodel, + org.eclipse.emf.common.util, + Editpolicymodel, + org.eclipse.emf.common.notify", + Editpolicymodel.util; + uses:="org.eclipse.emf.ecore, + Editpolicymodel, + org.eclipse.emf.common.notify, + org.eclipse.emf.common.notify.impl, + org.eclipse.emf.ecore.util" +Import-Package: org.framed.iorm.model + diff --git a/org.framed.iorm.editpolicymodel/build.properties b/org.framed.iorm.editpolicymodel/build.properties new file mode 100644 index 00000000..4465407f --- /dev/null +++ b/org.framed.iorm.editpolicymodel/build.properties @@ -0,0 +1,10 @@ +# + +bin.includes = .,\ + model/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin/ diff --git a/org.framed.iorm.editpolicymodel/model/editpolicymodel.ecore b/org.framed.iorm.editpolicymodel/model/editpolicymodel.ecore new file mode 100644 index 00000000..3c3ebdc0 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/model/editpolicymodel.ecore @@ -0,0 +1,153 @@ +<?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="Editpolicymodel" nsURI="http://framed/editpolicymodel" nsPrefix="Editpolicymodel"> + <eClassifiers xsi:type="ecore:EClass" name="Model"> + <eStructuralFeatures xsi:type="ecore:EReference" name="policies" upperBound="-1" + eType="#//Policy" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Policy"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="override" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject" + defaultValueLiteral="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="action" eType="#//ActionEnum" + defaultValueLiteral="Create"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionType" lowerBound="1" + eType="#//TypeEnum"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="featureRule" eType="#//FeatureRule" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="constraintRule" eType="#//ConstraintRule" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ContainsCompartment" eSuperTypes="#//ConstraintRule"/> + <eClassifiers xsi:type="ecore:EClass" name="IsTarget" eSuperTypes="#//TypeArgumentRule"/> + <eClassifiers xsi:type="ecore:EClass" name="IsParent" eSuperTypes="#//TypeArgumentRule"/> + <eClassifiers xsi:type="ecore:EEnum" name="ActionEnum"> + <eLiterals name="Create"/> + <eLiterals name="Add" value="1"/> + <eLiterals name="Start" value="2"/> + <eLiterals name="Reconnect" value="3"/> + <eLiterals name="Execute" value="4"/> + <eLiterals name="Direct_Edit" value="5"/> + <eLiterals name="Create_Property" value="6"/> + <eLiterals name="Create_Attribute" value="7"/> + <eLiterals name="Add_Property" value="9"/> + <eLiterals name="Create_Operation" value="10"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="FeatureRule" abstract="true"/> + <eClassifiers xsi:type="ecore:EClass" name="IsFeature" eSuperTypes="#//FeatureRule"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="featureName" lowerBound="1" + eType="#//FeatureNameEnum"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ConstraintRule" abstract="true"/> + <eClassifiers xsi:type="ecore:EClass" name="IsTargetType" eSuperTypes="#//TypeArgumentRule"/> + <eClassifiers xsi:type="ecore:EClass" name="UnaryConstraintRule" abstract="true" + eSuperTypes="#//LogicalConstraintRule"> + <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1" eType="#//ConstraintRule" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="NotConstraintRule" eSuperTypes="#//UnaryConstraintRule"/> + <eClassifiers xsi:type="ecore:EClass" name="AndConstraintRule" eSuperTypes="#//NaryConstraintRule"/> + <eClassifiers xsi:type="ecore:EClass" name="BinaryConstraintRule" abstract="true" + eSuperTypes="#//LogicalConstraintRule"> + <eStructuralFeatures xsi:type="ecore:EReference" name="leftRule" lowerBound="1" + eType="#//ConstraintRule" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="rightRule" lowerBound="1" + eType="#//ConstraintRule" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="TrueConstraintRule" eSuperTypes="#//LogicalConstraintRule"/> + <eClassifiers xsi:type="ecore:EClass" name="FalseConstraintRule" eSuperTypes="#//LogicalConstraintRule"/> + <eClassifiers xsi:type="ecore:EClass" name="OrConstraintRule" eSuperTypes="#//NaryConstraintRule"/> + <eClassifiers xsi:type="ecore:EClass" name="ImplicationConstraintRule" eSuperTypes="#//BinaryConstraintRule"/> + <eClassifiers xsi:type="ecore:EClass" name="IsSourceType" eSuperTypes="#//TypeArgumentRule"/> + <eClassifiers xsi:type="ecore:EClass" name="TypeArgumentRule" abstract="true" eSuperTypes="#//ConstraintRule"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//TypeEnum"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="NaryConstraintRule" abstract="true" + eSuperTypes="#//LogicalConstraintRule"> + <eStructuralFeatures xsi:type="ecore:EReference" name="rules" lowerBound="1" upperBound="-1" + eType="#//ConstraintRule" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="LogicalConstraintRule" eSuperTypes="#//ConstraintRule"/> + <eClassifiers xsi:type="ecore:EClass" name="TrueFeatureRule" eSuperTypes="#//LogicalFeatureRule"/> + <eClassifiers xsi:type="ecore:EClass" name="NotFeatureRule" eSuperTypes="#//UnaryFeatureRule"/> + <eClassifiers xsi:type="ecore:EClass" name="FalseFeatureRule" eSuperTypes="#//LogicalFeatureRule"/> + <eClassifiers xsi:type="ecore:EClass" name="NaryFeatureRule" abstract="true" eSuperTypes="#//LogicalFeatureRule"> + <eStructuralFeatures xsi:type="ecore:EReference" name="rules" upperBound="-1" + eType="#//FeatureRule" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="BinaryFeatureRule" abstract="true" eSuperTypes="#//LogicalFeatureRule"> + <eStructuralFeatures xsi:type="ecore:EReference" name="rightRule" lowerBound="1" + eType="#//FeatureRule" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="leftRule" lowerBound="1" + eType="#//FeatureRule" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="LogicalFeatureRule" eSuperTypes="#//FeatureRule"/> + <eClassifiers xsi:type="ecore:EClass" name="ImplicationFeatureRule" eSuperTypes="#//BinaryFeatureRule"/> + <eClassifiers xsi:type="ecore:EClass" name="UnaryFeatureRule" abstract="true" eSuperTypes="#//LogicalFeatureRule"> + <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1" eType="#//FeatureRule" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OrFeatureRule" eSuperTypes="#//NaryFeatureRule"/> + <eClassifiers xsi:type="ecore:EClass" name="AndFeatureRule" eSuperTypes="#//NaryFeatureRule"/> + <eClassifiers xsi:type="ecore:EEnum" name="TypeEnum"> + <eLiterals name="Acyclic"/> + <eLiterals name="CompartmentType" value="1"/> + <eLiterals name="Irreflexive" value="2"/> + <eLiterals name="RoleProhibition" value="3" literal="RoleProhibition"/> + <eLiterals name="RoleImplication" value="4" literal="RoleImplication"/> + <eLiterals name="RoleGroup" value="5"/> + <eLiterals name="RoleEquivalence" value="6"/> + <eLiterals name="RoleType" value="7"/> + <eLiterals name="RelationshipImplication" value="8"/> + <eLiterals name="RelationshipExclusion" value="9"/> + <eLiterals name="Relationship" value="10"/> + <eLiterals name="Reflexive" value="11"/> + <eLiterals name="Group" value="12"/> + <eLiterals name="Inheritance" value="13"/> + <eLiterals name="Fulfillment" value="14"/> + <eLiterals name="DataType" value="15"/> + <eLiterals name="Cyclic" value="16"/> + <eLiterals name="NaturalType" value="17"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="FeatureNameEnum"> + <eLiterals name="Roles"/> + <eLiterals name="Role_Types" value="1"/> + <eLiterals name="Role_Structure" value="2" literal="Role_Structure"/> + <eLiterals name="Role_Properties" value="3"/> + <eLiterals name="Role_Prohibition" value="4"/> + <eLiterals name="Role_Inheritance" value="5"/> + <eLiterals name="Role_Implication" value="6"/> + <eLiterals name="Role_Equivalence" value="7"/> + <eLiterals name="Role_Constraints" value="8"/> + <eLiterals name="Role_Behavior" value="9"/> + <eLiterals name="RML_Feature_Model" value="10"/> + <eLiterals name="Relationships" value="11"/> + <eLiterals name="Relationship_Constraints" value="12"/> + <eLiterals name="Relationship_Cardinality" value="13"/> + <eLiterals name="Players" value="14"/> + <eLiterals name="Playable_by_Defining_Compartment" value="15"/> + <eLiterals name="Playable" value="16"/> + <eLiterals name="Parthood_Constraints" value="17"/> + <eLiterals name="On_Relationships" value="18"/> + <eLiterals name="On_Compartments" value="19"/> + <eLiterals name="Occurrence_Constraints" value="20"/> + <eLiterals name="Naturals" value="21"/> + <eLiterals name="Intra_Relationship_Constraints" value="22"/> + <eLiterals name="Inter_Relationship_Constraints" value="23"/> + <eLiterals name="Group_Constraints" value="24"/> + <eLiterals name="Dependent" value="25"/> + <eLiterals name="Dates" value="26"/> + <eLiterals name="Data_Types" value="27"/> + <eLiterals name="Compartments" value="28"/> + <eLiterals name="Contains_Compartments" value="29"/> + <eLiterals name="Compartment_Types" value="30"/> + <eLiterals name="Compartment_Structure" value="31"/> + <eLiterals name="Compartment_Properties" value="32"/> + <eLiterals name="Compartment_Inheritance" value="33" literal="Compartment_Inheritance"/> + <eLiterals name="Compartment_Behavior" value="34"/> + <eLiterals name="Participants" value="35"/> + <eLiterals name="Data_Type_Inheritance" value="36"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="SourceEqualsTarget" eSuperTypes="#//ConstraintRule"/> + <eClassifiers xsi:type="ecore:EClass" name="SourceEqualsTargetType" eSuperTypes="#//ConstraintRule"/> + <eClassifiers xsi:type="ecore:EClass" name="InCompartment" eSuperTypes="#//ConstraintRule"/> +</ecore:EPackage> diff --git a/org.framed.iorm.editpolicymodel/model/editpolicymodel.genmodel b/org.framed.iorm.editpolicymodel/model/editpolicymodel.genmodel new file mode 100644 index 00000000..52aa6b2b --- /dev/null +++ b/org.framed.iorm.editpolicymodel/model/editpolicymodel.genmodel @@ -0,0 +1,68 @@ +<?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" modelDirectory="/org.framed.iorm.editpolicymodel/src" modelPluginID="org.framed.iorm.editpolicymodel" + modelName="Editpolicymodel" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" + importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false" + usedGenPackages="../../org.framed.iorm.model/model/IORM.genmodel#//iorm" operationReflection="true" + importOrganizing="true"> + <foreignModel>editpolicymodel.ecore</foreignModel> + <genPackages prefix="Editpolicymodel" disposableProviderFactory="true" ecorePackage="editpolicymodel.ecore#/"> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="editpolicymodel.ecore#//ActionEnum"> + <genEnumLiterals ecoreEnumLiteral="editpolicymodel.ecore#//ActionEnum/Create"/> + <genEnumLiterals ecoreEnumLiteral="editpolicymodel.ecore#//ActionEnum/Add"/> + <genEnumLiterals ecoreEnumLiteral="editpolicymodel.ecore#//ActionEnum/Start"/> + <genEnumLiterals ecoreEnumLiteral="editpolicymodel.ecore#//ActionEnum/Reconnect"/> + </genEnums> + <genClasses ecoreClass="editpolicymodel.ecore#//Model"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference editpolicymodel.ecore#//Model/policies"/> + </genClasses> + <genClasses ecoreClass="editpolicymodel.ecore#//Policy"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute editpolicymodel.ecore#//Policy/override"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute editpolicymodel.ecore#//Policy/action"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute editpolicymodel.ecore#//Policy/ActionType"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference editpolicymodel.ecore#//Policy/featureRule"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference editpolicymodel.ecore#//Policy/constraintRule"/> + </genClasses> + <genClasses ecoreClass="editpolicymodel.ecore#//Contains"/> + <genClasses ecoreClass="editpolicymodel.ecore#//IsStepIn"/> + <genClasses ecoreClass="editpolicymodel.ecore#//IsTarget"/> + <genClasses ecoreClass="editpolicymodel.ecore#//IsSource"/> + <genClasses ecoreClass="editpolicymodel.ecore#//IsParent"/> + <genClasses ecoreClass="editpolicymodel.ecore#//AbstractRule"> + <genTypeParameters ecoreTypeParameter="editpolicymodel.ecore#//AbstractRule/T"/> + </genClasses> + <genClasses image="false" ecoreClass="editpolicymodel.ecore#//Rule"> + <genTypeParameters ecoreTypeParameter="editpolicymodel.ecore#//Rule/T"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference editpolicymodel.ecore#//Rule/rule"/> + </genClasses> + <genClasses image="false" ecoreClass="editpolicymodel.ecore#//FeatureRule"/> + <genClasses ecoreClass="editpolicymodel.ecore#//IsFeature"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute editpolicymodel.ecore#//IsFeature/name"/> + </genClasses> + <genClasses image="false" ecoreClass="editpolicymodel.ecore#//ConstraintRule"/> + <genClasses ecoreClass="editpolicymodel.ecore#//IsTargetType"/> + <genClasses ecoreClass="editpolicymodel.ecore#//UnaryRule"> + <genTypeParameters ecoreTypeParameter="editpolicymodel.ecore#//UnaryRule/T"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference editpolicymodel.ecore#//UnaryRule/rule"/> + </genClasses> + <genClasses ecoreClass="editpolicymodel.ecore#//NotRule"/> + <genClasses ecoreClass="editpolicymodel.ecore#//AndRule"/> + <genClasses ecoreClass="editpolicymodel.ecore#//BinaryRule"> + <genTypeParameters ecoreTypeParameter="editpolicymodel.ecore#//BinaryRule/T"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference editpolicymodel.ecore#//BinaryRule/rightRule"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference editpolicymodel.ecore#//BinaryRule/leftRule"/> + </genClasses> + <genClasses ecoreClass="editpolicymodel.ecore#//TrueRule"/> + <genClasses ecoreClass="editpolicymodel.ecore#//FalseRule"/> + <genClasses ecoreClass="editpolicymodel.ecore#//OrRule"/> + <genClasses ecoreClass="editpolicymodel.ecore#//ImplicationRule"/> + <genClasses ecoreClass="editpolicymodel.ecore#//IsSourceType"/> + <genClasses image="false" ecoreClass="editpolicymodel.ecore#//TypeArgumentRule"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute editpolicymodel.ecore#//TypeArgumentRule/type"/> + </genClasses> + <genClasses image="false" ecoreClass="editpolicymodel.ecore#//NaryRule"> + <genTypeParameters ecoreTypeParameter="editpolicymodel.ecore#//NaryRule/T"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference editpolicymodel.ecore#//NaryRule/rules"/> + </genClasses> + </genPackages> +</genmodel:GenModel> diff --git a/org.framed.iorm.editpolicymodel/model/representations.aird b/org.framed.iorm.editpolicymodel/model/representations.aird new file mode 100644 index 00000000..c8613686 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/model/representations.aird @@ -0,0 +1,2801 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style"> + <viewpoint:DAnalysis xmi:id="_3XXmABv8Eeir3aeVscTXqw" selectedViews="_5K1uwBv8Eeir3aeVscTXqw _5LAG0Bv8Eeir3aeVscTXqw _5LB8ABv8Eeir3aeVscTXqw" version="12.0.0.201704271200"> + <semanticResources>editpolicymodel.ecore</semanticResources> + <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources> + <semanticResources>http://www.eclipse.org/emf/2003/XMLType</semanticResources> + <semanticResources>platform:/resource/org.framed.iorm.model/model/IORM.ecore</semanticResources> + <semanticResources>test1.xmi</semanticResources> + <semanticResources>platform:/resource/org.framed.iorm.model/model/IORM.genmodel</semanticResources> + <ownedViews xmi:type="viewpoint:DView" xmi:id="_5K1uwBv8Eeir3aeVscTXqw"> + <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Review']"/> + </ownedViews> + <ownedViews xmi:type="viewpoint:DView" xmi:id="_5LAG0Bv8Eeir3aeVscTXqw"> + <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> + <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" xmi:id="_PQwdABv9Eeir3aeVscTXqw" name="Editpolicymodel class diagram" repPath="#_PQun0Bv9Eeir3aeVscTXqw"> + <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> + <target xmi:type="ecore:EPackage" href="editpolicymodel.ecore#/"/> + </ownedRepresentationDescriptors> + </ownedViews> + <ownedViews xmi:type="viewpoint:DView" xmi:id="_5LB8ABv8Eeir3aeVscTXqw"> + <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/> + </ownedViews> + </viewpoint:DAnalysis> + <diagram:DSemanticDiagram xmi:id="_PQun0Bv9Eeir3aeVscTXqw" name="Editpolicymodel class diagram"> + <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_PQun0Rv9Eeir3aeVscTXqw" source="DANNOTATION_CUSTOMIZATION_KEY"> + <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_PQun0hv9Eeir3aeVscTXqw"> + <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_QLlGgBv9Eeir3aeVscTXqw" sourceArrow="FillDiamond" routingStyle="manhattan"> + <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> + <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_QLlGgRv9Eeir3aeVscTXqw" showIcon="false" labelExpression="service:render"> + <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> + </centerLabelStyleDescription> + <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_QLlGghv9Eeir3aeVscTXqw" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> + <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> + </endLabelStyleDescription> + </computedStyleDescriptions> + <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_y0p-MC4jEei--d1NiPU4Dw" sourceArrow="FillDiamond" routingStyle="manhattan"> + <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> + <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_y0p-MS4jEei--d1NiPU4Dw" showIcon="false" labelExpression="service:render"> + <labelFormat>bold</labelFormat> + <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> + </centerLabelStyleDescription> + <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_y0p-Mi4jEei--d1NiPU4Dw" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> + <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> + </endLabelStyleDescription> + </computedStyleDescriptions> + <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_2orKIC5qEeiwr8bZ0uTz8g" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1"> + <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> + <labelFormat>bold</labelFormat> + <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> + <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> + </computedStyleDescriptions> + </data> + </ownedAnnotationEntries> + <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_PSPqwBv9Eeir3aeVscTXqw" source="GMF_DIAGRAMS"> + <data xmi:type="notation:Diagram" xmi:id="_PSPqwRv9Eeir3aeVscTXqw" type="Sirius" element="_PQun0Bv9Eeir3aeVscTXqw" measurementUnit="Pixel"> + <children xmi:type="notation:Node" xmi:id="_QLyh4Bv9Eeir3aeVscTXqw" type="2003" element="_QK-CgBv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QLzI8Bv9Eeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_QLzI8Rv9Eeir3aeVscTXqw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_QLzI8hv9Eeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QLzI8xv9Eeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QLyh4Rv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QLyh4hv9Eeir3aeVscTXqw" x="1610" y="-168"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QLzI9Bv9Eeir3aeVscTXqw" type="2003" element="_QK_3sBv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QLzwABv9Eeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_QLzwARv9Eeir3aeVscTXqw" type="7004"> + <children xmi:type="notation:Node" xmi:id="_QMCZhBv9Eeir3aeVscTXqw" type="3010" element="_QLeY0Bv9Eeir3aeVscTXqw"> + <styles xmi:type="notation:FontStyle" xmi:id="_QMCZhRv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QMCZhhv9Eeir3aeVscTXqw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QMDAkBv9Eeir3aeVscTXqw" type="3010" element="_QLe_4Bv9Eeir3aeVscTXqw"> + <styles xmi:type="notation:FontStyle" xmi:id="_QMDAkRv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QMDAkhv9Eeir3aeVscTXqw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_uyEr0C4eEei--d1NiPU4Dw" type="3010" element="_uxk8kC4eEei--d1NiPU4Dw"> + <styles xmi:type="notation:FontStyle" xmi:id="_uyEr0S4eEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_uyEr0i4eEei--d1NiPU4Dw"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_QLzwAhv9Eeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QLzwAxv9Eeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QLzI9Rv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QLzI9hv9Eeir3aeVscTXqw" x="1560" y="48"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QL2MRBv9Eeir3aeVscTXqw" type="2003" element="_QLEJIRv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QL2zUBv9Eeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_QL2zURv9Eeir3aeVscTXqw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_QL2zUhv9Eeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QL2zUxv9Eeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QL2MRRv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL2MRhv9Eeir3aeVscTXqw" x="1547" y="1116"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QL4BdBv9Eeir3aeVscTXqw" type="2003" element="_QLGlYRv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QL4Bdxv9Eeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_QL4ogBv9Eeir3aeVscTXqw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_QL4ogRv9Eeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QL4oghv9Eeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QL4BdRv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL4Bdhv9Eeir3aeVscTXqw" x="1176" y="1116"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QL5PkBv9Eeir3aeVscTXqw" type="2003" element="_QLHzgBv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QL5Pkxv9Eeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_QL5PlBv9Eeir3aeVscTXqw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_QL5PlRv9Eeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QL5Plhv9Eeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QL5PkRv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL5Pkhv9Eeir3aeVscTXqw" x="1164" y="961"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QL52oBv9Eeir3aeVscTXqw" type="2003" element="_QLIakBv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QL52oxv9Eeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_QL52pBv9Eeir3aeVscTXqw" type="7004"> + <children xmi:type="notation:Node" xmi:id="_QMDnphv9Eeir3aeVscTXqw" type="3010" element="_QLiqQBv9Eeir3aeVscTXqw"> + <styles xmi:type="notation:FontStyle" xmi:id="_QMDnpxv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QMDnqBv9Eeir3aeVscTXqw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QMDnqRv9Eeir3aeVscTXqw" type="3010" element="_QLiqQhv9Eeir3aeVscTXqw"> + <styles xmi:type="notation:FontStyle" xmi:id="_QMDnqhv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QMDnqxv9Eeir3aeVscTXqw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QMEOsBv9Eeir3aeVscTXqw" type="3010" element="_QLjRUBv9Eeir3aeVscTXqw"> + <styles xmi:type="notation:FontStyle" xmi:id="_QMEOsRv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QMEOshv9Eeir3aeVscTXqw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QMEOsxv9Eeir3aeVscTXqw" type="3010" element="_QLjRUhv9Eeir3aeVscTXqw"> + <styles xmi:type="notation:FontStyle" xmi:id="_QMEOtBv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QMEOtRv9Eeir3aeVscTXqw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_g7RCgC5qEeiwr8bZ0uTz8g" type="3010" element="_g5zC4C5qEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_g7RCgS5qEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_g7RCgi5qEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_HvvSkC6IEeiwr8bZ0uTz8g" type="3010" element="_HvT0wC6IEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_HvvSkS6IEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_HvvSki6IEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Qib1AC89Eeiwr8bZ0uTz8g" type="3010" element="_QiA-QC89Eeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_Qib1AS89Eeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Qib1Ai89Eeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Uk490C89Eeiwr8bZ0uTz8g" type="3010" element="_UkeuIC89Eeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_Uk5k4C89Eeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Uk5k4S89Eeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Yy2zEC89Eeiwr8bZ0uTz8g" type="3010" element="_YyWcwC89Eeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_Yy2zES89Eeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Yy2zEi89Eeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_oYRowC89Eeiwr8bZ0uTz8g" type="3010" element="_oXuPIC89Eeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_oYRowS89Eeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_oYRowi89Eeiwr8bZ0uTz8g"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_QL52pRv9Eeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QL52phv9Eeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QL52oRv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL52ohv9Eeir3aeVscTXqw" x="1308" y="-157" height="208"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QL_9Rxv9Eeir3aeVscTXqw" type="2003" element="_QLQ9cRv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QL_9Shv9Eeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_QL_9Sxv9Eeir3aeVscTXqw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_QL_9TBv9Eeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QL_9TRv9Eeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QL_9SBv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8" italic="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL_9SRv9Eeir3aeVscTXqw" x="948"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QL_9Thv9Eeir3aeVscTXqw" type="2003" element="_QLRkgRv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QMAkUhv9Eeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_QMAkUxv9Eeir3aeVscTXqw" type="7004"> + <children xmi:type="notation:Node" xmi:id="_uyFS4C4eEei--d1NiPU4Dw" type="3010" element="_uxn_4C4eEei--d1NiPU4Dw"> + <styles xmi:type="notation:FontStyle" xmi:id="_uyFS4S4eEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_uyFS4i4eEei--d1NiPU4Dw"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_QMAkVBv9Eeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QMAkVRv9Eeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QMAkUBv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMAkURv9Eeir3aeVscTXqw" x="871" y="156"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QMAkVhv9Eeir3aeVscTXqw" type="2003" element="_QLSLkRv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QMAkWRv9Eeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_QMAkWhv9Eeir3aeVscTXqw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_QMAkWxv9Eeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QMAkXBv9Eeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QMAkVxv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8" italic="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMAkWBv9Eeir3aeVscTXqw" x="1176" y="636"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QMBLYBv9Eeir3aeVscTXqw" type="2003" element="_QLSyoBv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QMBLYxv9Eeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_QMBLZBv9Eeir3aeVscTXqw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_QMBLZRv9Eeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QMBLZhv9Eeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QMBLYRv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMBLYhv9Eeir3aeVscTXqw" x="989" y="971"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QMBLZxv9Eeir3aeVscTXqw" type="2003" element="_QLTZsBv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QMBycBv9Eeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_QMBycRv9Eeir3aeVscTXqw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_QMBychv9Eeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QMBycxv9Eeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QMBLaBv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8" italic="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMBLaRv9Eeir3aeVscTXqw" x="291" y="864"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QMBydBv9Eeir3aeVscTXqw" type="2003" element="_QLUAwBv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QMCZgBv9Eeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_QMCZgRv9Eeir3aeVscTXqw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_QMCZghv9Eeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QMCZgxv9Eeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QMBydRv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMBydhv9Eeir3aeVscTXqw" x="291" y="1032"/> + </children> + <children xmi:type="notation:Node" xmi:id="_qHYLEBwGEeir3aeVscTXqw" type="2003" element="_qHCM0BwGEeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_qHYLExwGEeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_qHYLFBwGEeir3aeVscTXqw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_qHYLFRwGEeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_qHYLFhwGEeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_qHYLERwGEeir3aeVscTXqw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qHYLEhwGEeir3aeVscTXqw" x="578" y="1032" width="120" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_qHYyIBwGEeir3aeVscTXqw" type="2003" element="_qHHFUBwGEeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_qHYyIxwGEeir3aeVscTXqw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_qHYyJBwGEeir3aeVscTXqw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_qHYyJRwGEeir3aeVscTXqw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_qHYyJhwGEeir3aeVscTXqw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_qHYyIRwGEeir3aeVscTXqw" fontName="Cantarell" fontHeight="8" italic="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qHYyIhwGEeir3aeVscTXqw" x="461" y="864" width="120" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_1YjFoBy8EeiJONAgrNPLDA" type="2003" element="_1XcSYBy8EeiJONAgrNPLDA"> + <children xmi:type="notation:Node" xmi:id="_1YpzUBy8EeiJONAgrNPLDA" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_1YqaYBy8EeiJONAgrNPLDA" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_1YqaYRy8EeiJONAgrNPLDA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_1YqaYhy8EeiJONAgrNPLDA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_1YjFoRy8EeiJONAgrNPLDA" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1YjFohy8EeiJONAgrNPLDA" x="147" y="864" width="120" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_9gigcBy8EeiJONAgrNPLDA" type="2003" element="_9f1V0By8EeiJONAgrNPLDA"> + <children xmi:type="notation:Node" xmi:id="_9gjHgBy8EeiJONAgrNPLDA" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_9gjHgRy8EeiJONAgrNPLDA" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_9gjHghy8EeiJONAgrNPLDA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_9gjHgxy8EeiJONAgrNPLDA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_9gigcRy8EeiJONAgrNPLDA" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9gigchy8EeiJONAgrNPLDA" x="-9" y="863" width="120" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_3e5C4BzDEeiJONAgrNPLDA" type="2003" element="_3enWEBzDEeiJONAgrNPLDA"> + <children xmi:type="notation:Node" xmi:id="_3e5p8BzDEeiJONAgrNPLDA" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_3e6RABzDEeiJONAgrNPLDA" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_3e6RARzDEeiJONAgrNPLDA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_3e6RAhzDEeiJONAgrNPLDA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_3e5C4RzDEeiJONAgrNPLDA" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3e5C4hzDEeiJONAgrNPLDA" x="723" y="1032" width="120" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_7pJc0BzDEeiJONAgrNPLDA" type="2003" element="_7ozekBzDEeiJONAgrNPLDA"> + <children xmi:type="notation:Node" xmi:id="_7pKD4BzDEeiJONAgrNPLDA" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_7pKD4RzDEeiJONAgrNPLDA" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_7pKD4hzDEeiJONAgrNPLDA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7pKD4xzDEeiJONAgrNPLDA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_7pJc0RzDEeiJONAgrNPLDA" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7pJc0hzDEeiJONAgrNPLDA" x="446" y="1032" width="120" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QKMXkB2LEei8arfb2j0BMw" type="2003" element="_QJl6oB2LEei8arfb2j0BMw"> + <children xmi:type="notation:Node" xmi:id="_QKUTYB2LEei8arfb2j0BMw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_QKVhgB2LEei8arfb2j0BMw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_QKVhgR2LEei8arfb2j0BMw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QKVhgh2LEei8arfb2j0BMw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QKMXkR2LEei8arfb2j0BMw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QKMXkh2LEei8arfb2j0BMw" x="984" y="1116" width="120" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_01GZQB2LEei8arfb2j0BMw" type="2003" element="_00vM4B2LEei8arfb2j0BMw"> + <children xmi:type="notation:Node" xmi:id="_01HAUB2LEei8arfb2j0BMw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_01HAUR2LEei8arfb2j0BMw" type="7004"> + <children xmi:type="notation:Node" xmi:id="_eNzm0B2MEei8arfb2j0BMw" type="3010" element="_eNihEB2MEei8arfb2j0BMw"> + <styles xmi:type="notation:FontStyle" xmi:id="_eNzm0R2MEei8arfb2j0BMw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_eNzm0h2MEei8arfb2j0BMw"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_01HAUh2LEei8arfb2j0BMw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_01HAUx2LEei8arfb2j0BMw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_01GZQR2LEei8arfb2j0BMw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_01GZQh2LEei8arfb2j0BMw" x="1092" y="803" width="194" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_d-_BgB2pEei8arfb2j0BMw" type="2003" element="_d-l_8B2pEei8arfb2j0BMw"> + <children xmi:type="notation:Node" xmi:id="_d-_okB2pEei8arfb2j0BMw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_d-_okR2pEei8arfb2j0BMw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_d-_okh2pEei8arfb2j0BMw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_d-_okx2pEei8arfb2j0BMw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_d-_BgR2pEei8arfb2j0BMw" fontName="Cantarell" fontHeight="8" italic="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d-_Bgh2pEei8arfb2j0BMw" x="633" y="862" width="120" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_-mffcC4hEei--d1NiPU4Dw" type="2003" element="_-mNyoC4hEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_-mgGgC4hEei--d1NiPU4Dw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_-mgtkC4hEei--d1NiPU4Dw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_-mgtkS4hEei--d1NiPU4Dw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_-mgtki4hEei--d1NiPU4Dw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_-mffcS4hEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-mffci4hEei--d1NiPU4Dw" x="396" y="695" width="149" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dRwS4C4iEei--d1NiPU4Dw" type="2003" element="_dQlOMC4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dRw58C4iEei--d1NiPU4Dw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_dRw58S4iEei--d1NiPU4Dw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_dRw58i4iEei--d1NiPU4Dw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_dRw58y4iEei--d1NiPU4Dw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_dRwS4S4iEei--d1NiPU4Dw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dRwS4i4iEei--d1NiPU4Dw" x="105" y="384"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dRw59C4iEei--d1NiPU4Dw" type="2003" element="_dQpfoC4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dRxhAC4iEei--d1NiPU4Dw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_dRxhAS4iEei--d1NiPU4Dw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_dRxhAi4iEei--d1NiPU4Dw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_dRxhAy4iEei--d1NiPU4Dw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_dRw59S4iEei--d1NiPU4Dw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dRw59i4iEei--d1NiPU4Dw" x="231" y="384"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dRyIEC4iEei--d1NiPU4Dw" type="2003" element="_dQr74C4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dRyIEy4iEei--d1NiPU4Dw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_dRyIFC4iEei--d1NiPU4Dw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_dRyIFS4iEei--d1NiPU4Dw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_dRyIFi4iEei--d1NiPU4Dw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_dRyIES4iEei--d1NiPU4Dw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dRyIEi4iEei--d1NiPU4Dw" x="-25" y="384"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dRyvIC4iEei--d1NiPU4Dw" type="2003" element="_dQwNUC4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dRyvIy4iEei--d1NiPU4Dw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_dRyvJC4iEei--d1NiPU4Dw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_dRyvJS4iEei--d1NiPU4Dw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_dRyvJi4iEei--d1NiPU4Dw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_dRyvIS4iEei--d1NiPU4Dw" fontColor="2697711" fontName="Cantarell" fontHeight="8" italic="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dRyvIi4iEei--d1NiPU4Dw" x="509" y="132"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dRzWMC4iEei--d1NiPU4Dw" type="2003" element="_dQypkC4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dRzWMy4iEei--d1NiPU4Dw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_dRzWNC4iEei--d1NiPU4Dw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_dRzWNS4iEei--d1NiPU4Dw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_dRzWNi4iEei--d1NiPU4Dw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_dRzWMS4iEei--d1NiPU4Dw" fontColor="2697711" fontName="Cantarell" fontHeight="8" italic="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dRzWMi4iEei--d1NiPU4Dw" x="261" y="180"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dRzWNy4iEei--d1NiPU4Dw" type="2003" element="_dQ27AC4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dRz9QC4iEei--d1NiPU4Dw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_dRz9QS4iEei--d1NiPU4Dw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_dRz9Qi4iEei--d1NiPU4Dw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_dRz9Qy4iEei--d1NiPU4Dw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_dRzWOC4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dRzWOS4iEei--d1NiPU4Dw" x="329" y="-36"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dRz9RC4iEei--d1NiPU4Dw" type="2003" element="_dQ5XQC4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dRz9Ry4iEei--d1NiPU4Dw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_dRz9SC4iEei--d1NiPU4Dw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_dRz9SS4iEei--d1NiPU4Dw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_dRz9Si4iEei--d1NiPU4Dw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_dRz9RS4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dRz9Ri4iEei--d1NiPU4Dw" x="381" y="384"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR0kUC4iEei--d1NiPU4Dw" type="2003" element="_dQ7McC4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dR1LYC4iEei--d1NiPU4Dw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_dR1LYS4iEei--d1NiPU4Dw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_dR1LYi4iEei--d1NiPU4Dw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_dR1LYy4iEei--d1NiPU4Dw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_dR0kUS4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8" italic="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR0kUi4iEei--d1NiPU4Dw" x="114" y="168"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR1ycC4iEei--d1NiPU4Dw" type="2003" element="_dQ-PwC4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dR1ycy4iEei--d1NiPU4Dw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_dR2ZgC4iEei--d1NiPU4Dw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_dR2ZgS4iEei--d1NiPU4Dw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_dR2Zgi4iEei--d1NiPU4Dw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_dR1ycS4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR1yci4iEei--d1NiPU4Dw" x="684" y="384"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR2Zgy4iEei--d1NiPU4Dw" type="2003" element="_dRQjoC4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dR3AkC4iEei--d1NiPU4Dw" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_dR3AkS4iEei--d1NiPU4Dw" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_dR3Aki4iEei--d1NiPU4Dw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_dR3Aky4iEei--d1NiPU4Dw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_dR2ZhC4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR2ZhS4iEei--d1NiPU4Dw" x="548" y="384"/> + </children> + <children xmi:type="notation:Node" xmi:id="_wnjYYC5uEeiwr8bZ0uTz8g" type="2003" element="_wm54IC5uEeiwr8bZ0uTz8g"> + <children xmi:type="notation:Node" xmi:id="_wnj_cC5uEeiwr8bZ0uTz8g" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_wnkmgC5uEeiwr8bZ0uTz8g" type="7004"> + <children xmi:type="notation:Node" xmi:id="_6kshgC5vEeiwr8bZ0uTz8g" type="3010" element="_6kP1kC5vEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_6kshgS5vEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_6kshgi5vEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_-nS0QC5vEeiwr8bZ0uTz8g" type="3010" element="_-m6ZwC5vEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_-nS0QS5vEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_-nS0Qi5vEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_CmEW8C5wEeiwr8bZ0uTz8g" type="3010" element="_CloSEC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_CmEW8S5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_CmEW8i5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_G6VBcC5wEeiwr8bZ0uTz8g" type="3010" element="_G57Y0C5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_G6VBcS5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_G6VBci5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Jb-e0C5wEeiwr8bZ0uTz8g" type="3010" element="_JbgkwC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_Jb-e0S5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Jb-e0i5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_NChuwC5wEeiwr8bZ0uTz8g" type="3010" element="_NCCmkC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_NChuwS5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_NChuwi5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_O8T64C5wEeiwr8bZ0uTz8g" type="3010" element="_O77gYC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_O8T64S5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_O8T64i5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Qwo_QC5wEeiwr8bZ0uTz8g" type="3010" element="_QwLsQC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_Qwo_QS5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Qwo_Qi5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_SYOBEC5wEeiwr8bZ0uTz8g" type="3010" element="_SXnkIC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_SYOBES5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_SYOBEi5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_T-vS8C5wEeiwr8bZ0uTz8g" type="3010" element="_T-Z7wC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_T-vS8S5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_T-vS8i5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_VgTzYC5wEeiwr8bZ0uTz8g" type="3010" element="_Vf2gYC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_VgTzYS5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VgTzYi5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_W89-oC5wEeiwr8bZ0uTz8g" type="3010" element="_W8oAYC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_W89-oS5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_W89-oi5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_YbH-sC5wEeiwr8bZ0uTz8g" type="3010" element="_YawyUC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_YbH-sS5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_YbH-si5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Z9HV4C5wEeiwr8bZ0uTz8g" type="3010" element="_Z8r4EC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_Z9HV4S5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Z9HV4i5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_bcCyAC5wEeiwr8bZ0uTz8g" type="3010" element="_bblfAC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_bcCyAS5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_bcCyAi5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_cztvkC5wEeiwr8bZ0uTz8g" type="3010" element="_czcCwC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_cztvkS5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_cztvki5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_egpygC5wEeiwr8bZ0uTz8g" type="3010" element="_egSmIC5wEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_egpygS5wEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_egpygi5wEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_GA6vYC5_Eeiwr8bZ0uTz8g" type="3010" element="_GAfRkC5_Eeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_GA6vYS5_Eeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_GA6vYi5_Eeiwr8bZ0uTz8g"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_wnkmgS5uEeiwr8bZ0uTz8g"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_wnkmgi5uEeiwr8bZ0uTz8g"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_wnjYYS5uEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wnjYYi5uEeiwr8bZ0uTz8g" x="1920" y="-156" width="183" height="339"/> + </children> + <children xmi:type="notation:Node" xmi:id="_cTFc0C5yEeiwr8bZ0uTz8g" type="2003" element="_cSu3gC5yEeiwr8bZ0uTz8g"> + <children xmi:type="notation:Node" xmi:id="_cTGD4C5yEeiwr8bZ0uTz8g" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_cTGD4S5yEeiwr8bZ0uTz8g" type="7004"> + <children xmi:type="notation:Node" xmi:id="_ulJe8C5yEeiwr8bZ0uTz8g" type="3010" element="_uk2kAC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_ulJe8S5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_ulJe8i5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_u959MC5yEeiwr8bZ0uTz8g" type="3010" element="_u9gUkC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_u959MS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_u959Mi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_vMOGAC5yEeiwr8bZ0uTz8g" type="3010" element="_vL588C5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_vMOGAS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_vMOGAi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_vW1akC5yEeiwr8bZ0uTz8g" type="3010" element="_vWbK4C5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_vW1akS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_vW1aki5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_viIEkC5yEeiwr8bZ0uTz8g" type="3010" element="_vhytYC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_viIEkS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_viIEki5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_vwURkC5yEeiwr8bZ0uTz8g" type="3010" element="_vwBWoC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_vwURkS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_vwURki5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_v6aBsC5yEeiwr8bZ0uTz8g" type="3010" element="_v5_K8C5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_v6aBsS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_v6aBsi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_wEiOEC5yEeiwr8bZ0uTz8g" type="3010" element="_wECe0C5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_wEiOES5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_wEiOEi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_wTMVIC5yEeiwr8bZ0uTz8g" type="3010" element="_wSz6oC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_wTMVIS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_wTMVIi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_xFTHgC5yEeiwr8bZ0uTz8g" type="3010" element="_xE_lgC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_xFTHgS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_xFTHgi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_xQm_oC5yEeiwr8bZ0uTz8g" type="3010" element="_xQK6wC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_xQm_oS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_xQm_oi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_xahwoC5yEeiwr8bZ0uTz8g" type="3010" element="_xaJ9MC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_xahwoS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_xahwoi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_xkI_oC5yEeiwr8bZ0uTz8g" type="3010" element="_xj0PgC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_xkI_oS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_xkI_oi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_xtmdoC5yEeiwr8bZ0uTz8g" type="3010" element="_xtIjkC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_xtmdoS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_xtmdoi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_x8ToAC5yEeiwr8bZ0uTz8g" type="3010" element="_x7_e8C5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_x8ToAS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_x8ToAi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_yKwTsC5yEeiwr8bZ0uTz8g" type="3010" element="_yKYgQC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_yKwTsS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_yKwTsi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_yWkiIC5yEeiwr8bZ0uTz8g" type="3010" element="_yVXoQC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_yWkiIS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_yWkiIi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_yg6J4C5yEeiwr8bZ0uTz8g" type="3010" element="_ygmn4C5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_yg6J4S5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_yg6J4i5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_yuJUoC5yEeiwr8bZ0uTz8g" type="3010" element="_ytvE8C5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_yuJUoS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_yuJUoi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_y775AC5yEeiwr8bZ0uTz8g" type="3010" element="_y7l6wC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_y775AS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_y775Ai5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_zJ1yIC5yEeiwr8bZ0uTz8g" type="3010" element="_zJXRAC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_zJ1yIS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_zJ1yIi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_zVfogC5yEeiwr8bZ0uTz8g" type="3010" element="_zVK4YC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_zVfogS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_zVfogi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_zloWQC5yEeiwr8bZ0uTz8g" type="3010" element="_zlArMC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_zloWQS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_zloWQi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_z0tUEC5yEeiwr8bZ0uTz8g" type="3010" element="_zz-UQC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_z0tUES5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_z0tUEi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_0FBoAC5yEeiwr8bZ0uTz8g" type="3010" element="_0Ep0kC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_0FBoAS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_0FBoAi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_0ZVrIC5yEeiwr8bZ0uTz8g" type="3010" element="_0YqVsC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_0ZVrIS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_0ZVrIi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_0xpdcC5yEeiwr8bZ0uTz8g" type="3010" element="_0xTfMC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_0xpdcS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_0xpdci5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_1CJ-oC5yEeiwr8bZ0uTz8g" type="3010" element="_1BkIwC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_1CJ-oS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_1CJ-oi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_1fSmkC5yEeiwr8bZ0uTz8g" type="3010" element="_1e6MEC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_1fSmkS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_1fSmki5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_14CdwC5yEeiwr8bZ0uTz8g" type="3010" element="_13rRYC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_14CdwS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_14Cdwi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2JuqsC5yEeiwr8bZ0uTz8g" type="3010" element="_2JTz8C5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_2JuqsS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2Juqsi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2ZYQQC5yEeiwr8bZ0uTz8g" type="3010" element="_2Y-noC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_2ZYQQS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2ZYQQi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2uXBwC5yEeiwr8bZ0uTz8g" type="3010" element="_2uC4sC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_2uXBwS5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2uXBwi5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_3GBT0C5yEeiwr8bZ0uTz8g" type="3010" element="_3FoSQC5yEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_3GBT0S5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_3GBT0i5yEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_5ECDMC5zEeiwr8bZ0uTz8g" type="3010" element="_5Dc0YC5zEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_5ECDMS5zEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_5ECDMi5zEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_5YVfQC5zEeiwr8bZ0uTz8g" type="3010" element="_5X9EwC5zEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_5YVfQS5zEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_5YVfQi5zEeiwr8bZ0uTz8g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_5toZ0C5zEeiwr8bZ0uTz8g" type="3010" element="_5tOKIC5zEeiwr8bZ0uTz8g"> + <styles xmi:type="notation:FontStyle" xmi:id="_5toZ0S5zEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_5toZ0i5zEeiwr8bZ0uTz8g"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_cTGD4i5yEeiwr8bZ0uTz8g"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_cTGD4y5yEeiwr8bZ0uTz8g"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_cTFc0S5yEeiwr8bZ0uTz8g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cTFc0i5yEeiwr8bZ0uTz8g" x="1892" y="234" width="240" height="903"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Jyw8oDEtEeiF0ru3Etlc_g" type="2003" element="_JwymsDEtEeiF0ru3Etlc_g"> + <children xmi:type="notation:Node" xmi:id="_Jy6toDEtEeiF0ru3Etlc_g" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_Jy7UsDEtEeiF0ru3Etlc_g" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_Jy7UsTEtEeiF0ru3Etlc_g"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_Jy7UsjEtEeiF0ru3Etlc_g"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_Jyw8oTEtEeiF0ru3Etlc_g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jyw8ojEtEeiF0ru3Etlc_g" x="1389" y="961" width="135" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_oTkgoDE6EeifDcVRz6UV5g" type="2003" element="_oRe18DE6EeifDcVRz6UV5g"> + <children xmi:type="notation:Node" xmi:id="_oTtDgDE6EeifDcVRz6UV5g" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_oTuRoDE6EeifDcVRz6UV5g" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_oTuRoTE6EeifDcVRz6UV5g"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_oTuRojE6EeifDcVRz6UV5g"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_oTkgoTE6EeifDcVRz6UV5g" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oTkgojE6EeifDcVRz6UV5g" x="1547" y="961" width="159" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="__AveUEJgEei5GdIMm-4mwA" type="2003" element="_-9CqEEJgEei5GdIMm-4mwA"> + <children xmi:type="notation:Node" xmi:id="__A4oQEJgEei5GdIMm-4mwA" type="5007"/> + <children xmi:type="notation:Node" xmi:id="__A5PUEJgEei5GdIMm-4mwA" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="__A5PUUJgEei5GdIMm-4mwA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="__A5PUkJgEei5GdIMm-4mwA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="__AveUUJgEei5GdIMm-4mwA" fontName="Cantarell" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="__AveUkJgEei5GdIMm-4mwA" x="1404" y="1116" width="120" height="100"/> + </children> + <styles xmi:type="notation:DiagramStyle" xmi:id="_PSPqwhv9Eeir3aeVscTXqw"/> + <edges xmi:type="notation:Edge" xmi:id="_QMJuQBv9Eeir3aeVscTXqw" type="4001" element="_QLkfcBv9Eeir3aeVscTXqw" source="_QLyh4Bv9Eeir3aeVscTXqw" target="_QLzI9Bv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QMKVUBv9Eeir3aeVscTXqw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMKVURv9Eeir3aeVscTXqw" x="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QMKVUhv9Eeir3aeVscTXqw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMKVUxv9Eeir3aeVscTXqw" x="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QMKVVBv9Eeir3aeVscTXqw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMKVVRv9Eeir3aeVscTXqw" x="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_QMJuQRv9Eeir3aeVscTXqw" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_QMJuQhv9Eeir3aeVscTXqw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QMJuQxv9Eeir3aeVscTXqw" points="[13, 2, 12, -167]$[13, 120, 12, -49]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QMK8YBv9Eeir3aeVscTXqw" id="(0.48333333333333334,0.9799999999999999)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QMK8YRv9Eeir3aeVscTXqw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_QMfshhv9Eeir3aeVscTXqw" type="4001" element="_QLuQdBv9Eeir3aeVscTXqw" source="_QL_9Thv9Eeir3aeVscTXqw" target="_QL_9Rxv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_QMfsihv9Eeir3aeVscTXqw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMfsixv9Eeir3aeVscTXqw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QMfsjBv9Eeir3aeVscTXqw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMfsjRv9Eeir3aeVscTXqw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QMfsjhv9Eeir3aeVscTXqw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMfsjxv9Eeir3aeVscTXqw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_QMfshxv9Eeir3aeVscTXqw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_QMfsiBv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QMfsiRv9Eeir3aeVscTXqw" points="[0, 0, 9, 62]$[0, -192, 9, -130]$[4, -192, 13, -130]$[4, -156, 13, -94]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QMfskBv9Eeir3aeVscTXqw" id="(0.4732510288065843,0.01)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QMfskRv9Eeir3aeVscTXqw" id="(0.4,0.96)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_Aa_eUB2MEei8arfb2j0BMw" type="4001" element="_QKGQ8B2LEei8arfb2j0BMw" source="_QKMXkB2LEei8arfb2j0BMw" target="_01GZQB2LEei8arfb2j0BMw"> + <children xmi:type="notation:Node" xmi:id="_Aa_eVB2MEei8arfb2j0BMw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aa_eVR2MEei8arfb2j0BMw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Aa_eVh2MEei8arfb2j0BMw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aa_eVx2MEei8arfb2j0BMw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_AbAFYB2MEei8arfb2j0BMw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AbAFYR2MEei8arfb2j0BMw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_Aa_eUR2MEei8arfb2j0BMw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_Aa_eUh2MEei8arfb2j0BMw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Aa_eUx2MEei8arfb2j0BMw" points="[-1, -49, 174, 314]$[-1, -295, 174, 68]$[-174, -295, 1, 68]$[-174, -314, 1, 49]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AbAFYh2MEei8arfb2j0BMw" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fyo4cB2MEei8arfb2j0BMw" id="(0.4934840425531915,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_BO-gAB2MEei8arfb2j0BMw" type="4001" element="_QLu3gxv9Eeir3aeVscTXqw" source="_QMBLYBv9Eeir3aeVscTXqw" target="_01GZQB2LEei8arfb2j0BMw"> + <children xmi:type="notation:Node" xmi:id="_BO-gBB2MEei8arfb2j0BMw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BO-gBR2MEei8arfb2j0BMw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_BO-gBh2MEei8arfb2j0BMw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BO_HEB2MEei8arfb2j0BMw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_BO_HER2MEei8arfb2j0BMw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BO_HEh2MEei8arfb2j0BMw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_BO-gAR2MEei8arfb2j0BMw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_BO-gAh2MEei8arfb2j0BMw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BO-gAx2MEei8arfb2j0BMw" points="[-1, 0, -66, 97]$[-1, -29, -66, 68]$[66, -29, 1, 68]$[66, -48, 1, 49]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BO_HEx2MEei8arfb2j0BMw" id="(0.5,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fyo4cR2MEei8arfb2j0BMw" id="(0.4934840425531915,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_CWx1kB2MEei8arfb2j0BMw" type="4001" element="_XfgucBy-EeiJONAgrNPLDA" source="_QL5PkBv9Eeir3aeVscTXqw" target="_01GZQB2LEei8arfb2j0BMw"> + <children xmi:type="notation:Node" xmi:id="_CWx1lB2MEei8arfb2j0BMw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CWx1lR2MEei8arfb2j0BMw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_CWx1lh2MEei8arfb2j0BMw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CWx1lx2MEei8arfb2j0BMw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_CWx1mB2MEei8arfb2j0BMw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CWx1mR2MEei8arfb2j0BMw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_CWx1kR2MEei8arfb2j0BMw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_CWx1kh2MEei8arfb2j0BMw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CWx1kx2MEei8arfb2j0BMw" points="[0, 0, 116, 194]$[0, -126, 116, 68]$[-115, -126, 1, 68]$[-115, -145, 1, 49]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CWycoB2MEei8arfb2j0BMw" id="(0.7384615384615385,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fyo4ch2MEei8arfb2j0BMw" id="(0.4934840425531915,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_J2gWgB2MEei8arfb2j0BMw" type="4001" element="_X73TQBy-EeiJONAgrNPLDA" source="_QL4BdBv9Eeir3aeVscTXqw" target="_01GZQB2LEei8arfb2j0BMw"> + <children xmi:type="notation:Node" xmi:id="_J2g9kB2MEei8arfb2j0BMw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J2g9kR2MEei8arfb2j0BMw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_J2g9kh2MEei8arfb2j0BMw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J2g9kx2MEei8arfb2j0BMw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_J2g9lB2MEei8arfb2j0BMw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J2g9lR2MEei8arfb2j0BMw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_J2gWgR2MEei8arfb2j0BMw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_J2gWgh2MEei8arfb2j0BMw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J2gWgx2MEei8arfb2j0BMw" points="[-1, 0, 95, 265]$[-1, -197, 95, 68]$[-95, -197, 1, 68]$[-95, -216, 1, 49]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J2hkoB2MEei8arfb2j0BMw" id="(0.8076923076923077,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J2hkoR2MEei8arfb2j0BMw" id="(0.4934840425531915,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_UpbtkB2MEei8arfb2j0BMw" type="4001" element="_UpKAwB2MEei8arfb2j0BMw" source="_01GZQB2LEei8arfb2j0BMw" target="_QMAkVhv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_UpbtlB2MEei8arfb2j0BMw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UpbtlR2MEei8arfb2j0BMw" x="-5" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Upbtlh2MEei8arfb2j0BMw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Upbtlx2MEei8arfb2j0BMw" x="7" y="-9"/> + </children> + <children xmi:type="notation:Node" xmi:id="_UpbtmB2MEei8arfb2j0BMw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UpcUoB2MEei8arfb2j0BMw" x="-37" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_UpbtkR2MEei8arfb2j0BMw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_Upbtkh2MEei8arfb2j0BMw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Upbtkx2MEei8arfb2j0BMw" points="[-1, -20, -141, 47]$[-1, -43, -141, 24]$[130, -43, -10, 24]$[130, -65, -10, 2]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UpcUoR2MEei8arfb2j0BMw" id="(0.559780585106383,0.21)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UpcUoh2MEei8arfb2j0BMw" id="(0.575,0.9799999999999999)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_rGHQEC4hEei--d1NiPU4Dw" type="4001" element="_CoWmgBwHEeir3aeVscTXqw" source="_QLzI9Bv9Eeir3aeVscTXqw" target="_QL_9Rxv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_rGH3IC4hEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rGH3IS4hEei--d1NiPU4Dw" x="-30" y="6"/> + </children> + <children xmi:type="notation:Node" xmi:id="_rGH3Ii4hEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rGH3Iy4hEei--d1NiPU4Dw" x="22"/> + </children> + <children xmi:type="notation:Node" xmi:id="_rGH3JC4hEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rGH3JS4hEei--d1NiPU4Dw" x="20"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_rGHQES4hEei--d1NiPU4Dw" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_rGHQEi4hEei--d1NiPU4Dw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rGHQEy4hEei--d1NiPU4Dw" points="[0, -59, 591, 7]$[-494, -59, 97, 7]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rGH3Ji4hEei--d1NiPU4Dw" id="(0.0,0.8571428571428571)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rGH3Jy4hEei--d1NiPU4Dw" id="(0.18333333333333332,0.68)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_sYQNYC4hEei--d1NiPU4Dw" type="4001" element="_UtIakBwHEeir3aeVscTXqw" source="_QLzI9Bv9Eeir3aeVscTXqw" target="_QMAkVhv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_sYQ0cy4hEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sYQ0dC4hEei--d1NiPU4Dw" x="36" y="29"/> + </children> + <children xmi:type="notation:Node" xmi:id="_sYQ0dS4hEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sYQ0di4hEei--d1NiPU4Dw" x="50" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_sYQ0dy4hEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sYQ0eC4hEei--d1NiPU4Dw" x="130" y="-10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_sYQ0cC4hEei--d1NiPU4Dw" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_sYQ0cS4hEei--d1NiPU4Dw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sYQ0ci4hEei--d1NiPU4Dw" points="[42, 49, 497, -546]$[42, 544, 497, -51]$[-361, 544, 94, -51]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sYQ0eS4hEei--d1NiPU4Dw" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sYQ0ei4hEei--d1NiPU4Dw" id="(0.20833333333333334,0.58)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_6XBOUC4hEei--d1NiPU4Dw" type="4001" element="_6Wzy8C4hEei--d1NiPU4Dw" source="_3e5C4BzDEeiJONAgrNPLDA" target="_d-_BgB2pEei8arfb2j0BMw"> + <children xmi:type="notation:Node" xmi:id="_6XBOVC4hEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6XBOVS4hEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_6XBOVi4hEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6XBOVy4hEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_6XBOWC4hEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6XBOWS4hEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_6XBOUS4hEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_6XBOUi4hEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6XBOUy4hEei--d1NiPU4Dw" points="[0, 0, 113, 96]$[-113, -96, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6XB1YC4hEei--d1NiPU4Dw" id="(0.4152542372881356,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6XB1YS4hEei--d1NiPU4Dw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_65xWEC4hEei--d1NiPU4Dw" type="4001" element="_65mW8C4hEei--d1NiPU4Dw" source="_qHYLEBwGEeir3aeVscTXqw" target="_d-_BgB2pEei8arfb2j0BMw"> + <children xmi:type="notation:Node" xmi:id="_65x9IC4hEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_65x9IS4hEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_65x9Ii4hEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_65x9Iy4hEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_65x9JC4hEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_65x9JS4hEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_65xWES4hEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_65xWEi4hEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_65xWEy4hEei--d1NiPU4Dw" points="[0, 0, -67, 96]$[67, -96, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_65x9Ji4hEei--d1NiPU4Dw" id="(0.5,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_65x9Jy4hEei--d1NiPU4Dw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_7Ne8QC4hEei--d1NiPU4Dw" type="4001" element="_7NQSwC4hEei--d1NiPU4Dw" source="_7pJc0BzDEeiJONAgrNPLDA" target="_qHYyIBwGEeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_7NfjUC4hEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7NfjUS4hEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_7NfjUi4hEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7NfjUy4hEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_7NfjVC4hEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7NfjVS4hEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_7Ne8QS4hEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_7Ne8Qi4hEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7Ne8Qy4hEei--d1NiPU4Dw" points="[0, 0, 0, 93]$[0, -93, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7NgKYC4hEei--d1NiPU4Dw" id="(0.5254237288135594,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7NgKYS4hEei--d1NiPU4Dw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_7nPgEC4hEei--d1NiPU4Dw" type="4001" element="_7m_ocC4hEei--d1NiPU4Dw" source="_QMBydBv9Eeir3aeVscTXqw" target="_QMBLZxv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_7nQHIC4hEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7nQHIS4hEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_7nQHIi4hEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7nQHIy4hEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_7nQHJC4hEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7nQHJS4hEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_7nPgES4hEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_7nPgEi4hEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7nPgEy4hEei--d1NiPU4Dw" points="[0, 0, 0, 93]$[0, -93, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7nQHJi4hEei--d1NiPU4Dw" id="(0.4915254237288136,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7nQHJy4hEei--d1NiPU4Dw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_AcleYC4iEei--d1NiPU4Dw" type="4001" element="_AcXb8C4iEei--d1NiPU4Dw" source="_1YjFoBy8EeiJONAgrNPLDA" target="_-mffcC4hEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_AcleZC4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AcleZS4iEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_AcleZi4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AcleZy4iEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_AcleaC4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AcleaS4iEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_AcleYS4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_AcleYi4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AcleYy4iEei--d1NiPU4Dw" points="[0, 0, -336, 95]$[336, -95, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AcmFcC4iEei--d1NiPU4Dw" id="(0.3050847457627119,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AcmFcS4iEei--d1NiPU4Dw" id="(0.40045248868778277,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_BCqm8C4iEei--d1NiPU4Dw" type="4001" element="_BCbWYC4iEei--d1NiPU4Dw" source="_9gigcBy8EeiJONAgrNPLDA" target="_-mffcC4hEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_BCrOAC4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BCrOAS4iEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_BCrOAi4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BCrOAy4iEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_BCrOBC4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BCrOBS4iEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_BCqm8S4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_BCqm8i4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BCqm8y4iEei--d1NiPU4Dw" points="[0, 0, -448, 159]$[448, -159, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BCrOBi4iEei--d1NiPU4Dw" id="(0.3050847457627119,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BCrOBy4iEei--d1NiPU4Dw" id="(0.40045248868778277,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_BdZbIC4iEei--d1NiPU4Dw" type="4001" element="_Bc_LcC4iEei--d1NiPU4Dw" source="_QMBLZxv9Eeir3aeVscTXqw" target="_-mffcC4hEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_BdZbJC4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BdZbJS4iEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_BdZbJi4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BdZbJy4iEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_BdZbKC4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BdZbKS4iEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_BdZbIS4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_BdZbIi4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BdZbIy4iEei--d1NiPU4Dw" points="[0, 0, -48, 95]$[48, -95, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BdZbKi4iEei--d1NiPU4Dw" id="(0.8135593220338984,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BdaCMC4iEei--d1NiPU4Dw" id="(0.40045248868778277,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_B56YAC4iEei--d1NiPU4Dw" type="4001" element="_B5rugC4iEei--d1NiPU4Dw" source="_qHYyIBwGEeir3aeVscTXqw" target="_-mffcC4hEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_B56_EC4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B56_ES4iEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_B57mIC4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B57mIS4iEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_B57mIi4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B57mIy4iEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_B56YAS4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_B56YAi4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_B56YAy4iEei--d1NiPU4Dw" points="[0, 0, 141, 95]$[-141, -95, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B57mJC4iEei--d1NiPU4Dw" id="(0.3728813559322034,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B57mJS4iEei--d1NiPU4Dw" id="(0.40045248868778277,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_CUI14C4iEei--d1NiPU4Dw" type="4001" element="_CT8BkC4iEei--d1NiPU4Dw" source="_d-_BgB2pEei8arfb2j0BMw" target="_-mffcC4hEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_CUJc8C4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CUJc8S4iEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_CUJc8i4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CUJc8y4iEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_CUJc9C4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CUJc9S4iEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_CUI14S4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_CUI14i4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CUI14y4iEei--d1NiPU4Dw" points="[0, 0, 307, 126]$[-307, -126, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CUJc9i4iEei--d1NiPU4Dw" id="(0.6610169491525424,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CUJc9y4iEei--d1NiPU4Dw" id="(0.40045248868778277,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_dR41wC4iEei--d1NiPU4Dw" type="4001" element="_dRo-IC4iEei--d1NiPU4Dw" source="_dRwS4C4iEei--d1NiPU4Dw" target="_dRzWNy4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dR41xC4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR41xS4iEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR5c0C4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR5c0S4iEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR5c0i4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR5c0y4iEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_dR41wS4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_dR41wi4iEei--d1NiPU4Dw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dR41wy4iEei--d1NiPU4Dw" points="[576, 458, 576, 458]$[726, 608, 726, 608]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR5c1C4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR5c1S4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_dR5c1i4iEei--d1NiPU4Dw" type="4001" element="_dRqMQC4iEei--d1NiPU4Dw" source="_dRw59C4iEei--d1NiPU4Dw" target="_dR0kUC4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dR6D4C4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR6D4S4iEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR6D4i4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR6D4y4iEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR6D5C4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR6D5S4iEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_dR5c1y4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_dR5c2C4iEei--d1NiPU4Dw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dR5c2S4iEei--d1NiPU4Dw" points="[606, 488, 606, 488]$[786, 668, 786, 668]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR6D5i4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR6D5y4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_dR6D6C4iEei--d1NiPU4Dw" type="4001" element="_dRqzUC4iEei--d1NiPU4Dw" source="_dRyIEC4iEei--d1NiPU4Dw" target="_dRzWNy4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dR6q8C4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR6q8S4iEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR6q8i4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR6q8y4iEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR6q9C4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR6q9S4iEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_dR6D6S4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_dR6D6i4iEei--d1NiPU4Dw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dR6D6y4iEei--d1NiPU4Dw" points="[636, 518, 636, 518]$[726, 608, 726, 608]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR6q9i4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR6q9y4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_dR6q-C4iEei--d1NiPU4Dw" type="4001" element="_dRraYC4iEei--d1NiPU4Dw" source="_dRyvIC4iEei--d1NiPU4Dw" target="_dRzWNy4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dR7SAC4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR7SAS4iEei--d1NiPU4Dw" x="-80" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR7SAi4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR7SAy4iEei--d1NiPU4Dw" x="-38" y="-13"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR7SBC4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR7SBS4iEei--d1NiPU4Dw" x="-46" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_dR6q-S4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_dR6q-i4iEei--d1NiPU4Dw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dR6q-y4iEei--d1NiPU4Dw" points="[0, -49, 236, 107]$[0, -73, 236, 83]$[-288, -73, -52, 83]$[-288, -107, -52, 49]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR7SBi4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR7SBy4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_dR75EC4iEei--d1NiPU4Dw" type="4001" element="_dRsBcC4iEei--d1NiPU4Dw" source="_dRzWMC4iEei--d1NiPU4Dw" target="_dRzWNy4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dR75FC4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR75FS4iEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR75Fi4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR75Fy4iEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR75GC4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR75GS4iEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_dR75ES4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_dR75Ei4iEei--d1NiPU4Dw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dR75Ey4iEei--d1NiPU4Dw" points="[696, 578, 696, 578]$[726, 608, 726, 608]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR75Gi4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR75Gy4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_dR8gIC4iEei--d1NiPU4Dw" type="4001" element="_dRsogC4iEei--d1NiPU4Dw" source="_dRz9RC4iEei--d1NiPU4Dw" target="_dRzWMC4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dR8gJC4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR8gJS4iEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR8gJi4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR8gJy4iEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR8gKC4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR8gKS4iEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_dR8gIS4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_dR8gIi4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dR8gIy4iEei--d1NiPU4Dw" points="[756, 638, 756, 638]$[696, 578, 696, 578]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR8gKi4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR8gKy4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_dR9HMC4iEei--d1NiPU4Dw" type="4001" element="_dRsohC4iEei--d1NiPU4Dw" source="_dR0kUC4iEei--d1NiPU4Dw" target="_dRzWNy4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dR9HNC4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR9HNS4iEei--d1NiPU4Dw" x="27" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR9HNi4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR9HNy4iEei--d1NiPU4Dw" x="8" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR9HOC4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR9HOS4iEei--d1NiPU4Dw" x="5" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_dR9HMS4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_dR9HMi4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dR9HMy4iEei--d1NiPU4Dw" points="[0, -49, -147, 154]$[0, -273, -147, -70]$[95, -273, -52, -70]$[95, -252, -52, -49]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR9HOi4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR9uQC4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_dR9uQS4iEei--d1NiPU4Dw" type="4001" element="_dRtPky4iEei--d1NiPU4Dw" source="_dR1ycC4iEei--d1NiPU4Dw" target="_dRyvIC4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dR9uRS4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR9uRi4iEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR9uRy4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR9uSC4iEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR-VUC4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR-VUS4iEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_dR9uQi4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_dR9uQy4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dR9uRC4iEei--d1NiPU4Dw" points="[816, 698, 816, 698]$[666, 548, 666, 548]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR-VUi4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dR-VUy4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_dR-VVC4iEei--d1NiPU4Dw" type="4001" element="_dRt2oC4iEei--d1NiPU4Dw" source="_dR2Zgy4iEei--d1NiPU4Dw" target="_dRyvIC4iEei--d1NiPU4Dw"> + <children xmi:type="notation:Node" xmi:id="_dR-8YC4iEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR-8YS4iEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR_jcC4iEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR_jcS4iEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dR_jci4iEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dR_jcy4iEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_dR-VVS4iEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_dR-VVi4iEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dR-VVy4iEei--d1NiPU4Dw" points="[846, 728, 846, 728]$[666, 548, 666, 548]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dSAKgC4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dSAKgS4iEei--d1NiPU4Dw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_TM0NwC4jEei--d1NiPU4Dw" type="4001" element="_TMePgC4jEei--d1NiPU4Dw" source="_dRzWNy4iEei--d1NiPU4Dw" target="_QL_9Rxv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_TM000C4jEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TM000S4jEei--d1NiPU4Dw" x="-49" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_TM000i4jEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TM000y4jEei--d1NiPU4Dw" x="-70" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_TM1b4C4jEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TM1b4S4jEei--d1NiPU4Dw" x="-26" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_TM0NwS4jEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_TM0Nwi4jEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TM0Nwy4jEei--d1NiPU4Dw" points="[0, -12, -548, -130]$[0, -12, -548, -130]$[561, -12, 13, -130]$[561, 24, 13, -94]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TM1b4i4jEei--d1NiPU4Dw" id="(1.0,0.3673469387755102)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TM1b4y4jEei--d1NiPU4Dw" id="(0.4,0.96)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_UiEJcC4jEei--d1NiPU4Dw" type="4001" element="_UhwAYC4jEei--d1NiPU4Dw" source="_-mffcC4hEei--d1NiPU4Dw" target="_QMAkVhv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_UiEwgC4jEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UiEwgS4jEei--d1NiPU4Dw" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_UiFXkC4jEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UiFXkS4jEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_UiFXki4jEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UiFXky4jEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_UiEJcS4jEei--d1NiPU4Dw" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_UiEJci4jEei--d1NiPU4Dw" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UiEJcy4jEei--d1NiPU4Dw" points="[0, 0, -844, 32]$[844, -32, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UiFXlC4jEei--d1NiPU4Dw" id="(1.0,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UiFXlS4jEei--d1NiPU4Dw" id="(0.75,0.9)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_Xm3-QC4jEei--d1NiPU4Dw" type="4001" element="_XmpUwC4jEei--d1NiPU4Dw" source="_dRyvIC4iEei--d1NiPU4Dw" target="_QL_9Rxv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_Xm4lUC4jEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xm4lUS4jEei--d1NiPU4Dw" x="-43" y="-74"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Xm4lUi4jEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xm4lUy4jEei--d1NiPU4Dw" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Xm4lVC4jEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xm4lVS4jEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_Xm3-QS4jEei--d1NiPU4Dw" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_Xm3-Qi4jEei--d1NiPU4Dw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Xm3-Qy4jEei--d1NiPU4Dw" points="[0, 0, -428, 161]$[428, -161, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Xm5MYC4jEei--d1NiPU4Dw" id="(1.0,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Xm5MYS4jEei--d1NiPU4Dw" id="(0.0,0.6122448979591837)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_aPTZEC4jEei--d1NiPU4Dw" type="4001" element="_aO9a0C4jEei--d1NiPU4Dw" source="_dRzWMC4iEei--d1NiPU4Dw" target="_QL_9Rxv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_aPUnMC4jEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aPUnMS4jEei--d1NiPU4Dw" x="-130" y="-11"/> + </children> + <children xmi:type="notation:Node" xmi:id="_aPUnMi4jEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aPUnMy4jEei--d1NiPU4Dw" x="127" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_aPUnNC4jEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aPUnNS4jEei--d1NiPU4Dw" x="4" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_aPTZES4jEei--d1NiPU4Dw" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_aPTZEi4jEei--d1NiPU4Dw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aPTZEy4jEei--d1NiPU4Dw" points="[-58, -37, -627, 144]$[-58, -109, -627, 72]$[284, -109, -285, 72]$[284, -181, -285, 0]$[569, -181, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aPVOQC4jEei--d1NiPU4Dw" id="(1.0,0.37755102040816324)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aPVOQS4jEei--d1NiPU4Dw" id="(0.0,0.3673469387755102)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_cT_NoC4jEei--d1NiPU4Dw" type="4001" element="_cTs5wC4jEei--d1NiPU4Dw" source="_dRzWMC4iEei--d1NiPU4Dw" target="_QL_9Rxv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_cT_0sC4jEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cT_0sS4jEei--d1NiPU4Dw" x="-83" y="-5"/> + </children> + <children xmi:type="notation:Node" xmi:id="_cT_0si4jEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cT_0sy4jEei--d1NiPU4Dw" x="166" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_cT_0tC4jEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cT_0tS4jEei--d1NiPU4Dw" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_cT_NoS4jEei--d1NiPU4Dw" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_cT_Noi4jEei--d1NiPU4Dw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cT_Noy4jEei--d1NiPU4Dw" points="[-58, -60, -627, 144]$[-58, -168, -627, 36]$[284, -168, -285, 36]$[284, -204, -285, 0]$[569, -204, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cUAbwC4jEei--d1NiPU4Dw" id="(1.0,0.6122448979591837)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cUAbwS4jEei--d1NiPU4Dw" id="(0.0,0.3673469387755102)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_dKL10C4jEei--d1NiPU4Dw" type="4001" element="_dJ3swC4jEei--d1NiPU4Dw" source="_dR0kUC4iEei--d1NiPU4Dw" target="_QL_9Rxv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_dKMc4C4jEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dKMc4S4jEei--d1NiPU4Dw" x="-343" y="62"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dKMc4i4jEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dKMc4y4jEei--d1NiPU4Dw" x="-12"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dKND8C4jEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dKND8S4jEei--d1NiPU4Dw" x="-110" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_dKL10S4jEei--d1NiPU4Dw" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_dKL10i4jEei--d1NiPU4Dw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dKL10y4jEei--d1NiPU4Dw" points="[-58, -49, -774, 119]$[-58, -313, -774, -145]$[776, -313, 60, -145]$[776, -217, 60, -49]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dKND8i4jEei--d1NiPU4Dw" id="(1.0,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dKND8y4jEei--d1NiPU4Dw" id="(0.0,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_7rTOwC4jEei--d1NiPU4Dw" type="4001" element="_7rCJAC4jEei--d1NiPU4Dw" source="_d-_BgB2pEei8arfb2j0BMw" target="_QMAkVhv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_7rT10C4jEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7rT10S4jEei--d1NiPU4Dw" x="-108" y="-123"/> + </children> + <children xmi:type="notation:Node" xmi:id="_7rUc4C4jEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7rUc4S4jEei--d1NiPU4Dw" x="-9" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_7rUc4i4jEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7rUc4y4jEei--d1NiPU4Dw" x="-98" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_7rTOwS4jEei--d1NiPU4Dw" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_7rTOwi4jEei--d1NiPU4Dw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7rTOwy4jEei--d1NiPU4Dw" points="[0, 0, -425, 203]$[212, 0, -213, 203]$[212, -120, -213, 83]$[485, -120, 60, 83]$[485, -165, 60, 38]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7rVD8C4jEei--d1NiPU4Dw" id="(1.0,0.37755102040816324)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7rVD8S4jEei--d1NiPU4Dw" id="(0.0,0.6122448979591837)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_8wxpEC4jEei--d1NiPU4Dw" type="4001" element="_8wgjUC4jEei--d1NiPU4Dw" source="_qHYyIBwGEeir3aeVscTXqw" target="_QMAkVhv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_8wyQIC4jEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8wyQIS4jEei--d1NiPU4Dw" x="12" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_8wyQIi4jEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8wyQIy4jEei--d1NiPU4Dw" x="32" y="122"/> + </children> + <children xmi:type="notation:Node" xmi:id="_8wyQJC4jEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8wyQJS4jEei--d1NiPU4Dw" x="-1" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_8wxpES4jEei--d1NiPU4Dw" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_8wxpEi4jEei--d1NiPU4Dw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8wxpEy4jEei--d1NiPU4Dw" points="[-7, -36, -604, 168]$[-7, -192, -604, 12]$[597, -192, 0, 12]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8wyQJi4jEei--d1NiPU4Dw" id="(1.0,0.3673469387755102)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8wyQJy4jEei--d1NiPU4Dw" id="(0.0,0.6122448979591837)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_9qF2sC4jEei--d1NiPU4Dw" type="4001" element="_9pxGkC4jEei--d1NiPU4Dw" source="_qHYyIBwGEeir3aeVscTXqw" target="_QMAkVhv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_9qGdwC4jEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9qGdwS4jEei--d1NiPU4Dw" x="7" y="-5"/> + </children> + <children xmi:type="notation:Node" xmi:id="_9qGdwi4jEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9qGdwy4jEei--d1NiPU4Dw" x="-78" y="-28"/> + </children> + <children xmi:type="notation:Node" xmi:id="_9qHE0C4jEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9qHE0S4jEei--d1NiPU4Dw" x="5" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_9qF2sS4jEei--d1NiPU4Dw" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_9qF2si4jEei--d1NiPU4Dw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9qF2sy4jEei--d1NiPU4Dw" points="[0, 0, -597, 239]$[45, 0, -552, 239]$[45, -155, -552, 84]$[597, -155, 0, 84]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9qHE0i4jEei--d1NiPU4Dw" id="(1.0,0.23469387755102042)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9qHE0y4jEei--d1NiPU4Dw" id="(0.0,0.12244897959183673)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_-TJawC4jEei--d1NiPU4Dw" type="4001" element="_-S5jIC4jEei--d1NiPU4Dw" source="_QMBLZxv9Eeir3aeVscTXqw" target="_QMAkVhv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_-TJaxC4jEei--d1NiPU4Dw" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-TJaxS4jEei--d1NiPU4Dw" x="18" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_-TKB0C4jEei--d1NiPU4Dw" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-TKB0S4jEei--d1NiPU4Dw" x="25" y="233"/> + </children> + <children xmi:type="notation:Node" xmi:id="_-TKB0i4jEei--d1NiPU4Dw" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-TKB0y4jEei--d1NiPU4Dw" x="14" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_-TJawS4jEei--d1NiPU4Dw" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_-TJawi4jEei--d1NiPU4Dw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-TJawy4jEei--d1NiPU4Dw" points="[-90, -35, -852, 192]$[-90, -227, -852, 0]$[762, -227, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-TKB1C4jEei--d1NiPU4Dw" id="(1.0,0.35714285714285715)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-TKB1S4jEei--d1NiPU4Dw" id="(0.0,0.3673469387755102)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_M5ZWYDEtEeiF0ru3Etlc_g" type="4001" element="_M4RVADEtEeiF0ru3Etlc_g" source="_Jyw8oDEtEeiF0ru3Etlc_g" target="_QMAkVhv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_M5bLkDEtEeiF0ru3Etlc_g" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M5bLkTEtEeiF0ru3Etlc_g" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_M5cZsDEtEeiF0ru3Etlc_g" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M5cZsTEtEeiF0ru3Etlc_g" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_M5dn0DEtEeiF0ru3Etlc_g" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M5dn0TEtEeiF0ru3Etlc_g" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_M5ZWYTEtEeiF0ru3Etlc_g" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_M5ZWYjEtEeiF0ru3Etlc_g" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M5ZWYzEtEeiF0ru3Etlc_g" points="[0, 0, 203, 382]$[-203, -382, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M5eO4DEtEeiF0ru3Etlc_g" id="(0.3308270676691729,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M5eO4TEtEeiF0ru3Etlc_g" id="(0.75,0.9)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_s-_t8DE6EeifDcVRz6UV5g" type="4001" element="_s9vJsDE6EeifDcVRz6UV5g" source="_oTkgoDE6EeifDcVRz6UV5g" target="_QMAkVhv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_s_BjIDE6EeifDcVRz6UV5g" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s_BjITE6EeifDcVRz6UV5g" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_s_CxQDE6EeifDcVRz6UV5g" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s_CxQTE6EeifDcVRz6UV5g" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_s_D_YDE6EeifDcVRz6UV5g" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s_D_YTE6EeifDcVRz6UV5g" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_s-_t8TE6EeifDcVRz6UV5g" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_s-_t8jE6EeifDcVRz6UV5g" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s-_t8zE6EeifDcVRz6UV5g" points="[0, 0, 494, 300]$[-494, -300, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s_FNgDE6EeifDcVRz6UV5g" id="(0.6114649681528662,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s_FNgTE6EeifDcVRz6UV5g" id="(0.75,0.9)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_BYc8kEJhEei5GdIMm-4mwA" type="4001" element="_BXeFIEJhEei5GdIMm-4mwA" source="__AveUEJgEei5GdIMm-4mwA" target="_QMAkVhv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_BYexwEJhEei5GdIMm-4mwA" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BYexwUJhEei5GdIMm-4mwA" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_BYf_4EJhEei5GdIMm-4mwA" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BYf_4UJhEei5GdIMm-4mwA" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_BYgm8EJhEei5GdIMm-4mwA" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BYgm8UJhEei5GdIMm-4mwA" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_BYc8kUJhEei5GdIMm-4mwA" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_BYc8kkJhEei5GdIMm-4mwA" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BYc8k0JhEei5GdIMm-4mwA" points="[0, 0, 203, 382]$[-203, -382, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BYh1EEJhEei5GdIMm-4mwA" id="(0.4745762711864407,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BYicIEJhEei5GdIMm-4mwA" id="(0.75,0.9)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_iXelkEJlEei5GdIMm-4mwA" type="4001" element="_iWuXoEJlEei5GdIMm-4mwA" source="_QL2MRBv9Eeir3aeVscTXqw" target="_QMAkVhv9Eeir3aeVscTXqw"> + <children xmi:type="notation:Node" xmi:id="_iXfMoEJlEei5GdIMm-4mwA" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iXfMoUJlEei5GdIMm-4mwA" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_iXfMokJlEei5GdIMm-4mwA" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iXfMo0JlEei5GdIMm-4mwA" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_iXfMpEJlEei5GdIMm-4mwA" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iXfMpUJlEei5GdIMm-4mwA" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_iXelkUJlEei5GdIMm-4mwA" routing="Tree"/> + <styles xmi:type="notation:FontStyle" xmi:id="_iXelkkJlEei5GdIMm-4mwA" fontName="Cantarell" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iXelk0JlEei5GdIMm-4mwA" points="[0, 0, 336, 382]$[-336, -382, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iXfMpkJlEei5GdIMm-4mwA" id="(0.27205882352941174,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iXfMp0JlEei5GdIMm-4mwA" id="(0.75,0.9)"/> + </edges> + </data> + </ownedAnnotationEntries> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QK-CgBv9Eeir3aeVscTXqw" name="Model" tooltipText="" outgoingEdges="_QLkfcBv9Eeir3aeVscTXqw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//Model"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//Model"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_QK_QoBv9Eeir3aeVscTXqw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QK_3sBv9Eeir3aeVscTXqw" name="Policy" tooltipText="" outgoingEdges="_CoWmgBwHEeir3aeVscTXqw _UtIakBwHEeir3aeVscTXqw" incomingEdges="_QLkfcBv9Eeir3aeVscTXqw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//Policy"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//Policy"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_wN1M4By_EeiJONAgrNPLDA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_QLeY0Bv9Eeir3aeVscTXqw" name="override : EBooleanObject = false" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="editpolicymodel.ecore#//Policy/override"/> + <semanticElements xmi:type="ecore:EAttribute" href="editpolicymodel.ecore#//Policy/override"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_QLeY0Rv9Eeir3aeVscTXqw" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_QLe_4Bv9Eeir3aeVscTXqw" name="action : ActionEnum = Create" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="editpolicymodel.ecore#//Policy/action"/> + <semanticElements xmi:type="ecore:EAttribute" href="editpolicymodel.ecore#//Policy/action"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_nUzWsBy_EeiJONAgrNPLDA" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_uxk8kC4eEei--d1NiPU4Dw" name="actionType : TypeEnum = Acyclic" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="editpolicymodel.ecore#//Policy/actionType"/> + <semanticElements xmi:type="ecore:EAttribute" href="editpolicymodel.ecore#//Policy/actionType"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_YP4C4C5uEeiwr8bZ0uTz8g" labelAlignment="LEFT" description="_2orKIC5qEeiwr8bZ0uTz8g"> + <labelFormat>bold</labelFormat> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLEJIRv9Eeir3aeVscTXqw" name="ContainsCompartment" tooltipText="" outgoingEdges="_iWuXoEJlEei5GdIMm-4mwA" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ContainsCompartment"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ContainsCompartment"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_u_Dy8B2LEei8arfb2j0BMw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLGlYRv9Eeir3aeVscTXqw" name="IsTarget" tooltipText="" outgoingEdges="_X73TQBy-EeiJONAgrNPLDA" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsTarget"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsTarget"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_Ma8CIB2MEei8arfb2j0BMw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLHzgBv9Eeir3aeVscTXqw" name="IsParent" tooltipText="" outgoingEdges="_XfgucBy-EeiJONAgrNPLDA" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsParent"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsParent"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_LefoAB2MEei8arfb2j0BMw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLIakBv9Eeir3aeVscTXqw" name="ActionEnum" tooltipText="" width="12" height="10"> + <target xmi:type="ecore:EEnum" href="editpolicymodel.ecore#//ActionEnum"/> + <semanticElements xmi:type="ecore:EEnum" href="editpolicymodel.ecore#//ActionEnum"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_QLIakRv9Eeir3aeVscTXqw" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_QLiqQBv9Eeir3aeVscTXqw" name="Create" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Create"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Create"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_QLiqQRv9Eeir3aeVscTXqw" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_QLiqQhv9Eeir3aeVscTXqw" name="Add" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Add"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Add"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_QLiqQxv9Eeir3aeVscTXqw" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_QLjRUBv9Eeir3aeVscTXqw" name="Start" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Start"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Start"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_QLjRURv9Eeir3aeVscTXqw" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_QLjRUhv9Eeir3aeVscTXqw" name="Reconnect" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Reconnect"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Reconnect"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_QLjRUxv9Eeir3aeVscTXqw" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_g5zC4C5qEeiwr8bZ0uTz8g" name="Execute" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Execute"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Execute"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_g5zp8C5qEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_HvT0wC6IEeiwr8bZ0uTz8g" name="Direct_Edit" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Direct_Edit"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Direct_Edit"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvUb0C6IEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_QiA-QC89Eeiwr8bZ0uTz8g" name="Create_Property" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Create_Property"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Create_Property"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_QiBlUC89Eeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_UkeuIC89Eeiwr8bZ0uTz8g" name="Create_Attribute" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Create_Attribute"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Create_Attribute"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_UkfVMC89Eeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_YyWcwC89Eeiwr8bZ0uTz8g" name="Add_Property" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Add_Property"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Add_Property"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_YyXq4C89Eeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_oXuPIC89Eeiwr8bZ0uTz8g" name="Create_Operation" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Create_Operation"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//ActionEnum/Create_Operation"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_oXuPIS89Eeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLQ9cRv9Eeir3aeVscTXqw" name="FeatureRule" tooltipText="" incomingEdges="_QLuQdBv9Eeir3aeVscTXqw _CoWmgBwHEeir3aeVscTXqw _TMePgC4jEei--d1NiPU4Dw _XmpUwC4jEei--d1NiPU4Dw _aO9a0C4jEei--d1NiPU4Dw _cTs5wC4jEei--d1NiPU4Dw _dJ3swC4jEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//FeatureRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//FeatureRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_QLRkgBv9Eeir3aeVscTXqw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> + <labelFormat>italic</labelFormat> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLRkgRv9Eeir3aeVscTXqw" name="IsFeature" tooltipText="" outgoingEdges="_QLuQdBv9Eeir3aeVscTXqw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsFeature"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsFeature"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_0bwPsB2MEei8arfb2j0BMw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_uxn_4C4eEei--d1NiPU4Dw" name="featureName : FeatureNameEnum = Roles" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="editpolicymodel.ecore#//IsFeature/featureName"/> + <semanticElements xmi:type="ecore:EAttribute" href="editpolicymodel.ecore#//IsFeature/featureName"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_2orxMC5qEeiwr8bZ0uTz8g" labelAlignment="LEFT" description="_2orKIC5qEeiwr8bZ0uTz8g"> + <labelFormat>bold</labelFormat> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLSLkRv9Eeir3aeVscTXqw" name="ConstraintRule" tooltipText="" incomingEdges="_UpKAwB2MEei8arfb2j0BMw _UtIakBwHEeir3aeVscTXqw _UhwAYC4jEei--d1NiPU4Dw _7rCJAC4jEei--d1NiPU4Dw _8wgjUC4jEei--d1NiPU4Dw _9pxGkC4jEei--d1NiPU4Dw _-S5jIC4jEei--d1NiPU4Dw _M4RVADEtEeiF0ru3Etlc_g _s9vJsDE6EeifDcVRz6UV5g _BXeFIEJhEei5GdIMm-4mwA _iWuXoEJlEei5GdIMm-4mwA" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ConstraintRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ConstraintRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_QLSLkhv9Eeir3aeVscTXqw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> + <labelFormat>italic</labelFormat> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLSyoBv9Eeir3aeVscTXqw" name="IsTargetType" tooltipText="" outgoingEdges="_QLu3gxv9Eeir3aeVscTXqw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsTargetType"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsTargetType"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_ohzboB2LEei8arfb2j0BMw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLTZsBv9Eeir3aeVscTXqw" name="UnaryConstraintRule" tooltipText="" outgoingEdges="_Bc_LcC4iEei--d1NiPU4Dw _-S5jIC4jEei--d1NiPU4Dw" incomingEdges="_7m_ocC4hEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//UnaryConstraintRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//UnaryConstraintRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_xIKSEC4hEei--d1NiPU4Dw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> + <labelFormat>italic</labelFormat> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLUAwBv9Eeir3aeVscTXqw" name="NotConstraintRule" tooltipText="" outgoingEdges="_7m_ocC4hEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//NotConstraintRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//NotConstraintRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_3LDooC4hEei--d1NiPU4Dw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_QLkfcBv9Eeir3aeVscTXqw" name="[0..*] policies" sourceNode="_QK-CgBv9Eeir3aeVscTXqw" targetNode="_QK_3sBv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EReference" href="editpolicymodel.ecore#//Model/policies"/> + <semanticElements xmi:type="ecore:EReference" href="editpolicymodel.ecore#//Model/policies"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_QLlGgxv9Eeir3aeVscTXqw" description="_QLlGgBv9Eeir3aeVscTXqw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_QLlGhBv9Eeir3aeVscTXqw" showIcon="false"> + <customFeatures>labelSize</customFeatures> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_QLlGhRv9Eeir3aeVscTXqw" showIcon="false" labelColor="39,76,114"> + <customFeatures>labelSize</customFeatures> + </endLabelStyle> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_QLuQdBv9Eeir3aeVscTXqw" sourceNode="_QLRkgRv9Eeir3aeVscTXqw" targetNode="_QLQ9cRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsFeature"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//IsFeature/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_0b_gQB2MEei8arfb2j0BMw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_0b_gQR2MEei8arfb2j0BMw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_0b_gQh2MEei8arfb2j0BMw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_QLu3gxv9Eeir3aeVscTXqw" sourceNode="_QLSyoBv9Eeir3aeVscTXqw" targetNode="_00vM4B2LEei8arfb2j0BMw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsTargetType"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//IsTargetType/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_oiGWkB2LEei8arfb2j0BMw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_oiGWkR2LEei8arfb2j0BMw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_oiGWkh2LEei8arfb2j0BMw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_qHCM0BwGEeir3aeVscTXqw" name="AndConstraintRule" tooltipText="" outgoingEdges="_65mW8C4hEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//AndConstraintRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//AndConstraintRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_35O9QC4hEei--d1NiPU4Dw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_qHHFUBwGEeir3aeVscTXqw" name="BinaryConstraintRule" tooltipText="" outgoingEdges="_B5rugC4iEei--d1NiPU4Dw _8wgjUC4jEei--d1NiPU4Dw _9pxGkC4jEei--d1NiPU4Dw" incomingEdges="_7NQSwC4hEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//BinaryConstraintRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//BinaryConstraintRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_NCx38C4kEei--d1NiPU4Dw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> + <labelFormat>italic</labelFormat> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_CoWmgBwHEeir3aeVscTXqw" name="[0..1] featureRule" sourceNode="_QK_3sBv9Eeir3aeVscTXqw" targetNode="_QLQ9cRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EReference" href="editpolicymodel.ecore#//Policy/featureRule"/> + <semanticElements xmi:type="ecore:EReference" href="editpolicymodel.ecore#//Policy/featureRule"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_CoXNkBwHEeir3aeVscTXqw" description="_QLlGgBv9Eeir3aeVscTXqw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_CoXNkRwHEeir3aeVscTXqw" showIcon="false"> + <customFeatures>labelSize</customFeatures> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_CoXNkhwHEeir3aeVscTXqw" showIcon="false" labelColor="39,76,114"> + <customFeatures>labelSize</customFeatures> + </endLabelStyle> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_UtIakBwHEeir3aeVscTXqw" name="[0..1] constraintRule" sourceNode="_QK_3sBv9Eeir3aeVscTXqw" targetNode="_QLSLkRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EReference" href="editpolicymodel.ecore#//Policy/constraintRule"/> + <semanticElements xmi:type="ecore:EReference" href="editpolicymodel.ecore#//Policy/constraintRule"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_UtIakRwHEeir3aeVscTXqw" description="_QLlGgBv9Eeir3aeVscTXqw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_UtIakhwHEeir3aeVscTXqw" showIcon="false"> + <customFeatures>labelSize</customFeatures> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_UtIakxwHEeir3aeVscTXqw" showIcon="false" labelColor="39,76,114"> + <customFeatures>labelSize</customFeatures> + </endLabelStyle> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_1XcSYBy8EeiJONAgrNPLDA" name="TrueConstraintRule" tooltipText="" outgoingEdges="_AcXb8C4iEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//TrueConstraintRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//TrueConstraintRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_NCJNIBy9EeiJONAgrNPLDA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_9f1V0By8EeiJONAgrNPLDA" name="FalseConstraintRule" tooltipText="" outgoingEdges="_BCbWYC4iEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//FalseConstraintRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//FalseConstraintRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_WrY_UBy9EeiJONAgrNPLDA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_XfgucBy-EeiJONAgrNPLDA" sourceNode="_QLHzgBv9Eeir3aeVscTXqw" targetNode="_00vM4B2LEei8arfb2j0BMw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsParent"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//IsParent/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_Leox8B2MEei8arfb2j0BMw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_Leox8R2MEei8arfb2j0BMw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_Leox8h2MEei8arfb2j0BMw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_X73TQBy-EeiJONAgrNPLDA" sourceNode="_QLGlYRv9Eeir3aeVscTXqw" targetNode="_00vM4B2LEei8arfb2j0BMw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsTarget"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//IsTarget/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_MbCIwB2MEei8arfb2j0BMw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_MbCIwR2MEei8arfb2j0BMw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_MbCIwh2MEei8arfb2j0BMw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_3enWEBzDEeiJONAgrNPLDA" name="OrConstraintRule" tooltipText="" outgoingEdges="_6Wzy8C4hEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//OrConstraintRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//OrConstraintRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_4J4oYC4hEei--d1NiPU4Dw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_7ozekBzDEeiJONAgrNPLDA" name="ImplicationConstraintRule" tooltipText="" outgoingEdges="_7NQSwC4hEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ImplicationConstraintRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ImplicationConstraintRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_4wac4C4hEei--d1NiPU4Dw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QJl6oB2LEei8arfb2j0BMw" name="IsSourceType" tooltipText="" outgoingEdges="_QKGQ8B2LEei8arfb2j0BMw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsSourceType"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsSourceType"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_MMBcYB2MEei8arfb2j0BMw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_QKGQ8B2LEei8arfb2j0BMw" sourceNode="_QJl6oB2LEei8arfb2j0BMw" targetNode="_00vM4B2LEei8arfb2j0BMw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsSourceType"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//IsSourceType/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_MMJ_QB2MEei8arfb2j0BMw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_MMJ_QR2MEei8arfb2j0BMw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_MMJ_Qh2MEei8arfb2j0BMw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_00vM4B2LEei8arfb2j0BMw" name="TypeArgumentRule" tooltipText="" outgoingEdges="_UpKAwB2MEei8arfb2j0BMw" incomingEdges="_QKGQ8B2LEei8arfb2j0BMw _QLu3gxv9Eeir3aeVscTXqw _XfgucBy-EeiJONAgrNPLDA _X73TQBy-EeiJONAgrNPLDA" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//TypeArgumentRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//TypeArgumentRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_gYVksB2MEei8arfb2j0BMw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> + <labelFormat>italic</labelFormat> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_eNihEB2MEei8arfb2j0BMw" name="type : TypeEnum = Acyclic" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="editpolicymodel.ecore#//TypeArgumentRule/type"/> + <semanticElements xmi:type="ecore:EAttribute" href="editpolicymodel.ecore#//TypeArgumentRule/type"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_gYYoAB2MEei8arfb2j0BMw" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_UpKAwB2MEei8arfb2j0BMw" sourceNode="_00vM4B2LEei8arfb2j0BMw" targetNode="_QLSLkRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//TypeArgumentRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//TypeArgumentRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_gYfVsB2MEei8arfb2j0BMw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_gYfVsR2MEei8arfb2j0BMw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_gYfVsh2MEei8arfb2j0BMw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_d-l_8B2pEei8arfb2j0BMw" name="NaryConstraintRule" tooltipText="" outgoingEdges="_CT8BkC4iEei--d1NiPU4Dw _7rCJAC4jEei--d1NiPU4Dw" incomingEdges="_6Wzy8C4hEei--d1NiPU4Dw _65mW8C4hEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//NaryConstraintRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//NaryConstraintRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_xIMHQC4hEei--d1NiPU4Dw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> + <labelFormat>italic</labelFormat> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_6Wzy8C4hEei--d1NiPU4Dw" sourceNode="_3enWEBzDEeiJONAgrNPLDA" targetNode="_d-l_8B2pEei8arfb2j0BMw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//OrConstraintRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//OrConstraintRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_6Wzy8S4hEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_6Wzy8i4hEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_6Wzy8y4hEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_65mW8C4hEei--d1NiPU4Dw" sourceNode="_qHCM0BwGEeir3aeVscTXqw" targetNode="_d-l_8B2pEei8arfb2j0BMw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//AndConstraintRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//AndConstraintRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_65mW8S4hEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_65mW8i4hEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_65mW8y4hEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_7NQSwC4hEei--d1NiPU4Dw" sourceNode="_7ozekBzDEeiJONAgrNPLDA" targetNode="_qHHFUBwGEeir3aeVscTXqw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ImplicationConstraintRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//ImplicationConstraintRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_7NQSwS4hEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_7NQSwi4hEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_7NQSwy4hEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_7m_ocC4hEei--d1NiPU4Dw" sourceNode="_QLUAwBv9Eeir3aeVscTXqw" targetNode="_QLTZsBv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//NotConstraintRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//NotConstraintRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_7m_ocS4hEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_7m_oci4hEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_7m_ocy4hEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_-mNyoC4hEei--d1NiPU4Dw" name="LogicalConstraintRule" tooltipText="" outgoingEdges="_UhwAYC4jEei--d1NiPU4Dw" incomingEdges="_AcXb8C4iEei--d1NiPU4Dw _BCbWYC4iEei--d1NiPU4Dw _Bc_LcC4iEei--d1NiPU4Dw _B5rugC4iEei--d1NiPU4Dw _CT8BkC4iEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//LogicalConstraintRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//LogicalConstraintRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_-mPAwC4hEei--d1NiPU4Dw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_AcXb8C4iEei--d1NiPU4Dw" sourceNode="_1XcSYBy8EeiJONAgrNPLDA" targetNode="_-mNyoC4hEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//TrueConstraintRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//TrueConstraintRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_AcYDAC4iEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_AcYDAS4iEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_AcYDAi4iEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_BCbWYC4iEei--d1NiPU4Dw" sourceNode="_9f1V0By8EeiJONAgrNPLDA" targetNode="_-mNyoC4hEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//FalseConstraintRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//FalseConstraintRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_BCbWYS4iEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_BCbWYi4iEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_BCbWYy4iEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_Bc_LcC4iEei--d1NiPU4Dw" sourceNode="_QLTZsBv9Eeir3aeVscTXqw" targetNode="_-mNyoC4hEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//UnaryConstraintRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//UnaryConstraintRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_Bc_ygC4iEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_Bc_ygS4iEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_Bc_ygi4iEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_B5rugC4iEei--d1NiPU4Dw" sourceNode="_qHHFUBwGEeir3aeVscTXqw" targetNode="_-mNyoC4hEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//BinaryConstraintRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//BinaryConstraintRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_NC7o8C4kEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_NC7o8S4kEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_NC7o8i4kEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_CT8BkC4iEei--d1NiPU4Dw" sourceNode="_d-l_8B2pEei8arfb2j0BMw" targetNode="_-mNyoC4hEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//NaryConstraintRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//NaryConstraintRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_CT8BkS4iEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_CT8Bki4iEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_CT8Bky4iEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_dQlOMC4iEei--d1NiPU4Dw" name="TrueFeatureRule" tooltipText="" outgoingEdges="_dRo-IC4iEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//TrueFeatureRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//TrueFeatureRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_-fgRMC4iEei--d1NiPU4Dw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_dQpfoC4iEei--d1NiPU4Dw" name="NotFeatureRule" tooltipText="" outgoingEdges="_dRqMQC4iEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//NotFeatureRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//NotFeatureRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_97504C4iEei--d1NiPU4Dw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_dQr74C4iEei--d1NiPU4Dw" name="FalseFeatureRule" tooltipText="" outgoingEdges="_dRqzUC4iEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//FalseFeatureRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//FalseFeatureRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="__KoR0C4iEei--d1NiPU4Dw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_dQwNUC4iEei--d1NiPU4Dw" name="NaryFeatureRule" tooltipText="" outgoingEdges="_dRraYC4iEei--d1NiPU4Dw _XmpUwC4jEei--d1NiPU4Dw" incomingEdges="_dRtPky4iEei--d1NiPU4Dw _dRt2oC4iEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//NaryFeatureRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//NaryFeatureRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_6AK_IC4iEei--d1NiPU4Dw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> + <labelFormat>italic</labelFormat> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_dQypkC4iEei--d1NiPU4Dw" name="BinaryFeatureRule" tooltipText="" outgoingEdges="_dRsBcC4iEei--d1NiPU4Dw _aO9a0C4jEei--d1NiPU4Dw _cTs5wC4jEei--d1NiPU4Dw" incomingEdges="_dRsogC4iEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//BinaryFeatureRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//BinaryFeatureRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_vIGM4C4jEei--d1NiPU4Dw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> + <labelFormat>italic</labelFormat> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_dQ27AC4iEei--d1NiPU4Dw" name="LogicalFeatureRule" tooltipText="" outgoingEdges="_TMePgC4jEei--d1NiPU4Dw" incomingEdges="_dRo-IC4iEei--d1NiPU4Dw _dRqzUC4iEei--d1NiPU4Dw _dRraYC4iEei--d1NiPU4Dw _dRsBcC4iEei--d1NiPU4Dw _dRsohC4iEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//LogicalFeatureRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//LogicalFeatureRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_dQ3iEC4iEei--d1NiPU4Dw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_dQ5XQC4iEei--d1NiPU4Dw" name="ImplicationFeatureRule" tooltipText="" outgoingEdges="_dRsogC4iEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ImplicationFeatureRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ImplicationFeatureRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_dQ5XQS4iEei--d1NiPU4Dw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_dQ7McC4iEei--d1NiPU4Dw" name="UnaryFeatureRule" tooltipText="" outgoingEdges="_dRsohC4iEei--d1NiPU4Dw _dJ3swC4jEei--d1NiPU4Dw" incomingEdges="_dRqMQC4iEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//UnaryFeatureRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//UnaryFeatureRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_dQ7zgC4iEei--d1NiPU4Dw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> + <labelFormat>italic</labelFormat> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_dQ-PwC4iEei--d1NiPU4Dw" name="OrFeatureRule" tooltipText="" outgoingEdges="_dRtPky4iEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//OrFeatureRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//OrFeatureRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_dQ-PwS4iEei--d1NiPU4Dw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_dRQjoC4iEei--d1NiPU4Dw" name="AndFeatureRule" tooltipText="" outgoingEdges="_dRt2oC4iEei--d1NiPU4Dw" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//AndFeatureRule"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//AndFeatureRule"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_dRRKsC4iEei--d1NiPU4Dw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_dRo-IC4iEei--d1NiPU4Dw" sourceNode="_dQlOMC4iEei--d1NiPU4Dw" targetNode="_dQ27AC4iEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//TrueFeatureRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//TrueFeatureRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_-foNAC4iEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_-foNAS4iEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_-foNAi4iEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_dRqMQC4iEei--d1NiPU4Dw" sourceNode="_dQpfoC4iEei--d1NiPU4Dw" targetNode="_dQ7McC4iEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//NotFeatureRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//NotFeatureRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_98Dl4C4iEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_98Dl4S4iEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_98Dl4i4iEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_dRqzUC4iEei--d1NiPU4Dw" sourceNode="_dQr74C4iEei--d1NiPU4Dw" targetNode="_dQ27AC4iEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//FalseFeatureRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//FalseFeatureRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="__Ku_gC4iEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="__Ku_gS4iEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="__Ku_gi4iEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_dRraYC4iEei--d1NiPU4Dw" sourceNode="_dQwNUC4iEei--d1NiPU4Dw" targetNode="_dQ27AC4iEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//NaryFeatureRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//NaryFeatureRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_6ARs0C4iEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_6ARs0S4iEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_6ARs0i4iEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_dRsBcC4iEei--d1NiPU4Dw" sourceNode="_dQypkC4iEei--d1NiPU4Dw" targetNode="_dQ27AC4iEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//BinaryFeatureRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//BinaryFeatureRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_vIOIsC4jEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_vIOIsS4jEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_vIOIsi4jEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_dRsogC4iEei--d1NiPU4Dw" sourceNode="_dQ5XQC4iEei--d1NiPU4Dw" targetNode="_dQypkC4iEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ImplicationFeatureRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//ImplicationFeatureRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_dRsogS4iEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_dRsogi4iEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_dRsogy4iEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_dRsohC4iEei--d1NiPU4Dw" sourceNode="_dQ7McC4iEei--d1NiPU4Dw" targetNode="_dQ27AC4iEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//UnaryFeatureRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//UnaryFeatureRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_dRtPkC4iEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_dRtPkS4iEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_dRtPki4iEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_dRtPky4iEei--d1NiPU4Dw" sourceNode="_dQ-PwC4iEei--d1NiPU4Dw" targetNode="_dQwNUC4iEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//OrFeatureRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//OrFeatureRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_dRtPlC4iEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_dRtPlS4iEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_dRtPli4iEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_dRt2oC4iEei--d1NiPU4Dw" sourceNode="_dRQjoC4iEei--d1NiPU4Dw" targetNode="_dQwNUC4iEei--d1NiPU4Dw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//AndFeatureRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//AndFeatureRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_dRt2oS4iEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_dRt2oi4iEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_dRt2oy4iEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_TMePgC4jEei--d1NiPU4Dw" sourceNode="_dQ27AC4iEei--d1NiPU4Dw" targetNode="_QLQ9cRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//LogicalFeatureRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//LogicalFeatureRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_TMe2kC4jEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_TMe2kS4jEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_TMe2ki4jEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_UhwAYC4jEei--d1NiPU4Dw" sourceNode="_-mNyoC4hEei--d1NiPU4Dw" targetNode="_QLSLkRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//LogicalConstraintRule"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//LogicalConstraintRule/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_UhwncC4jEei--d1NiPU4Dw" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_UhwncS4jEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_Uhwnci4jEei--d1NiPU4Dw" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_XmpUwC4jEei--d1NiPU4Dw" name="[0..*] rules" sourceNode="_dQwNUC4iEei--d1NiPU4Dw" targetNode="_QLQ9cRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EReference" href="editpolicymodel.ecore#//NaryFeatureRule/rules"/> + <semanticElements xmi:type="ecore:EReference" href="editpolicymodel.ecore#//NaryFeatureRule/rules"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_Xmp70C4jEei--d1NiPU4Dw" description="_QLlGgBv9Eeir3aeVscTXqw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_Xmp70S4jEei--d1NiPU4Dw" showIcon="false"> + <customFeatures>labelSize</customFeatures> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_Xmp70i4jEei--d1NiPU4Dw" showIcon="false" labelColor="39,76,114"> + <customFeatures>labelSize</customFeatures> + </endLabelStyle> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_aO9a0C4jEei--d1NiPU4Dw" name="[1..1] rightRule" sourceNode="_dQypkC4iEei--d1NiPU4Dw" targetNode="_QLQ9cRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EReference" href="editpolicymodel.ecore#//BinaryFeatureRule/rightRule"/> + <semanticElements xmi:type="ecore:EReference" href="editpolicymodel.ecore#//BinaryFeatureRule/rightRule"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_y0p-My4jEei--d1NiPU4Dw" description="_y0p-MC4jEei--d1NiPU4Dw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_y0p-NC4jEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>bold</labelFormat> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_y0p-NS4jEei--d1NiPU4Dw" labelSize="6" showIcon="false" labelColor="39,76,114"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_cTs5wC4jEei--d1NiPU4Dw" name="[1..1] leftRule" sourceNode="_dQypkC4iEei--d1NiPU4Dw" targetNode="_QLQ9cRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EReference" href="editpolicymodel.ecore#//BinaryFeatureRule/leftRule"/> + <semanticElements xmi:type="ecore:EReference" href="editpolicymodel.ecore#//BinaryFeatureRule/leftRule"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_0MIHcC4jEei--d1NiPU4Dw" description="_y0p-MC4jEei--d1NiPU4Dw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_0MIHcS4jEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>bold</labelFormat> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_0MIHci4jEei--d1NiPU4Dw" labelSize="6" showIcon="false" labelColor="39,76,114"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_dJ3swC4jEei--d1NiPU4Dw" name="[1..1] rule" sourceNode="_dQ7McC4iEei--d1NiPU4Dw" targetNode="_QLQ9cRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EReference" href="editpolicymodel.ecore#//UnaryFeatureRule/rule"/> + <semanticElements xmi:type="ecore:EReference" href="editpolicymodel.ecore#//UnaryFeatureRule/rule"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_4H9D0C4jEei--d1NiPU4Dw" description="_y0p-MC4jEei--d1NiPU4Dw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_4H9D0S4jEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>bold</labelFormat> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_4H9D0i4jEei--d1NiPU4Dw" labelSize="6" showIcon="false" labelColor="39,76,114"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_7rCJAC4jEei--d1NiPU4Dw" name="[1..*] rules" sourceNode="_d-l_8B2pEei8arfb2j0BMw" targetNode="_QLSLkRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EReference" href="editpolicymodel.ecore#//NaryConstraintRule/rules"/> + <semanticElements xmi:type="ecore:EReference" href="editpolicymodel.ecore#//NaryConstraintRule/rules"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_KYSnoC4kEei--d1NiPU4Dw" description="_y0p-MC4jEei--d1NiPU4Dw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_KYSnoS4kEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>bold</labelFormat> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_KYSnoi4kEei--d1NiPU4Dw" labelSize="6" showIcon="false" labelColor="39,76,114"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_8wgjUC4jEei--d1NiPU4Dw" name="[1..1] leftRule" sourceNode="_qHHFUBwGEeir3aeVscTXqw" targetNode="_QLSLkRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EReference" href="editpolicymodel.ecore#//BinaryConstraintRule/leftRule"/> + <semanticElements xmi:type="ecore:EReference" href="editpolicymodel.ecore#//BinaryConstraintRule/leftRule"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_OrapsC4kEei--d1NiPU4Dw" description="_y0p-MC4jEei--d1NiPU4Dw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_OrapsS4kEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>bold</labelFormat> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_Orapsi4kEei--d1NiPU4Dw" labelSize="6" showIcon="false" labelColor="39,76,114"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_9pxGkC4jEei--d1NiPU4Dw" name="[1..1] rightRule" sourceNode="_qHHFUBwGEeir3aeVscTXqw" targetNode="_QLSLkRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EReference" href="editpolicymodel.ecore#//BinaryConstraintRule/rightRule"/> + <semanticElements xmi:type="ecore:EReference" href="editpolicymodel.ecore#//BinaryConstraintRule/rightRule"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_LtT50C4kEei--d1NiPU4Dw" description="_y0p-MC4jEei--d1NiPU4Dw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_LtT50S4kEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>bold</labelFormat> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_LtT50i4kEei--d1NiPU4Dw" labelSize="6" showIcon="false" labelColor="39,76,114"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_-S5jIC4jEei--d1NiPU4Dw" name="[1..1] rule" sourceNode="_QLTZsBv9Eeir3aeVscTXqw" targetNode="_QLSLkRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EReference" href="editpolicymodel.ecore#//UnaryConstraintRule/rule"/> + <semanticElements xmi:type="ecore:EReference" href="editpolicymodel.ecore#//UnaryConstraintRule/rule"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_PgDysC4kEei--d1NiPU4Dw" description="_y0p-MC4jEei--d1NiPU4Dw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_PgDysS4kEei--d1NiPU4Dw" showIcon="false"> + <labelFormat>bold</labelFormat> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_PgDysi4kEei--d1NiPU4Dw" labelSize="6" showIcon="false" labelColor="39,76,114"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_wm54IC5uEeiwr8bZ0uTz8g" name="TypeEnum" tooltipText="" width="12" height="10"> + <target xmi:type="ecore:EEnum" href="editpolicymodel.ecore#//TypeEnum"/> + <semanticElements xmi:type="ecore:EEnum" href="editpolicymodel.ecore#//TypeEnum"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_wm54IS5uEeiwr8bZ0uTz8g" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_6kP1kC5vEeiwr8bZ0uTz8g" name="Acyclic" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Acyclic"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Acyclic"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_6kQcoC5vEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_-m6ZwC5vEeiwr8bZ0uTz8g" name="CompartmentType" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/CompartmentType"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/CompartmentType"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_-m6ZwS5vEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_CloSEC5wEeiwr8bZ0uTz8g" name="Irreflexive" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Irreflexive"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Irreflexive"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Clo5IC5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_G57Y0C5wEeiwr8bZ0uTz8g" name="RoleProhibition" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RoleProhibition"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RoleProhibition"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_G57_4C5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_JbgkwC5wEeiwr8bZ0uTz8g" name="RoleImplication" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RoleImplication"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RoleImplication"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_JbhL0C5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_NCCmkC5wEeiwr8bZ0uTz8g" name="RoleGroup" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RoleGroup"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RoleGroup"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_NCCmkS5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_O77gYC5wEeiwr8bZ0uTz8g" name="RoleEquivalence" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RoleEquivalence"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RoleEquivalence"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_O78HcC5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_QwLsQC5wEeiwr8bZ0uTz8g" name="RoleType" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RoleType"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RoleType"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_QwLsQS5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_SXnkIC5wEeiwr8bZ0uTz8g" name="RelationshipImplication" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RelationshipImplication"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RelationshipImplication"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_SXoLMC5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_T-Z7wC5wEeiwr8bZ0uTz8g" name="RelationshipExclusion" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RelationshipExclusion"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/RelationshipExclusion"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_T-ai0C5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Vf2gYC5wEeiwr8bZ0uTz8g" name="Relationship" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Relationship"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Relationship"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Vf2gYS5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_W8oAYC5wEeiwr8bZ0uTz8g" name="Reflexive" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Reflexive"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Reflexive"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_W8oAYS5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_YawyUC5wEeiwr8bZ0uTz8g" name="Group" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Group"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Group"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_YaxZYC5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Z8r4EC5wEeiwr8bZ0uTz8g" name="Inheritance" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Inheritance"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Inheritance"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Z8r4ES5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_bblfAC5wEeiwr8bZ0uTz8g" name="Fulfillment" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Fulfillment"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Fulfillment"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_bbmGEC5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_czcCwC5wEeiwr8bZ0uTz8g" name="DataType" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/DataType"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/DataType"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_czcp0C5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_egSmIC5wEeiwr8bZ0uTz8g" name="Cyclic" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Cyclic"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/Cyclic"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_egSmIS5wEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_GAfRkC5_Eeiwr8bZ0uTz8g" name="NaturalType" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/NaturalType"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//TypeEnum/NaturalType"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_GAf4oC5_Eeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_cSu3gC5yEeiwr8bZ0uTz8g" name="FeatureNameEnum" tooltipText="" width="12" height="10"> + <target xmi:type="ecore:EEnum" href="editpolicymodel.ecore#//FeatureNameEnum"/> + <semanticElements xmi:type="ecore:EEnum" href="editpolicymodel.ecore#//FeatureNameEnum"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_cSvekC5yEeiwr8bZ0uTz8g" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_uk2kAC5yEeiwr8bZ0uTz8g" name="Roles" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Roles"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Roles"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_uk2kAS5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_u9gUkC5yEeiwr8bZ0uTz8g" name="Role_Types" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Types"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Types"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_u9g7oC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_vL588C5yEeiwr8bZ0uTz8g" name="Role_Structure" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Structure"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Structure"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_vL6kAC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_vWbK4C5yEeiwr8bZ0uTz8g" name="Role_Properties" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Properties"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Properties"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_vWbK4S5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_vhytYC5yEeiwr8bZ0uTz8g" name="Role_Prohibition" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Prohibition"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Prohibition"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_vhytYS5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_vwBWoC5yEeiwr8bZ0uTz8g" name="Role_Inheritance" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Inheritance"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Inheritance"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_vwB9sC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_v5_K8C5yEeiwr8bZ0uTz8g" name="Role_Implication" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Implication"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Implication"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_v5_K8S5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_wECe0C5yEeiwr8bZ0uTz8g" name="Role_Equivalence" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Equivalence"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Equivalence"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_wEDF4C5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_wSz6oC5yEeiwr8bZ0uTz8g" name="Role_Constraints" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Constraints"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Constraints"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_wS0hsC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_xE_lgC5yEeiwr8bZ0uTz8g" name="Role_Behavior" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Behavior"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Role_Behavior"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_xE_lgS5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_xQK6wC5yEeiwr8bZ0uTz8g" name="RML_Feature_Model" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/RML_Feature_Model"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/RML_Feature_Model"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_xQK6wS5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_xaJ9MC5yEeiwr8bZ0uTz8g" name="Relationships" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Relationships"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Relationships"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_xaKkQC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_xj0PgC5yEeiwr8bZ0uTz8g" name="Relationship_Constraints" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Relationship_Constraints"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Relationship_Constraints"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_xj02kC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_xtIjkC5yEeiwr8bZ0uTz8g" name="Relationship_Cardinality" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Relationship_Cardinality"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Relationship_Cardinality"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_xtJKoC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_x7_e8C5yEeiwr8bZ0uTz8g" name="Players" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Players"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Players"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_x7_e8S5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_yKYgQC5yEeiwr8bZ0uTz8g" name="Playable_by_Defining_Compartment" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Playable_by_Defining_Compartment"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Playable_by_Defining_Compartment"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_yKZHUC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_yVXoQC5yEeiwr8bZ0uTz8g" name="Playable" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Playable"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Playable"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_yVXoQS5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ygmn4C5yEeiwr8bZ0uTz8g" name="Parthood_Constraints" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Parthood_Constraints"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Parthood_Constraints"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ygmn4S5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ytvE8C5yEeiwr8bZ0uTz8g" name="On_Relationships" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/On_Relationships"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/On_Relationships"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ytvsAC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_y7l6wC5yEeiwr8bZ0uTz8g" name="On_Compartments" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/On_Compartments"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/On_Compartments"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_y7l6wS5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_zJXRAC5yEeiwr8bZ0uTz8g" name="Occurrence_Constraints" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Occurrence_Constraints"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Occurrence_Constraints"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_zJX4EC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_zVK4YC5yEeiwr8bZ0uTz8g" name="Naturals" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Naturals"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Naturals"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_zVK4YS5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_zlArMC5yEeiwr8bZ0uTz8g" name="Intra_Relationship_Constraints" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Intra_Relationship_Constraints"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Intra_Relationship_Constraints"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_zlBSQC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_zz-UQC5yEeiwr8bZ0uTz8g" name="Inter_Relationship_Constraints" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Inter_Relationship_Constraints"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Inter_Relationship_Constraints"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_zz-7UC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_0Ep0kC5yEeiwr8bZ0uTz8g" name="Group_Constraints" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Group_Constraints"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Group_Constraints"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_0EqboC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_0YqVsC5yEeiwr8bZ0uTz8g" name="Dependent" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Dependent"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Dependent"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_0Yq8wC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_0xTfMC5yEeiwr8bZ0uTz8g" name="Dates" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Dates"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Dates"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_0xTfMS5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_1BkIwC5yEeiwr8bZ0uTz8g" name="Data_Types" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Data_Types"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Data_Types"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_1Bkv0C5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_1e6MEC5yEeiwr8bZ0uTz8g" name="Compartments" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Compartments"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Compartments"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_1e6zIC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_13rRYC5yEeiwr8bZ0uTz8g" name="Contains_Compartments" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Contains_Compartments"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Contains_Compartments"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_13r4cC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_2JTz8C5yEeiwr8bZ0uTz8g" name="Compartment_Types" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Compartment_Types"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Compartment_Types"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_2JUbAC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_2Y-noC5yEeiwr8bZ0uTz8g" name="Compartment_Structure" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Compartment_Structure"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Compartment_Structure"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_2Y_OsC5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_2uC4sC5yEeiwr8bZ0uTz8g" name="Compartment_Properties" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Compartment_Properties"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Compartment_Properties"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_2uC4sS5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_3FoSQC5yEeiwr8bZ0uTz8g" name="Compartment_Inheritance" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Compartment_Inheritance"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Compartment_Inheritance"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_3FoSQS5yEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5Dc0YC5zEeiwr8bZ0uTz8g" name="Compartment_Behavior" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Compartment_Behavior"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Compartment_Behavior"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5DdbcC5zEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5X9EwC5zEeiwr8bZ0uTz8g" name="Participants" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Participants"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Participants"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5X-S4C5zEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5tOKIC5zEeiwr8bZ0uTz8g" name="Data_Type_Inheritance" tooltipText=""> + <target xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Data_Type_Inheritance"/> + <semanticElements xmi:type="ecore:EEnumLiteral" href="editpolicymodel.ecore#//FeatureNameEnum/Data_Type_Inheritance"/> + <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5tOxMC5zEeiwr8bZ0uTz8g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_JwymsDEtEeiF0ru3Etlc_g" name="SourceEqualsTarget" tooltipText="" outgoingEdges="_M4RVADEtEeiF0ru3Etlc_g" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//SourceEqualsTarget"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//SourceEqualsTarget"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_Jwz00DEtEeiF0ru3Etlc_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_M4RVADEtEeiF0ru3Etlc_g" sourceNode="_JwymsDEtEeiF0ru3Etlc_g" targetNode="_QLSLkRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//SourceEqualsTarget"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//SourceEqualsTarget/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_M4R8EDEtEeiF0ru3Etlc_g" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_M4R8ETEtEeiF0ru3Etlc_g" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_M4R8EjEtEeiF0ru3Etlc_g" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_oRe18DE6EeifDcVRz6UV5g" name="SourceEqualsTargetType" tooltipText="" outgoingEdges="_s9vJsDE6EeifDcVRz6UV5g" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//SourceEqualsTargetType"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//SourceEqualsTargetType"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_oRgrIDE6EeifDcVRz6UV5g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_s9vJsDE6EeifDcVRz6UV5g" sourceNode="_oRe18DE6EeifDcVRz6UV5g" targetNode="_QLSLkRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//SourceEqualsTargetType"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//SourceEqualsTargetType/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_s9w-4DE6EeifDcVRz6UV5g" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_s9w-4TE6EeifDcVRz6UV5g" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_s9w-4jE6EeifDcVRz6UV5g" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_-9CqEEJgEei5GdIMm-4mwA" name="InCompartment" tooltipText="" outgoingEdges="_BXeFIEJhEei5GdIMm-4mwA" width="12" height="10"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//InCompartment"/> + <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//InCompartment"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_-9EfQEJgEei5GdIMm-4mwA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_BXeFIEJhEei5GdIMm-4mwA" sourceNode="_-9CqEEJgEei5GdIMm-4mwA" targetNode="_QLSLkRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//InCompartment"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//InCompartment/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_BXesMEJhEei5GdIMm-4mwA" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_BXesMUJhEei5GdIMm-4mwA" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_BXesMkJhEei5GdIMm-4mwA" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_iWuXoEJlEei5GdIMm-4mwA" sourceNode="_QLEJIRv9Eeir3aeVscTXqw" targetNode="_QLSLkRv9Eeir3aeVscTXqw"> + <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ContainsCompartment"/> + <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//ContainsCompartment/@eGenericSuperTypes.0"/> + <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_iWu-sEJlEei5GdIMm-4mwA" targetArrow="InputClosedArrow" routingStyle="tree"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> + <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_iWu-sUJlEei5GdIMm-4mwA" showIcon="false"> + <labelFormat>italic</labelFormat> + </beginLabelStyle> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_iWu-skJlEei5GdIMm-4mwA" showIcon="false"/> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> + </ownedDiagramElements> + <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> + <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_PQun1hv9Eeir3aeVscTXqw"/> + <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> + <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/> + <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/> + <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/> + <target xmi:type="ecore:EPackage" href="editpolicymodel.ecore#/"/> + </diagram:DSemanticDiagram> +</xmi:XMI> diff --git a/org.framed.iorm.editpolicymodel/model/test.xmi b/org.framed.iorm.editpolicymodel/model/test.xmi new file mode 100644 index 00000000..48c4ee96 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/model/test.xmi @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="ASCII"?> +<Editpolicymodel:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Editpolicymodel="http://framed/editpolicymodel"> + +</Editpolicymodel:Model> \ No newline at end of file diff --git a/org.framed.iorm.editpolicymodel/model/test1.xmi b/org.framed.iorm.editpolicymodel/model/test1.xmi new file mode 100644 index 00000000..ab37b8a7 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/model/test1.xmi @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Editpolicymodel:Model + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:Editpolicymodel="http://framed/editpolicymodel"> + <policies/> +</Editpolicymodel:Model> diff --git a/org.framed.iorm.editpolicymodel/plugin.properties b/org.framed.iorm.editpolicymodel/plugin.properties new file mode 100644 index 00000000..89807962 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/plugin.properties @@ -0,0 +1,4 @@ +# + +pluginName = Editpolicymodel Model +providerName = framed diff --git a/org.framed.iorm.editpolicymodel/plugin.xml b/org.framed.iorm.editpolicymodel/plugin.xml new file mode 100644 index 00000000..c395f389 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/plugin.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<!-- +--> + +<plugin> + + <extension point="org.eclipse.emf.ecore.generated_package"> + <!-- @generated editpolicymodel --> + <package + uri="http://framed/editpolicymodel" + class="Editpolicymodel.EditpolicymodelPackage" + genModel="model/editpolicymodel.genmodel"/> + </extension> + +</plugin> diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ActionEnum.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ActionEnum.java new file mode 100644 index 00000000..775ce798 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ActionEnum.java @@ -0,0 +1,430 @@ +/** + */ +package Editpolicymodel; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * <!-- begin-user-doc --> + * A representation of the literals of the enumeration '<em><b>Action Enum</b></em>', + * and utility methods for working with them. + * <!-- end-user-doc --> + * @see Editpolicymodel.EditpolicymodelPackage#getActionEnum() + * @model + * @generated + */ +public enum ActionEnum implements Enumerator { + /** + * The '<em><b>Create</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #CREATE_VALUE + * @generated + * @ordered + */ + CREATE(0, "Create", "Create"), + + /** + * The '<em><b>Add</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ADD_VALUE + * @generated + * @ordered + */ + ADD(1, "Add", "Add"), + + /** + * The '<em><b>Start</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #START_VALUE + * @generated + * @ordered + */ + START(2, "Start", "Start"), + + /** + * The '<em><b>Reconnect</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #RECONNECT_VALUE + * @generated + * @ordered + */ + RECONNECT(3, "Reconnect", "Reconnect"), + + /** + * The '<em><b>Execute</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #EXECUTE_VALUE + * @generated + * @ordered + */ + EXECUTE(4, "Execute", "Execute"), + + /** + * The '<em><b>Direct Edit</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #DIRECT_EDIT_VALUE + * @generated + * @ordered + */ + DIRECT_EDIT(5, "Direct_Edit", "Direct_Edit"), + + /** + * The '<em><b>Create Property</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #CREATE_PROPERTY_VALUE + * @generated + * @ordered + */ + CREATE_PROPERTY(6, "Create_Property", "Create_Property"), + + /** + * The '<em><b>Create Attribute</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #CREATE_ATTRIBUTE_VALUE + * @generated + * @ordered + */ + CREATE_ATTRIBUTE(7, "Create_Attribute", "Create_Attribute"), + + /** + * The '<em><b>Add Property</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ADD_PROPERTY_VALUE + * @generated + * @ordered + */ + ADD_PROPERTY(9, "Add_Property", "Add_Property"), + + /** + * The '<em><b>Create Operation</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #CREATE_OPERATION_VALUE + * @generated + * @ordered + */ + CREATE_OPERATION(10, "Create_Operation", "Create_Operation"); + + /** + * The '<em><b>Create</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Create</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #CREATE + * @model name="Create" + * @generated + * @ordered + */ + public static final int CREATE_VALUE = 0; + + /** + * The '<em><b>Add</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Add</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ADD + * @model name="Add" + * @generated + * @ordered + */ + public static final int ADD_VALUE = 1; + + /** + * The '<em><b>Start</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Start</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #START + * @model name="Start" + * @generated + * @ordered + */ + public static final int START_VALUE = 2; + + /** + * The '<em><b>Reconnect</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Reconnect</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #RECONNECT + * @model name="Reconnect" + * @generated + * @ordered + */ + public static final int RECONNECT_VALUE = 3; + + /** + * The '<em><b>Execute</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Execute</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #EXECUTE + * @model name="Execute" + * @generated + * @ordered + */ + public static final int EXECUTE_VALUE = 4; + + /** + * The '<em><b>Direct Edit</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Direct Edit</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #DIRECT_EDIT + * @model name="Direct_Edit" + * @generated + * @ordered + */ + public static final int DIRECT_EDIT_VALUE = 5; + + /** + * The '<em><b>Create Property</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Create Property</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #CREATE_PROPERTY + * @model name="Create_Property" + * @generated + * @ordered + */ + public static final int CREATE_PROPERTY_VALUE = 6; + + /** + * The '<em><b>Create Attribute</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Create Attribute</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #CREATE_ATTRIBUTE + * @model name="Create_Attribute" + * @generated + * @ordered + */ + public static final int CREATE_ATTRIBUTE_VALUE = 7; + + /** + * The '<em><b>Add Property</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Add Property</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ADD_PROPERTY + * @model name="Add_Property" + * @generated + * @ordered + */ + public static final int ADD_PROPERTY_VALUE = 9; + + /** + * The '<em><b>Create Operation</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Create Operation</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #CREATE_OPERATION + * @model name="Create_Operation" + * @generated + * @ordered + */ + public static final int CREATE_OPERATION_VALUE = 10; + + /** + * An array of all the '<em><b>Action Enum</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static final ActionEnum[] VALUES_ARRAY = + new ActionEnum[] { + CREATE, + ADD, + START, + RECONNECT, + EXECUTE, + DIRECT_EDIT, + CREATE_PROPERTY, + CREATE_ATTRIBUTE, + ADD_PROPERTY, + CREATE_OPERATION, + }; + + /** + * A public read-only list of all the '<em><b>Action Enum</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List<ActionEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the '<em><b>Action Enum</b></em>' literal with the specified literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param literal the literal. + * @return the matching enumerator or <code>null</code>. + * @generated + */ + public static ActionEnum get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + ActionEnum result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Action Enum</b></em>' literal with the specified name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param name the name. + * @return the matching enumerator or <code>null</code>. + * @generated + */ + public static ActionEnum getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + ActionEnum result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Action Enum</b></em>' literal with the specified integer value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the integer value. + * @return the matching enumerator or <code>null</code>. + * @generated + */ + public static ActionEnum get(int value) { + switch (value) { + case CREATE_VALUE: return CREATE; + case ADD_VALUE: return ADD; + case START_VALUE: return START; + case RECONNECT_VALUE: return RECONNECT; + case EXECUTE_VALUE: return EXECUTE; + case DIRECT_EDIT_VALUE: return DIRECT_EDIT; + case CREATE_PROPERTY_VALUE: return CREATE_PROPERTY; + case CREATE_ATTRIBUTE_VALUE: return CREATE_ATTRIBUTE; + case ADD_PROPERTY_VALUE: return ADD_PROPERTY; + case CREATE_OPERATION_VALUE: return CREATE_OPERATION; + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final int value; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String name; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private ActionEnum(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getValue() { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + return literal; + } + +} //ActionEnum diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/AndConstraintRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/AndConstraintRule.java new file mode 100644 index 00000000..2a176a13 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/AndConstraintRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>And Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getAndConstraintRule() + * @model + * @generated + */ +public interface AndConstraintRule extends NaryConstraintRule { +} // AndConstraintRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/AndFeatureRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/AndFeatureRule.java new file mode 100644 index 00000000..e9f13469 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/AndFeatureRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>And Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getAndFeatureRule() + * @model + * @generated + */ +public interface AndFeatureRule extends NaryFeatureRule { +} // AndFeatureRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/BinaryConstraintRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/BinaryConstraintRule.java new file mode 100644 index 00000000..caabf7d9 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/BinaryConstraintRule.java @@ -0,0 +1,76 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Binary Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link Editpolicymodel.BinaryConstraintRule#getLeftRule <em>Left Rule</em>}</li> + * <li>{@link Editpolicymodel.BinaryConstraintRule#getRightRule <em>Right Rule</em>}</li> + * </ul> + * + * @see Editpolicymodel.EditpolicymodelPackage#getBinaryConstraintRule() + * @model abstract="true" + * @generated + */ +public interface BinaryConstraintRule extends LogicalConstraintRule { + /** + * Returns the value of the '<em><b>Left Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Left Rule</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Left Rule</em>' containment reference. + * @see #setLeftRule(ConstraintRule) + * @see Editpolicymodel.EditpolicymodelPackage#getBinaryConstraintRule_LeftRule() + * @model containment="true" required="true" + * @generated + */ + ConstraintRule getLeftRule(); + + /** + * Sets the value of the '{@link Editpolicymodel.BinaryConstraintRule#getLeftRule <em>Left Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Left Rule</em>' containment reference. + * @see #getLeftRule() + * @generated + */ + void setLeftRule(ConstraintRule value); + + /** + * Returns the value of the '<em><b>Right Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Right Rule</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Right Rule</em>' containment reference. + * @see #setRightRule(ConstraintRule) + * @see Editpolicymodel.EditpolicymodelPackage#getBinaryConstraintRule_RightRule() + * @model containment="true" required="true" + * @generated + */ + ConstraintRule getRightRule(); + + /** + * Sets the value of the '{@link Editpolicymodel.BinaryConstraintRule#getRightRule <em>Right Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Right Rule</em>' containment reference. + * @see #getRightRule() + * @generated + */ + void setRightRule(ConstraintRule value); + +} // BinaryConstraintRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/BinaryFeatureRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/BinaryFeatureRule.java new file mode 100644 index 00000000..627ac50e --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/BinaryFeatureRule.java @@ -0,0 +1,76 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Binary Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link Editpolicymodel.BinaryFeatureRule#getRightRule <em>Right Rule</em>}</li> + * <li>{@link Editpolicymodel.BinaryFeatureRule#getLeftRule <em>Left Rule</em>}</li> + * </ul> + * + * @see Editpolicymodel.EditpolicymodelPackage#getBinaryFeatureRule() + * @model abstract="true" + * @generated + */ +public interface BinaryFeatureRule extends LogicalFeatureRule { + /** + * Returns the value of the '<em><b>Right Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Right Rule</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Right Rule</em>' containment reference. + * @see #setRightRule(FeatureRule) + * @see Editpolicymodel.EditpolicymodelPackage#getBinaryFeatureRule_RightRule() + * @model containment="true" required="true" + * @generated + */ + FeatureRule getRightRule(); + + /** + * Sets the value of the '{@link Editpolicymodel.BinaryFeatureRule#getRightRule <em>Right Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Right Rule</em>' containment reference. + * @see #getRightRule() + * @generated + */ + void setRightRule(FeatureRule value); + + /** + * Returns the value of the '<em><b>Left Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Left Rule</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Left Rule</em>' containment reference. + * @see #setLeftRule(FeatureRule) + * @see Editpolicymodel.EditpolicymodelPackage#getBinaryFeatureRule_LeftRule() + * @model containment="true" required="true" + * @generated + */ + FeatureRule getLeftRule(); + + /** + * Sets the value of the '{@link Editpolicymodel.BinaryFeatureRule#getLeftRule <em>Left Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Left Rule</em>' containment reference. + * @see #getLeftRule() + * @generated + */ + void setLeftRule(FeatureRule value); + +} // BinaryFeatureRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ConstraintRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ConstraintRule.java new file mode 100644 index 00000000..10367876 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ConstraintRule.java @@ -0,0 +1,18 @@ +/** + */ +package Editpolicymodel; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getConstraintRule() + * @model abstract="true" + * @generated + */ +public interface ConstraintRule extends EObject { +} // ConstraintRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ContainsCompartment.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ContainsCompartment.java new file mode 100644 index 00000000..0f262b31 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ContainsCompartment.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Contains Compartment</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getContainsCompartment() + * @model + * @generated + */ +public interface ContainsCompartment extends ConstraintRule { +} // ContainsCompartment diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/EditpolicymodelFactory.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/EditpolicymodelFactory.java new file mode 100644 index 00000000..3b4339e9 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/EditpolicymodelFactory.java @@ -0,0 +1,258 @@ +/** + */ +package Editpolicymodel; + +import org.eclipse.emf.ecore.EFactory; + +/** + * <!-- begin-user-doc --> + * The <b>Factory</b> for the model. + * It provides a create method for each non-abstract class of the model. + * <!-- end-user-doc --> + * @see Editpolicymodel.EditpolicymodelPackage + * @generated + */ +public interface EditpolicymodelFactory extends EFactory { + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EditpolicymodelFactory eINSTANCE = Editpolicymodel.impl.EditpolicymodelFactoryImpl.init(); + + /** + * Returns a new object of class '<em>Model</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Model</em>'. + * @generated + */ + Model createModel(); + + /** + * Returns a new object of class '<em>Policy</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Policy</em>'. + * @generated + */ + Policy createPolicy(); + + /** + * Returns a new object of class '<em>Contains Compartment</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Contains Compartment</em>'. + * @generated + */ + ContainsCompartment createContainsCompartment(); + + /** + * Returns a new object of class '<em>Is Target</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Is Target</em>'. + * @generated + */ + IsTarget createIsTarget(); + + /** + * Returns a new object of class '<em>Is Parent</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Is Parent</em>'. + * @generated + */ + IsParent createIsParent(); + + /** + * Returns a new object of class '<em>Is Feature</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Is Feature</em>'. + * @generated + */ + IsFeature createIsFeature(); + + /** + * Returns a new object of class '<em>Is Target Type</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Is Target Type</em>'. + * @generated + */ + IsTargetType createIsTargetType(); + + /** + * Returns a new object of class '<em>Not Constraint Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Not Constraint Rule</em>'. + * @generated + */ + NotConstraintRule createNotConstraintRule(); + + /** + * Returns a new object of class '<em>And Constraint Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>And Constraint Rule</em>'. + * @generated + */ + AndConstraintRule createAndConstraintRule(); + + /** + * Returns a new object of class '<em>True Constraint Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>True Constraint Rule</em>'. + * @generated + */ + TrueConstraintRule createTrueConstraintRule(); + + /** + * Returns a new object of class '<em>False Constraint Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>False Constraint Rule</em>'. + * @generated + */ + FalseConstraintRule createFalseConstraintRule(); + + /** + * Returns a new object of class '<em>Or Constraint Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Or Constraint Rule</em>'. + * @generated + */ + OrConstraintRule createOrConstraintRule(); + + /** + * Returns a new object of class '<em>Implication Constraint Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Implication Constraint Rule</em>'. + * @generated + */ + ImplicationConstraintRule createImplicationConstraintRule(); + + /** + * Returns a new object of class '<em>Is Source Type</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Is Source Type</em>'. + * @generated + */ + IsSourceType createIsSourceType(); + + /** + * Returns a new object of class '<em>Logical Constraint Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Logical Constraint Rule</em>'. + * @generated + */ + LogicalConstraintRule createLogicalConstraintRule(); + + /** + * Returns a new object of class '<em>True Feature Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>True Feature Rule</em>'. + * @generated + */ + TrueFeatureRule createTrueFeatureRule(); + + /** + * Returns a new object of class '<em>Not Feature Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Not Feature Rule</em>'. + * @generated + */ + NotFeatureRule createNotFeatureRule(); + + /** + * Returns a new object of class '<em>False Feature Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>False Feature Rule</em>'. + * @generated + */ + FalseFeatureRule createFalseFeatureRule(); + + /** + * Returns a new object of class '<em>Logical Feature Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Logical Feature Rule</em>'. + * @generated + */ + LogicalFeatureRule createLogicalFeatureRule(); + + /** + * Returns a new object of class '<em>Implication Feature Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Implication Feature Rule</em>'. + * @generated + */ + ImplicationFeatureRule createImplicationFeatureRule(); + + /** + * Returns a new object of class '<em>Or Feature Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Or Feature Rule</em>'. + * @generated + */ + OrFeatureRule createOrFeatureRule(); + + /** + * Returns a new object of class '<em>And Feature Rule</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>And Feature Rule</em>'. + * @generated + */ + AndFeatureRule createAndFeatureRule(); + + /** + * Returns a new object of class '<em>Source Equals Target</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Source Equals Target</em>'. + * @generated + */ + SourceEqualsTarget createSourceEqualsTarget(); + + /** + * Returns a new object of class '<em>Source Equals Target Type</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Source Equals Target Type</em>'. + * @generated + */ + SourceEqualsTargetType createSourceEqualsTargetType(); + + /** + * Returns a new object of class '<em>In Compartment</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>In Compartment</em>'. + * @generated + */ + InCompartment createInCompartment(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + EditpolicymodelPackage getEditpolicymodelPackage(); + +} //EditpolicymodelFactory diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/EditpolicymodelPackage.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/EditpolicymodelPackage.java new file mode 100644 index 00000000..0802e64d --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/EditpolicymodelPackage.java @@ -0,0 +1,2382 @@ +/** + */ +package Editpolicymodel; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see Editpolicymodel.EditpolicymodelFactory + * @model kind="package" + * @generated + */ +public interface EditpolicymodelPackage extends EPackage { + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "Editpolicymodel"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_URI = "http://framed/editpolicymodel"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "Editpolicymodel"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EditpolicymodelPackage eINSTANCE = Editpolicymodel.impl.EditpolicymodelPackageImpl.init(); + + /** + * The meta object id for the '{@link Editpolicymodel.impl.ModelImpl <em>Model</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.ModelImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getModel() + * @generated + */ + int MODEL = 0; + + /** + * The feature id for the '<em><b>Policies</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MODEL__POLICIES = 0; + + /** + * The number of structural features of the '<em>Model</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MODEL_FEATURE_COUNT = 1; + + /** + * The number of operations of the '<em>Model</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MODEL_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.PolicyImpl <em>Policy</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.PolicyImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getPolicy() + * @generated + */ + int POLICY = 1; + + /** + * The feature id for the '<em><b>Override</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int POLICY__OVERRIDE = 0; + + /** + * The feature id for the '<em><b>Action</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int POLICY__ACTION = 1; + + /** + * The feature id for the '<em><b>Action Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int POLICY__ACTION_TYPE = 2; + + /** + * The feature id for the '<em><b>Feature Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int POLICY__FEATURE_RULE = 3; + + /** + * The feature id for the '<em><b>Constraint Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int POLICY__CONSTRAINT_RULE = 4; + + /** + * The number of structural features of the '<em>Policy</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int POLICY_FEATURE_COUNT = 5; + + /** + * The number of operations of the '<em>Policy</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int POLICY_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.ConstraintRuleImpl <em>Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.ConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getConstraintRule() + * @generated + */ + int CONSTRAINT_RULE = 7; + + /** + * The number of structural features of the '<em>Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONSTRAINT_RULE_FEATURE_COUNT = 0; + + /** + * The number of operations of the '<em>Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONSTRAINT_RULE_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.ContainsCompartmentImpl <em>Contains Compartment</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.ContainsCompartmentImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getContainsCompartment() + * @generated + */ + int CONTAINS_COMPARTMENT = 2; + + /** + * The number of structural features of the '<em>Contains Compartment</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONTAINS_COMPARTMENT_FEATURE_COUNT = CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Contains Compartment</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONTAINS_COMPARTMENT_OPERATION_COUNT = CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.TypeArgumentRuleImpl <em>Type Argument Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.TypeArgumentRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getTypeArgumentRule() + * @generated + */ + int TYPE_ARGUMENT_RULE = 18; + + /** + * The feature id for the '<em><b>Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TYPE_ARGUMENT_RULE__TYPE = CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Type Argument Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TYPE_ARGUMENT_RULE_FEATURE_COUNT = CONSTRAINT_RULE_FEATURE_COUNT + 1; + + /** + * The number of operations of the '<em>Type Argument Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TYPE_ARGUMENT_RULE_OPERATION_COUNT = CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.IsTargetImpl <em>Is Target</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.IsTargetImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getIsTarget() + * @generated + */ + int IS_TARGET = 3; + + /** + * The feature id for the '<em><b>Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_TARGET__TYPE = TYPE_ARGUMENT_RULE__TYPE; + + /** + * The number of structural features of the '<em>Is Target</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_TARGET_FEATURE_COUNT = TYPE_ARGUMENT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Is Target</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_TARGET_OPERATION_COUNT = TYPE_ARGUMENT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.IsParentImpl <em>Is Parent</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.IsParentImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getIsParent() + * @generated + */ + int IS_PARENT = 4; + + /** + * The feature id for the '<em><b>Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_PARENT__TYPE = TYPE_ARGUMENT_RULE__TYPE; + + /** + * The number of structural features of the '<em>Is Parent</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_PARENT_FEATURE_COUNT = TYPE_ARGUMENT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Is Parent</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_PARENT_OPERATION_COUNT = TYPE_ARGUMENT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.FeatureRuleImpl <em>Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.FeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getFeatureRule() + * @generated + */ + int FEATURE_RULE = 5; + + /** + * The number of structural features of the '<em>Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FEATURE_RULE_FEATURE_COUNT = 0; + + /** + * The number of operations of the '<em>Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FEATURE_RULE_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.IsFeatureImpl <em>Is Feature</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.IsFeatureImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getIsFeature() + * @generated + */ + int IS_FEATURE = 6; + + /** + * The feature id for the '<em><b>Feature Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_FEATURE__FEATURE_NAME = FEATURE_RULE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Is Feature</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_FEATURE_FEATURE_COUNT = FEATURE_RULE_FEATURE_COUNT + 1; + + /** + * The number of operations of the '<em>Is Feature</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_FEATURE_OPERATION_COUNT = FEATURE_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.IsTargetTypeImpl <em>Is Target Type</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.IsTargetTypeImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getIsTargetType() + * @generated + */ + int IS_TARGET_TYPE = 8; + + /** + * The feature id for the '<em><b>Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_TARGET_TYPE__TYPE = TYPE_ARGUMENT_RULE__TYPE; + + /** + * The number of structural features of the '<em>Is Target Type</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_TARGET_TYPE_FEATURE_COUNT = TYPE_ARGUMENT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Is Target Type</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_TARGET_TYPE_OPERATION_COUNT = TYPE_ARGUMENT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.LogicalConstraintRuleImpl <em>Logical Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.LogicalConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getLogicalConstraintRule() + * @generated + */ + int LOGICAL_CONSTRAINT_RULE = 20; + + /** + * The number of structural features of the '<em>Logical Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LOGICAL_CONSTRAINT_RULE_FEATURE_COUNT = CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Logical Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LOGICAL_CONSTRAINT_RULE_OPERATION_COUNT = CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.UnaryConstraintRuleImpl <em>Unary Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.UnaryConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getUnaryConstraintRule() + * @generated + */ + int UNARY_CONSTRAINT_RULE = 9; + + /** + * The feature id for the '<em><b>Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int UNARY_CONSTRAINT_RULE__RULE = LOGICAL_CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Unary Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int UNARY_CONSTRAINT_RULE_FEATURE_COUNT = LOGICAL_CONSTRAINT_RULE_FEATURE_COUNT + 1; + + /** + * The number of operations of the '<em>Unary Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int UNARY_CONSTRAINT_RULE_OPERATION_COUNT = LOGICAL_CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.NotConstraintRuleImpl <em>Not Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.NotConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getNotConstraintRule() + * @generated + */ + int NOT_CONSTRAINT_RULE = 10; + + /** + * The feature id for the '<em><b>Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NOT_CONSTRAINT_RULE__RULE = UNARY_CONSTRAINT_RULE__RULE; + + /** + * The number of structural features of the '<em>Not Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NOT_CONSTRAINT_RULE_FEATURE_COUNT = UNARY_CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Not Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NOT_CONSTRAINT_RULE_OPERATION_COUNT = UNARY_CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.NaryConstraintRuleImpl <em>Nary Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.NaryConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getNaryConstraintRule() + * @generated + */ + int NARY_CONSTRAINT_RULE = 19; + + /** + * The feature id for the '<em><b>Rules</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NARY_CONSTRAINT_RULE__RULES = LOGICAL_CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Nary Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NARY_CONSTRAINT_RULE_FEATURE_COUNT = LOGICAL_CONSTRAINT_RULE_FEATURE_COUNT + 1; + + /** + * The number of operations of the '<em>Nary Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NARY_CONSTRAINT_RULE_OPERATION_COUNT = LOGICAL_CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.AndConstraintRuleImpl <em>And Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.AndConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getAndConstraintRule() + * @generated + */ + int AND_CONSTRAINT_RULE = 11; + + /** + * The feature id for the '<em><b>Rules</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AND_CONSTRAINT_RULE__RULES = NARY_CONSTRAINT_RULE__RULES; + + /** + * The number of structural features of the '<em>And Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AND_CONSTRAINT_RULE_FEATURE_COUNT = NARY_CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>And Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AND_CONSTRAINT_RULE_OPERATION_COUNT = NARY_CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.BinaryConstraintRuleImpl <em>Binary Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.BinaryConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getBinaryConstraintRule() + * @generated + */ + int BINARY_CONSTRAINT_RULE = 12; + + /** + * The feature id for the '<em><b>Left Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BINARY_CONSTRAINT_RULE__LEFT_RULE = LOGICAL_CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Right Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BINARY_CONSTRAINT_RULE__RIGHT_RULE = LOGICAL_CONSTRAINT_RULE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Binary Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BINARY_CONSTRAINT_RULE_FEATURE_COUNT = LOGICAL_CONSTRAINT_RULE_FEATURE_COUNT + 2; + + /** + * The number of operations of the '<em>Binary Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BINARY_CONSTRAINT_RULE_OPERATION_COUNT = LOGICAL_CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.TrueConstraintRuleImpl <em>True Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.TrueConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getTrueConstraintRule() + * @generated + */ + int TRUE_CONSTRAINT_RULE = 13; + + /** + * The number of structural features of the '<em>True Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRUE_CONSTRAINT_RULE_FEATURE_COUNT = LOGICAL_CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>True Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRUE_CONSTRAINT_RULE_OPERATION_COUNT = LOGICAL_CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.FalseConstraintRuleImpl <em>False Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.FalseConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getFalseConstraintRule() + * @generated + */ + int FALSE_CONSTRAINT_RULE = 14; + + /** + * The number of structural features of the '<em>False Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FALSE_CONSTRAINT_RULE_FEATURE_COUNT = LOGICAL_CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>False Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FALSE_CONSTRAINT_RULE_OPERATION_COUNT = LOGICAL_CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.OrConstraintRuleImpl <em>Or Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.OrConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getOrConstraintRule() + * @generated + */ + int OR_CONSTRAINT_RULE = 15; + + /** + * The feature id for the '<em><b>Rules</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int OR_CONSTRAINT_RULE__RULES = NARY_CONSTRAINT_RULE__RULES; + + /** + * The number of structural features of the '<em>Or Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int OR_CONSTRAINT_RULE_FEATURE_COUNT = NARY_CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Or Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int OR_CONSTRAINT_RULE_OPERATION_COUNT = NARY_CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.ImplicationConstraintRuleImpl <em>Implication Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.ImplicationConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getImplicationConstraintRule() + * @generated + */ + int IMPLICATION_CONSTRAINT_RULE = 16; + + /** + * The feature id for the '<em><b>Left Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IMPLICATION_CONSTRAINT_RULE__LEFT_RULE = BINARY_CONSTRAINT_RULE__LEFT_RULE; + + /** + * The feature id for the '<em><b>Right Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IMPLICATION_CONSTRAINT_RULE__RIGHT_RULE = BINARY_CONSTRAINT_RULE__RIGHT_RULE; + + /** + * The number of structural features of the '<em>Implication Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IMPLICATION_CONSTRAINT_RULE_FEATURE_COUNT = BINARY_CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Implication Constraint Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IMPLICATION_CONSTRAINT_RULE_OPERATION_COUNT = BINARY_CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.IsSourceTypeImpl <em>Is Source Type</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.IsSourceTypeImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getIsSourceType() + * @generated + */ + int IS_SOURCE_TYPE = 17; + + /** + * The feature id for the '<em><b>Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_SOURCE_TYPE__TYPE = TYPE_ARGUMENT_RULE__TYPE; + + /** + * The number of structural features of the '<em>Is Source Type</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_SOURCE_TYPE_FEATURE_COUNT = TYPE_ARGUMENT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Is Source Type</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IS_SOURCE_TYPE_OPERATION_COUNT = TYPE_ARGUMENT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.LogicalFeatureRuleImpl <em>Logical Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.LogicalFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getLogicalFeatureRule() + * @generated + */ + int LOGICAL_FEATURE_RULE = 26; + + /** + * The number of structural features of the '<em>Logical Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LOGICAL_FEATURE_RULE_FEATURE_COUNT = FEATURE_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Logical Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LOGICAL_FEATURE_RULE_OPERATION_COUNT = FEATURE_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.TrueFeatureRuleImpl <em>True Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.TrueFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getTrueFeatureRule() + * @generated + */ + int TRUE_FEATURE_RULE = 21; + + /** + * The number of structural features of the '<em>True Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRUE_FEATURE_RULE_FEATURE_COUNT = LOGICAL_FEATURE_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>True Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRUE_FEATURE_RULE_OPERATION_COUNT = LOGICAL_FEATURE_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.UnaryFeatureRuleImpl <em>Unary Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.UnaryFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getUnaryFeatureRule() + * @generated + */ + int UNARY_FEATURE_RULE = 28; + + /** + * The feature id for the '<em><b>Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int UNARY_FEATURE_RULE__RULE = LOGICAL_FEATURE_RULE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Unary Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int UNARY_FEATURE_RULE_FEATURE_COUNT = LOGICAL_FEATURE_RULE_FEATURE_COUNT + 1; + + /** + * The number of operations of the '<em>Unary Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int UNARY_FEATURE_RULE_OPERATION_COUNT = LOGICAL_FEATURE_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.NotFeatureRuleImpl <em>Not Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.NotFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getNotFeatureRule() + * @generated + */ + int NOT_FEATURE_RULE = 22; + + /** + * The feature id for the '<em><b>Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NOT_FEATURE_RULE__RULE = UNARY_FEATURE_RULE__RULE; + + /** + * The number of structural features of the '<em>Not Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NOT_FEATURE_RULE_FEATURE_COUNT = UNARY_FEATURE_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Not Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NOT_FEATURE_RULE_OPERATION_COUNT = UNARY_FEATURE_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.FalseFeatureRuleImpl <em>False Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.FalseFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getFalseFeatureRule() + * @generated + */ + int FALSE_FEATURE_RULE = 23; + + /** + * The number of structural features of the '<em>False Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FALSE_FEATURE_RULE_FEATURE_COUNT = LOGICAL_FEATURE_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>False Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FALSE_FEATURE_RULE_OPERATION_COUNT = LOGICAL_FEATURE_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.NaryFeatureRuleImpl <em>Nary Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.NaryFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getNaryFeatureRule() + * @generated + */ + int NARY_FEATURE_RULE = 24; + + /** + * The feature id for the '<em><b>Rules</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NARY_FEATURE_RULE__RULES = LOGICAL_FEATURE_RULE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Nary Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NARY_FEATURE_RULE_FEATURE_COUNT = LOGICAL_FEATURE_RULE_FEATURE_COUNT + 1; + + /** + * The number of operations of the '<em>Nary Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NARY_FEATURE_RULE_OPERATION_COUNT = LOGICAL_FEATURE_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.BinaryFeatureRuleImpl <em>Binary Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.BinaryFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getBinaryFeatureRule() + * @generated + */ + int BINARY_FEATURE_RULE = 25; + + /** + * The feature id for the '<em><b>Right Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BINARY_FEATURE_RULE__RIGHT_RULE = LOGICAL_FEATURE_RULE_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Left Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BINARY_FEATURE_RULE__LEFT_RULE = LOGICAL_FEATURE_RULE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Binary Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BINARY_FEATURE_RULE_FEATURE_COUNT = LOGICAL_FEATURE_RULE_FEATURE_COUNT + 2; + + /** + * The number of operations of the '<em>Binary Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BINARY_FEATURE_RULE_OPERATION_COUNT = LOGICAL_FEATURE_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.ImplicationFeatureRuleImpl <em>Implication Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.ImplicationFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getImplicationFeatureRule() + * @generated + */ + int IMPLICATION_FEATURE_RULE = 27; + + /** + * The feature id for the '<em><b>Right Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IMPLICATION_FEATURE_RULE__RIGHT_RULE = BINARY_FEATURE_RULE__RIGHT_RULE; + + /** + * The feature id for the '<em><b>Left Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IMPLICATION_FEATURE_RULE__LEFT_RULE = BINARY_FEATURE_RULE__LEFT_RULE; + + /** + * The number of structural features of the '<em>Implication Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IMPLICATION_FEATURE_RULE_FEATURE_COUNT = BINARY_FEATURE_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Implication Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IMPLICATION_FEATURE_RULE_OPERATION_COUNT = BINARY_FEATURE_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.OrFeatureRuleImpl <em>Or Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.OrFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getOrFeatureRule() + * @generated + */ + int OR_FEATURE_RULE = 29; + + /** + * The feature id for the '<em><b>Rules</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int OR_FEATURE_RULE__RULES = NARY_FEATURE_RULE__RULES; + + /** + * The number of structural features of the '<em>Or Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int OR_FEATURE_RULE_FEATURE_COUNT = NARY_FEATURE_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Or Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int OR_FEATURE_RULE_OPERATION_COUNT = NARY_FEATURE_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.AndFeatureRuleImpl <em>And Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.AndFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getAndFeatureRule() + * @generated + */ + int AND_FEATURE_RULE = 30; + + /** + * The feature id for the '<em><b>Rules</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AND_FEATURE_RULE__RULES = NARY_FEATURE_RULE__RULES; + + /** + * The number of structural features of the '<em>And Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AND_FEATURE_RULE_FEATURE_COUNT = NARY_FEATURE_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>And Feature Rule</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AND_FEATURE_RULE_OPERATION_COUNT = NARY_FEATURE_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.SourceEqualsTargetImpl <em>Source Equals Target</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.SourceEqualsTargetImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getSourceEqualsTarget() + * @generated + */ + int SOURCE_EQUALS_TARGET = 31; + + /** + * The number of structural features of the '<em>Source Equals Target</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SOURCE_EQUALS_TARGET_FEATURE_COUNT = CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Source Equals Target</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SOURCE_EQUALS_TARGET_OPERATION_COUNT = CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.SourceEqualsTargetTypeImpl <em>Source Equals Target Type</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.SourceEqualsTargetTypeImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getSourceEqualsTargetType() + * @generated + */ + int SOURCE_EQUALS_TARGET_TYPE = 32; + + /** + * The number of structural features of the '<em>Source Equals Target Type</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SOURCE_EQUALS_TARGET_TYPE_FEATURE_COUNT = CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Source Equals Target Type</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SOURCE_EQUALS_TARGET_TYPE_OPERATION_COUNT = CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.impl.InCompartmentImpl <em>In Compartment</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.InCompartmentImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getInCompartment() + * @generated + */ + int IN_COMPARTMENT = 33; + + /** + * The number of structural features of the '<em>In Compartment</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IN_COMPARTMENT_FEATURE_COUNT = CONSTRAINT_RULE_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>In Compartment</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IN_COMPARTMENT_OPERATION_COUNT = CONSTRAINT_RULE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link Editpolicymodel.ActionEnum <em>Action Enum</em>}' enum. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.ActionEnum + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getActionEnum() + * @generated + */ + int ACTION_ENUM = 34; + + /** + * The meta object id for the '{@link Editpolicymodel.TypeEnum <em>Type Enum</em>}' enum. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.TypeEnum + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getTypeEnum() + * @generated + */ + int TYPE_ENUM = 35; + + /** + * The meta object id for the '{@link Editpolicymodel.FeatureNameEnum <em>Feature Name Enum</em>}' enum. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.FeatureNameEnum + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getFeatureNameEnum() + * @generated + */ + int FEATURE_NAME_ENUM = 36; + + + /** + * Returns the meta object for class '{@link Editpolicymodel.Model <em>Model</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Model</em>'. + * @see Editpolicymodel.Model + * @generated + */ + EClass getModel(); + + /** + * Returns the meta object for the containment reference list '{@link Editpolicymodel.Model#getPolicies <em>Policies</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Policies</em>'. + * @see Editpolicymodel.Model#getPolicies() + * @see #getModel() + * @generated + */ + EReference getModel_Policies(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.Policy <em>Policy</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Policy</em>'. + * @see Editpolicymodel.Policy + * @generated + */ + EClass getPolicy(); + + /** + * Returns the meta object for the attribute '{@link Editpolicymodel.Policy#getOverride <em>Override</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Override</em>'. + * @see Editpolicymodel.Policy#getOverride() + * @see #getPolicy() + * @generated + */ + EAttribute getPolicy_Override(); + + /** + * Returns the meta object for the attribute '{@link Editpolicymodel.Policy#getAction <em>Action</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Action</em>'. + * @see Editpolicymodel.Policy#getAction() + * @see #getPolicy() + * @generated + */ + EAttribute getPolicy_Action(); + + /** + * Returns the meta object for the attribute '{@link Editpolicymodel.Policy#getActionType <em>Action Type</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Action Type</em>'. + * @see Editpolicymodel.Policy#getActionType() + * @see #getPolicy() + * @generated + */ + EAttribute getPolicy_ActionType(); + + /** + * Returns the meta object for the containment reference '{@link Editpolicymodel.Policy#getFeatureRule <em>Feature Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Feature Rule</em>'. + * @see Editpolicymodel.Policy#getFeatureRule() + * @see #getPolicy() + * @generated + */ + EReference getPolicy_FeatureRule(); + + /** + * Returns the meta object for the containment reference '{@link Editpolicymodel.Policy#getConstraintRule <em>Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Constraint Rule</em>'. + * @see Editpolicymodel.Policy#getConstraintRule() + * @see #getPolicy() + * @generated + */ + EReference getPolicy_ConstraintRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.ContainsCompartment <em>Contains Compartment</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Contains Compartment</em>'. + * @see Editpolicymodel.ContainsCompartment + * @generated + */ + EClass getContainsCompartment(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.IsTarget <em>Is Target</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Is Target</em>'. + * @see Editpolicymodel.IsTarget + * @generated + */ + EClass getIsTarget(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.IsParent <em>Is Parent</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Is Parent</em>'. + * @see Editpolicymodel.IsParent + * @generated + */ + EClass getIsParent(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.FeatureRule <em>Feature Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Feature Rule</em>'. + * @see Editpolicymodel.FeatureRule + * @generated + */ + EClass getFeatureRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.IsFeature <em>Is Feature</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Is Feature</em>'. + * @see Editpolicymodel.IsFeature + * @generated + */ + EClass getIsFeature(); + + /** + * Returns the meta object for the attribute '{@link Editpolicymodel.IsFeature#getFeatureName <em>Feature Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Feature Name</em>'. + * @see Editpolicymodel.IsFeature#getFeatureName() + * @see #getIsFeature() + * @generated + */ + EAttribute getIsFeature_FeatureName(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.ConstraintRule <em>Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Constraint Rule</em>'. + * @see Editpolicymodel.ConstraintRule + * @generated + */ + EClass getConstraintRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.IsTargetType <em>Is Target Type</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Is Target Type</em>'. + * @see Editpolicymodel.IsTargetType + * @generated + */ + EClass getIsTargetType(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.UnaryConstraintRule <em>Unary Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Unary Constraint Rule</em>'. + * @see Editpolicymodel.UnaryConstraintRule + * @generated + */ + EClass getUnaryConstraintRule(); + + /** + * Returns the meta object for the containment reference '{@link Editpolicymodel.UnaryConstraintRule#getRule <em>Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Rule</em>'. + * @see Editpolicymodel.UnaryConstraintRule#getRule() + * @see #getUnaryConstraintRule() + * @generated + */ + EReference getUnaryConstraintRule_Rule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.NotConstraintRule <em>Not Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Not Constraint Rule</em>'. + * @see Editpolicymodel.NotConstraintRule + * @generated + */ + EClass getNotConstraintRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.AndConstraintRule <em>And Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>And Constraint Rule</em>'. + * @see Editpolicymodel.AndConstraintRule + * @generated + */ + EClass getAndConstraintRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.BinaryConstraintRule <em>Binary Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Binary Constraint Rule</em>'. + * @see Editpolicymodel.BinaryConstraintRule + * @generated + */ + EClass getBinaryConstraintRule(); + + /** + * Returns the meta object for the containment reference '{@link Editpolicymodel.BinaryConstraintRule#getLeftRule <em>Left Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Left Rule</em>'. + * @see Editpolicymodel.BinaryConstraintRule#getLeftRule() + * @see #getBinaryConstraintRule() + * @generated + */ + EReference getBinaryConstraintRule_LeftRule(); + + /** + * Returns the meta object for the containment reference '{@link Editpolicymodel.BinaryConstraintRule#getRightRule <em>Right Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Right Rule</em>'. + * @see Editpolicymodel.BinaryConstraintRule#getRightRule() + * @see #getBinaryConstraintRule() + * @generated + */ + EReference getBinaryConstraintRule_RightRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.TrueConstraintRule <em>True Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>True Constraint Rule</em>'. + * @see Editpolicymodel.TrueConstraintRule + * @generated + */ + EClass getTrueConstraintRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.FalseConstraintRule <em>False Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>False Constraint Rule</em>'. + * @see Editpolicymodel.FalseConstraintRule + * @generated + */ + EClass getFalseConstraintRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.OrConstraintRule <em>Or Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Or Constraint Rule</em>'. + * @see Editpolicymodel.OrConstraintRule + * @generated + */ + EClass getOrConstraintRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.ImplicationConstraintRule <em>Implication Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Implication Constraint Rule</em>'. + * @see Editpolicymodel.ImplicationConstraintRule + * @generated + */ + EClass getImplicationConstraintRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.IsSourceType <em>Is Source Type</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Is Source Type</em>'. + * @see Editpolicymodel.IsSourceType + * @generated + */ + EClass getIsSourceType(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.TypeArgumentRule <em>Type Argument Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Type Argument Rule</em>'. + * @see Editpolicymodel.TypeArgumentRule + * @generated + */ + EClass getTypeArgumentRule(); + + /** + * Returns the meta object for the attribute '{@link Editpolicymodel.TypeArgumentRule#getType <em>Type</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Type</em>'. + * @see Editpolicymodel.TypeArgumentRule#getType() + * @see #getTypeArgumentRule() + * @generated + */ + EAttribute getTypeArgumentRule_Type(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.NaryConstraintRule <em>Nary Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Nary Constraint Rule</em>'. + * @see Editpolicymodel.NaryConstraintRule + * @generated + */ + EClass getNaryConstraintRule(); + + /** + * Returns the meta object for the containment reference list '{@link Editpolicymodel.NaryConstraintRule#getRules <em>Rules</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Rules</em>'. + * @see Editpolicymodel.NaryConstraintRule#getRules() + * @see #getNaryConstraintRule() + * @generated + */ + EReference getNaryConstraintRule_Rules(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.LogicalConstraintRule <em>Logical Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Logical Constraint Rule</em>'. + * @see Editpolicymodel.LogicalConstraintRule + * @generated + */ + EClass getLogicalConstraintRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.TrueFeatureRule <em>True Feature Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>True Feature Rule</em>'. + * @see Editpolicymodel.TrueFeatureRule + * @generated + */ + EClass getTrueFeatureRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.NotFeatureRule <em>Not Feature Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Not Feature Rule</em>'. + * @see Editpolicymodel.NotFeatureRule + * @generated + */ + EClass getNotFeatureRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.FalseFeatureRule <em>False Feature Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>False Feature Rule</em>'. + * @see Editpolicymodel.FalseFeatureRule + * @generated + */ + EClass getFalseFeatureRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.NaryFeatureRule <em>Nary Feature Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Nary Feature Rule</em>'. + * @see Editpolicymodel.NaryFeatureRule + * @generated + */ + EClass getNaryFeatureRule(); + + /** + * Returns the meta object for the containment reference list '{@link Editpolicymodel.NaryFeatureRule#getRules <em>Rules</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Rules</em>'. + * @see Editpolicymodel.NaryFeatureRule#getRules() + * @see #getNaryFeatureRule() + * @generated + */ + EReference getNaryFeatureRule_Rules(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.BinaryFeatureRule <em>Binary Feature Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Binary Feature Rule</em>'. + * @see Editpolicymodel.BinaryFeatureRule + * @generated + */ + EClass getBinaryFeatureRule(); + + /** + * Returns the meta object for the containment reference '{@link Editpolicymodel.BinaryFeatureRule#getRightRule <em>Right Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Right Rule</em>'. + * @see Editpolicymodel.BinaryFeatureRule#getRightRule() + * @see #getBinaryFeatureRule() + * @generated + */ + EReference getBinaryFeatureRule_RightRule(); + + /** + * Returns the meta object for the containment reference '{@link Editpolicymodel.BinaryFeatureRule#getLeftRule <em>Left Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Left Rule</em>'. + * @see Editpolicymodel.BinaryFeatureRule#getLeftRule() + * @see #getBinaryFeatureRule() + * @generated + */ + EReference getBinaryFeatureRule_LeftRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.LogicalFeatureRule <em>Logical Feature Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Logical Feature Rule</em>'. + * @see Editpolicymodel.LogicalFeatureRule + * @generated + */ + EClass getLogicalFeatureRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.ImplicationFeatureRule <em>Implication Feature Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Implication Feature Rule</em>'. + * @see Editpolicymodel.ImplicationFeatureRule + * @generated + */ + EClass getImplicationFeatureRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.UnaryFeatureRule <em>Unary Feature Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Unary Feature Rule</em>'. + * @see Editpolicymodel.UnaryFeatureRule + * @generated + */ + EClass getUnaryFeatureRule(); + + /** + * Returns the meta object for the containment reference '{@link Editpolicymodel.UnaryFeatureRule#getRule <em>Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Rule</em>'. + * @see Editpolicymodel.UnaryFeatureRule#getRule() + * @see #getUnaryFeatureRule() + * @generated + */ + EReference getUnaryFeatureRule_Rule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.OrFeatureRule <em>Or Feature Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Or Feature Rule</em>'. + * @see Editpolicymodel.OrFeatureRule + * @generated + */ + EClass getOrFeatureRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.AndFeatureRule <em>And Feature Rule</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>And Feature Rule</em>'. + * @see Editpolicymodel.AndFeatureRule + * @generated + */ + EClass getAndFeatureRule(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.SourceEqualsTarget <em>Source Equals Target</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Source Equals Target</em>'. + * @see Editpolicymodel.SourceEqualsTarget + * @generated + */ + EClass getSourceEqualsTarget(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.SourceEqualsTargetType <em>Source Equals Target Type</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Source Equals Target Type</em>'. + * @see Editpolicymodel.SourceEqualsTargetType + * @generated + */ + EClass getSourceEqualsTargetType(); + + /** + * Returns the meta object for class '{@link Editpolicymodel.InCompartment <em>In Compartment</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>In Compartment</em>'. + * @see Editpolicymodel.InCompartment + * @generated + */ + EClass getInCompartment(); + + /** + * Returns the meta object for enum '{@link Editpolicymodel.ActionEnum <em>Action Enum</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for enum '<em>Action Enum</em>'. + * @see Editpolicymodel.ActionEnum + * @generated + */ + EEnum getActionEnum(); + + /** + * Returns the meta object for enum '{@link Editpolicymodel.TypeEnum <em>Type Enum</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for enum '<em>Type Enum</em>'. + * @see Editpolicymodel.TypeEnum + * @generated + */ + EEnum getTypeEnum(); + + /** + * Returns the meta object for enum '{@link Editpolicymodel.FeatureNameEnum <em>Feature Name Enum</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for enum '<em>Feature Name Enum</em>'. + * @see Editpolicymodel.FeatureNameEnum + * @generated + */ + EEnum getFeatureNameEnum(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the factory that creates the instances of the model. + * @generated + */ + EditpolicymodelFactory getEditpolicymodelFactory(); + + /** + * <!-- begin-user-doc --> + * Defines literals for the meta objects that represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link Editpolicymodel.impl.ModelImpl <em>Model</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.ModelImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getModel() + * @generated + */ + EClass MODEL = eINSTANCE.getModel(); + + /** + * The meta object literal for the '<em><b>Policies</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference MODEL__POLICIES = eINSTANCE.getModel_Policies(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.PolicyImpl <em>Policy</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.PolicyImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getPolicy() + * @generated + */ + EClass POLICY = eINSTANCE.getPolicy(); + + /** + * The meta object literal for the '<em><b>Override</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute POLICY__OVERRIDE = eINSTANCE.getPolicy_Override(); + + /** + * The meta object literal for the '<em><b>Action</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute POLICY__ACTION = eINSTANCE.getPolicy_Action(); + + /** + * The meta object literal for the '<em><b>Action Type</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute POLICY__ACTION_TYPE = eINSTANCE.getPolicy_ActionType(); + + /** + * The meta object literal for the '<em><b>Feature Rule</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference POLICY__FEATURE_RULE = eINSTANCE.getPolicy_FeatureRule(); + + /** + * The meta object literal for the '<em><b>Constraint Rule</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference POLICY__CONSTRAINT_RULE = eINSTANCE.getPolicy_ConstraintRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.ContainsCompartmentImpl <em>Contains Compartment</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.ContainsCompartmentImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getContainsCompartment() + * @generated + */ + EClass CONTAINS_COMPARTMENT = eINSTANCE.getContainsCompartment(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.IsTargetImpl <em>Is Target</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.IsTargetImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getIsTarget() + * @generated + */ + EClass IS_TARGET = eINSTANCE.getIsTarget(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.IsParentImpl <em>Is Parent</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.IsParentImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getIsParent() + * @generated + */ + EClass IS_PARENT = eINSTANCE.getIsParent(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.FeatureRuleImpl <em>Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.FeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getFeatureRule() + * @generated + */ + EClass FEATURE_RULE = eINSTANCE.getFeatureRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.IsFeatureImpl <em>Is Feature</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.IsFeatureImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getIsFeature() + * @generated + */ + EClass IS_FEATURE = eINSTANCE.getIsFeature(); + + /** + * The meta object literal for the '<em><b>Feature Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute IS_FEATURE__FEATURE_NAME = eINSTANCE.getIsFeature_FeatureName(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.ConstraintRuleImpl <em>Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.ConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getConstraintRule() + * @generated + */ + EClass CONSTRAINT_RULE = eINSTANCE.getConstraintRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.IsTargetTypeImpl <em>Is Target Type</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.IsTargetTypeImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getIsTargetType() + * @generated + */ + EClass IS_TARGET_TYPE = eINSTANCE.getIsTargetType(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.UnaryConstraintRuleImpl <em>Unary Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.UnaryConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getUnaryConstraintRule() + * @generated + */ + EClass UNARY_CONSTRAINT_RULE = eINSTANCE.getUnaryConstraintRule(); + + /** + * The meta object literal for the '<em><b>Rule</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference UNARY_CONSTRAINT_RULE__RULE = eINSTANCE.getUnaryConstraintRule_Rule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.NotConstraintRuleImpl <em>Not Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.NotConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getNotConstraintRule() + * @generated + */ + EClass NOT_CONSTRAINT_RULE = eINSTANCE.getNotConstraintRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.AndConstraintRuleImpl <em>And Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.AndConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getAndConstraintRule() + * @generated + */ + EClass AND_CONSTRAINT_RULE = eINSTANCE.getAndConstraintRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.BinaryConstraintRuleImpl <em>Binary Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.BinaryConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getBinaryConstraintRule() + * @generated + */ + EClass BINARY_CONSTRAINT_RULE = eINSTANCE.getBinaryConstraintRule(); + + /** + * The meta object literal for the '<em><b>Left Rule</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference BINARY_CONSTRAINT_RULE__LEFT_RULE = eINSTANCE.getBinaryConstraintRule_LeftRule(); + + /** + * The meta object literal for the '<em><b>Right Rule</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference BINARY_CONSTRAINT_RULE__RIGHT_RULE = eINSTANCE.getBinaryConstraintRule_RightRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.TrueConstraintRuleImpl <em>True Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.TrueConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getTrueConstraintRule() + * @generated + */ + EClass TRUE_CONSTRAINT_RULE = eINSTANCE.getTrueConstraintRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.FalseConstraintRuleImpl <em>False Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.FalseConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getFalseConstraintRule() + * @generated + */ + EClass FALSE_CONSTRAINT_RULE = eINSTANCE.getFalseConstraintRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.OrConstraintRuleImpl <em>Or Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.OrConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getOrConstraintRule() + * @generated + */ + EClass OR_CONSTRAINT_RULE = eINSTANCE.getOrConstraintRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.ImplicationConstraintRuleImpl <em>Implication Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.ImplicationConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getImplicationConstraintRule() + * @generated + */ + EClass IMPLICATION_CONSTRAINT_RULE = eINSTANCE.getImplicationConstraintRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.IsSourceTypeImpl <em>Is Source Type</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.IsSourceTypeImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getIsSourceType() + * @generated + */ + EClass IS_SOURCE_TYPE = eINSTANCE.getIsSourceType(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.TypeArgumentRuleImpl <em>Type Argument Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.TypeArgumentRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getTypeArgumentRule() + * @generated + */ + EClass TYPE_ARGUMENT_RULE = eINSTANCE.getTypeArgumentRule(); + + /** + * The meta object literal for the '<em><b>Type</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute TYPE_ARGUMENT_RULE__TYPE = eINSTANCE.getTypeArgumentRule_Type(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.NaryConstraintRuleImpl <em>Nary Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.NaryConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getNaryConstraintRule() + * @generated + */ + EClass NARY_CONSTRAINT_RULE = eINSTANCE.getNaryConstraintRule(); + + /** + * The meta object literal for the '<em><b>Rules</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference NARY_CONSTRAINT_RULE__RULES = eINSTANCE.getNaryConstraintRule_Rules(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.LogicalConstraintRuleImpl <em>Logical Constraint Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.LogicalConstraintRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getLogicalConstraintRule() + * @generated + */ + EClass LOGICAL_CONSTRAINT_RULE = eINSTANCE.getLogicalConstraintRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.TrueFeatureRuleImpl <em>True Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.TrueFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getTrueFeatureRule() + * @generated + */ + EClass TRUE_FEATURE_RULE = eINSTANCE.getTrueFeatureRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.NotFeatureRuleImpl <em>Not Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.NotFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getNotFeatureRule() + * @generated + */ + EClass NOT_FEATURE_RULE = eINSTANCE.getNotFeatureRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.FalseFeatureRuleImpl <em>False Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.FalseFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getFalseFeatureRule() + * @generated + */ + EClass FALSE_FEATURE_RULE = eINSTANCE.getFalseFeatureRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.NaryFeatureRuleImpl <em>Nary Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.NaryFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getNaryFeatureRule() + * @generated + */ + EClass NARY_FEATURE_RULE = eINSTANCE.getNaryFeatureRule(); + + /** + * The meta object literal for the '<em><b>Rules</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference NARY_FEATURE_RULE__RULES = eINSTANCE.getNaryFeatureRule_Rules(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.BinaryFeatureRuleImpl <em>Binary Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.BinaryFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getBinaryFeatureRule() + * @generated + */ + EClass BINARY_FEATURE_RULE = eINSTANCE.getBinaryFeatureRule(); + + /** + * The meta object literal for the '<em><b>Right Rule</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference BINARY_FEATURE_RULE__RIGHT_RULE = eINSTANCE.getBinaryFeatureRule_RightRule(); + + /** + * The meta object literal for the '<em><b>Left Rule</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference BINARY_FEATURE_RULE__LEFT_RULE = eINSTANCE.getBinaryFeatureRule_LeftRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.LogicalFeatureRuleImpl <em>Logical Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.LogicalFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getLogicalFeatureRule() + * @generated + */ + EClass LOGICAL_FEATURE_RULE = eINSTANCE.getLogicalFeatureRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.ImplicationFeatureRuleImpl <em>Implication Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.ImplicationFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getImplicationFeatureRule() + * @generated + */ + EClass IMPLICATION_FEATURE_RULE = eINSTANCE.getImplicationFeatureRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.UnaryFeatureRuleImpl <em>Unary Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.UnaryFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getUnaryFeatureRule() + * @generated + */ + EClass UNARY_FEATURE_RULE = eINSTANCE.getUnaryFeatureRule(); + + /** + * The meta object literal for the '<em><b>Rule</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference UNARY_FEATURE_RULE__RULE = eINSTANCE.getUnaryFeatureRule_Rule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.OrFeatureRuleImpl <em>Or Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.OrFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getOrFeatureRule() + * @generated + */ + EClass OR_FEATURE_RULE = eINSTANCE.getOrFeatureRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.AndFeatureRuleImpl <em>And Feature Rule</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.AndFeatureRuleImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getAndFeatureRule() + * @generated + */ + EClass AND_FEATURE_RULE = eINSTANCE.getAndFeatureRule(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.SourceEqualsTargetImpl <em>Source Equals Target</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.SourceEqualsTargetImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getSourceEqualsTarget() + * @generated + */ + EClass SOURCE_EQUALS_TARGET = eINSTANCE.getSourceEqualsTarget(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.SourceEqualsTargetTypeImpl <em>Source Equals Target Type</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.SourceEqualsTargetTypeImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getSourceEqualsTargetType() + * @generated + */ + EClass SOURCE_EQUALS_TARGET_TYPE = eINSTANCE.getSourceEqualsTargetType(); + + /** + * The meta object literal for the '{@link Editpolicymodel.impl.InCompartmentImpl <em>In Compartment</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.impl.InCompartmentImpl + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getInCompartment() + * @generated + */ + EClass IN_COMPARTMENT = eINSTANCE.getInCompartment(); + + /** + * The meta object literal for the '{@link Editpolicymodel.ActionEnum <em>Action Enum</em>}' enum. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.ActionEnum + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getActionEnum() + * @generated + */ + EEnum ACTION_ENUM = eINSTANCE.getActionEnum(); + + /** + * The meta object literal for the '{@link Editpolicymodel.TypeEnum <em>Type Enum</em>}' enum. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.TypeEnum + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getTypeEnum() + * @generated + */ + EEnum TYPE_ENUM = eINSTANCE.getTypeEnum(); + + /** + * The meta object literal for the '{@link Editpolicymodel.FeatureNameEnum <em>Feature Name Enum</em>}' enum. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see Editpolicymodel.FeatureNameEnum + * @see Editpolicymodel.impl.EditpolicymodelPackageImpl#getFeatureNameEnum() + * @generated + */ + EEnum FEATURE_NAME_ENUM = eINSTANCE.getFeatureNameEnum(); + + } + +} //EditpolicymodelPackage diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/FalseConstraintRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/FalseConstraintRule.java new file mode 100644 index 00000000..581f27ac --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/FalseConstraintRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>False Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getFalseConstraintRule() + * @model + * @generated + */ +public interface FalseConstraintRule extends LogicalConstraintRule { +} // FalseConstraintRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/FalseFeatureRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/FalseFeatureRule.java new file mode 100644 index 00000000..8c036af0 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/FalseFeatureRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>False Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getFalseFeatureRule() + * @model + * @generated + */ +public interface FalseFeatureRule extends LogicalFeatureRule { +} // FalseFeatureRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/FeatureNameEnum.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/FeatureNameEnum.java new file mode 100644 index 00000000..a4b1a248 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/FeatureNameEnum.java @@ -0,0 +1,1159 @@ +/** + */ +package Editpolicymodel; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * <!-- begin-user-doc --> + * A representation of the literals of the enumeration '<em><b>Feature Name Enum</b></em>', + * and utility methods for working with them. + * <!-- end-user-doc --> + * @see Editpolicymodel.EditpolicymodelPackage#getFeatureNameEnum() + * @model + * @generated + */ +public enum FeatureNameEnum implements Enumerator { + /** + * The '<em><b>Roles</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLES_VALUE + * @generated + * @ordered + */ + ROLES(0, "Roles", "Roles"), + + /** + * The '<em><b>Role Types</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_TYPES_VALUE + * @generated + * @ordered + */ + ROLE_TYPES(1, "Role_Types", "Role_Types"), + + /** + * The '<em><b>Role Structure</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_STRUCTURE_VALUE + * @generated + * @ordered + */ + ROLE_STRUCTURE(2, "Role_Structure", "Role_Structure"), + + /** + * The '<em><b>Role Properties</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_PROPERTIES_VALUE + * @generated + * @ordered + */ + ROLE_PROPERTIES(3, "Role_Properties", "Role_Properties"), + + /** + * The '<em><b>Role Prohibition</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_PROHIBITION_VALUE + * @generated + * @ordered + */ + ROLE_PROHIBITION(4, "Role_Prohibition", "Role_Prohibition"), + + /** + * The '<em><b>Role Inheritance</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_INHERITANCE_VALUE + * @generated + * @ordered + */ + ROLE_INHERITANCE(5, "Role_Inheritance", "Role_Inheritance"), + + /** + * The '<em><b>Role Implication</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_IMPLICATION_VALUE + * @generated + * @ordered + */ + ROLE_IMPLICATION(6, "Role_Implication", "Role_Implication"), + + /** + * The '<em><b>Role Equivalence</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_EQUIVALENCE_VALUE + * @generated + * @ordered + */ + ROLE_EQUIVALENCE(7, "Role_Equivalence", "Role_Equivalence"), + + /** + * The '<em><b>Role Constraints</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_CONSTRAINTS_VALUE + * @generated + * @ordered + */ + ROLE_CONSTRAINTS(8, "Role_Constraints", "Role_Constraints"), + + /** + * The '<em><b>Role Behavior</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_BEHAVIOR_VALUE + * @generated + * @ordered + */ + ROLE_BEHAVIOR(9, "Role_Behavior", "Role_Behavior"), + + /** + * The '<em><b>RML Feature Model</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #RML_FEATURE_MODEL_VALUE + * @generated + * @ordered + */ + RML_FEATURE_MODEL(10, "RML_Feature_Model", "RML_Feature_Model"), + + /** + * The '<em><b>Relationships</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #RELATIONSHIPS_VALUE + * @generated + * @ordered + */ + RELATIONSHIPS(11, "Relationships", "Relationships"), + + /** + * The '<em><b>Relationship Constraints</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #RELATIONSHIP_CONSTRAINTS_VALUE + * @generated + * @ordered + */ + RELATIONSHIP_CONSTRAINTS(12, "Relationship_Constraints", "Relationship_Constraints"), + + /** + * The '<em><b>Relationship Cardinality</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #RELATIONSHIP_CARDINALITY_VALUE + * @generated + * @ordered + */ + RELATIONSHIP_CARDINALITY(13, "Relationship_Cardinality", "Relationship_Cardinality"), + + /** + * The '<em><b>Players</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #PLAYERS_VALUE + * @generated + * @ordered + */ + PLAYERS(14, "Players", "Players"), + + /** + * The '<em><b>Playable by Defining Compartment</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #PLAYABLE_BY_DEFINING_COMPARTMENT_VALUE + * @generated + * @ordered + */ + PLAYABLE_BY_DEFINING_COMPARTMENT(15, "Playable_by_Defining_Compartment", "Playable_by_Defining_Compartment"), + + /** + * The '<em><b>Playable</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #PLAYABLE_VALUE + * @generated + * @ordered + */ + PLAYABLE(16, "Playable", "Playable"), + + /** + * The '<em><b>Parthood Constraints</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #PARTHOOD_CONSTRAINTS_VALUE + * @generated + * @ordered + */ + PARTHOOD_CONSTRAINTS(17, "Parthood_Constraints", "Parthood_Constraints"), + + /** + * The '<em><b>On Relationships</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ON_RELATIONSHIPS_VALUE + * @generated + * @ordered + */ + ON_RELATIONSHIPS(18, "On_Relationships", "On_Relationships"), + + /** + * The '<em><b>On Compartments</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ON_COMPARTMENTS_VALUE + * @generated + * @ordered + */ + ON_COMPARTMENTS(19, "On_Compartments", "On_Compartments"), + + /** + * The '<em><b>Occurrence Constraints</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #OCCURRENCE_CONSTRAINTS_VALUE + * @generated + * @ordered + */ + OCCURRENCE_CONSTRAINTS(20, "Occurrence_Constraints", "Occurrence_Constraints"), + + /** + * The '<em><b>Naturals</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #NATURALS_VALUE + * @generated + * @ordered + */ + NATURALS(21, "Naturals", "Naturals"), + + /** + * The '<em><b>Intra Relationship Constraints</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #INTRA_RELATIONSHIP_CONSTRAINTS_VALUE + * @generated + * @ordered + */ + INTRA_RELATIONSHIP_CONSTRAINTS(22, "Intra_Relationship_Constraints", "Intra_Relationship_Constraints"), + + /** + * The '<em><b>Inter Relationship Constraints</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #INTER_RELATIONSHIP_CONSTRAINTS_VALUE + * @generated + * @ordered + */ + INTER_RELATIONSHIP_CONSTRAINTS(23, "Inter_Relationship_Constraints", "Inter_Relationship_Constraints"), + + /** + * The '<em><b>Group Constraints</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #GROUP_CONSTRAINTS_VALUE + * @generated + * @ordered + */ + GROUP_CONSTRAINTS(24, "Group_Constraints", "Group_Constraints"), + + /** + * The '<em><b>Dependent</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #DEPENDENT_VALUE + * @generated + * @ordered + */ + DEPENDENT(25, "Dependent", "Dependent"), + + /** + * The '<em><b>Dates</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #DATES_VALUE + * @generated + * @ordered + */ + DATES(26, "Dates", "Dates"), + + /** + * The '<em><b>Data Types</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #DATA_TYPES_VALUE + * @generated + * @ordered + */ + DATA_TYPES(27, "Data_Types", "Data_Types"), + + /** + * The '<em><b>Compartments</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #COMPARTMENTS_VALUE + * @generated + * @ordered + */ + COMPARTMENTS(28, "Compartments", "Compartments"), + + /** + * The '<em><b>Contains Compartments</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #CONTAINS_COMPARTMENTS_VALUE + * @generated + * @ordered + */ + CONTAINS_COMPARTMENTS(29, "Contains_Compartments", "Contains_Compartments"), + + /** + * The '<em><b>Compartment Types</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #COMPARTMENT_TYPES_VALUE + * @generated + * @ordered + */ + COMPARTMENT_TYPES(30, "Compartment_Types", "Compartment_Types"), + + /** + * The '<em><b>Compartment Structure</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #COMPARTMENT_STRUCTURE_VALUE + * @generated + * @ordered + */ + COMPARTMENT_STRUCTURE(31, "Compartment_Structure", "Compartment_Structure"), + + /** + * The '<em><b>Compartment Properties</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #COMPARTMENT_PROPERTIES_VALUE + * @generated + * @ordered + */ + COMPARTMENT_PROPERTIES(32, "Compartment_Properties", "Compartment_Properties"), + + /** + * The '<em><b>Compartment Inheritance</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #COMPARTMENT_INHERITANCE_VALUE + * @generated + * @ordered + */ + COMPARTMENT_INHERITANCE(33, "Compartment_Inheritance", "Compartment_Inheritance"), + + /** + * The '<em><b>Compartment Behavior</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #COMPARTMENT_BEHAVIOR_VALUE + * @generated + * @ordered + */ + COMPARTMENT_BEHAVIOR(34, "Compartment_Behavior", "Compartment_Behavior"), + + /** + * The '<em><b>Participants</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #PARTICIPANTS_VALUE + * @generated + * @ordered + */ + PARTICIPANTS(35, "Participants", "Participants"), + + /** + * The '<em><b>Data Type Inheritance</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #DATA_TYPE_INHERITANCE_VALUE + * @generated + * @ordered + */ + DATA_TYPE_INHERITANCE(36, "Data_Type_Inheritance", "Data_Type_Inheritance"); + + /** + * The '<em><b>Roles</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Roles</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLES + * @model name="Roles" + * @generated + * @ordered + */ + public static final int ROLES_VALUE = 0; + + /** + * The '<em><b>Role Types</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Types</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_TYPES + * @model name="Role_Types" + * @generated + * @ordered + */ + public static final int ROLE_TYPES_VALUE = 1; + + /** + * The '<em><b>Role Structure</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Structure</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_STRUCTURE + * @model name="Role_Structure" + * @generated + * @ordered + */ + public static final int ROLE_STRUCTURE_VALUE = 2; + + /** + * The '<em><b>Role Properties</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Properties</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_PROPERTIES + * @model name="Role_Properties" + * @generated + * @ordered + */ + public static final int ROLE_PROPERTIES_VALUE = 3; + + /** + * The '<em><b>Role Prohibition</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Prohibition</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_PROHIBITION + * @model name="Role_Prohibition" + * @generated + * @ordered + */ + public static final int ROLE_PROHIBITION_VALUE = 4; + + /** + * The '<em><b>Role Inheritance</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Inheritance</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_INHERITANCE + * @model name="Role_Inheritance" + * @generated + * @ordered + */ + public static final int ROLE_INHERITANCE_VALUE = 5; + + /** + * The '<em><b>Role Implication</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Implication</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_IMPLICATION + * @model name="Role_Implication" + * @generated + * @ordered + */ + public static final int ROLE_IMPLICATION_VALUE = 6; + + /** + * The '<em><b>Role Equivalence</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Equivalence</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_EQUIVALENCE + * @model name="Role_Equivalence" + * @generated + * @ordered + */ + public static final int ROLE_EQUIVALENCE_VALUE = 7; + + /** + * The '<em><b>Role Constraints</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Constraints</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_CONSTRAINTS + * @model name="Role_Constraints" + * @generated + * @ordered + */ + public static final int ROLE_CONSTRAINTS_VALUE = 8; + + /** + * The '<em><b>Role Behavior</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Behavior</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_BEHAVIOR + * @model name="Role_Behavior" + * @generated + * @ordered + */ + public static final int ROLE_BEHAVIOR_VALUE = 9; + + /** + * The '<em><b>RML Feature Model</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>RML Feature Model</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #RML_FEATURE_MODEL + * @model name="RML_Feature_Model" + * @generated + * @ordered + */ + public static final int RML_FEATURE_MODEL_VALUE = 10; + + /** + * The '<em><b>Relationships</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Relationships</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #RELATIONSHIPS + * @model name="Relationships" + * @generated + * @ordered + */ + public static final int RELATIONSHIPS_VALUE = 11; + + /** + * The '<em><b>Relationship Constraints</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Relationship Constraints</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #RELATIONSHIP_CONSTRAINTS + * @model name="Relationship_Constraints" + * @generated + * @ordered + */ + public static final int RELATIONSHIP_CONSTRAINTS_VALUE = 12; + + /** + * The '<em><b>Relationship Cardinality</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Relationship Cardinality</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #RELATIONSHIP_CARDINALITY + * @model name="Relationship_Cardinality" + * @generated + * @ordered + */ + public static final int RELATIONSHIP_CARDINALITY_VALUE = 13; + + /** + * The '<em><b>Players</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Players</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #PLAYERS + * @model name="Players" + * @generated + * @ordered + */ + public static final int PLAYERS_VALUE = 14; + + /** + * The '<em><b>Playable by Defining Compartment</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Playable by Defining Compartment</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #PLAYABLE_BY_DEFINING_COMPARTMENT + * @model name="Playable_by_Defining_Compartment" + * @generated + * @ordered + */ + public static final int PLAYABLE_BY_DEFINING_COMPARTMENT_VALUE = 15; + + /** + * The '<em><b>Playable</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Playable</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #PLAYABLE + * @model name="Playable" + * @generated + * @ordered + */ + public static final int PLAYABLE_VALUE = 16; + + /** + * The '<em><b>Parthood Constraints</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Parthood Constraints</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #PARTHOOD_CONSTRAINTS + * @model name="Parthood_Constraints" + * @generated + * @ordered + */ + public static final int PARTHOOD_CONSTRAINTS_VALUE = 17; + + /** + * The '<em><b>On Relationships</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>On Relationships</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ON_RELATIONSHIPS + * @model name="On_Relationships" + * @generated + * @ordered + */ + public static final int ON_RELATIONSHIPS_VALUE = 18; + + /** + * The '<em><b>On Compartments</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>On Compartments</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ON_COMPARTMENTS + * @model name="On_Compartments" + * @generated + * @ordered + */ + public static final int ON_COMPARTMENTS_VALUE = 19; + + /** + * The '<em><b>Occurrence Constraints</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Occurrence Constraints</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #OCCURRENCE_CONSTRAINTS + * @model name="Occurrence_Constraints" + * @generated + * @ordered + */ + public static final int OCCURRENCE_CONSTRAINTS_VALUE = 20; + + /** + * The '<em><b>Naturals</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Naturals</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #NATURALS + * @model name="Naturals" + * @generated + * @ordered + */ + public static final int NATURALS_VALUE = 21; + + /** + * The '<em><b>Intra Relationship Constraints</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Intra Relationship Constraints</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #INTRA_RELATIONSHIP_CONSTRAINTS + * @model name="Intra_Relationship_Constraints" + * @generated + * @ordered + */ + public static final int INTRA_RELATIONSHIP_CONSTRAINTS_VALUE = 22; + + /** + * The '<em><b>Inter Relationship Constraints</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Inter Relationship Constraints</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #INTER_RELATIONSHIP_CONSTRAINTS + * @model name="Inter_Relationship_Constraints" + * @generated + * @ordered + */ + public static final int INTER_RELATIONSHIP_CONSTRAINTS_VALUE = 23; + + /** + * The '<em><b>Group Constraints</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Group Constraints</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #GROUP_CONSTRAINTS + * @model name="Group_Constraints" + * @generated + * @ordered + */ + public static final int GROUP_CONSTRAINTS_VALUE = 24; + + /** + * The '<em><b>Dependent</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Dependent</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #DEPENDENT + * @model name="Dependent" + * @generated + * @ordered + */ + public static final int DEPENDENT_VALUE = 25; + + /** + * The '<em><b>Dates</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Dates</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #DATES + * @model name="Dates" + * @generated + * @ordered + */ + public static final int DATES_VALUE = 26; + + /** + * The '<em><b>Data Types</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Data Types</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #DATA_TYPES + * @model name="Data_Types" + * @generated + * @ordered + */ + public static final int DATA_TYPES_VALUE = 27; + + /** + * The '<em><b>Compartments</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Compartments</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #COMPARTMENTS + * @model name="Compartments" + * @generated + * @ordered + */ + public static final int COMPARTMENTS_VALUE = 28; + + /** + * The '<em><b>Contains Compartments</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Contains Compartments</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #CONTAINS_COMPARTMENTS + * @model name="Contains_Compartments" + * @generated + * @ordered + */ + public static final int CONTAINS_COMPARTMENTS_VALUE = 29; + + /** + * The '<em><b>Compartment Types</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Compartment Types</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #COMPARTMENT_TYPES + * @model name="Compartment_Types" + * @generated + * @ordered + */ + public static final int COMPARTMENT_TYPES_VALUE = 30; + + /** + * The '<em><b>Compartment Structure</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Compartment Structure</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #COMPARTMENT_STRUCTURE + * @model name="Compartment_Structure" + * @generated + * @ordered + */ + public static final int COMPARTMENT_STRUCTURE_VALUE = 31; + + /** + * The '<em><b>Compartment Properties</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Compartment Properties</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #COMPARTMENT_PROPERTIES + * @model name="Compartment_Properties" + * @generated + * @ordered + */ + public static final int COMPARTMENT_PROPERTIES_VALUE = 32; + + /** + * The '<em><b>Compartment Inheritance</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Compartment Inheritance</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #COMPARTMENT_INHERITANCE + * @model name="Compartment_Inheritance" + * @generated + * @ordered + */ + public static final int COMPARTMENT_INHERITANCE_VALUE = 33; + + /** + * The '<em><b>Compartment Behavior</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Compartment Behavior</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #COMPARTMENT_BEHAVIOR + * @model name="Compartment_Behavior" + * @generated + * @ordered + */ + public static final int COMPARTMENT_BEHAVIOR_VALUE = 34; + + /** + * The '<em><b>Participants</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Participants</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #PARTICIPANTS + * @model name="Participants" + * @generated + * @ordered + */ + public static final int PARTICIPANTS_VALUE = 35; + + /** + * The '<em><b>Data Type Inheritance</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Data Type Inheritance</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #DATA_TYPE_INHERITANCE + * @model name="Data_Type_Inheritance" + * @generated + * @ordered + */ + public static final int DATA_TYPE_INHERITANCE_VALUE = 36; + + /** + * An array of all the '<em><b>Feature Name Enum</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static final FeatureNameEnum[] VALUES_ARRAY = + new FeatureNameEnum[] { + ROLES, + ROLE_TYPES, + ROLE_STRUCTURE, + ROLE_PROPERTIES, + ROLE_PROHIBITION, + ROLE_INHERITANCE, + ROLE_IMPLICATION, + ROLE_EQUIVALENCE, + ROLE_CONSTRAINTS, + ROLE_BEHAVIOR, + RML_FEATURE_MODEL, + RELATIONSHIPS, + RELATIONSHIP_CONSTRAINTS, + RELATIONSHIP_CARDINALITY, + PLAYERS, + PLAYABLE_BY_DEFINING_COMPARTMENT, + PLAYABLE, + PARTHOOD_CONSTRAINTS, + ON_RELATIONSHIPS, + ON_COMPARTMENTS, + OCCURRENCE_CONSTRAINTS, + NATURALS, + INTRA_RELATIONSHIP_CONSTRAINTS, + INTER_RELATIONSHIP_CONSTRAINTS, + GROUP_CONSTRAINTS, + DEPENDENT, + DATES, + DATA_TYPES, + COMPARTMENTS, + CONTAINS_COMPARTMENTS, + COMPARTMENT_TYPES, + COMPARTMENT_STRUCTURE, + COMPARTMENT_PROPERTIES, + COMPARTMENT_INHERITANCE, + COMPARTMENT_BEHAVIOR, + PARTICIPANTS, + DATA_TYPE_INHERITANCE, + }; + + /** + * A public read-only list of all the '<em><b>Feature Name Enum</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List<FeatureNameEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the '<em><b>Feature Name Enum</b></em>' literal with the specified literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param literal the literal. + * @return the matching enumerator or <code>null</code>. + * @generated + */ + public static FeatureNameEnum get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + FeatureNameEnum result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Feature Name Enum</b></em>' literal with the specified name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param name the name. + * @return the matching enumerator or <code>null</code>. + * @generated + */ + public static FeatureNameEnum getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + FeatureNameEnum result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Feature Name Enum</b></em>' literal with the specified integer value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the integer value. + * @return the matching enumerator or <code>null</code>. + * @generated + */ + public static FeatureNameEnum get(int value) { + switch (value) { + case ROLES_VALUE: return ROLES; + case ROLE_TYPES_VALUE: return ROLE_TYPES; + case ROLE_STRUCTURE_VALUE: return ROLE_STRUCTURE; + case ROLE_PROPERTIES_VALUE: return ROLE_PROPERTIES; + case ROLE_PROHIBITION_VALUE: return ROLE_PROHIBITION; + case ROLE_INHERITANCE_VALUE: return ROLE_INHERITANCE; + case ROLE_IMPLICATION_VALUE: return ROLE_IMPLICATION; + case ROLE_EQUIVALENCE_VALUE: return ROLE_EQUIVALENCE; + case ROLE_CONSTRAINTS_VALUE: return ROLE_CONSTRAINTS; + case ROLE_BEHAVIOR_VALUE: return ROLE_BEHAVIOR; + case RML_FEATURE_MODEL_VALUE: return RML_FEATURE_MODEL; + case RELATIONSHIPS_VALUE: return RELATIONSHIPS; + case RELATIONSHIP_CONSTRAINTS_VALUE: return RELATIONSHIP_CONSTRAINTS; + case RELATIONSHIP_CARDINALITY_VALUE: return RELATIONSHIP_CARDINALITY; + case PLAYERS_VALUE: return PLAYERS; + case PLAYABLE_BY_DEFINING_COMPARTMENT_VALUE: return PLAYABLE_BY_DEFINING_COMPARTMENT; + case PLAYABLE_VALUE: return PLAYABLE; + case PARTHOOD_CONSTRAINTS_VALUE: return PARTHOOD_CONSTRAINTS; + case ON_RELATIONSHIPS_VALUE: return ON_RELATIONSHIPS; + case ON_COMPARTMENTS_VALUE: return ON_COMPARTMENTS; + case OCCURRENCE_CONSTRAINTS_VALUE: return OCCURRENCE_CONSTRAINTS; + case NATURALS_VALUE: return NATURALS; + case INTRA_RELATIONSHIP_CONSTRAINTS_VALUE: return INTRA_RELATIONSHIP_CONSTRAINTS; + case INTER_RELATIONSHIP_CONSTRAINTS_VALUE: return INTER_RELATIONSHIP_CONSTRAINTS; + case GROUP_CONSTRAINTS_VALUE: return GROUP_CONSTRAINTS; + case DEPENDENT_VALUE: return DEPENDENT; + case DATES_VALUE: return DATES; + case DATA_TYPES_VALUE: return DATA_TYPES; + case COMPARTMENTS_VALUE: return COMPARTMENTS; + case CONTAINS_COMPARTMENTS_VALUE: return CONTAINS_COMPARTMENTS; + case COMPARTMENT_TYPES_VALUE: return COMPARTMENT_TYPES; + case COMPARTMENT_STRUCTURE_VALUE: return COMPARTMENT_STRUCTURE; + case COMPARTMENT_PROPERTIES_VALUE: return COMPARTMENT_PROPERTIES; + case COMPARTMENT_INHERITANCE_VALUE: return COMPARTMENT_INHERITANCE; + case COMPARTMENT_BEHAVIOR_VALUE: return COMPARTMENT_BEHAVIOR; + case PARTICIPANTS_VALUE: return PARTICIPANTS; + case DATA_TYPE_INHERITANCE_VALUE: return DATA_TYPE_INHERITANCE; + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final int value; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String name; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private FeatureNameEnum(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getValue() { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + return literal; + } + +} //FeatureNameEnum diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/FeatureRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/FeatureRule.java new file mode 100644 index 00000000..10672253 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/FeatureRule.java @@ -0,0 +1,18 @@ +/** + */ +package Editpolicymodel; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getFeatureRule() + * @model abstract="true" + * @generated + */ +public interface FeatureRule extends EObject { +} // FeatureRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ImplicationConstraintRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ImplicationConstraintRule.java new file mode 100644 index 00000000..c8676134 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ImplicationConstraintRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Implication Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getImplicationConstraintRule() + * @model + * @generated + */ +public interface ImplicationConstraintRule extends BinaryConstraintRule { +} // ImplicationConstraintRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ImplicationFeatureRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ImplicationFeatureRule.java new file mode 100644 index 00000000..22ad94ba --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/ImplicationFeatureRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Implication Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getImplicationFeatureRule() + * @model + * @generated + */ +public interface ImplicationFeatureRule extends BinaryFeatureRule { +} // ImplicationFeatureRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/InCompartment.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/InCompartment.java new file mode 100644 index 00000000..fccb34dd --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/InCompartment.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>In Compartment</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getInCompartment() + * @model + * @generated + */ +public interface InCompartment extends ConstraintRule { +} // InCompartment diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsFeature.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsFeature.java new file mode 100644 index 00000000..7d8d9a37 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsFeature.java @@ -0,0 +1,52 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Is Feature</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link Editpolicymodel.IsFeature#getFeatureName <em>Feature Name</em>}</li> + * </ul> + * + * @see Editpolicymodel.EditpolicymodelPackage#getIsFeature() + * @model + * @generated + */ +public interface IsFeature extends FeatureRule { + /** + * Returns the value of the '<em><b>Feature Name</b></em>' attribute. + * The literals are from the enumeration {@link Editpolicymodel.FeatureNameEnum}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Feature Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Feature Name</em>' attribute. + * @see Editpolicymodel.FeatureNameEnum + * @see #setFeatureName(FeatureNameEnum) + * @see Editpolicymodel.EditpolicymodelPackage#getIsFeature_FeatureName() + * @model required="true" + * @generated + */ + FeatureNameEnum getFeatureName(); + + /** + * Sets the value of the '{@link Editpolicymodel.IsFeature#getFeatureName <em>Feature Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Feature Name</em>' attribute. + * @see Editpolicymodel.FeatureNameEnum + * @see #getFeatureName() + * @generated + */ + void setFeatureName(FeatureNameEnum value); + +} // IsFeature diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsParent.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsParent.java new file mode 100644 index 00000000..6a0b5bf1 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsParent.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Is Parent</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getIsParent() + * @model + * @generated + */ +public interface IsParent extends TypeArgumentRule { +} // IsParent diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsSourceType.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsSourceType.java new file mode 100644 index 00000000..cbd6218d --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsSourceType.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Is Source Type</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getIsSourceType() + * @model + * @generated + */ +public interface IsSourceType extends TypeArgumentRule { +} // IsSourceType diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsTarget.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsTarget.java new file mode 100644 index 00000000..50330a01 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsTarget.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Is Target</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getIsTarget() + * @model + * @generated + */ +public interface IsTarget extends TypeArgumentRule { +} // IsTarget diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsTargetType.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsTargetType.java new file mode 100644 index 00000000..364ba76a --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/IsTargetType.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Is Target Type</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getIsTargetType() + * @model + * @generated + */ +public interface IsTargetType extends TypeArgumentRule { +} // IsTargetType diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/LogicalConstraintRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/LogicalConstraintRule.java new file mode 100644 index 00000000..13adaf46 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/LogicalConstraintRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Logical Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getLogicalConstraintRule() + * @model + * @generated + */ +public interface LogicalConstraintRule extends ConstraintRule { +} // LogicalConstraintRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/LogicalFeatureRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/LogicalFeatureRule.java new file mode 100644 index 00000000..240fdb45 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/LogicalFeatureRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Logical Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getLogicalFeatureRule() + * @model + * @generated + */ +public interface LogicalFeatureRule extends FeatureRule { +} // LogicalFeatureRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/Model.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/Model.java new file mode 100644 index 00000000..c37bc12a --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/Model.java @@ -0,0 +1,42 @@ +/** + */ +package Editpolicymodel; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Model</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link Editpolicymodel.Model#getPolicies <em>Policies</em>}</li> + * </ul> + * + * @see Editpolicymodel.EditpolicymodelPackage#getModel() + * @model + * @generated + */ +public interface Model extends EObject { + /** + * Returns the value of the '<em><b>Policies</b></em>' containment reference list. + * The list contents are of type {@link Editpolicymodel.Policy}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Policies</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Policies</em>' containment reference list. + * @see Editpolicymodel.EditpolicymodelPackage#getModel_Policies() + * @model containment="true" + * @generated + */ + EList<Policy> getPolicies(); + +} // Model diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/NaryConstraintRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/NaryConstraintRule.java new file mode 100644 index 00000000..7896350e --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/NaryConstraintRule.java @@ -0,0 +1,40 @@ +/** + */ +package Editpolicymodel; + +import org.eclipse.emf.common.util.EList; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Nary Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link Editpolicymodel.NaryConstraintRule#getRules <em>Rules</em>}</li> + * </ul> + * + * @see Editpolicymodel.EditpolicymodelPackage#getNaryConstraintRule() + * @model abstract="true" + * @generated + */ +public interface NaryConstraintRule extends LogicalConstraintRule { + /** + * Returns the value of the '<em><b>Rules</b></em>' containment reference list. + * The list contents are of type {@link Editpolicymodel.ConstraintRule}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Rules</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Rules</em>' containment reference list. + * @see Editpolicymodel.EditpolicymodelPackage#getNaryConstraintRule_Rules() + * @model containment="true" required="true" + * @generated + */ + EList<ConstraintRule> getRules(); + +} // NaryConstraintRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/NaryFeatureRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/NaryFeatureRule.java new file mode 100644 index 00000000..e4e802bf --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/NaryFeatureRule.java @@ -0,0 +1,40 @@ +/** + */ +package Editpolicymodel; + +import org.eclipse.emf.common.util.EList; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Nary Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link Editpolicymodel.NaryFeatureRule#getRules <em>Rules</em>}</li> + * </ul> + * + * @see Editpolicymodel.EditpolicymodelPackage#getNaryFeatureRule() + * @model abstract="true" + * @generated + */ +public interface NaryFeatureRule extends LogicalFeatureRule { + /** + * Returns the value of the '<em><b>Rules</b></em>' containment reference list. + * The list contents are of type {@link Editpolicymodel.FeatureRule}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Rules</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Rules</em>' containment reference list. + * @see Editpolicymodel.EditpolicymodelPackage#getNaryFeatureRule_Rules() + * @model containment="true" + * @generated + */ + EList<FeatureRule> getRules(); + +} // NaryFeatureRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/NotConstraintRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/NotConstraintRule.java new file mode 100644 index 00000000..cafd8f50 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/NotConstraintRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Not Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getNotConstraintRule() + * @model + * @generated + */ +public interface NotConstraintRule extends UnaryConstraintRule { +} // NotConstraintRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/NotFeatureRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/NotFeatureRule.java new file mode 100644 index 00000000..70ed71f3 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/NotFeatureRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Not Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getNotFeatureRule() + * @model + * @generated + */ +public interface NotFeatureRule extends UnaryFeatureRule { +} // NotFeatureRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/OrConstraintRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/OrConstraintRule.java new file mode 100644 index 00000000..5c058489 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/OrConstraintRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Or Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getOrConstraintRule() + * @model + * @generated + */ +public interface OrConstraintRule extends NaryConstraintRule { +} // OrConstraintRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/OrFeatureRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/OrFeatureRule.java new file mode 100644 index 00000000..fce03aa4 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/OrFeatureRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Or Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getOrFeatureRule() + * @model + * @generated + */ +public interface OrFeatureRule extends NaryFeatureRule { +} // OrFeatureRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/Policy.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/Policy.java new file mode 100644 index 00000000..1c97a1d7 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/Policy.java @@ -0,0 +1,166 @@ +/** + */ +package Editpolicymodel; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Policy</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link Editpolicymodel.Policy#getOverride <em>Override</em>}</li> + * <li>{@link Editpolicymodel.Policy#getAction <em>Action</em>}</li> + * <li>{@link Editpolicymodel.Policy#getActionType <em>Action Type</em>}</li> + * <li>{@link Editpolicymodel.Policy#getFeatureRule <em>Feature Rule</em>}</li> + * <li>{@link Editpolicymodel.Policy#getConstraintRule <em>Constraint Rule</em>}</li> + * </ul> + * + * @see Editpolicymodel.EditpolicymodelPackage#getPolicy() + * @model + * @generated + */ +public interface Policy extends EObject { + /** + * Returns the value of the '<em><b>Override</b></em>' attribute. + * The default value is <code>"false"</code>. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Override</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Override</em>' attribute. + * @see #setOverride(Boolean) + * @see Editpolicymodel.EditpolicymodelPackage#getPolicy_Override() + * @model default="false" + * @generated + */ + Boolean getOverride(); + + /** + * Sets the value of the '{@link Editpolicymodel.Policy#getOverride <em>Override</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Override</em>' attribute. + * @see #getOverride() + * @generated + */ + void setOverride(Boolean value); + + /** + * Returns the value of the '<em><b>Action</b></em>' attribute. + * The default value is <code>"Create"</code>. + * The literals are from the enumeration {@link Editpolicymodel.ActionEnum}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Action</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Action</em>' attribute. + * @see Editpolicymodel.ActionEnum + * @see #setAction(ActionEnum) + * @see Editpolicymodel.EditpolicymodelPackage#getPolicy_Action() + * @model default="Create" + * @generated + */ + ActionEnum getAction(); + + /** + * Sets the value of the '{@link Editpolicymodel.Policy#getAction <em>Action</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Action</em>' attribute. + * @see Editpolicymodel.ActionEnum + * @see #getAction() + * @generated + */ + void setAction(ActionEnum value); + + /** + * Returns the value of the '<em><b>Action Type</b></em>' attribute. + * The literals are from the enumeration {@link Editpolicymodel.TypeEnum}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Action Type</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Action Type</em>' attribute. + * @see Editpolicymodel.TypeEnum + * @see #setActionType(TypeEnum) + * @see Editpolicymodel.EditpolicymodelPackage#getPolicy_ActionType() + * @model required="true" + * @generated + */ + TypeEnum getActionType(); + + /** + * Sets the value of the '{@link Editpolicymodel.Policy#getActionType <em>Action Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Action Type</em>' attribute. + * @see Editpolicymodel.TypeEnum + * @see #getActionType() + * @generated + */ + void setActionType(TypeEnum value); + + /** + * Returns the value of the '<em><b>Feature Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Feature Rule</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Feature Rule</em>' containment reference. + * @see #setFeatureRule(FeatureRule) + * @see Editpolicymodel.EditpolicymodelPackage#getPolicy_FeatureRule() + * @model containment="true" + * @generated + */ + FeatureRule getFeatureRule(); + + /** + * Sets the value of the '{@link Editpolicymodel.Policy#getFeatureRule <em>Feature Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Feature Rule</em>' containment reference. + * @see #getFeatureRule() + * @generated + */ + void setFeatureRule(FeatureRule value); + + /** + * Returns the value of the '<em><b>Constraint Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Constraint Rule</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Constraint Rule</em>' containment reference. + * @see #setConstraintRule(ConstraintRule) + * @see Editpolicymodel.EditpolicymodelPackage#getPolicy_ConstraintRule() + * @model containment="true" + * @generated + */ + ConstraintRule getConstraintRule(); + + /** + * Sets the value of the '{@link Editpolicymodel.Policy#getConstraintRule <em>Constraint Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Constraint Rule</em>' containment reference. + * @see #getConstraintRule() + * @generated + */ + void setConstraintRule(ConstraintRule value); + +} // Policy diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/SourceEqualsTarget.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/SourceEqualsTarget.java new file mode 100644 index 00000000..72fd263e --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/SourceEqualsTarget.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Source Equals Target</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getSourceEqualsTarget() + * @model + * @generated + */ +public interface SourceEqualsTarget extends ConstraintRule { +} // SourceEqualsTarget diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/SourceEqualsTargetType.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/SourceEqualsTargetType.java new file mode 100644 index 00000000..199fc3cc --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/SourceEqualsTargetType.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Source Equals Target Type</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getSourceEqualsTargetType() + * @model + * @generated + */ +public interface SourceEqualsTargetType extends ConstraintRule { +} // SourceEqualsTargetType diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/TrueConstraintRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/TrueConstraintRule.java new file mode 100644 index 00000000..0b6dc6d1 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/TrueConstraintRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>True Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getTrueConstraintRule() + * @model + * @generated + */ +public interface TrueConstraintRule extends LogicalConstraintRule { +} // TrueConstraintRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/TrueFeatureRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/TrueFeatureRule.java new file mode 100644 index 00000000..e50007dd --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/TrueFeatureRule.java @@ -0,0 +1,17 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>True Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * + * @see Editpolicymodel.EditpolicymodelPackage#getTrueFeatureRule() + * @model + * @generated + */ +public interface TrueFeatureRule extends LogicalFeatureRule { +} // TrueFeatureRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/TypeArgumentRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/TypeArgumentRule.java new file mode 100644 index 00000000..43e07774 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/TypeArgumentRule.java @@ -0,0 +1,52 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Type Argument Rule</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link Editpolicymodel.TypeArgumentRule#getType <em>Type</em>}</li> + * </ul> + * + * @see Editpolicymodel.EditpolicymodelPackage#getTypeArgumentRule() + * @model abstract="true" + * @generated + */ +public interface TypeArgumentRule extends ConstraintRule { + /** + * Returns the value of the '<em><b>Type</b></em>' attribute. + * The literals are from the enumeration {@link Editpolicymodel.TypeEnum}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Type</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Type</em>' attribute. + * @see Editpolicymodel.TypeEnum + * @see #setType(TypeEnum) + * @see Editpolicymodel.EditpolicymodelPackage#getTypeArgumentRule_Type() + * @model + * @generated + */ + TypeEnum getType(); + + /** + * Sets the value of the '{@link Editpolicymodel.TypeArgumentRule#getType <em>Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Type</em>' attribute. + * @see Editpolicymodel.TypeEnum + * @see #getType() + * @generated + */ + void setType(TypeEnum value); + +} // TypeArgumentRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/TypeEnum.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/TypeEnum.java new file mode 100644 index 00000000..d5e87248 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/TypeEnum.java @@ -0,0 +1,646 @@ +/** + */ +package Editpolicymodel; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * <!-- begin-user-doc --> + * A representation of the literals of the enumeration '<em><b>Type Enum</b></em>', + * and utility methods for working with them. + * <!-- end-user-doc --> + * @see Editpolicymodel.EditpolicymodelPackage#getTypeEnum() + * @model + * @generated + */ +public enum TypeEnum implements Enumerator { + /** + * The '<em><b>Acyclic</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ACYCLIC_VALUE + * @generated + * @ordered + */ + ACYCLIC(0, "Acyclic", "Acyclic"), + + /** + * The '<em><b>Compartment Type</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #COMPARTMENT_TYPE_VALUE + * @generated + * @ordered + */ + COMPARTMENT_TYPE(1, "CompartmentType", "CompartmentType"), + + /** + * The '<em><b>Irreflexive</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #IRREFLEXIVE_VALUE + * @generated + * @ordered + */ + IRREFLEXIVE(2, "Irreflexive", "Irreflexive"), + + /** + * The '<em><b>Role Prohibition</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_PROHIBITION_VALUE + * @generated + * @ordered + */ + ROLE_PROHIBITION(3, "RoleProhibition", "RoleProhibition"), + + /** + * The '<em><b>Role Implication</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_IMPLICATION_VALUE + * @generated + * @ordered + */ + ROLE_IMPLICATION(4, "RoleImplication", "RoleImplication"), + + /** + * The '<em><b>Role Group</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_GROUP_VALUE + * @generated + * @ordered + */ + ROLE_GROUP(5, "RoleGroup", "RoleGroup"), + + /** + * The '<em><b>Role Equivalence</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_EQUIVALENCE_VALUE + * @generated + * @ordered + */ + ROLE_EQUIVALENCE(6, "RoleEquivalence", "RoleEquivalence"), + + /** + * The '<em><b>Role Type</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #ROLE_TYPE_VALUE + * @generated + * @ordered + */ + ROLE_TYPE(7, "RoleType", "RoleType"), + + /** + * The '<em><b>Relationship Implication</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #RELATIONSHIP_IMPLICATION_VALUE + * @generated + * @ordered + */ + RELATIONSHIP_IMPLICATION(8, "RelationshipImplication", "RelationshipImplication"), + + /** + * The '<em><b>Relationship Exclusion</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #RELATIONSHIP_EXCLUSION_VALUE + * @generated + * @ordered + */ + RELATIONSHIP_EXCLUSION(9, "RelationshipExclusion", "RelationshipExclusion"), + + /** + * The '<em><b>Relationship</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #RELATIONSHIP_VALUE + * @generated + * @ordered + */ + RELATIONSHIP(10, "Relationship", "Relationship"), + + /** + * The '<em><b>Reflexive</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #REFLEXIVE_VALUE + * @generated + * @ordered + */ + REFLEXIVE(11, "Reflexive", "Reflexive"), + + /** + * The '<em><b>Group</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #GROUP_VALUE + * @generated + * @ordered + */ + GROUP(12, "Group", "Group"), + + /** + * The '<em><b>Inheritance</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #INHERITANCE_VALUE + * @generated + * @ordered + */ + INHERITANCE(13, "Inheritance", "Inheritance"), + + /** + * The '<em><b>Fulfillment</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #FULFILLMENT_VALUE + * @generated + * @ordered + */ + FULFILLMENT(14, "Fulfillment", "Fulfillment"), + + /** + * The '<em><b>Data Type</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #DATA_TYPE_VALUE + * @generated + * @ordered + */ + DATA_TYPE(15, "DataType", "DataType"), + + /** + * The '<em><b>Cyclic</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #CYCLIC_VALUE + * @generated + * @ordered + */ + CYCLIC(16, "Cyclic", "Cyclic"), + + /** + * The '<em><b>Natural Type</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #NATURAL_TYPE_VALUE + * @generated + * @ordered + */ + NATURAL_TYPE(17, "NaturalType", "NaturalType"); + + /** + * The '<em><b>Acyclic</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Acyclic</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ACYCLIC + * @model name="Acyclic" + * @generated + * @ordered + */ + public static final int ACYCLIC_VALUE = 0; + + /** + * The '<em><b>Compartment Type</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Compartment Type</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #COMPARTMENT_TYPE + * @model name="CompartmentType" + * @generated + * @ordered + */ + public static final int COMPARTMENT_TYPE_VALUE = 1; + + /** + * The '<em><b>Irreflexive</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Irreflexive</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #IRREFLEXIVE + * @model name="Irreflexive" + * @generated + * @ordered + */ + public static final int IRREFLEXIVE_VALUE = 2; + + /** + * The '<em><b>Role Prohibition</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Prohibition</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_PROHIBITION + * @model name="RoleProhibition" + * @generated + * @ordered + */ + public static final int ROLE_PROHIBITION_VALUE = 3; + + /** + * The '<em><b>Role Implication</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Implication</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_IMPLICATION + * @model name="RoleImplication" + * @generated + * @ordered + */ + public static final int ROLE_IMPLICATION_VALUE = 4; + + /** + * The '<em><b>Role Group</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Group</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_GROUP + * @model name="RoleGroup" + * @generated + * @ordered + */ + public static final int ROLE_GROUP_VALUE = 5; + + /** + * The '<em><b>Role Equivalence</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Equivalence</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_EQUIVALENCE + * @model name="RoleEquivalence" + * @generated + * @ordered + */ + public static final int ROLE_EQUIVALENCE_VALUE = 6; + + /** + * The '<em><b>Role Type</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Role Type</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #ROLE_TYPE + * @model name="RoleType" + * @generated + * @ordered + */ + public static final int ROLE_TYPE_VALUE = 7; + + /** + * The '<em><b>Relationship Implication</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Relationship Implication</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #RELATIONSHIP_IMPLICATION + * @model name="RelationshipImplication" + * @generated + * @ordered + */ + public static final int RELATIONSHIP_IMPLICATION_VALUE = 8; + + /** + * The '<em><b>Relationship Exclusion</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Relationship Exclusion</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #RELATIONSHIP_EXCLUSION + * @model name="RelationshipExclusion" + * @generated + * @ordered + */ + public static final int RELATIONSHIP_EXCLUSION_VALUE = 9; + + /** + * The '<em><b>Relationship</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Relationship</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #RELATIONSHIP + * @model name="Relationship" + * @generated + * @ordered + */ + public static final int RELATIONSHIP_VALUE = 10; + + /** + * The '<em><b>Reflexive</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Reflexive</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #REFLEXIVE + * @model name="Reflexive" + * @generated + * @ordered + */ + public static final int REFLEXIVE_VALUE = 11; + + /** + * The '<em><b>Group</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Group</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #GROUP + * @model name="Group" + * @generated + * @ordered + */ + public static final int GROUP_VALUE = 12; + + /** + * The '<em><b>Inheritance</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Inheritance</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #INHERITANCE + * @model name="Inheritance" + * @generated + * @ordered + */ + public static final int INHERITANCE_VALUE = 13; + + /** + * The '<em><b>Fulfillment</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Fulfillment</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #FULFILLMENT + * @model name="Fulfillment" + * @generated + * @ordered + */ + public static final int FULFILLMENT_VALUE = 14; + + /** + * The '<em><b>Data Type</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Data Type</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #DATA_TYPE + * @model name="DataType" + * @generated + * @ordered + */ + public static final int DATA_TYPE_VALUE = 15; + + /** + * The '<em><b>Cyclic</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Cyclic</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #CYCLIC + * @model name="Cyclic" + * @generated + * @ordered + */ + public static final int CYCLIC_VALUE = 16; + + /** + * The '<em><b>Natural Type</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Natural Type</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #NATURAL_TYPE + * @model name="NaturalType" + * @generated + * @ordered + */ + public static final int NATURAL_TYPE_VALUE = 17; + + /** + * An array of all the '<em><b>Type Enum</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static final TypeEnum[] VALUES_ARRAY = + new TypeEnum[] { + ACYCLIC, + COMPARTMENT_TYPE, + IRREFLEXIVE, + ROLE_PROHIBITION, + ROLE_IMPLICATION, + ROLE_GROUP, + ROLE_EQUIVALENCE, + ROLE_TYPE, + RELATIONSHIP_IMPLICATION, + RELATIONSHIP_EXCLUSION, + RELATIONSHIP, + REFLEXIVE, + GROUP, + INHERITANCE, + FULFILLMENT, + DATA_TYPE, + CYCLIC, + NATURAL_TYPE, + }; + + /** + * A public read-only list of all the '<em><b>Type Enum</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List<TypeEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the '<em><b>Type Enum</b></em>' literal with the specified literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param literal the literal. + * @return the matching enumerator or <code>null</code>. + * @generated + */ + public static TypeEnum get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + TypeEnum result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Type Enum</b></em>' literal with the specified name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param name the name. + * @return the matching enumerator or <code>null</code>. + * @generated + */ + public static TypeEnum getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + TypeEnum result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Type Enum</b></em>' literal with the specified integer value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the integer value. + * @return the matching enumerator or <code>null</code>. + * @generated + */ + public static TypeEnum get(int value) { + switch (value) { + case ACYCLIC_VALUE: return ACYCLIC; + case COMPARTMENT_TYPE_VALUE: return COMPARTMENT_TYPE; + case IRREFLEXIVE_VALUE: return IRREFLEXIVE; + case ROLE_PROHIBITION_VALUE: return ROLE_PROHIBITION; + case ROLE_IMPLICATION_VALUE: return ROLE_IMPLICATION; + case ROLE_GROUP_VALUE: return ROLE_GROUP; + case ROLE_EQUIVALENCE_VALUE: return ROLE_EQUIVALENCE; + case ROLE_TYPE_VALUE: return ROLE_TYPE; + case RELATIONSHIP_IMPLICATION_VALUE: return RELATIONSHIP_IMPLICATION; + case RELATIONSHIP_EXCLUSION_VALUE: return RELATIONSHIP_EXCLUSION; + case RELATIONSHIP_VALUE: return RELATIONSHIP; + case REFLEXIVE_VALUE: return REFLEXIVE; + case GROUP_VALUE: return GROUP; + case INHERITANCE_VALUE: return INHERITANCE; + case FULFILLMENT_VALUE: return FULFILLMENT; + case DATA_TYPE_VALUE: return DATA_TYPE; + case CYCLIC_VALUE: return CYCLIC; + case NATURAL_TYPE_VALUE: return NATURAL_TYPE; + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final int value; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String name; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private TypeEnum(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getValue() { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + return literal; + } + +} //TypeEnum diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/UnaryConstraintRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/UnaryConstraintRule.java new file mode 100644 index 00000000..e0379ae8 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/UnaryConstraintRule.java @@ -0,0 +1,49 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Unary Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link Editpolicymodel.UnaryConstraintRule#getRule <em>Rule</em>}</li> + * </ul> + * + * @see Editpolicymodel.EditpolicymodelPackage#getUnaryConstraintRule() + * @model abstract="true" + * @generated + */ +public interface UnaryConstraintRule extends LogicalConstraintRule { + /** + * Returns the value of the '<em><b>Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Rule</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Rule</em>' containment reference. + * @see #setRule(ConstraintRule) + * @see Editpolicymodel.EditpolicymodelPackage#getUnaryConstraintRule_Rule() + * @model containment="true" required="true" + * @generated + */ + ConstraintRule getRule(); + + /** + * Sets the value of the '{@link Editpolicymodel.UnaryConstraintRule#getRule <em>Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Rule</em>' containment reference. + * @see #getRule() + * @generated + */ + void setRule(ConstraintRule value); + +} // UnaryConstraintRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/UnaryFeatureRule.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/UnaryFeatureRule.java new file mode 100644 index 00000000..23ad9367 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/UnaryFeatureRule.java @@ -0,0 +1,49 @@ +/** + */ +package Editpolicymodel; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Unary Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link Editpolicymodel.UnaryFeatureRule#getRule <em>Rule</em>}</li> + * </ul> + * + * @see Editpolicymodel.EditpolicymodelPackage#getUnaryFeatureRule() + * @model abstract="true" + * @generated + */ +public interface UnaryFeatureRule extends LogicalFeatureRule { + /** + * Returns the value of the '<em><b>Rule</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Rule</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Rule</em>' containment reference. + * @see #setRule(FeatureRule) + * @see Editpolicymodel.EditpolicymodelPackage#getUnaryFeatureRule_Rule() + * @model containment="true" required="true" + * @generated + */ + FeatureRule getRule(); + + /** + * Sets the value of the '{@link Editpolicymodel.UnaryFeatureRule#getRule <em>Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Rule</em>' containment reference. + * @see #getRule() + * @generated + */ + void setRule(FeatureRule value); + +} // UnaryFeatureRule diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/AndConstraintRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/AndConstraintRuleImpl.java new file mode 100644 index 00000000..1dd55f6c --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/AndConstraintRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.AndConstraintRule; +import Editpolicymodel.EditpolicymodelPackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>And Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class AndConstraintRuleImpl extends NaryConstraintRuleImpl implements AndConstraintRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected AndConstraintRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.AND_CONSTRAINT_RULE; + } + +} //AndConstraintRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/AndFeatureRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/AndFeatureRuleImpl.java new file mode 100644 index 00000000..40df095e --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/AndFeatureRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.AndFeatureRule; +import Editpolicymodel.EditpolicymodelPackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>And Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class AndFeatureRuleImpl extends NaryFeatureRuleImpl implements AndFeatureRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected AndFeatureRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.AND_FEATURE_RULE; + } + +} //AndFeatureRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/BinaryConstraintRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/BinaryConstraintRuleImpl.java new file mode 100644 index 00000000..78927ead --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/BinaryConstraintRuleImpl.java @@ -0,0 +1,241 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.BinaryConstraintRule; +import Editpolicymodel.ConstraintRule; +import Editpolicymodel.EditpolicymodelPackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Binary Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link Editpolicymodel.impl.BinaryConstraintRuleImpl#getLeftRule <em>Left Rule</em>}</li> + * <li>{@link Editpolicymodel.impl.BinaryConstraintRuleImpl#getRightRule <em>Right Rule</em>}</li> + * </ul> + * + * @generated + */ +public abstract class BinaryConstraintRuleImpl extends LogicalConstraintRuleImpl implements BinaryConstraintRule { + /** + * The cached value of the '{@link #getLeftRule() <em>Left Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLeftRule() + * @generated + * @ordered + */ + protected ConstraintRule leftRule; + + /** + * The cached value of the '{@link #getRightRule() <em>Right Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRightRule() + * @generated + * @ordered + */ + protected ConstraintRule rightRule; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected BinaryConstraintRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ConstraintRule getLeftRule() { + return leftRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetLeftRule(ConstraintRule newLeftRule, NotificationChain msgs) { + ConstraintRule oldLeftRule = leftRule; + leftRule = newLeftRule; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__LEFT_RULE, oldLeftRule, newLeftRule); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLeftRule(ConstraintRule newLeftRule) { + if (newLeftRule != leftRule) { + NotificationChain msgs = null; + if (leftRule != null) + msgs = ((InternalEObject)leftRule).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__LEFT_RULE, null, msgs); + if (newLeftRule != null) + msgs = ((InternalEObject)newLeftRule).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__LEFT_RULE, null, msgs); + msgs = basicSetLeftRule(newLeftRule, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__LEFT_RULE, newLeftRule, newLeftRule)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ConstraintRule getRightRule() { + return rightRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetRightRule(ConstraintRule newRightRule, NotificationChain msgs) { + ConstraintRule oldRightRule = rightRule; + rightRule = newRightRule; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__RIGHT_RULE, oldRightRule, newRightRule); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRightRule(ConstraintRule newRightRule) { + if (newRightRule != rightRule) { + NotificationChain msgs = null; + if (rightRule != null) + msgs = ((InternalEObject)rightRule).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__RIGHT_RULE, null, msgs); + if (newRightRule != null) + msgs = ((InternalEObject)newRightRule).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__RIGHT_RULE, null, msgs); + msgs = basicSetRightRule(newRightRule, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__RIGHT_RULE, newRightRule, newRightRule)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__LEFT_RULE: + return basicSetLeftRule(null, msgs); + case EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__RIGHT_RULE: + return basicSetRightRule(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__LEFT_RULE: + return getLeftRule(); + case EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__RIGHT_RULE: + return getRightRule(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__LEFT_RULE: + setLeftRule((ConstraintRule)newValue); + return; + case EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__RIGHT_RULE: + setRightRule((ConstraintRule)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__LEFT_RULE: + setLeftRule((ConstraintRule)null); + return; + case EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__RIGHT_RULE: + setRightRule((ConstraintRule)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__LEFT_RULE: + return leftRule != null; + case EditpolicymodelPackage.BINARY_CONSTRAINT_RULE__RIGHT_RULE: + return rightRule != null; + } + return super.eIsSet(featureID); + } + +} //BinaryConstraintRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/BinaryFeatureRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/BinaryFeatureRuleImpl.java new file mode 100644 index 00000000..40f4521a --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/BinaryFeatureRuleImpl.java @@ -0,0 +1,241 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.BinaryFeatureRule; +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.FeatureRule; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Binary Feature Rule</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link Editpolicymodel.impl.BinaryFeatureRuleImpl#getRightRule <em>Right Rule</em>}</li> + * <li>{@link Editpolicymodel.impl.BinaryFeatureRuleImpl#getLeftRule <em>Left Rule</em>}</li> + * </ul> + * + * @generated + */ +public abstract class BinaryFeatureRuleImpl extends LogicalFeatureRuleImpl implements BinaryFeatureRule { + /** + * The cached value of the '{@link #getRightRule() <em>Right Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRightRule() + * @generated + * @ordered + */ + protected FeatureRule rightRule; + + /** + * The cached value of the '{@link #getLeftRule() <em>Left Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLeftRule() + * @generated + * @ordered + */ + protected FeatureRule leftRule; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected BinaryFeatureRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.BINARY_FEATURE_RULE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FeatureRule getRightRule() { + return rightRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetRightRule(FeatureRule newRightRule, NotificationChain msgs) { + FeatureRule oldRightRule = rightRule; + rightRule = newRightRule; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.BINARY_FEATURE_RULE__RIGHT_RULE, oldRightRule, newRightRule); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRightRule(FeatureRule newRightRule) { + if (newRightRule != rightRule) { + NotificationChain msgs = null; + if (rightRule != null) + msgs = ((InternalEObject)rightRule).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.BINARY_FEATURE_RULE__RIGHT_RULE, null, msgs); + if (newRightRule != null) + msgs = ((InternalEObject)newRightRule).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.BINARY_FEATURE_RULE__RIGHT_RULE, null, msgs); + msgs = basicSetRightRule(newRightRule, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.BINARY_FEATURE_RULE__RIGHT_RULE, newRightRule, newRightRule)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FeatureRule getLeftRule() { + return leftRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetLeftRule(FeatureRule newLeftRule, NotificationChain msgs) { + FeatureRule oldLeftRule = leftRule; + leftRule = newLeftRule; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.BINARY_FEATURE_RULE__LEFT_RULE, oldLeftRule, newLeftRule); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLeftRule(FeatureRule newLeftRule) { + if (newLeftRule != leftRule) { + NotificationChain msgs = null; + if (leftRule != null) + msgs = ((InternalEObject)leftRule).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.BINARY_FEATURE_RULE__LEFT_RULE, null, msgs); + if (newLeftRule != null) + msgs = ((InternalEObject)newLeftRule).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.BINARY_FEATURE_RULE__LEFT_RULE, null, msgs); + msgs = basicSetLeftRule(newLeftRule, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.BINARY_FEATURE_RULE__LEFT_RULE, newLeftRule, newLeftRule)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case EditpolicymodelPackage.BINARY_FEATURE_RULE__RIGHT_RULE: + return basicSetRightRule(null, msgs); + case EditpolicymodelPackage.BINARY_FEATURE_RULE__LEFT_RULE: + return basicSetLeftRule(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case EditpolicymodelPackage.BINARY_FEATURE_RULE__RIGHT_RULE: + return getRightRule(); + case EditpolicymodelPackage.BINARY_FEATURE_RULE__LEFT_RULE: + return getLeftRule(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case EditpolicymodelPackage.BINARY_FEATURE_RULE__RIGHT_RULE: + setRightRule((FeatureRule)newValue); + return; + case EditpolicymodelPackage.BINARY_FEATURE_RULE__LEFT_RULE: + setLeftRule((FeatureRule)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.BINARY_FEATURE_RULE__RIGHT_RULE: + setRightRule((FeatureRule)null); + return; + case EditpolicymodelPackage.BINARY_FEATURE_RULE__LEFT_RULE: + setLeftRule((FeatureRule)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.BINARY_FEATURE_RULE__RIGHT_RULE: + return rightRule != null; + case EditpolicymodelPackage.BINARY_FEATURE_RULE__LEFT_RULE: + return leftRule != null; + } + return super.eIsSet(featureID); + } + +} //BinaryFeatureRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ConstraintRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ConstraintRuleImpl.java new file mode 100644 index 00000000..008d04ee --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ConstraintRuleImpl.java @@ -0,0 +1,39 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.ConstraintRule; +import Editpolicymodel.EditpolicymodelPackage; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public abstract class ConstraintRuleImpl extends MinimalEObjectImpl.Container implements ConstraintRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ConstraintRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.CONSTRAINT_RULE; + } + +} //ConstraintRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ContainsCompartmentImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ContainsCompartmentImpl.java new file mode 100644 index 00000000..619282ff --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ContainsCompartmentImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.ContainsCompartment; +import Editpolicymodel.EditpolicymodelPackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Contains Compartment</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class ContainsCompartmentImpl extends ConstraintRuleImpl implements ContainsCompartment { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ContainsCompartmentImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.CONTAINS_COMPARTMENT; + } + +} //ContainsCompartmentImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/EditpolicymodelFactoryImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/EditpolicymodelFactoryImpl.java new file mode 100644 index 00000000..05645781 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/EditpolicymodelFactoryImpl.java @@ -0,0 +1,458 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.*; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.impl.EFactoryImpl; + +import org.eclipse.emf.ecore.plugin.EcorePlugin; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class EditpolicymodelFactoryImpl extends EFactoryImpl implements EditpolicymodelFactory { + /** + * Creates the default factory implementation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static EditpolicymodelFactory init() { + try { + EditpolicymodelFactory theEditpolicymodelFactory = (EditpolicymodelFactory)EPackage.Registry.INSTANCE.getEFactory(EditpolicymodelPackage.eNS_URI); + if (theEditpolicymodelFactory != null) { + return theEditpolicymodelFactory; + } + } + catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new EditpolicymodelFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EditpolicymodelFactoryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case EditpolicymodelPackage.MODEL: return createModel(); + case EditpolicymodelPackage.POLICY: return createPolicy(); + case EditpolicymodelPackage.CONTAINS_COMPARTMENT: return createContainsCompartment(); + case EditpolicymodelPackage.IS_TARGET: return createIsTarget(); + case EditpolicymodelPackage.IS_PARENT: return createIsParent(); + case EditpolicymodelPackage.IS_FEATURE: return createIsFeature(); + case EditpolicymodelPackage.IS_TARGET_TYPE: return createIsTargetType(); + case EditpolicymodelPackage.NOT_CONSTRAINT_RULE: return createNotConstraintRule(); + case EditpolicymodelPackage.AND_CONSTRAINT_RULE: return createAndConstraintRule(); + case EditpolicymodelPackage.TRUE_CONSTRAINT_RULE: return createTrueConstraintRule(); + case EditpolicymodelPackage.FALSE_CONSTRAINT_RULE: return createFalseConstraintRule(); + case EditpolicymodelPackage.OR_CONSTRAINT_RULE: return createOrConstraintRule(); + case EditpolicymodelPackage.IMPLICATION_CONSTRAINT_RULE: return createImplicationConstraintRule(); + case EditpolicymodelPackage.IS_SOURCE_TYPE: return createIsSourceType(); + case EditpolicymodelPackage.LOGICAL_CONSTRAINT_RULE: return createLogicalConstraintRule(); + case EditpolicymodelPackage.TRUE_FEATURE_RULE: return createTrueFeatureRule(); + case EditpolicymodelPackage.NOT_FEATURE_RULE: return createNotFeatureRule(); + case EditpolicymodelPackage.FALSE_FEATURE_RULE: return createFalseFeatureRule(); + case EditpolicymodelPackage.LOGICAL_FEATURE_RULE: return createLogicalFeatureRule(); + case EditpolicymodelPackage.IMPLICATION_FEATURE_RULE: return createImplicationFeatureRule(); + case EditpolicymodelPackage.OR_FEATURE_RULE: return createOrFeatureRule(); + case EditpolicymodelPackage.AND_FEATURE_RULE: return createAndFeatureRule(); + case EditpolicymodelPackage.SOURCE_EQUALS_TARGET: return createSourceEqualsTarget(); + case EditpolicymodelPackage.SOURCE_EQUALS_TARGET_TYPE: return createSourceEqualsTargetType(); + case EditpolicymodelPackage.IN_COMPARTMENT: return createInCompartment(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object createFromString(EDataType eDataType, String initialValue) { + switch (eDataType.getClassifierID()) { + case EditpolicymodelPackage.ACTION_ENUM: + return createActionEnumFromString(eDataType, initialValue); + case EditpolicymodelPackage.TYPE_ENUM: + return createTypeEnumFromString(eDataType, initialValue); + case EditpolicymodelPackage.FEATURE_NAME_ENUM: + return createFeatureNameEnumFromString(eDataType, initialValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String convertToString(EDataType eDataType, Object instanceValue) { + switch (eDataType.getClassifierID()) { + case EditpolicymodelPackage.ACTION_ENUM: + return convertActionEnumToString(eDataType, instanceValue); + case EditpolicymodelPackage.TYPE_ENUM: + return convertTypeEnumToString(eDataType, instanceValue); + case EditpolicymodelPackage.FEATURE_NAME_ENUM: + return convertFeatureNameEnumToString(eDataType, instanceValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Model createModel() { + ModelImpl model = new ModelImpl(); + return model; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Policy createPolicy() { + PolicyImpl policy = new PolicyImpl(); + return policy; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ContainsCompartment createContainsCompartment() { + ContainsCompartmentImpl containsCompartment = new ContainsCompartmentImpl(); + return containsCompartment; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IsTarget createIsTarget() { + IsTargetImpl isTarget = new IsTargetImpl(); + return isTarget; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IsParent createIsParent() { + IsParentImpl isParent = new IsParentImpl(); + return isParent; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IsFeature createIsFeature() { + IsFeatureImpl isFeature = new IsFeatureImpl(); + return isFeature; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IsTargetType createIsTargetType() { + IsTargetTypeImpl isTargetType = new IsTargetTypeImpl(); + return isTargetType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotConstraintRule createNotConstraintRule() { + NotConstraintRuleImpl notConstraintRule = new NotConstraintRuleImpl(); + return notConstraintRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AndConstraintRule createAndConstraintRule() { + AndConstraintRuleImpl andConstraintRule = new AndConstraintRuleImpl(); + return andConstraintRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TrueConstraintRule createTrueConstraintRule() { + TrueConstraintRuleImpl trueConstraintRule = new TrueConstraintRuleImpl(); + return trueConstraintRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FalseConstraintRule createFalseConstraintRule() { + FalseConstraintRuleImpl falseConstraintRule = new FalseConstraintRuleImpl(); + return falseConstraintRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public OrConstraintRule createOrConstraintRule() { + OrConstraintRuleImpl orConstraintRule = new OrConstraintRuleImpl(); + return orConstraintRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ImplicationConstraintRule createImplicationConstraintRule() { + ImplicationConstraintRuleImpl implicationConstraintRule = new ImplicationConstraintRuleImpl(); + return implicationConstraintRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IsSourceType createIsSourceType() { + IsSourceTypeImpl isSourceType = new IsSourceTypeImpl(); + return isSourceType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public LogicalConstraintRule createLogicalConstraintRule() { + LogicalConstraintRuleImpl logicalConstraintRule = new LogicalConstraintRuleImpl(); + return logicalConstraintRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TrueFeatureRule createTrueFeatureRule() { + TrueFeatureRuleImpl trueFeatureRule = new TrueFeatureRuleImpl(); + return trueFeatureRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotFeatureRule createNotFeatureRule() { + NotFeatureRuleImpl notFeatureRule = new NotFeatureRuleImpl(); + return notFeatureRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FalseFeatureRule createFalseFeatureRule() { + FalseFeatureRuleImpl falseFeatureRule = new FalseFeatureRuleImpl(); + return falseFeatureRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public LogicalFeatureRule createLogicalFeatureRule() { + LogicalFeatureRuleImpl logicalFeatureRule = new LogicalFeatureRuleImpl(); + return logicalFeatureRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ImplicationFeatureRule createImplicationFeatureRule() { + ImplicationFeatureRuleImpl implicationFeatureRule = new ImplicationFeatureRuleImpl(); + return implicationFeatureRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public OrFeatureRule createOrFeatureRule() { + OrFeatureRuleImpl orFeatureRule = new OrFeatureRuleImpl(); + return orFeatureRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AndFeatureRule createAndFeatureRule() { + AndFeatureRuleImpl andFeatureRule = new AndFeatureRuleImpl(); + return andFeatureRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SourceEqualsTarget createSourceEqualsTarget() { + SourceEqualsTargetImpl sourceEqualsTarget = new SourceEqualsTargetImpl(); + return sourceEqualsTarget; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SourceEqualsTargetType createSourceEqualsTargetType() { + SourceEqualsTargetTypeImpl sourceEqualsTargetType = new SourceEqualsTargetTypeImpl(); + return sourceEqualsTargetType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public InCompartment createInCompartment() { + InCompartmentImpl inCompartment = new InCompartmentImpl(); + return inCompartment; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ActionEnum createActionEnumFromString(EDataType eDataType, String initialValue) { + ActionEnum result = ActionEnum.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String convertActionEnumToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TypeEnum createTypeEnumFromString(EDataType eDataType, String initialValue) { + TypeEnum result = TypeEnum.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String convertTypeEnumToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FeatureNameEnum createFeatureNameEnumFromString(EDataType eDataType, String initialValue) { + FeatureNameEnum result = FeatureNameEnum.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String convertFeatureNameEnumToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EditpolicymodelPackage getEditpolicymodelPackage() { + return (EditpolicymodelPackage)getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static EditpolicymodelPackage getPackage() { + return EditpolicymodelPackage.eINSTANCE; + } + +} //EditpolicymodelFactoryImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/EditpolicymodelPackageImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/EditpolicymodelPackageImpl.java new file mode 100644 index 00000000..c02e7def --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/EditpolicymodelPackageImpl.java @@ -0,0 +1,1200 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.ActionEnum; +import Editpolicymodel.AndConstraintRule; +import Editpolicymodel.AndFeatureRule; +import Editpolicymodel.BinaryConstraintRule; +import Editpolicymodel.BinaryFeatureRule; +import Editpolicymodel.ConstraintRule; +import Editpolicymodel.ContainsCompartment; +import Editpolicymodel.EditpolicymodelFactory; +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.FalseConstraintRule; +import Editpolicymodel.FalseFeatureRule; +import Editpolicymodel.FeatureNameEnum; +import Editpolicymodel.FeatureRule; +import Editpolicymodel.ImplicationConstraintRule; +import Editpolicymodel.ImplicationFeatureRule; +import Editpolicymodel.InCompartment; +import Editpolicymodel.IsFeature; +import Editpolicymodel.IsParent; +import Editpolicymodel.IsSourceType; +import Editpolicymodel.IsTarget; +import Editpolicymodel.IsTargetType; +import Editpolicymodel.LogicalConstraintRule; +import Editpolicymodel.LogicalFeatureRule; +import Editpolicymodel.Model; +import Editpolicymodel.NaryConstraintRule; +import Editpolicymodel.NaryFeatureRule; +import Editpolicymodel.NotConstraintRule; +import Editpolicymodel.NotFeatureRule; +import Editpolicymodel.OrConstraintRule; +import Editpolicymodel.OrFeatureRule; +import Editpolicymodel.Policy; +import Editpolicymodel.SourceEqualsTarget; +import Editpolicymodel.SourceEqualsTargetType; +import Editpolicymodel.TrueConstraintRule; +import Editpolicymodel.TrueFeatureRule; +import Editpolicymodel.TypeArgumentRule; +import Editpolicymodel.TypeEnum; +import Editpolicymodel.UnaryConstraintRule; +import Editpolicymodel.UnaryFeatureRule; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +import org.framed.iorm.model.OrmPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class EditpolicymodelPackageImpl extends EPackageImpl implements EditpolicymodelPackage { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass modelEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass policyEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass containsCompartmentEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass isTargetEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass isParentEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass featureRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass isFeatureEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass constraintRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass isTargetTypeEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass unaryConstraintRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass notConstraintRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass andConstraintRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass binaryConstraintRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass trueConstraintRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass falseConstraintRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass orConstraintRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass implicationConstraintRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass isSourceTypeEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass typeArgumentRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass naryConstraintRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass logicalConstraintRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass trueFeatureRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass notFeatureRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass falseFeatureRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass naryFeatureRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass binaryFeatureRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass logicalFeatureRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass implicationFeatureRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass unaryFeatureRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass orFeatureRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass andFeatureRuleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass sourceEqualsTargetEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass sourceEqualsTargetTypeEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass inCompartmentEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EEnum actionEnumEEnum = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EEnum typeEnumEEnum = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EEnum featureNameEnumEEnum = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p>Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see Editpolicymodel.EditpolicymodelPackage#eNS_URI + * @see #init() + * @generated + */ + private EditpolicymodelPackageImpl() { + super(eNS_URI, EditpolicymodelFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. + * + * <p>This method is used to initialize {@link EditpolicymodelPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static EditpolicymodelPackage init() { + if (isInited) return (EditpolicymodelPackage)EPackage.Registry.INSTANCE.getEPackage(EditpolicymodelPackage.eNS_URI); + + // Obtain or create and register package + EditpolicymodelPackageImpl theEditpolicymodelPackage = (EditpolicymodelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EditpolicymodelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new EditpolicymodelPackageImpl()); + + isInited = true; + + // Initialize simple dependencies + OrmPackage.eINSTANCE.eClass(); + + // Create package meta-data objects + theEditpolicymodelPackage.createPackageContents(); + + // Initialize created meta-data + theEditpolicymodelPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theEditpolicymodelPackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(EditpolicymodelPackage.eNS_URI, theEditpolicymodelPackage); + return theEditpolicymodelPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getModel() { + return modelEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getModel_Policies() { + return (EReference)modelEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getPolicy() { + return policyEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getPolicy_Override() { + return (EAttribute)policyEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getPolicy_Action() { + return (EAttribute)policyEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getPolicy_ActionType() { + return (EAttribute)policyEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPolicy_FeatureRule() { + return (EReference)policyEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPolicy_ConstraintRule() { + return (EReference)policyEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getContainsCompartment() { + return containsCompartmentEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getIsTarget() { + return isTargetEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getIsParent() { + return isParentEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getFeatureRule() { + return featureRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getIsFeature() { + return isFeatureEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getIsFeature_FeatureName() { + return (EAttribute)isFeatureEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getConstraintRule() { + return constraintRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getIsTargetType() { + return isTargetTypeEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getUnaryConstraintRule() { + return unaryConstraintRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getUnaryConstraintRule_Rule() { + return (EReference)unaryConstraintRuleEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getNotConstraintRule() { + return notConstraintRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getAndConstraintRule() { + return andConstraintRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getBinaryConstraintRule() { + return binaryConstraintRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getBinaryConstraintRule_LeftRule() { + return (EReference)binaryConstraintRuleEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getBinaryConstraintRule_RightRule() { + return (EReference)binaryConstraintRuleEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getTrueConstraintRule() { + return trueConstraintRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getFalseConstraintRule() { + return falseConstraintRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getOrConstraintRule() { + return orConstraintRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getImplicationConstraintRule() { + return implicationConstraintRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getIsSourceType() { + return isSourceTypeEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getTypeArgumentRule() { + return typeArgumentRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getTypeArgumentRule_Type() { + return (EAttribute)typeArgumentRuleEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getNaryConstraintRule() { + return naryConstraintRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getNaryConstraintRule_Rules() { + return (EReference)naryConstraintRuleEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getLogicalConstraintRule() { + return logicalConstraintRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getTrueFeatureRule() { + return trueFeatureRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getNotFeatureRule() { + return notFeatureRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getFalseFeatureRule() { + return falseFeatureRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getNaryFeatureRule() { + return naryFeatureRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getNaryFeatureRule_Rules() { + return (EReference)naryFeatureRuleEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getBinaryFeatureRule() { + return binaryFeatureRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getBinaryFeatureRule_RightRule() { + return (EReference)binaryFeatureRuleEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getBinaryFeatureRule_LeftRule() { + return (EReference)binaryFeatureRuleEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getLogicalFeatureRule() { + return logicalFeatureRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getImplicationFeatureRule() { + return implicationFeatureRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getUnaryFeatureRule() { + return unaryFeatureRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getUnaryFeatureRule_Rule() { + return (EReference)unaryFeatureRuleEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getOrFeatureRule() { + return orFeatureRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getAndFeatureRule() { + return andFeatureRuleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getSourceEqualsTarget() { + return sourceEqualsTargetEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getSourceEqualsTargetType() { + return sourceEqualsTargetTypeEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getInCompartment() { + return inCompartmentEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EEnum getActionEnum() { + return actionEnumEEnum; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EEnum getTypeEnum() { + return typeEnumEEnum; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EEnum getFeatureNameEnum() { + return featureNameEnumEEnum; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EditpolicymodelFactory getEditpolicymodelFactory() { + return (EditpolicymodelFactory)getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + modelEClass = createEClass(MODEL); + createEReference(modelEClass, MODEL__POLICIES); + + policyEClass = createEClass(POLICY); + createEAttribute(policyEClass, POLICY__OVERRIDE); + createEAttribute(policyEClass, POLICY__ACTION); + createEAttribute(policyEClass, POLICY__ACTION_TYPE); + createEReference(policyEClass, POLICY__FEATURE_RULE); + createEReference(policyEClass, POLICY__CONSTRAINT_RULE); + + containsCompartmentEClass = createEClass(CONTAINS_COMPARTMENT); + + isTargetEClass = createEClass(IS_TARGET); + + isParentEClass = createEClass(IS_PARENT); + + featureRuleEClass = createEClass(FEATURE_RULE); + + isFeatureEClass = createEClass(IS_FEATURE); + createEAttribute(isFeatureEClass, IS_FEATURE__FEATURE_NAME); + + constraintRuleEClass = createEClass(CONSTRAINT_RULE); + + isTargetTypeEClass = createEClass(IS_TARGET_TYPE); + + unaryConstraintRuleEClass = createEClass(UNARY_CONSTRAINT_RULE); + createEReference(unaryConstraintRuleEClass, UNARY_CONSTRAINT_RULE__RULE); + + notConstraintRuleEClass = createEClass(NOT_CONSTRAINT_RULE); + + andConstraintRuleEClass = createEClass(AND_CONSTRAINT_RULE); + + binaryConstraintRuleEClass = createEClass(BINARY_CONSTRAINT_RULE); + createEReference(binaryConstraintRuleEClass, BINARY_CONSTRAINT_RULE__LEFT_RULE); + createEReference(binaryConstraintRuleEClass, BINARY_CONSTRAINT_RULE__RIGHT_RULE); + + trueConstraintRuleEClass = createEClass(TRUE_CONSTRAINT_RULE); + + falseConstraintRuleEClass = createEClass(FALSE_CONSTRAINT_RULE); + + orConstraintRuleEClass = createEClass(OR_CONSTRAINT_RULE); + + implicationConstraintRuleEClass = createEClass(IMPLICATION_CONSTRAINT_RULE); + + isSourceTypeEClass = createEClass(IS_SOURCE_TYPE); + + typeArgumentRuleEClass = createEClass(TYPE_ARGUMENT_RULE); + createEAttribute(typeArgumentRuleEClass, TYPE_ARGUMENT_RULE__TYPE); + + naryConstraintRuleEClass = createEClass(NARY_CONSTRAINT_RULE); + createEReference(naryConstraintRuleEClass, NARY_CONSTRAINT_RULE__RULES); + + logicalConstraintRuleEClass = createEClass(LOGICAL_CONSTRAINT_RULE); + + trueFeatureRuleEClass = createEClass(TRUE_FEATURE_RULE); + + notFeatureRuleEClass = createEClass(NOT_FEATURE_RULE); + + falseFeatureRuleEClass = createEClass(FALSE_FEATURE_RULE); + + naryFeatureRuleEClass = createEClass(NARY_FEATURE_RULE); + createEReference(naryFeatureRuleEClass, NARY_FEATURE_RULE__RULES); + + binaryFeatureRuleEClass = createEClass(BINARY_FEATURE_RULE); + createEReference(binaryFeatureRuleEClass, BINARY_FEATURE_RULE__RIGHT_RULE); + createEReference(binaryFeatureRuleEClass, BINARY_FEATURE_RULE__LEFT_RULE); + + logicalFeatureRuleEClass = createEClass(LOGICAL_FEATURE_RULE); + + implicationFeatureRuleEClass = createEClass(IMPLICATION_FEATURE_RULE); + + unaryFeatureRuleEClass = createEClass(UNARY_FEATURE_RULE); + createEReference(unaryFeatureRuleEClass, UNARY_FEATURE_RULE__RULE); + + orFeatureRuleEClass = createEClass(OR_FEATURE_RULE); + + andFeatureRuleEClass = createEClass(AND_FEATURE_RULE); + + sourceEqualsTargetEClass = createEClass(SOURCE_EQUALS_TARGET); + + sourceEqualsTargetTypeEClass = createEClass(SOURCE_EQUALS_TARGET_TYPE); + + inCompartmentEClass = createEClass(IN_COMPARTMENT); + + // Create enums + actionEnumEEnum = createEEnum(ACTION_ENUM); + typeEnumEEnum = createEEnum(TYPE_ENUM); + featureNameEnumEEnum = createEEnum(FEATURE_NAME_ENUM); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + containsCompartmentEClass.getESuperTypes().add(this.getConstraintRule()); + isTargetEClass.getESuperTypes().add(this.getTypeArgumentRule()); + isParentEClass.getESuperTypes().add(this.getTypeArgumentRule()); + isFeatureEClass.getESuperTypes().add(this.getFeatureRule()); + isTargetTypeEClass.getESuperTypes().add(this.getTypeArgumentRule()); + unaryConstraintRuleEClass.getESuperTypes().add(this.getLogicalConstraintRule()); + notConstraintRuleEClass.getESuperTypes().add(this.getUnaryConstraintRule()); + andConstraintRuleEClass.getESuperTypes().add(this.getNaryConstraintRule()); + binaryConstraintRuleEClass.getESuperTypes().add(this.getLogicalConstraintRule()); + trueConstraintRuleEClass.getESuperTypes().add(this.getLogicalConstraintRule()); + falseConstraintRuleEClass.getESuperTypes().add(this.getLogicalConstraintRule()); + orConstraintRuleEClass.getESuperTypes().add(this.getNaryConstraintRule()); + implicationConstraintRuleEClass.getESuperTypes().add(this.getBinaryConstraintRule()); + isSourceTypeEClass.getESuperTypes().add(this.getTypeArgumentRule()); + typeArgumentRuleEClass.getESuperTypes().add(this.getConstraintRule()); + naryConstraintRuleEClass.getESuperTypes().add(this.getLogicalConstraintRule()); + logicalConstraintRuleEClass.getESuperTypes().add(this.getConstraintRule()); + trueFeatureRuleEClass.getESuperTypes().add(this.getLogicalFeatureRule()); + notFeatureRuleEClass.getESuperTypes().add(this.getUnaryFeatureRule()); + falseFeatureRuleEClass.getESuperTypes().add(this.getLogicalFeatureRule()); + naryFeatureRuleEClass.getESuperTypes().add(this.getLogicalFeatureRule()); + binaryFeatureRuleEClass.getESuperTypes().add(this.getLogicalFeatureRule()); + logicalFeatureRuleEClass.getESuperTypes().add(this.getFeatureRule()); + implicationFeatureRuleEClass.getESuperTypes().add(this.getBinaryFeatureRule()); + unaryFeatureRuleEClass.getESuperTypes().add(this.getLogicalFeatureRule()); + orFeatureRuleEClass.getESuperTypes().add(this.getNaryFeatureRule()); + andFeatureRuleEClass.getESuperTypes().add(this.getNaryFeatureRule()); + sourceEqualsTargetEClass.getESuperTypes().add(this.getConstraintRule()); + sourceEqualsTargetTypeEClass.getESuperTypes().add(this.getConstraintRule()); + inCompartmentEClass.getESuperTypes().add(this.getConstraintRule()); + + // Initialize classes, features, and operations; add parameters + initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getModel_Policies(), this.getPolicy(), null, "policies", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(policyEClass, Policy.class, "Policy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getPolicy_Override(), ecorePackage.getEBooleanObject(), "override", "false", 0, 1, Policy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getPolicy_Action(), this.getActionEnum(), "action", "Create", 0, 1, Policy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getPolicy_ActionType(), this.getTypeEnum(), "actionType", null, 1, 1, Policy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPolicy_FeatureRule(), this.getFeatureRule(), null, "featureRule", null, 0, 1, Policy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPolicy_ConstraintRule(), this.getConstraintRule(), null, "constraintRule", null, 0, 1, Policy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(containsCompartmentEClass, ContainsCompartment.class, "ContainsCompartment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(isTargetEClass, IsTarget.class, "IsTarget", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(isParentEClass, IsParent.class, "IsParent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(featureRuleEClass, FeatureRule.class, "FeatureRule", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(isFeatureEClass, IsFeature.class, "IsFeature", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getIsFeature_FeatureName(), this.getFeatureNameEnum(), "featureName", null, 1, 1, IsFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(constraintRuleEClass, ConstraintRule.class, "ConstraintRule", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(isTargetTypeEClass, IsTargetType.class, "IsTargetType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(unaryConstraintRuleEClass, UnaryConstraintRule.class, "UnaryConstraintRule", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getUnaryConstraintRule_Rule(), this.getConstraintRule(), null, "rule", null, 1, 1, UnaryConstraintRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(notConstraintRuleEClass, NotConstraintRule.class, "NotConstraintRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(andConstraintRuleEClass, AndConstraintRule.class, "AndConstraintRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(binaryConstraintRuleEClass, BinaryConstraintRule.class, "BinaryConstraintRule", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBinaryConstraintRule_LeftRule(), this.getConstraintRule(), null, "leftRule", null, 1, 1, BinaryConstraintRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getBinaryConstraintRule_RightRule(), this.getConstraintRule(), null, "rightRule", null, 1, 1, BinaryConstraintRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(trueConstraintRuleEClass, TrueConstraintRule.class, "TrueConstraintRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(falseConstraintRuleEClass, FalseConstraintRule.class, "FalseConstraintRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(orConstraintRuleEClass, OrConstraintRule.class, "OrConstraintRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(implicationConstraintRuleEClass, ImplicationConstraintRule.class, "ImplicationConstraintRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(isSourceTypeEClass, IsSourceType.class, "IsSourceType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(typeArgumentRuleEClass, TypeArgumentRule.class, "TypeArgumentRule", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getTypeArgumentRule_Type(), this.getTypeEnum(), "type", null, 0, 1, TypeArgumentRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(naryConstraintRuleEClass, NaryConstraintRule.class, "NaryConstraintRule", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getNaryConstraintRule_Rules(), this.getConstraintRule(), null, "rules", null, 1, -1, NaryConstraintRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(logicalConstraintRuleEClass, LogicalConstraintRule.class, "LogicalConstraintRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(trueFeatureRuleEClass, TrueFeatureRule.class, "TrueFeatureRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(notFeatureRuleEClass, NotFeatureRule.class, "NotFeatureRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(falseFeatureRuleEClass, FalseFeatureRule.class, "FalseFeatureRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(naryFeatureRuleEClass, NaryFeatureRule.class, "NaryFeatureRule", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getNaryFeatureRule_Rules(), this.getFeatureRule(), null, "rules", null, 0, -1, NaryFeatureRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(binaryFeatureRuleEClass, BinaryFeatureRule.class, "BinaryFeatureRule", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBinaryFeatureRule_RightRule(), this.getFeatureRule(), null, "rightRule", null, 1, 1, BinaryFeatureRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getBinaryFeatureRule_LeftRule(), this.getFeatureRule(), null, "leftRule", null, 1, 1, BinaryFeatureRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(logicalFeatureRuleEClass, LogicalFeatureRule.class, "LogicalFeatureRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(implicationFeatureRuleEClass, ImplicationFeatureRule.class, "ImplicationFeatureRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(unaryFeatureRuleEClass, UnaryFeatureRule.class, "UnaryFeatureRule", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getUnaryFeatureRule_Rule(), this.getFeatureRule(), null, "rule", null, 1, 1, UnaryFeatureRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(orFeatureRuleEClass, OrFeatureRule.class, "OrFeatureRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(andFeatureRuleEClass, AndFeatureRule.class, "AndFeatureRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(sourceEqualsTargetEClass, SourceEqualsTarget.class, "SourceEqualsTarget", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(sourceEqualsTargetTypeEClass, SourceEqualsTargetType.class, "SourceEqualsTargetType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(inCompartmentEClass, InCompartment.class, "InCompartment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + // Initialize enums and add enum literals + initEEnum(actionEnumEEnum, ActionEnum.class, "ActionEnum"); + addEEnumLiteral(actionEnumEEnum, ActionEnum.CREATE); + addEEnumLiteral(actionEnumEEnum, ActionEnum.ADD); + addEEnumLiteral(actionEnumEEnum, ActionEnum.START); + addEEnumLiteral(actionEnumEEnum, ActionEnum.RECONNECT); + addEEnumLiteral(actionEnumEEnum, ActionEnum.EXECUTE); + addEEnumLiteral(actionEnumEEnum, ActionEnum.DIRECT_EDIT); + addEEnumLiteral(actionEnumEEnum, ActionEnum.CREATE_PROPERTY); + addEEnumLiteral(actionEnumEEnum, ActionEnum.CREATE_ATTRIBUTE); + addEEnumLiteral(actionEnumEEnum, ActionEnum.ADD_PROPERTY); + addEEnumLiteral(actionEnumEEnum, ActionEnum.CREATE_OPERATION); + + initEEnum(typeEnumEEnum, TypeEnum.class, "TypeEnum"); + addEEnumLiteral(typeEnumEEnum, TypeEnum.ACYCLIC); + addEEnumLiteral(typeEnumEEnum, TypeEnum.COMPARTMENT_TYPE); + addEEnumLiteral(typeEnumEEnum, TypeEnum.IRREFLEXIVE); + addEEnumLiteral(typeEnumEEnum, TypeEnum.ROLE_PROHIBITION); + addEEnumLiteral(typeEnumEEnum, TypeEnum.ROLE_IMPLICATION); + addEEnumLiteral(typeEnumEEnum, TypeEnum.ROLE_GROUP); + addEEnumLiteral(typeEnumEEnum, TypeEnum.ROLE_EQUIVALENCE); + addEEnumLiteral(typeEnumEEnum, TypeEnum.ROLE_TYPE); + addEEnumLiteral(typeEnumEEnum, TypeEnum.RELATIONSHIP_IMPLICATION); + addEEnumLiteral(typeEnumEEnum, TypeEnum.RELATIONSHIP_EXCLUSION); + addEEnumLiteral(typeEnumEEnum, TypeEnum.RELATIONSHIP); + addEEnumLiteral(typeEnumEEnum, TypeEnum.REFLEXIVE); + addEEnumLiteral(typeEnumEEnum, TypeEnum.GROUP); + addEEnumLiteral(typeEnumEEnum, TypeEnum.INHERITANCE); + addEEnumLiteral(typeEnumEEnum, TypeEnum.FULFILLMENT); + addEEnumLiteral(typeEnumEEnum, TypeEnum.DATA_TYPE); + addEEnumLiteral(typeEnumEEnum, TypeEnum.CYCLIC); + addEEnumLiteral(typeEnumEEnum, TypeEnum.NATURAL_TYPE); + + initEEnum(featureNameEnumEEnum, FeatureNameEnum.class, "FeatureNameEnum"); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.ROLES); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.ROLE_TYPES); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.ROLE_STRUCTURE); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.ROLE_PROPERTIES); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.ROLE_PROHIBITION); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.ROLE_INHERITANCE); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.ROLE_IMPLICATION); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.ROLE_EQUIVALENCE); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.ROLE_CONSTRAINTS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.ROLE_BEHAVIOR); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.RML_FEATURE_MODEL); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.RELATIONSHIPS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.RELATIONSHIP_CONSTRAINTS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.RELATIONSHIP_CARDINALITY); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.PLAYERS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.PLAYABLE_BY_DEFINING_COMPARTMENT); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.PLAYABLE); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.PARTHOOD_CONSTRAINTS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.ON_RELATIONSHIPS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.ON_COMPARTMENTS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.OCCURRENCE_CONSTRAINTS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.NATURALS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.INTRA_RELATIONSHIP_CONSTRAINTS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.INTER_RELATIONSHIP_CONSTRAINTS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.GROUP_CONSTRAINTS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.DEPENDENT); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.DATES); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.DATA_TYPES); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.COMPARTMENTS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.CONTAINS_COMPARTMENTS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.COMPARTMENT_TYPES); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.COMPARTMENT_STRUCTURE); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.COMPARTMENT_PROPERTIES); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.COMPARTMENT_INHERITANCE); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.COMPARTMENT_BEHAVIOR); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.PARTICIPANTS); + addEEnumLiteral(featureNameEnumEEnum, FeatureNameEnum.DATA_TYPE_INHERITANCE); + + // Create resource + createResource(eNS_URI); + } + +} //EditpolicymodelPackageImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/FalseConstraintRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/FalseConstraintRuleImpl.java new file mode 100644 index 00000000..8d8991f4 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/FalseConstraintRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.FalseConstraintRule; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>False Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class FalseConstraintRuleImpl extends LogicalConstraintRuleImpl implements FalseConstraintRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FalseConstraintRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.FALSE_CONSTRAINT_RULE; + } + +} //FalseConstraintRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/FalseFeatureRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/FalseFeatureRuleImpl.java new file mode 100644 index 00000000..2e446b53 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/FalseFeatureRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.FalseFeatureRule; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>False Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class FalseFeatureRuleImpl extends LogicalFeatureRuleImpl implements FalseFeatureRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FalseFeatureRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.FALSE_FEATURE_RULE; + } + +} //FalseFeatureRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/FeatureRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/FeatureRuleImpl.java new file mode 100644 index 00000000..656b01a0 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/FeatureRuleImpl.java @@ -0,0 +1,39 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.FeatureRule; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public abstract class FeatureRuleImpl extends MinimalEObjectImpl.Container implements FeatureRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FeatureRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.FEATURE_RULE; + } + +} //FeatureRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ImplicationConstraintRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ImplicationConstraintRuleImpl.java new file mode 100644 index 00000000..e6cf136f --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ImplicationConstraintRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.ImplicationConstraintRule; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Implication Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class ImplicationConstraintRuleImpl extends BinaryConstraintRuleImpl implements ImplicationConstraintRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ImplicationConstraintRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.IMPLICATION_CONSTRAINT_RULE; + } + +} //ImplicationConstraintRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ImplicationFeatureRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ImplicationFeatureRuleImpl.java new file mode 100644 index 00000000..9b69deba --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ImplicationFeatureRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.ImplicationFeatureRule; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Implication Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class ImplicationFeatureRuleImpl extends BinaryFeatureRuleImpl implements ImplicationFeatureRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ImplicationFeatureRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.IMPLICATION_FEATURE_RULE; + } + +} //ImplicationFeatureRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/InCompartmentImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/InCompartmentImpl.java new file mode 100644 index 00000000..01fbba89 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/InCompartmentImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.InCompartment; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>In Compartment</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class InCompartmentImpl extends ConstraintRuleImpl implements InCompartment { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected InCompartmentImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.IN_COMPARTMENT; + } + +} //InCompartmentImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsFeatureImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsFeatureImpl.java new file mode 100644 index 00000000..b46f7ebd --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsFeatureImpl.java @@ -0,0 +1,163 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.FeatureNameEnum; +import Editpolicymodel.IsFeature; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Is Feature</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link Editpolicymodel.impl.IsFeatureImpl#getFeatureName <em>Feature Name</em>}</li> + * </ul> + * + * @generated + */ +public class IsFeatureImpl extends FeatureRuleImpl implements IsFeature { + /** + * The default value of the '{@link #getFeatureName() <em>Feature Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFeatureName() + * @generated + * @ordered + */ + protected static final FeatureNameEnum FEATURE_NAME_EDEFAULT = FeatureNameEnum.ROLES; + + /** + * The cached value of the '{@link #getFeatureName() <em>Feature Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFeatureName() + * @generated + * @ordered + */ + protected FeatureNameEnum featureName = FEATURE_NAME_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IsFeatureImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.IS_FEATURE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FeatureNameEnum getFeatureName() { + return featureName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setFeatureName(FeatureNameEnum newFeatureName) { + FeatureNameEnum oldFeatureName = featureName; + featureName = newFeatureName == null ? FEATURE_NAME_EDEFAULT : newFeatureName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.IS_FEATURE__FEATURE_NAME, oldFeatureName, featureName)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case EditpolicymodelPackage.IS_FEATURE__FEATURE_NAME: + return getFeatureName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case EditpolicymodelPackage.IS_FEATURE__FEATURE_NAME: + setFeatureName((FeatureNameEnum)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.IS_FEATURE__FEATURE_NAME: + setFeatureName(FEATURE_NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.IS_FEATURE__FEATURE_NAME: + return featureName != FEATURE_NAME_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (featureName: "); + result.append(featureName); + result.append(')'); + return result.toString(); + } + +} //IsFeatureImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsParentImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsParentImpl.java new file mode 100644 index 00000000..4507a8cf --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsParentImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.IsParent; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Is Parent</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class IsParentImpl extends TypeArgumentRuleImpl implements IsParent { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IsParentImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.IS_PARENT; + } + +} //IsParentImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsSourceTypeImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsSourceTypeImpl.java new file mode 100644 index 00000000..d1899d29 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsSourceTypeImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.IsSourceType; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Is Source Type</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class IsSourceTypeImpl extends TypeArgumentRuleImpl implements IsSourceType { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IsSourceTypeImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.IS_SOURCE_TYPE; + } + +} //IsSourceTypeImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsTargetImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsTargetImpl.java new file mode 100644 index 00000000..bd4efa6b --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsTargetImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.IsTarget; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Is Target</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class IsTargetImpl extends TypeArgumentRuleImpl implements IsTarget { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IsTargetImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.IS_TARGET; + } + +} //IsTargetImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsTargetTypeImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsTargetTypeImpl.java new file mode 100644 index 00000000..55088dd4 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/IsTargetTypeImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.IsTargetType; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Is Target Type</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class IsTargetTypeImpl extends TypeArgumentRuleImpl implements IsTargetType { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IsTargetTypeImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.IS_TARGET_TYPE; + } + +} //IsTargetTypeImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/LogicalConstraintRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/LogicalConstraintRuleImpl.java new file mode 100644 index 00000000..e8eee1e6 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/LogicalConstraintRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.LogicalConstraintRule; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Logical Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class LogicalConstraintRuleImpl extends ConstraintRuleImpl implements LogicalConstraintRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected LogicalConstraintRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.LOGICAL_CONSTRAINT_RULE; + } + +} //LogicalConstraintRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/LogicalFeatureRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/LogicalFeatureRuleImpl.java new file mode 100644 index 00000000..00152864 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/LogicalFeatureRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.LogicalFeatureRule; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Logical Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class LogicalFeatureRuleImpl extends FeatureRuleImpl implements LogicalFeatureRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected LogicalFeatureRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.LOGICAL_FEATURE_RULE; + } + +} //LogicalFeatureRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ModelImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ModelImpl.java new file mode 100644 index 00000000..495377d5 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/ModelImpl.java @@ -0,0 +1,152 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.Model; +import Editpolicymodel.Policy; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Model</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link Editpolicymodel.impl.ModelImpl#getPolicies <em>Policies</em>}</li> + * </ul> + * + * @generated + */ +public class ModelImpl extends MinimalEObjectImpl.Container implements Model { + /** + * The cached value of the '{@link #getPolicies() <em>Policies</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPolicies() + * @generated + * @ordered + */ + protected EList<Policy> policies; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ModelImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.MODEL; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<Policy> getPolicies() { + if (policies == null) { + policies = new EObjectContainmentEList<Policy>(Policy.class, this, EditpolicymodelPackage.MODEL__POLICIES); + } + return policies; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case EditpolicymodelPackage.MODEL__POLICIES: + return ((InternalEList<?>)getPolicies()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case EditpolicymodelPackage.MODEL__POLICIES: + return getPolicies(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case EditpolicymodelPackage.MODEL__POLICIES: + getPolicies().clear(); + getPolicies().addAll((Collection<? extends Policy>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.MODEL__POLICIES: + getPolicies().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.MODEL__POLICIES: + return policies != null && !policies.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ModelImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NaryConstraintRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NaryConstraintRuleImpl.java new file mode 100644 index 00000000..f7b049c1 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NaryConstraintRuleImpl.java @@ -0,0 +1,150 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.ConstraintRule; +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.NaryConstraintRule; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Nary Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link Editpolicymodel.impl.NaryConstraintRuleImpl#getRules <em>Rules</em>}</li> + * </ul> + * + * @generated + */ +public abstract class NaryConstraintRuleImpl extends LogicalConstraintRuleImpl implements NaryConstraintRule { + /** + * The cached value of the '{@link #getRules() <em>Rules</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRules() + * @generated + * @ordered + */ + protected EList<ConstraintRule> rules; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected NaryConstraintRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<ConstraintRule> getRules() { + if (rules == null) { + rules = new EObjectContainmentEList<ConstraintRule>(ConstraintRule.class, this, EditpolicymodelPackage.NARY_CONSTRAINT_RULE__RULES); + } + return rules; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case EditpolicymodelPackage.NARY_CONSTRAINT_RULE__RULES: + return ((InternalEList<?>)getRules()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case EditpolicymodelPackage.NARY_CONSTRAINT_RULE__RULES: + return getRules(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case EditpolicymodelPackage.NARY_CONSTRAINT_RULE__RULES: + getRules().clear(); + getRules().addAll((Collection<? extends ConstraintRule>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.NARY_CONSTRAINT_RULE__RULES: + getRules().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.NARY_CONSTRAINT_RULE__RULES: + return rules != null && !rules.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //NaryConstraintRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NaryFeatureRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NaryFeatureRuleImpl.java new file mode 100644 index 00000000..fd31e102 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NaryFeatureRuleImpl.java @@ -0,0 +1,150 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.FeatureRule; +import Editpolicymodel.NaryFeatureRule; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Nary Feature Rule</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link Editpolicymodel.impl.NaryFeatureRuleImpl#getRules <em>Rules</em>}</li> + * </ul> + * + * @generated + */ +public abstract class NaryFeatureRuleImpl extends LogicalFeatureRuleImpl implements NaryFeatureRule { + /** + * The cached value of the '{@link #getRules() <em>Rules</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRules() + * @generated + * @ordered + */ + protected EList<FeatureRule> rules; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected NaryFeatureRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.NARY_FEATURE_RULE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<FeatureRule> getRules() { + if (rules == null) { + rules = new EObjectContainmentEList<FeatureRule>(FeatureRule.class, this, EditpolicymodelPackage.NARY_FEATURE_RULE__RULES); + } + return rules; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case EditpolicymodelPackage.NARY_FEATURE_RULE__RULES: + return ((InternalEList<?>)getRules()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case EditpolicymodelPackage.NARY_FEATURE_RULE__RULES: + return getRules(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case EditpolicymodelPackage.NARY_FEATURE_RULE__RULES: + getRules().clear(); + getRules().addAll((Collection<? extends FeatureRule>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.NARY_FEATURE_RULE__RULES: + getRules().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.NARY_FEATURE_RULE__RULES: + return rules != null && !rules.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //NaryFeatureRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NotConstraintRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NotConstraintRuleImpl.java new file mode 100644 index 00000000..68f57c35 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NotConstraintRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.NotConstraintRule; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Not Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class NotConstraintRuleImpl extends UnaryConstraintRuleImpl implements NotConstraintRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected NotConstraintRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.NOT_CONSTRAINT_RULE; + } + +} //NotConstraintRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NotFeatureRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NotFeatureRuleImpl.java new file mode 100644 index 00000000..246e8af2 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/NotFeatureRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.NotFeatureRule; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Not Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class NotFeatureRuleImpl extends UnaryFeatureRuleImpl implements NotFeatureRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected NotFeatureRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.NOT_FEATURE_RULE; + } + +} //NotFeatureRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/OrConstraintRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/OrConstraintRuleImpl.java new file mode 100644 index 00000000..27f86478 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/OrConstraintRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.OrConstraintRule; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Or Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class OrConstraintRuleImpl extends NaryConstraintRuleImpl implements OrConstraintRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected OrConstraintRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.OR_CONSTRAINT_RULE; + } + +} //OrConstraintRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/OrFeatureRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/OrFeatureRuleImpl.java new file mode 100644 index 00000000..e2f777d0 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/OrFeatureRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.OrFeatureRule; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Or Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class OrFeatureRuleImpl extends NaryFeatureRuleImpl implements OrFeatureRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected OrFeatureRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.OR_FEATURE_RULE; + } + +} //OrFeatureRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/PolicyImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/PolicyImpl.java new file mode 100644 index 00000000..c024b3cf --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/PolicyImpl.java @@ -0,0 +1,421 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.ActionEnum; +import Editpolicymodel.ConstraintRule; +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.FeatureRule; +import Editpolicymodel.Policy; +import Editpolicymodel.TypeEnum; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Policy</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link Editpolicymodel.impl.PolicyImpl#getOverride <em>Override</em>}</li> + * <li>{@link Editpolicymodel.impl.PolicyImpl#getAction <em>Action</em>}</li> + * <li>{@link Editpolicymodel.impl.PolicyImpl#getActionType <em>Action Type</em>}</li> + * <li>{@link Editpolicymodel.impl.PolicyImpl#getFeatureRule <em>Feature Rule</em>}</li> + * <li>{@link Editpolicymodel.impl.PolicyImpl#getConstraintRule <em>Constraint Rule</em>}</li> + * </ul> + * + * @generated + */ +public class PolicyImpl extends MinimalEObjectImpl.Container implements Policy { + /** + * The default value of the '{@link #getOverride() <em>Override</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getOverride() + * @generated + * @ordered + */ + protected static final Boolean OVERRIDE_EDEFAULT = Boolean.FALSE; + + /** + * The cached value of the '{@link #getOverride() <em>Override</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getOverride() + * @generated + * @ordered + */ + protected Boolean override = OVERRIDE_EDEFAULT; + + /** + * The default value of the '{@link #getAction() <em>Action</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getAction() + * @generated + * @ordered + */ + protected static final ActionEnum ACTION_EDEFAULT = ActionEnum.CREATE; + + /** + * The cached value of the '{@link #getAction() <em>Action</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getAction() + * @generated + * @ordered + */ + protected ActionEnum action = ACTION_EDEFAULT; + + /** + * The default value of the '{@link #getActionType() <em>Action Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getActionType() + * @generated + * @ordered + */ + protected static final TypeEnum ACTION_TYPE_EDEFAULT = TypeEnum.ACYCLIC; + + /** + * The cached value of the '{@link #getActionType() <em>Action Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getActionType() + * @generated + * @ordered + */ + protected TypeEnum actionType = ACTION_TYPE_EDEFAULT; + + /** + * The cached value of the '{@link #getFeatureRule() <em>Feature Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFeatureRule() + * @generated + * @ordered + */ + protected FeatureRule featureRule; + + /** + * The cached value of the '{@link #getConstraintRule() <em>Constraint Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getConstraintRule() + * @generated + * @ordered + */ + protected ConstraintRule constraintRule; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PolicyImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.POLICY; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Boolean getOverride() { + return override; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setOverride(Boolean newOverride) { + Boolean oldOverride = override; + override = newOverride; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.POLICY__OVERRIDE, oldOverride, override)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ActionEnum getAction() { + return action; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setAction(ActionEnum newAction) { + ActionEnum oldAction = action; + action = newAction == null ? ACTION_EDEFAULT : newAction; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.POLICY__ACTION, oldAction, action)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TypeEnum getActionType() { + return actionType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setActionType(TypeEnum newActionType) { + TypeEnum oldActionType = actionType; + actionType = newActionType == null ? ACTION_TYPE_EDEFAULT : newActionType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.POLICY__ACTION_TYPE, oldActionType, actionType)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FeatureRule getFeatureRule() { + return featureRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetFeatureRule(FeatureRule newFeatureRule, NotificationChain msgs) { + FeatureRule oldFeatureRule = featureRule; + featureRule = newFeatureRule; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.POLICY__FEATURE_RULE, oldFeatureRule, newFeatureRule); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setFeatureRule(FeatureRule newFeatureRule) { + if (newFeatureRule != featureRule) { + NotificationChain msgs = null; + if (featureRule != null) + msgs = ((InternalEObject)featureRule).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.POLICY__FEATURE_RULE, null, msgs); + if (newFeatureRule != null) + msgs = ((InternalEObject)newFeatureRule).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.POLICY__FEATURE_RULE, null, msgs); + msgs = basicSetFeatureRule(newFeatureRule, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.POLICY__FEATURE_RULE, newFeatureRule, newFeatureRule)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ConstraintRule getConstraintRule() { + return constraintRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetConstraintRule(ConstraintRule newConstraintRule, NotificationChain msgs) { + ConstraintRule oldConstraintRule = constraintRule; + constraintRule = newConstraintRule; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.POLICY__CONSTRAINT_RULE, oldConstraintRule, newConstraintRule); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setConstraintRule(ConstraintRule newConstraintRule) { + if (newConstraintRule != constraintRule) { + NotificationChain msgs = null; + if (constraintRule != null) + msgs = ((InternalEObject)constraintRule).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.POLICY__CONSTRAINT_RULE, null, msgs); + if (newConstraintRule != null) + msgs = ((InternalEObject)newConstraintRule).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.POLICY__CONSTRAINT_RULE, null, msgs); + msgs = basicSetConstraintRule(newConstraintRule, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.POLICY__CONSTRAINT_RULE, newConstraintRule, newConstraintRule)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case EditpolicymodelPackage.POLICY__FEATURE_RULE: + return basicSetFeatureRule(null, msgs); + case EditpolicymodelPackage.POLICY__CONSTRAINT_RULE: + return basicSetConstraintRule(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case EditpolicymodelPackage.POLICY__OVERRIDE: + return getOverride(); + case EditpolicymodelPackage.POLICY__ACTION: + return getAction(); + case EditpolicymodelPackage.POLICY__ACTION_TYPE: + return getActionType(); + case EditpolicymodelPackage.POLICY__FEATURE_RULE: + return getFeatureRule(); + case EditpolicymodelPackage.POLICY__CONSTRAINT_RULE: + return getConstraintRule(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case EditpolicymodelPackage.POLICY__OVERRIDE: + setOverride((Boolean)newValue); + return; + case EditpolicymodelPackage.POLICY__ACTION: + setAction((ActionEnum)newValue); + return; + case EditpolicymodelPackage.POLICY__ACTION_TYPE: + setActionType((TypeEnum)newValue); + return; + case EditpolicymodelPackage.POLICY__FEATURE_RULE: + setFeatureRule((FeatureRule)newValue); + return; + case EditpolicymodelPackage.POLICY__CONSTRAINT_RULE: + setConstraintRule((ConstraintRule)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.POLICY__OVERRIDE: + setOverride(OVERRIDE_EDEFAULT); + return; + case EditpolicymodelPackage.POLICY__ACTION: + setAction(ACTION_EDEFAULT); + return; + case EditpolicymodelPackage.POLICY__ACTION_TYPE: + setActionType(ACTION_TYPE_EDEFAULT); + return; + case EditpolicymodelPackage.POLICY__FEATURE_RULE: + setFeatureRule((FeatureRule)null); + return; + case EditpolicymodelPackage.POLICY__CONSTRAINT_RULE: + setConstraintRule((ConstraintRule)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.POLICY__OVERRIDE: + return OVERRIDE_EDEFAULT == null ? override != null : !OVERRIDE_EDEFAULT.equals(override); + case EditpolicymodelPackage.POLICY__ACTION: + return action != ACTION_EDEFAULT; + case EditpolicymodelPackage.POLICY__ACTION_TYPE: + return actionType != ACTION_TYPE_EDEFAULT; + case EditpolicymodelPackage.POLICY__FEATURE_RULE: + return featureRule != null; + case EditpolicymodelPackage.POLICY__CONSTRAINT_RULE: + return constraintRule != null; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (override: "); + result.append(override); + result.append(", action: "); + result.append(action); + result.append(", actionType: "); + result.append(actionType); + result.append(')'); + return result.toString(); + } + +} //PolicyImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/SourceEqualsTargetImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/SourceEqualsTargetImpl.java new file mode 100644 index 00000000..2f9460ce --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/SourceEqualsTargetImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.SourceEqualsTarget; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Source Equals Target</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class SourceEqualsTargetImpl extends ConstraintRuleImpl implements SourceEqualsTarget { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SourceEqualsTargetImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.SOURCE_EQUALS_TARGET; + } + +} //SourceEqualsTargetImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/SourceEqualsTargetTypeImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/SourceEqualsTargetTypeImpl.java new file mode 100644 index 00000000..3a0f233e --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/SourceEqualsTargetTypeImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.SourceEqualsTargetType; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Source Equals Target Type</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class SourceEqualsTargetTypeImpl extends ConstraintRuleImpl implements SourceEqualsTargetType { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SourceEqualsTargetTypeImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.SOURCE_EQUALS_TARGET_TYPE; + } + +} //SourceEqualsTargetTypeImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/TrueConstraintRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/TrueConstraintRuleImpl.java new file mode 100644 index 00000000..f2aaccd9 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/TrueConstraintRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.TrueConstraintRule; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>True Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class TrueConstraintRuleImpl extends LogicalConstraintRuleImpl implements TrueConstraintRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TrueConstraintRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.TRUE_CONSTRAINT_RULE; + } + +} //TrueConstraintRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/TrueFeatureRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/TrueFeatureRuleImpl.java new file mode 100644 index 00000000..09929737 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/TrueFeatureRuleImpl.java @@ -0,0 +1,37 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.TrueFeatureRule; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>True Feature Rule</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class TrueFeatureRuleImpl extends LogicalFeatureRuleImpl implements TrueFeatureRule { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TrueFeatureRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.TRUE_FEATURE_RULE; + } + +} //TrueFeatureRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/TypeArgumentRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/TypeArgumentRuleImpl.java new file mode 100644 index 00000000..f66165bb --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/TypeArgumentRuleImpl.java @@ -0,0 +1,163 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.TypeArgumentRule; +import Editpolicymodel.TypeEnum; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Type Argument Rule</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link Editpolicymodel.impl.TypeArgumentRuleImpl#getType <em>Type</em>}</li> + * </ul> + * + * @generated + */ +public abstract class TypeArgumentRuleImpl extends ConstraintRuleImpl implements TypeArgumentRule { + /** + * The default value of the '{@link #getType() <em>Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getType() + * @generated + * @ordered + */ + protected static final TypeEnum TYPE_EDEFAULT = TypeEnum.ACYCLIC; + + /** + * The cached value of the '{@link #getType() <em>Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getType() + * @generated + * @ordered + */ + protected TypeEnum type = TYPE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TypeArgumentRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.TYPE_ARGUMENT_RULE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TypeEnum getType() { + return type; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setType(TypeEnum newType) { + TypeEnum oldType = type; + type = newType == null ? TYPE_EDEFAULT : newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.TYPE_ARGUMENT_RULE__TYPE, oldType, type)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case EditpolicymodelPackage.TYPE_ARGUMENT_RULE__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case EditpolicymodelPackage.TYPE_ARGUMENT_RULE__TYPE: + setType((TypeEnum)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.TYPE_ARGUMENT_RULE__TYPE: + setType(TYPE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.TYPE_ARGUMENT_RULE__TYPE: + return type != TYPE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (type: "); + result.append(type); + result.append(')'); + return result.toString(); + } + +} //TypeArgumentRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/UnaryConstraintRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/UnaryConstraintRuleImpl.java new file mode 100644 index 00000000..6d91c9e0 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/UnaryConstraintRuleImpl.java @@ -0,0 +1,175 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.ConstraintRule; +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.UnaryConstraintRule; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Unary Constraint Rule</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link Editpolicymodel.impl.UnaryConstraintRuleImpl#getRule <em>Rule</em>}</li> + * </ul> + * + * @generated + */ +public abstract class UnaryConstraintRuleImpl extends LogicalConstraintRuleImpl implements UnaryConstraintRule { + /** + * The cached value of the '{@link #getRule() <em>Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRule() + * @generated + * @ordered + */ + protected ConstraintRule rule; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected UnaryConstraintRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ConstraintRule getRule() { + return rule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetRule(ConstraintRule newRule, NotificationChain msgs) { + ConstraintRule oldRule = rule; + rule = newRule; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.UNARY_CONSTRAINT_RULE__RULE, oldRule, newRule); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRule(ConstraintRule newRule) { + if (newRule != rule) { + NotificationChain msgs = null; + if (rule != null) + msgs = ((InternalEObject)rule).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.UNARY_CONSTRAINT_RULE__RULE, null, msgs); + if (newRule != null) + msgs = ((InternalEObject)newRule).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.UNARY_CONSTRAINT_RULE__RULE, null, msgs); + msgs = basicSetRule(newRule, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.UNARY_CONSTRAINT_RULE__RULE, newRule, newRule)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case EditpolicymodelPackage.UNARY_CONSTRAINT_RULE__RULE: + return basicSetRule(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case EditpolicymodelPackage.UNARY_CONSTRAINT_RULE__RULE: + return getRule(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case EditpolicymodelPackage.UNARY_CONSTRAINT_RULE__RULE: + setRule((ConstraintRule)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.UNARY_CONSTRAINT_RULE__RULE: + setRule((ConstraintRule)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.UNARY_CONSTRAINT_RULE__RULE: + return rule != null; + } + return super.eIsSet(featureID); + } + +} //UnaryConstraintRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/UnaryFeatureRuleImpl.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/UnaryFeatureRuleImpl.java new file mode 100644 index 00000000..b6f3cf53 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/impl/UnaryFeatureRuleImpl.java @@ -0,0 +1,175 @@ +/** + */ +package Editpolicymodel.impl; + +import Editpolicymodel.EditpolicymodelPackage; +import Editpolicymodel.FeatureRule; +import Editpolicymodel.UnaryFeatureRule; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Unary Feature Rule</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link Editpolicymodel.impl.UnaryFeatureRuleImpl#getRule <em>Rule</em>}</li> + * </ul> + * + * @generated + */ +public abstract class UnaryFeatureRuleImpl extends LogicalFeatureRuleImpl implements UnaryFeatureRule { + /** + * The cached value of the '{@link #getRule() <em>Rule</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRule() + * @generated + * @ordered + */ + protected FeatureRule rule; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected UnaryFeatureRuleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return EditpolicymodelPackage.Literals.UNARY_FEATURE_RULE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FeatureRule getRule() { + return rule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetRule(FeatureRule newRule, NotificationChain msgs) { + FeatureRule oldRule = rule; + rule = newRule; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.UNARY_FEATURE_RULE__RULE, oldRule, newRule); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRule(FeatureRule newRule) { + if (newRule != rule) { + NotificationChain msgs = null; + if (rule != null) + msgs = ((InternalEObject)rule).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.UNARY_FEATURE_RULE__RULE, null, msgs); + if (newRule != null) + msgs = ((InternalEObject)newRule).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EditpolicymodelPackage.UNARY_FEATURE_RULE__RULE, null, msgs); + msgs = basicSetRule(newRule, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, EditpolicymodelPackage.UNARY_FEATURE_RULE__RULE, newRule, newRule)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case EditpolicymodelPackage.UNARY_FEATURE_RULE__RULE: + return basicSetRule(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case EditpolicymodelPackage.UNARY_FEATURE_RULE__RULE: + return getRule(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case EditpolicymodelPackage.UNARY_FEATURE_RULE__RULE: + setRule((FeatureRule)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.UNARY_FEATURE_RULE__RULE: + setRule((FeatureRule)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case EditpolicymodelPackage.UNARY_FEATURE_RULE__RULE: + return rule != null; + } + return super.eIsSet(featureID); + } + +} //UnaryFeatureRuleImpl diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/util/EditpolicymodelAdapterFactory.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/util/EditpolicymodelAdapterFactory.java new file mode 100644 index 00000000..0f702931 --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/util/EditpolicymodelAdapterFactory.java @@ -0,0 +1,714 @@ +/** + */ +package Editpolicymodel.util; + +import Editpolicymodel.*; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see Editpolicymodel.EditpolicymodelPackage + * @generated + */ +public class EditpolicymodelAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static EditpolicymodelPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EditpolicymodelAdapterFactory() { + if (modelPackage == null) { + modelPackage = EditpolicymodelPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EditpolicymodelSwitch<Adapter> modelSwitch = + new EditpolicymodelSwitch<Adapter>() { + @Override + public Adapter caseModel(Model object) { + return createModelAdapter(); + } + @Override + public Adapter casePolicy(Policy object) { + return createPolicyAdapter(); + } + @Override + public Adapter caseContainsCompartment(ContainsCompartment object) { + return createContainsCompartmentAdapter(); + } + @Override + public Adapter caseIsTarget(IsTarget object) { + return createIsTargetAdapter(); + } + @Override + public Adapter caseIsParent(IsParent object) { + return createIsParentAdapter(); + } + @Override + public Adapter caseFeatureRule(FeatureRule object) { + return createFeatureRuleAdapter(); + } + @Override + public Adapter caseIsFeature(IsFeature object) { + return createIsFeatureAdapter(); + } + @Override + public Adapter caseConstraintRule(ConstraintRule object) { + return createConstraintRuleAdapter(); + } + @Override + public Adapter caseIsTargetType(IsTargetType object) { + return createIsTargetTypeAdapter(); + } + @Override + public Adapter caseUnaryConstraintRule(UnaryConstraintRule object) { + return createUnaryConstraintRuleAdapter(); + } + @Override + public Adapter caseNotConstraintRule(NotConstraintRule object) { + return createNotConstraintRuleAdapter(); + } + @Override + public Adapter caseAndConstraintRule(AndConstraintRule object) { + return createAndConstraintRuleAdapter(); + } + @Override + public Adapter caseBinaryConstraintRule(BinaryConstraintRule object) { + return createBinaryConstraintRuleAdapter(); + } + @Override + public Adapter caseTrueConstraintRule(TrueConstraintRule object) { + return createTrueConstraintRuleAdapter(); + } + @Override + public Adapter caseFalseConstraintRule(FalseConstraintRule object) { + return createFalseConstraintRuleAdapter(); + } + @Override + public Adapter caseOrConstraintRule(OrConstraintRule object) { + return createOrConstraintRuleAdapter(); + } + @Override + public Adapter caseImplicationConstraintRule(ImplicationConstraintRule object) { + return createImplicationConstraintRuleAdapter(); + } + @Override + public Adapter caseIsSourceType(IsSourceType object) { + return createIsSourceTypeAdapter(); + } + @Override + public Adapter caseTypeArgumentRule(TypeArgumentRule object) { + return createTypeArgumentRuleAdapter(); + } + @Override + public Adapter caseNaryConstraintRule(NaryConstraintRule object) { + return createNaryConstraintRuleAdapter(); + } + @Override + public Adapter caseLogicalConstraintRule(LogicalConstraintRule object) { + return createLogicalConstraintRuleAdapter(); + } + @Override + public Adapter caseTrueFeatureRule(TrueFeatureRule object) { + return createTrueFeatureRuleAdapter(); + } + @Override + public Adapter caseNotFeatureRule(NotFeatureRule object) { + return createNotFeatureRuleAdapter(); + } + @Override + public Adapter caseFalseFeatureRule(FalseFeatureRule object) { + return createFalseFeatureRuleAdapter(); + } + @Override + public Adapter caseNaryFeatureRule(NaryFeatureRule object) { + return createNaryFeatureRuleAdapter(); + } + @Override + public Adapter caseBinaryFeatureRule(BinaryFeatureRule object) { + return createBinaryFeatureRuleAdapter(); + } + @Override + public Adapter caseLogicalFeatureRule(LogicalFeatureRule object) { + return createLogicalFeatureRuleAdapter(); + } + @Override + public Adapter caseImplicationFeatureRule(ImplicationFeatureRule object) { + return createImplicationFeatureRuleAdapter(); + } + @Override + public Adapter caseUnaryFeatureRule(UnaryFeatureRule object) { + return createUnaryFeatureRuleAdapter(); + } + @Override + public Adapter caseOrFeatureRule(OrFeatureRule object) { + return createOrFeatureRuleAdapter(); + } + @Override + public Adapter caseAndFeatureRule(AndFeatureRule object) { + return createAndFeatureRuleAdapter(); + } + @Override + public Adapter caseSourceEqualsTarget(SourceEqualsTarget object) { + return createSourceEqualsTargetAdapter(); + } + @Override + public Adapter caseSourceEqualsTargetType(SourceEqualsTargetType object) { + return createSourceEqualsTargetTypeAdapter(); + } + @Override + public Adapter caseInCompartment(InCompartment object) { + return createInCompartmentAdapter(); + } + @Override + public Adapter defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.Model <em>Model</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.Model + * @generated + */ + public Adapter createModelAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.Policy <em>Policy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.Policy + * @generated + */ + public Adapter createPolicyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.ContainsCompartment <em>Contains Compartment</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.ContainsCompartment + * @generated + */ + public Adapter createContainsCompartmentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.IsTarget <em>Is Target</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.IsTarget + * @generated + */ + public Adapter createIsTargetAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.IsParent <em>Is Parent</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.IsParent + * @generated + */ + public Adapter createIsParentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.FeatureRule <em>Feature Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.FeatureRule + * @generated + */ + public Adapter createFeatureRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.IsFeature <em>Is Feature</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.IsFeature + * @generated + */ + public Adapter createIsFeatureAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.ConstraintRule <em>Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.ConstraintRule + * @generated + */ + public Adapter createConstraintRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.IsTargetType <em>Is Target Type</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.IsTargetType + * @generated + */ + public Adapter createIsTargetTypeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.UnaryConstraintRule <em>Unary Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.UnaryConstraintRule + * @generated + */ + public Adapter createUnaryConstraintRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.NotConstraintRule <em>Not Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.NotConstraintRule + * @generated + */ + public Adapter createNotConstraintRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.AndConstraintRule <em>And Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.AndConstraintRule + * @generated + */ + public Adapter createAndConstraintRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.BinaryConstraintRule <em>Binary Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.BinaryConstraintRule + * @generated + */ + public Adapter createBinaryConstraintRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.TrueConstraintRule <em>True Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.TrueConstraintRule + * @generated + */ + public Adapter createTrueConstraintRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.FalseConstraintRule <em>False Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.FalseConstraintRule + * @generated + */ + public Adapter createFalseConstraintRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.OrConstraintRule <em>Or Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.OrConstraintRule + * @generated + */ + public Adapter createOrConstraintRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.ImplicationConstraintRule <em>Implication Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.ImplicationConstraintRule + * @generated + */ + public Adapter createImplicationConstraintRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.IsSourceType <em>Is Source Type</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.IsSourceType + * @generated + */ + public Adapter createIsSourceTypeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.TypeArgumentRule <em>Type Argument Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.TypeArgumentRule + * @generated + */ + public Adapter createTypeArgumentRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.NaryConstraintRule <em>Nary Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.NaryConstraintRule + * @generated + */ + public Adapter createNaryConstraintRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.LogicalConstraintRule <em>Logical Constraint Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.LogicalConstraintRule + * @generated + */ + public Adapter createLogicalConstraintRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.TrueFeatureRule <em>True Feature Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.TrueFeatureRule + * @generated + */ + public Adapter createTrueFeatureRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.NotFeatureRule <em>Not Feature Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.NotFeatureRule + * @generated + */ + public Adapter createNotFeatureRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.FalseFeatureRule <em>False Feature Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.FalseFeatureRule + * @generated + */ + public Adapter createFalseFeatureRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.NaryFeatureRule <em>Nary Feature Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.NaryFeatureRule + * @generated + */ + public Adapter createNaryFeatureRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.BinaryFeatureRule <em>Binary Feature Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.BinaryFeatureRule + * @generated + */ + public Adapter createBinaryFeatureRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.LogicalFeatureRule <em>Logical Feature Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.LogicalFeatureRule + * @generated + */ + public Adapter createLogicalFeatureRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.ImplicationFeatureRule <em>Implication Feature Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.ImplicationFeatureRule + * @generated + */ + public Adapter createImplicationFeatureRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.UnaryFeatureRule <em>Unary Feature Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.UnaryFeatureRule + * @generated + */ + public Adapter createUnaryFeatureRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.OrFeatureRule <em>Or Feature Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.OrFeatureRule + * @generated + */ + public Adapter createOrFeatureRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.AndFeatureRule <em>And Feature Rule</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.AndFeatureRule + * @generated + */ + public Adapter createAndFeatureRuleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.SourceEqualsTarget <em>Source Equals Target</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.SourceEqualsTarget + * @generated + */ + public Adapter createSourceEqualsTargetAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.SourceEqualsTargetType <em>Source Equals Target Type</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.SourceEqualsTargetType + * @generated + */ + public Adapter createSourceEqualsTargetTypeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link Editpolicymodel.InCompartment <em>In Compartment</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see Editpolicymodel.InCompartment + * @generated + */ + public Adapter createInCompartmentAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //EditpolicymodelAdapterFactory diff --git a/org.framed.iorm.editpolicymodel/src/Editpolicymodel/util/EditpolicymodelSwitch.java b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/util/EditpolicymodelSwitch.java new file mode 100644 index 00000000..b95900bd --- /dev/null +++ b/org.framed.iorm.editpolicymodel/src/Editpolicymodel/util/EditpolicymodelSwitch.java @@ -0,0 +1,863 @@ +/** + */ +package Editpolicymodel.util; + +import Editpolicymodel.*; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see Editpolicymodel.EditpolicymodelPackage + * @generated + */ +public class EditpolicymodelSwitch<T> extends Switch<T> { + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static EditpolicymodelPackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EditpolicymodelSwitch() { + if (modelPackage == null) { + modelPackage = EditpolicymodelPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) { + return ePackage == modelPackage; + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case EditpolicymodelPackage.MODEL: { + Model model = (Model)theEObject; + T result = caseModel(model); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.POLICY: { + Policy policy = (Policy)theEObject; + T result = casePolicy(policy); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.CONTAINS_COMPARTMENT: { + ContainsCompartment containsCompartment = (ContainsCompartment)theEObject; + T result = caseContainsCompartment(containsCompartment); + if (result == null) result = caseConstraintRule(containsCompartment); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.IS_TARGET: { + IsTarget isTarget = (IsTarget)theEObject; + T result = caseIsTarget(isTarget); + if (result == null) result = caseTypeArgumentRule(isTarget); + if (result == null) result = caseConstraintRule(isTarget); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.IS_PARENT: { + IsParent isParent = (IsParent)theEObject; + T result = caseIsParent(isParent); + if (result == null) result = caseTypeArgumentRule(isParent); + if (result == null) result = caseConstraintRule(isParent); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.FEATURE_RULE: { + FeatureRule featureRule = (FeatureRule)theEObject; + T result = caseFeatureRule(featureRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.IS_FEATURE: { + IsFeature isFeature = (IsFeature)theEObject; + T result = caseIsFeature(isFeature); + if (result == null) result = caseFeatureRule(isFeature); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.CONSTRAINT_RULE: { + ConstraintRule constraintRule = (ConstraintRule)theEObject; + T result = caseConstraintRule(constraintRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.IS_TARGET_TYPE: { + IsTargetType isTargetType = (IsTargetType)theEObject; + T result = caseIsTargetType(isTargetType); + if (result == null) result = caseTypeArgumentRule(isTargetType); + if (result == null) result = caseConstraintRule(isTargetType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.UNARY_CONSTRAINT_RULE: { + UnaryConstraintRule unaryConstraintRule = (UnaryConstraintRule)theEObject; + T result = caseUnaryConstraintRule(unaryConstraintRule); + if (result == null) result = caseLogicalConstraintRule(unaryConstraintRule); + if (result == null) result = caseConstraintRule(unaryConstraintRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.NOT_CONSTRAINT_RULE: { + NotConstraintRule notConstraintRule = (NotConstraintRule)theEObject; + T result = caseNotConstraintRule(notConstraintRule); + if (result == null) result = caseUnaryConstraintRule(notConstraintRule); + if (result == null) result = caseLogicalConstraintRule(notConstraintRule); + if (result == null) result = caseConstraintRule(notConstraintRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.AND_CONSTRAINT_RULE: { + AndConstraintRule andConstraintRule = (AndConstraintRule)theEObject; + T result = caseAndConstraintRule(andConstraintRule); + if (result == null) result = caseNaryConstraintRule(andConstraintRule); + if (result == null) result = caseLogicalConstraintRule(andConstraintRule); + if (result == null) result = caseConstraintRule(andConstraintRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.BINARY_CONSTRAINT_RULE: { + BinaryConstraintRule binaryConstraintRule = (BinaryConstraintRule)theEObject; + T result = caseBinaryConstraintRule(binaryConstraintRule); + if (result == null) result = caseLogicalConstraintRule(binaryConstraintRule); + if (result == null) result = caseConstraintRule(binaryConstraintRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.TRUE_CONSTRAINT_RULE: { + TrueConstraintRule trueConstraintRule = (TrueConstraintRule)theEObject; + T result = caseTrueConstraintRule(trueConstraintRule); + if (result == null) result = caseLogicalConstraintRule(trueConstraintRule); + if (result == null) result = caseConstraintRule(trueConstraintRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.FALSE_CONSTRAINT_RULE: { + FalseConstraintRule falseConstraintRule = (FalseConstraintRule)theEObject; + T result = caseFalseConstraintRule(falseConstraintRule); + if (result == null) result = caseLogicalConstraintRule(falseConstraintRule); + if (result == null) result = caseConstraintRule(falseConstraintRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.OR_CONSTRAINT_RULE: { + OrConstraintRule orConstraintRule = (OrConstraintRule)theEObject; + T result = caseOrConstraintRule(orConstraintRule); + if (result == null) result = caseNaryConstraintRule(orConstraintRule); + if (result == null) result = caseLogicalConstraintRule(orConstraintRule); + if (result == null) result = caseConstraintRule(orConstraintRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.IMPLICATION_CONSTRAINT_RULE: { + ImplicationConstraintRule implicationConstraintRule = (ImplicationConstraintRule)theEObject; + T result = caseImplicationConstraintRule(implicationConstraintRule); + if (result == null) result = caseBinaryConstraintRule(implicationConstraintRule); + if (result == null) result = caseLogicalConstraintRule(implicationConstraintRule); + if (result == null) result = caseConstraintRule(implicationConstraintRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.IS_SOURCE_TYPE: { + IsSourceType isSourceType = (IsSourceType)theEObject; + T result = caseIsSourceType(isSourceType); + if (result == null) result = caseTypeArgumentRule(isSourceType); + if (result == null) result = caseConstraintRule(isSourceType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.TYPE_ARGUMENT_RULE: { + TypeArgumentRule typeArgumentRule = (TypeArgumentRule)theEObject; + T result = caseTypeArgumentRule(typeArgumentRule); + if (result == null) result = caseConstraintRule(typeArgumentRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.NARY_CONSTRAINT_RULE: { + NaryConstraintRule naryConstraintRule = (NaryConstraintRule)theEObject; + T result = caseNaryConstraintRule(naryConstraintRule); + if (result == null) result = caseLogicalConstraintRule(naryConstraintRule); + if (result == null) result = caseConstraintRule(naryConstraintRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.LOGICAL_CONSTRAINT_RULE: { + LogicalConstraintRule logicalConstraintRule = (LogicalConstraintRule)theEObject; + T result = caseLogicalConstraintRule(logicalConstraintRule); + if (result == null) result = caseConstraintRule(logicalConstraintRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.TRUE_FEATURE_RULE: { + TrueFeatureRule trueFeatureRule = (TrueFeatureRule)theEObject; + T result = caseTrueFeatureRule(trueFeatureRule); + if (result == null) result = caseLogicalFeatureRule(trueFeatureRule); + if (result == null) result = caseFeatureRule(trueFeatureRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.NOT_FEATURE_RULE: { + NotFeatureRule notFeatureRule = (NotFeatureRule)theEObject; + T result = caseNotFeatureRule(notFeatureRule); + if (result == null) result = caseUnaryFeatureRule(notFeatureRule); + if (result == null) result = caseLogicalFeatureRule(notFeatureRule); + if (result == null) result = caseFeatureRule(notFeatureRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.FALSE_FEATURE_RULE: { + FalseFeatureRule falseFeatureRule = (FalseFeatureRule)theEObject; + T result = caseFalseFeatureRule(falseFeatureRule); + if (result == null) result = caseLogicalFeatureRule(falseFeatureRule); + if (result == null) result = caseFeatureRule(falseFeatureRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.NARY_FEATURE_RULE: { + NaryFeatureRule naryFeatureRule = (NaryFeatureRule)theEObject; + T result = caseNaryFeatureRule(naryFeatureRule); + if (result == null) result = caseLogicalFeatureRule(naryFeatureRule); + if (result == null) result = caseFeatureRule(naryFeatureRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.BINARY_FEATURE_RULE: { + BinaryFeatureRule binaryFeatureRule = (BinaryFeatureRule)theEObject; + T result = caseBinaryFeatureRule(binaryFeatureRule); + if (result == null) result = caseLogicalFeatureRule(binaryFeatureRule); + if (result == null) result = caseFeatureRule(binaryFeatureRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.LOGICAL_FEATURE_RULE: { + LogicalFeatureRule logicalFeatureRule = (LogicalFeatureRule)theEObject; + T result = caseLogicalFeatureRule(logicalFeatureRule); + if (result == null) result = caseFeatureRule(logicalFeatureRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.IMPLICATION_FEATURE_RULE: { + ImplicationFeatureRule implicationFeatureRule = (ImplicationFeatureRule)theEObject; + T result = caseImplicationFeatureRule(implicationFeatureRule); + if (result == null) result = caseBinaryFeatureRule(implicationFeatureRule); + if (result == null) result = caseLogicalFeatureRule(implicationFeatureRule); + if (result == null) result = caseFeatureRule(implicationFeatureRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.UNARY_FEATURE_RULE: { + UnaryFeatureRule unaryFeatureRule = (UnaryFeatureRule)theEObject; + T result = caseUnaryFeatureRule(unaryFeatureRule); + if (result == null) result = caseLogicalFeatureRule(unaryFeatureRule); + if (result == null) result = caseFeatureRule(unaryFeatureRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.OR_FEATURE_RULE: { + OrFeatureRule orFeatureRule = (OrFeatureRule)theEObject; + T result = caseOrFeatureRule(orFeatureRule); + if (result == null) result = caseNaryFeatureRule(orFeatureRule); + if (result == null) result = caseLogicalFeatureRule(orFeatureRule); + if (result == null) result = caseFeatureRule(orFeatureRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.AND_FEATURE_RULE: { + AndFeatureRule andFeatureRule = (AndFeatureRule)theEObject; + T result = caseAndFeatureRule(andFeatureRule); + if (result == null) result = caseNaryFeatureRule(andFeatureRule); + if (result == null) result = caseLogicalFeatureRule(andFeatureRule); + if (result == null) result = caseFeatureRule(andFeatureRule); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.SOURCE_EQUALS_TARGET: { + SourceEqualsTarget sourceEqualsTarget = (SourceEqualsTarget)theEObject; + T result = caseSourceEqualsTarget(sourceEqualsTarget); + if (result == null) result = caseConstraintRule(sourceEqualsTarget); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.SOURCE_EQUALS_TARGET_TYPE: { + SourceEqualsTargetType sourceEqualsTargetType = (SourceEqualsTargetType)theEObject; + T result = caseSourceEqualsTargetType(sourceEqualsTargetType); + if (result == null) result = caseConstraintRule(sourceEqualsTargetType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case EditpolicymodelPackage.IN_COMPARTMENT: { + InCompartment inCompartment = (InCompartment)theEObject; + T result = caseInCompartment(inCompartment); + if (result == null) result = caseConstraintRule(inCompartment); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Model</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Model</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseModel(Model object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Policy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Policy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePolicy(Policy object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Contains Compartment</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Contains Compartment</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseContainsCompartment(ContainsCompartment object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Is Target</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Is Target</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIsTarget(IsTarget object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Is Parent</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Is Parent</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIsParent(IsParent object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Feature Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Feature Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFeatureRule(FeatureRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Is Feature</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Is Feature</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIsFeature(IsFeature object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Constraint Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Constraint Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstraintRule(ConstraintRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Is Target Type</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Is Target Type</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIsTargetType(IsTargetType object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Unary Constraint Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Unary Constraint Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnaryConstraintRule(UnaryConstraintRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Not Constraint Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Not Constraint Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNotConstraintRule(NotConstraintRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>And Constraint Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>And Constraint Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAndConstraintRule(AndConstraintRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Binary Constraint Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Binary Constraint Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBinaryConstraintRule(BinaryConstraintRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>True Constraint Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>True Constraint Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTrueConstraintRule(TrueConstraintRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>False Constraint Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>False Constraint Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFalseConstraintRule(FalseConstraintRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Or Constraint Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Or Constraint Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseOrConstraintRule(OrConstraintRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Implication Constraint Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Implication Constraint Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseImplicationConstraintRule(ImplicationConstraintRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Is Source Type</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Is Source Type</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIsSourceType(IsSourceType object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Type Argument Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Type Argument Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTypeArgumentRule(TypeArgumentRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Nary Constraint Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Nary Constraint Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNaryConstraintRule(NaryConstraintRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Logical Constraint Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Logical Constraint Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLogicalConstraintRule(LogicalConstraintRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>True Feature Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>True Feature Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTrueFeatureRule(TrueFeatureRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Not Feature Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Not Feature Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNotFeatureRule(NotFeatureRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>False Feature Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>False Feature Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFalseFeatureRule(FalseFeatureRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Nary Feature Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Nary Feature Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNaryFeatureRule(NaryFeatureRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Binary Feature Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Binary Feature Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBinaryFeatureRule(BinaryFeatureRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Logical Feature Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Logical Feature Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLogicalFeatureRule(LogicalFeatureRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Implication Feature Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Implication Feature Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseImplicationFeatureRule(ImplicationFeatureRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Unary Feature Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Unary Feature Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnaryFeatureRule(UnaryFeatureRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Or Feature Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Or Feature Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseOrFeatureRule(OrFeatureRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>And Feature Rule</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>And Feature Rule</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAndFeatureRule(AndFeatureRule object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Source Equals Target</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Source Equals Target</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSourceEqualsTarget(SourceEqualsTarget object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Source Equals Target Type</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Source Equals Target Type</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSourceEqualsTargetType(SourceEqualsTargetType object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>In Compartment</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>In Compartment</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInCompartment(InCompartment object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) { + return null; + } + +} //EditpolicymodelSwitch -- GitLab