From 56dcbbe1c3d06b27aa282938368b54f326d480ad Mon Sep 17 00:00:00 2001
From: nullsub <chrisudeussen@gmail.com>
Date: Sat, 9 Jun 2018 20:54:23 +0200
Subject: [PATCH] update edipolicies according to TODOs

---
 .../.classpath                                |    7 +
 .../.gitignore                                |    1 +
 org.framed.iorm.editpolicymodel.edit/.project |   28 +
 .../META-INF/MANIFEST.MF                      |   17 +
 .../build.properties                          |   10 +
 ...straintRule_leftRule_AndConstraintRule.gif |  Bin 0 -> 223 bytes
 ...raintRule_leftRule_ContainsCompartment.gif |  Bin 0 -> 223 bytes
 ...raintRule_leftRule_FalseConstraintRule.gif |  Bin 0 -> 223 bytes
 ...ule_leftRule_ImplicationConstraintRule.gif |  Bin 0 -> 223 bytes
 ...teBinaryConstraintRule_leftRule_InType.gif |  Bin 0 -> 223 bytes
 ...BinaryConstraintRule_leftRule_IsParent.gif |  Bin 0 -> 223 bytes
 ...ryConstraintRule_leftRule_IsSourceType.gif |  Bin 0 -> 223 bytes
 ...BinaryConstraintRule_leftRule_IsTarget.gif |  Bin 0 -> 223 bytes
 ...ryConstraintRule_leftRule_IsTargetType.gif |  Bin 0 -> 223 bytes
 ...intRule_leftRule_LogicalConstraintRule.gif |  Bin 0 -> 223 bytes
 ...straintRule_leftRule_NotConstraintRule.gif |  Bin 0 -> 223 bytes
 ...nstraintRule_leftRule_OrConstraintRule.gif |  Bin 0 -> 223 bytes
 ...traintRule_leftRule_SourceEqualsTarget.gif |  Bin 0 -> 223 bytes
 ...ntRule_leftRule_SourceEqualsTargetType.gif |  Bin 0 -> 223 bytes
 ...traintRule_leftRule_TrueConstraintRule.gif |  Bin 0 -> 223 bytes
 ...traintRule_rightRule_AndConstraintRule.gif |  Bin 0 -> 223 bytes
 ...aintRule_rightRule_ContainsCompartment.gif |  Bin 0 -> 223 bytes
 ...aintRule_rightRule_FalseConstraintRule.gif |  Bin 0 -> 223 bytes
 ...le_rightRule_ImplicationConstraintRule.gif |  Bin 0 -> 223 bytes
 ...eBinaryConstraintRule_rightRule_InType.gif |  Bin 0 -> 223 bytes
 ...inaryConstraintRule_rightRule_IsParent.gif |  Bin 0 -> 223 bytes
 ...yConstraintRule_rightRule_IsSourceType.gif |  Bin 0 -> 223 bytes
 ...inaryConstraintRule_rightRule_IsTarget.gif |  Bin 0 -> 223 bytes
 ...yConstraintRule_rightRule_IsTargetType.gif |  Bin 0 -> 223 bytes
 ...ntRule_rightRule_LogicalConstraintRule.gif |  Bin 0 -> 223 bytes
 ...traintRule_rightRule_NotConstraintRule.gif |  Bin 0 -> 223 bytes
 ...straintRule_rightRule_OrConstraintRule.gif |  Bin 0 -> 223 bytes
 ...raintRule_rightRule_SourceEqualsTarget.gif |  Bin 0 -> 223 bytes
 ...tRule_rightRule_SourceEqualsTargetType.gif |  Bin 0 -> 223 bytes
 ...raintRule_rightRule_TrueConstraintRule.gif |  Bin 0 -> 223 bytes
 ...aryFeatureRule_leftRule_AndFeatureRule.gif |  Bin 0 -> 223 bytes
 ...yFeatureRule_leftRule_FalseFeatureRule.gif |  Bin 0 -> 223 bytes
 ...reRule_leftRule_ImplicationFeatureRule.gif |  Bin 0 -> 223 bytes
 ...teBinaryFeatureRule_leftRule_IsFeature.gif |  Bin 0 -> 223 bytes
 ...eatureRule_leftRule_LogicalFeatureRule.gif |  Bin 0 -> 223 bytes
 ...aryFeatureRule_leftRule_NotFeatureRule.gif |  Bin 0 -> 223 bytes
 ...naryFeatureRule_leftRule_OrFeatureRule.gif |  Bin 0 -> 223 bytes
 ...ryFeatureRule_leftRule_TrueFeatureRule.gif |  Bin 0 -> 223 bytes
 ...ryFeatureRule_rightRule_AndFeatureRule.gif |  Bin 0 -> 223 bytes
 ...FeatureRule_rightRule_FalseFeatureRule.gif |  Bin 0 -> 223 bytes
 ...eRule_rightRule_ImplicationFeatureRule.gif |  Bin 0 -> 223 bytes
 ...eBinaryFeatureRule_rightRule_IsFeature.gif |  Bin 0 -> 223 bytes
 ...atureRule_rightRule_LogicalFeatureRule.gif |  Bin 0 -> 223 bytes
 ...ryFeatureRule_rightRule_NotFeatureRule.gif |  Bin 0 -> 223 bytes
 ...aryFeatureRule_rightRule_OrFeatureRule.gif |  Bin 0 -> 223 bytes
 ...yFeatureRule_rightRule_TrueFeatureRule.gif |  Bin 0 -> 223 bytes
 .../ctool16/CreateModel_policies_Policy.gif   |  Bin 0 -> 223 bytes
 ...ConstraintRule_rules_AndConstraintRule.gif |  Bin 0 -> 223 bytes
 ...nstraintRule_rules_ContainsCompartment.gif |  Bin 0 -> 223 bytes
 ...nstraintRule_rules_FalseConstraintRule.gif |  Bin 0 -> 223 bytes
 ...ntRule_rules_ImplicationConstraintRule.gif |  Bin 0 -> 223 bytes
 .../CreateNaryConstraintRule_rules_InType.gif |  Bin 0 -> 223 bytes
 ...reateNaryConstraintRule_rules_IsParent.gif |  Bin 0 -> 223 bytes
 ...eNaryConstraintRule_rules_IsSourceType.gif |  Bin 0 -> 223 bytes
 ...reateNaryConstraintRule_rules_IsTarget.gif |  Bin 0 -> 223 bytes
 ...eNaryConstraintRule_rules_IsTargetType.gif |  Bin 0 -> 223 bytes
 ...traintRule_rules_LogicalConstraintRule.gif |  Bin 0 -> 223 bytes
 ...ConstraintRule_rules_NotConstraintRule.gif |  Bin 0 -> 223 bytes
 ...yConstraintRule_rules_OrConstraintRule.gif |  Bin 0 -> 223 bytes
 ...onstraintRule_rules_SourceEqualsTarget.gif |  Bin 0 -> 223 bytes
 ...raintRule_rules_SourceEqualsTargetType.gif |  Bin 0 -> 223 bytes
 ...onstraintRule_rules_TrueConstraintRule.gif |  Bin 0 -> 223 bytes
 ...teNaryFeatureRule_rules_AndFeatureRule.gif |  Bin 0 -> 223 bytes
 ...NaryFeatureRule_rules_FalseFeatureRule.gif |  Bin 0 -> 223 bytes
 ...atureRule_rules_ImplicationFeatureRule.gif |  Bin 0 -> 223 bytes
 .../CreateNaryFeatureRule_rules_IsFeature.gif |  Bin 0 -> 223 bytes
 ...ryFeatureRule_rules_LogicalFeatureRule.gif |  Bin 0 -> 223 bytes
 ...teNaryFeatureRule_rules_NotFeatureRule.gif |  Bin 0 -> 223 bytes
 ...ateNaryFeatureRule_rules_OrFeatureRule.gif |  Bin 0 -> 223 bytes
 ...eNaryFeatureRule_rules_TrueFeatureRule.gif |  Bin 0 -> 223 bytes
 ...olicy_constraintRule_AndConstraintRule.gif |  Bin 0 -> 223 bytes
 ...icy_constraintRule_ContainsCompartment.gif |  Bin 0 -> 223 bytes
 ...icy_constraintRule_FalseConstraintRule.gif |  Bin 0 -> 223 bytes
 ...nstraintRule_ImplicationConstraintRule.gif |  Bin 0 -> 223 bytes
 .../CreatePolicy_constraintRule_InType.gif    |  Bin 0 -> 223 bytes
 .../CreatePolicy_constraintRule_IsParent.gif  |  Bin 0 -> 223 bytes
 ...eatePolicy_constraintRule_IsSourceType.gif |  Bin 0 -> 223 bytes
 .../CreatePolicy_constraintRule_IsTarget.gif  |  Bin 0 -> 223 bytes
 ...eatePolicy_constraintRule_IsTargetType.gif |  Bin 0 -> 223 bytes
 ...y_constraintRule_LogicalConstraintRule.gif |  Bin 0 -> 223 bytes
 ...olicy_constraintRule_NotConstraintRule.gif |  Bin 0 -> 223 bytes
 ...Policy_constraintRule_OrConstraintRule.gif |  Bin 0 -> 223 bytes
 ...licy_constraintRule_SourceEqualsTarget.gif |  Bin 0 -> 223 bytes
 ..._constraintRule_SourceEqualsTargetType.gif |  Bin 0 -> 223 bytes
 ...licy_constraintRule_TrueConstraintRule.gif |  Bin 0 -> 223 bytes
 ...reatePolicy_featureRule_AndFeatureRule.gif |  Bin 0 -> 223 bytes
 ...atePolicy_featureRule_FalseFeatureRule.gif |  Bin 0 -> 223 bytes
 ...icy_featureRule_ImplicationFeatureRule.gif |  Bin 0 -> 223 bytes
 .../CreatePolicy_featureRule_IsFeature.gif    |  Bin 0 -> 223 bytes
 ...ePolicy_featureRule_LogicalFeatureRule.gif |  Bin 0 -> 223 bytes
 ...reatePolicy_featureRule_NotFeatureRule.gif |  Bin 0 -> 223 bytes
 ...CreatePolicy_featureRule_OrFeatureRule.gif |  Bin 0 -> 223 bytes
 ...eatePolicy_featureRule_TrueFeatureRule.gif |  Bin 0 -> 223 bytes
 ...yConstraintRule_rule_AndConstraintRule.gif |  Bin 0 -> 223 bytes
 ...onstraintRule_rule_ContainsCompartment.gif |  Bin 0 -> 223 bytes
 ...onstraintRule_rule_FalseConstraintRule.gif |  Bin 0 -> 223 bytes
 ...intRule_rule_ImplicationConstraintRule.gif |  Bin 0 -> 223 bytes
 .../CreateUnaryConstraintRule_rule_InType.gif |  Bin 0 -> 223 bytes
 ...reateUnaryConstraintRule_rule_IsParent.gif |  Bin 0 -> 223 bytes
 ...eUnaryConstraintRule_rule_IsSourceType.gif |  Bin 0 -> 223 bytes
 ...reateUnaryConstraintRule_rule_IsTarget.gif |  Bin 0 -> 223 bytes
 ...eUnaryConstraintRule_rule_IsTargetType.gif |  Bin 0 -> 223 bytes
 ...straintRule_rule_LogicalConstraintRule.gif |  Bin 0 -> 223 bytes
 ...yConstraintRule_rule_NotConstraintRule.gif |  Bin 0 -> 223 bytes
 ...ryConstraintRule_rule_OrConstraintRule.gif |  Bin 0 -> 223 bytes
 ...ConstraintRule_rule_SourceEqualsTarget.gif |  Bin 0 -> 223 bytes
 ...traintRule_rule_SourceEqualsTargetType.gif |  Bin 0 -> 223 bytes
 ...ConstraintRule_rule_TrueConstraintRule.gif |  Bin 0 -> 223 bytes
 ...teUnaryFeatureRule_rule_AndFeatureRule.gif |  Bin 0 -> 223 bytes
 ...UnaryFeatureRule_rule_FalseFeatureRule.gif |  Bin 0 -> 223 bytes
 ...eatureRule_rule_ImplicationFeatureRule.gif |  Bin 0 -> 223 bytes
 .../CreateUnaryFeatureRule_rule_IsFeature.gif |  Bin 0 -> 223 bytes
 ...aryFeatureRule_rule_LogicalFeatureRule.gif |  Bin 0 -> 223 bytes
 ...teUnaryFeatureRule_rule_NotFeatureRule.gif |  Bin 0 -> 223 bytes
 ...ateUnaryFeatureRule_rule_OrFeatureRule.gif |  Bin 0 -> 223 bytes
 ...eUnaryFeatureRule_rule_TrueFeatureRule.gif |  Bin 0 -> 223 bytes
 .../icons/full/obj16/AndConstraintRule.gif    |  Bin 0 -> 129 bytes
 .../icons/full/obj16/AndFeatureRule.gif       |  Bin 0 -> 129 bytes
 .../icons/full/obj16/ContainsCompartment.gif  |  Bin 0 -> 129 bytes
 .../icons/full/obj16/FalseConstraintRule.gif  |  Bin 0 -> 129 bytes
 .../icons/full/obj16/FalseFeatureRule.gif     |  Bin 0 -> 129 bytes
 .../full/obj16/ImplicationConstraintRule.gif  |  Bin 0 -> 129 bytes
 .../full/obj16/ImplicationFeatureRule.gif     |  Bin 0 -> 129 bytes
 .../icons/full/obj16/InType.gif               |  Bin 0 -> 129 bytes
 .../icons/full/obj16/IsFeature.gif            |  Bin 0 -> 129 bytes
 .../icons/full/obj16/IsParent.gif             |  Bin 0 -> 129 bytes
 .../icons/full/obj16/IsSourceType.gif         |  Bin 0 -> 129 bytes
 .../icons/full/obj16/IsTarget.gif             |  Bin 0 -> 129 bytes
 .../icons/full/obj16/IsTargetType.gif         |  Bin 0 -> 129 bytes
 .../full/obj16/LogicalConstraintRule.gif      |  Bin 0 -> 129 bytes
 .../icons/full/obj16/LogicalFeatureRule.gif   |  Bin 0 -> 129 bytes
 .../icons/full/obj16/Model.gif                |  Bin 0 -> 129 bytes
 .../icons/full/obj16/NotConstraintRule.gif    |  Bin 0 -> 129 bytes
 .../icons/full/obj16/NotFeatureRule.gif       |  Bin 0 -> 129 bytes
 .../icons/full/obj16/OrConstraintRule.gif     |  Bin 0 -> 129 bytes
 .../icons/full/obj16/OrFeatureRule.gif        |  Bin 0 -> 129 bytes
 .../icons/full/obj16/Policy.gif               |  Bin 0 -> 129 bytes
 .../icons/full/obj16/SourceEqualsTarget.gif   |  Bin 0 -> 129 bytes
 .../full/obj16/SourceEqualsTargetType.gif     |  Bin 0 -> 129 bytes
 .../icons/full/obj16/TrueConstraintRule.gif   |  Bin 0 -> 129 bytes
 .../icons/full/obj16/TrueFeatureRule.gif      |  Bin 0 -> 129 bytes
 .../plugin.properties                         |  135 ++
 .../plugin.xml                                |   22 +
 .../AndConstraintRuleItemProvider.java        |   94 +
 .../provider/AndFeatureRuleItemProvider.java  |   94 +
 .../BinaryConstraintRuleItemProvider.java     |  301 +++
 .../BinaryFeatureRuleItemProvider.java        |  231 +++
 .../provider/ConstraintRuleItemProvider.java  |  109 +
 .../ContainsCompartmentItemProvider.java      |   94 +
 .../FalseConstraintRuleItemProvider.java      |   94 +
 .../FalseFeatureRuleItemProvider.java         |   94 +
 .../provider/FeatureRuleItemProvider.java     |  109 +
 ...ImplicationConstraintRuleItemProvider.java |  119 ++
 .../ImplicationFeatureRuleItemProvider.java   |  119 ++
 .../provider/InTypeItemProvider.java          |  101 +
 .../provider/IsFeatureItemProvider.java       |  134 ++
 .../provider/IsParentItemProvider.java        |  101 +
 .../provider/IsSourceTypeItemProvider.java    |  101 +
 .../provider/IsTargetItemProvider.java        |  101 +
 .../provider/IsTargetTypeItemProvider.java    |  101 +
 .../LogicalConstraintRuleItemProvider.java    |   94 +
 .../LogicalFeatureRuleItemProvider.java       |   94 +
 .../provider/ModelItemProvider.java           |  168 ++
 .../NaryConstraintRuleItemProvider.java       |  201 ++
 .../provider/NaryFeatureRuleItemProvider.java |  166 ++
 .../NotConstraintRuleItemProvider.java        |   94 +
 .../provider/NotFeatureRuleItemProvider.java  |   94 +
 .../OrConstraintRuleItemProvider.java         |   94 +
 .../provider/OrFeatureRuleItemProvider.java   |   94 +
 .../provider/PolicyItemProvider.java          |  360 ++++
 .../SourceEqualsTargetItemProvider.java       |   94 +
 .../SourceEqualsTargetTypeItemProvider.java   |   94 +
 .../TrueConstraintRuleItemProvider.java       |   94 +
 .../provider/TrueFeatureRuleItemProvider.java |   94 +
 .../TypeArgumentRuleItemProvider.java         |  123 ++
 .../UnaryConstraintRuleItemProvider.java      |  201 ++
 .../UnaryFeatureRuleItemProvider.java         |  166 ++
 .../provider/editpolicymodelEditPlugin.java   |   92 +
 ...policymodelItemProviderAdapterFactory.java |  775 +++++++
 .../.classpath                                |    7 +
 .../.gitignore                                |    1 +
 .../.project                                  |   28 +
 .../META-INF/MANIFEST.MF                      |   19 +
 .../build.properties                          |   10 +
 .../full/obj16/editpolicymodelModelFile.gif   |  Bin 0 -> 346 bytes
 .../icons/full/wizban/Neweditpolicymodel.gif  |  Bin 0 -> 2462 bytes
 .../plugin.properties                         |   53 +
 .../plugin.xml                                |   37 +
 .../editpolicymodelActionBarContributor.java  |  423 ++++
 .../presentation/editpolicymodelEditor.java   | 1826 +++++++++++++++++
 .../editpolicymodelEditorPlugin.java          |   94 +
 .../editpolicymodelModelWizard.java           |  627 ++++++
 .../.classpath                                |    7 +
 .../.gitignore                                |    1 +
 .../.project                                  |   28 +
 .../META-INF/MANIFEST.MF                      |   16 +
 .../build.properties                          |    8 +
 .../plugin.properties                         |    4 +
 .../tests/AndConstraintRuleTest.java          |   70 +
 .../tests/AndFeatureRuleTest.java             |   70 +
 .../tests/BinaryConstraintRuleTest.java       |   36 +
 .../tests/BinaryFeatureRuleTest.java          |   36 +
 .../tests/ConstraintRuleTest.java             |   55 +
 .../tests/ContainsCompartmentTest.java        |   70 +
 .../tests/FalseConstraintRuleTest.java        |   70 +
 .../tests/FalseFeatureRuleTest.java           |   70 +
 .../tests/FeatureRuleTest.java                |   55 +
 .../tests/ImplicationConstraintRuleTest.java  |   70 +
 .../tests/ImplicationFeatureRuleTest.java     |   70 +
 .../src/editpolicymodel/tests/InTypeTest.java |   70 +
 .../editpolicymodel/tests/IsFeatureTest.java  |   70 +
 .../editpolicymodel/tests/IsParentTest.java   |   70 +
 .../tests/IsSourceTypeTest.java               |   70 +
 .../editpolicymodel/tests/IsTargetTest.java   |   70 +
 .../tests/IsTargetTypeTest.java               |   70 +
 .../tests/LogicalConstraintRuleTest.java      |   70 +
 .../tests/LogicalFeatureRuleTest.java         |   70 +
 .../src/editpolicymodel/tests/ModelTest.java  |   89 +
 .../tests/NaryConstraintRuleTest.java         |   36 +
 .../tests/NaryFeatureRuleTest.java            |   36 +
 .../tests/NotConstraintRuleTest.java          |   70 +
 .../tests/NotFeatureRuleTest.java             |   70 +
 .../tests/OrConstraintRuleTest.java           |   70 +
 .../tests/OrFeatureRuleTest.java              |   70 +
 .../src/editpolicymodel/tests/PolicyTest.java |   89 +
 .../tests/SourceEqualsTargetTest.java         |   70 +
 .../tests/SourceEqualsTargetTypeTest.java     |   70 +
 .../tests/TrueConstraintRuleTest.java         |   70 +
 .../tests/TrueFeatureRuleTest.java            |   70 +
 .../tests/TypeArgumentRuleTest.java           |   36 +
 .../tests/UnaryConstraintRuleTest.java        |   36 +
 .../tests/UnaryFeatureRuleTest.java           |   36 +
 .../tests/editpolicymodelAllTests.java        |   46 +
 .../tests/editpolicymodelExample.java         |  121 ++
 .../tests/editpolicymodelTests.java           |   46 +
 .../model/editpolicymodel.ecore               |    2 +-
 .../model/representations.aird                |   76 +-
 .../src/editpolicymodel/InCompartment.java    |   17 -
 .../src/editpolicymodel/InType.java           |   17 +
 .../editpolicymodelFactory.java               |    6 +-
 .../editpolicymodelPackage.java               |   41 +-
 ...InCompartmentImpl.java => InTypeImpl.java} |   12 +-
 .../impl/editpolicymodelFactoryImpl.java      |    8 +-
 .../impl/editpolicymodelPackageImpl.java      |   14 +-
 .../util/editpolicymodelAdapterFactory.java   |   10 +-
 .../util/editpolicymodelSwitch.java           |   15 +-
 org.framed.iorm.ui/core/baseRules.ecl         |   22 +
 org.framed.iorm.ui/core/baseRules.editpolicy  |    4 +-
 .../core/fulfillment/Fulfillment.ecl          |    9 +
 .../core/fulfillment/FulfillmentPattern.java  |    4 +-
 .../core/inheritance/InheritancePattern.java  |   14 +-
 .../modules/compartment/CompartmentTypes.ecl  |    8 +
 .../compartment/CompartmentTypes.editpolicy   |    8 +-
 .../ContainsCompartments.ecl                  |    3 +
 .../ContainsCompartments.editpolicy           |    4 +-
 .../inheritance/CompartmentInheritance.ecl    |    4 +
 .../playing_own_roles/PlayingOwnRoles.ecl     |    3 +
 .../properties/CompartmentTypeAttsAndOps.ecl  |    6 +
 .../modules/datatype/DataTypes.ecl            |    3 +
 .../inheritance/DataTypeInheritance.ecl       |    3 +
 .../modules/relationship/Relationship.ecl     |    6 +
 .../relationship/RelationshipPattern.java     |    6 +-
 ...actInterRelationshipConstraintPattern.java |   19 +-
 .../InterRelationship.ecl                     |   15 +
 .../InterRelationship.editpolicy              |   16 +
 ...actIntraRelationshipConstraintPattern.java |    2 +-
 .../roletype/group_constraints/RoleGroup.ecl  |    3 +
 .../group_constraints/RoleGroup.editpolicy    |   11 +
 .../roletype/inheritance/RoleInheritance.ecl  |    3 +
 .../properties/RoleTypeAttsAndOps.ecl         |    5 +
 .../role_constraints/RoleConstraints.ecl      |    9 +
 .../RoleConstraints.editpolicy                |   52 +-
 .../ui/editPolicy/ConstraintRuleVisitor.java  |   46 +-
 .../iorm/ui/editPolicy/EditPolicyHandler.java |   12 +-
 279 files changed, 11404 insertions(+), 175 deletions(-)
 create mode 100644 org.framed.iorm.editpolicymodel.edit/.classpath
 create mode 100644 org.framed.iorm.editpolicymodel.edit/.gitignore
 create mode 100644 org.framed.iorm.editpolicymodel.edit/.project
 create mode 100644 org.framed.iorm.editpolicymodel.edit/META-INF/MANIFEST.MF
 create mode 100644 org.framed.iorm.editpolicymodel.edit/build.properties
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_AndConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_ContainsCompartment.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_FalseConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_ImplicationConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_InType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_IsParent.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_IsSourceType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_IsTarget.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_IsTargetType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_LogicalConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_NotConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_OrConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_SourceEqualsTarget.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_SourceEqualsTargetType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_TrueConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_AndConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_ContainsCompartment.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_FalseConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_ImplicationConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_InType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_IsParent.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_IsSourceType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_IsTarget.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_IsTargetType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_LogicalConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_NotConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_OrConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_SourceEqualsTarget.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_SourceEqualsTargetType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_TrueConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_AndFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_FalseFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_ImplicationFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_IsFeature.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_LogicalFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_NotFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_OrFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_TrueFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_AndFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_FalseFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_ImplicationFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_IsFeature.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_LogicalFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_NotFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_OrFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_TrueFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateModel_policies_Policy.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_AndConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_ContainsCompartment.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_FalseConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_ImplicationConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_InType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_IsParent.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_IsSourceType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_IsTarget.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_IsTargetType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_LogicalConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_NotConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_OrConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_SourceEqualsTarget.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_SourceEqualsTargetType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_TrueConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_AndFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_FalseFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_ImplicationFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_IsFeature.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_LogicalFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_NotFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_OrFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_TrueFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_AndConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_ContainsCompartment.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_FalseConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_ImplicationConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_InType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_IsParent.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_IsSourceType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_IsTarget.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_IsTargetType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_LogicalConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_NotConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_OrConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_SourceEqualsTarget.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_SourceEqualsTargetType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_TrueConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_AndFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_FalseFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_ImplicationFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_IsFeature.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_LogicalFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_NotFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_OrFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_TrueFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_AndConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_ContainsCompartment.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_FalseConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_ImplicationConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_InType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_IsParent.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_IsSourceType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_IsTarget.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_IsTargetType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_LogicalConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_NotConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_OrConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_SourceEqualsTarget.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_SourceEqualsTargetType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_TrueConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_AndFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_FalseFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_ImplicationFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_IsFeature.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_LogicalFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_NotFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_OrFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_TrueFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/AndConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/AndFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/ContainsCompartment.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/FalseConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/FalseFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/ImplicationConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/ImplicationFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/InType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsFeature.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsParent.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsSourceType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsTarget.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsTargetType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/LogicalConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/LogicalFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/Model.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/NotConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/NotFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/OrConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/OrFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/Policy.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/SourceEqualsTarget.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/SourceEqualsTargetType.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/TrueConstraintRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/icons/full/obj16/TrueFeatureRule.gif
 create mode 100644 org.framed.iorm.editpolicymodel.edit/plugin.properties
 create mode 100644 org.framed.iorm.editpolicymodel.edit/plugin.xml
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/AndConstraintRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/AndFeatureRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/BinaryConstraintRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/BinaryFeatureRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ConstraintRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ContainsCompartmentItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/FalseConstraintRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/FalseFeatureRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/FeatureRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ImplicationConstraintRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ImplicationFeatureRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/InTypeItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsFeatureItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsParentItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsSourceTypeItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsTargetItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsTargetTypeItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/LogicalConstraintRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/LogicalFeatureRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ModelItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NaryConstraintRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NaryFeatureRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NotConstraintRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NotFeatureRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/OrConstraintRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/OrFeatureRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/PolicyItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/SourceEqualsTargetItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/SourceEqualsTargetTypeItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/TrueConstraintRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/TrueFeatureRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/TypeArgumentRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/UnaryConstraintRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/UnaryFeatureRuleItemProvider.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/editpolicymodelEditPlugin.java
 create mode 100644 org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/editpolicymodelItemProviderAdapterFactory.java
 create mode 100644 org.framed.iorm.editpolicymodel.editor/.classpath
 create mode 100644 org.framed.iorm.editpolicymodel.editor/.gitignore
 create mode 100644 org.framed.iorm.editpolicymodel.editor/.project
 create mode 100644 org.framed.iorm.editpolicymodel.editor/META-INF/MANIFEST.MF
 create mode 100644 org.framed.iorm.editpolicymodel.editor/build.properties
 create mode 100644 org.framed.iorm.editpolicymodel.editor/icons/full/obj16/editpolicymodelModelFile.gif
 create mode 100644 org.framed.iorm.editpolicymodel.editor/icons/full/wizban/Neweditpolicymodel.gif
 create mode 100644 org.framed.iorm.editpolicymodel.editor/plugin.properties
 create mode 100644 org.framed.iorm.editpolicymodel.editor/plugin.xml
 create mode 100644 org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelActionBarContributor.java
 create mode 100644 org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelEditor.java
 create mode 100644 org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelEditorPlugin.java
 create mode 100644 org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelModelWizard.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/.classpath
 create mode 100644 org.framed.iorm.editpolicymodel.tests/.gitignore
 create mode 100644 org.framed.iorm.editpolicymodel.tests/.project
 create mode 100644 org.framed.iorm.editpolicymodel.tests/META-INF/MANIFEST.MF
 create mode 100644 org.framed.iorm.editpolicymodel.tests/build.properties
 create mode 100644 org.framed.iorm.editpolicymodel.tests/plugin.properties
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/AndConstraintRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/AndFeatureRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/BinaryConstraintRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/BinaryFeatureRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ConstraintRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ContainsCompartmentTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/FalseConstraintRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/FalseFeatureRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/FeatureRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ImplicationConstraintRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ImplicationFeatureRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/InTypeTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsFeatureTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsParentTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsSourceTypeTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetTypeTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/LogicalConstraintRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/LogicalFeatureRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ModelTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NaryConstraintRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NaryFeatureRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NotConstraintRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NotFeatureRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/OrConstraintRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/OrFeatureRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/PolicyTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/SourceEqualsTargetTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/SourceEqualsTargetTypeTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/TrueConstraintRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/TrueFeatureRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/TypeArgumentRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/UnaryConstraintRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/UnaryFeatureRuleTest.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/editpolicymodelAllTests.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/editpolicymodelExample.java
 create mode 100644 org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/editpolicymodelTests.java
 delete mode 100644 org.framed.iorm.editpolicymodel/src/editpolicymodel/InCompartment.java
 create mode 100644 org.framed.iorm.editpolicymodel/src/editpolicymodel/InType.java
 rename org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/{InCompartmentImpl.java => InTypeImpl.java} (57%)
 create mode 100644 org.framed.iorm.ui/core/baseRules.ecl
 create mode 100644 org.framed.iorm.ui/core/fulfillment/Fulfillment.ecl
 create mode 100644 org.framed.iorm.ui/modules/compartment/CompartmentTypes.ecl
 create mode 100644 org.framed.iorm.ui/modules/compartment/containts_compartments/ContainsCompartments.ecl
 create mode 100644 org.framed.iorm.ui/modules/compartment/inheritance/CompartmentInheritance.ecl
 create mode 100644 org.framed.iorm.ui/modules/compartment/playing_own_roles/PlayingOwnRoles.ecl
 create mode 100644 org.framed.iorm.ui/modules/compartment/properties/CompartmentTypeAttsAndOps.ecl
 create mode 100644 org.framed.iorm.ui/modules/datatype/DataTypes.ecl
 create mode 100644 org.framed.iorm.ui/modules/datatype/inheritance/DataTypeInheritance.ecl
 create mode 100644 org.framed.iorm.ui/modules/relationship/Relationship.ecl
 create mode 100644 org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/InterRelationship.ecl
 create mode 100644 org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.ecl
 create mode 100644 org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.editpolicy
 create mode 100644 org.framed.iorm.ui/modules/roletype/inheritance/RoleInheritance.ecl
 create mode 100644 org.framed.iorm.ui/modules/roletype/properties/RoleTypeAttsAndOps.ecl
 create mode 100644 org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl

diff --git a/org.framed.iorm.editpolicymodel.edit/.classpath b/org.framed.iorm.editpolicymodel.edit/.classpath
new file mode 100644
index 00000000..22f30643
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/.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.edit/.gitignore b/org.framed.iorm.editpolicymodel.edit/.gitignore
new file mode 100644
index 00000000..ae3c1726
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/org.framed.iorm.editpolicymodel.edit/.project b/org.framed.iorm.editpolicymodel.edit/.project
new file mode 100644
index 00000000..57b35c4d
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.framed.iorm.editpolicymodel.edit</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<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.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.framed.iorm.editpolicymodel.edit/META-INF/MANIFEST.MF b/org.framed.iorm.editpolicymodel.edit/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..2abfdb23
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.framed.iorm.editpolicymodel.edit;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: editpolicymodel.provider.editpolicymodelEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: editpolicymodel.provider
+Require-Bundle: org.eclipse.core.runtime,
+ org.framed.iorm.editpolicymodel;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ org.framed.iorm.model;visibility:=reexport,
+ org.framed.iorm.model.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/org.framed.iorm.editpolicymodel.edit/build.properties b/org.framed.iorm.editpolicymodel.edit/build.properties
new file mode 100644
index 00000000..6e3e902e
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+               icons/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_AndConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_AndConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..bdb8c8410cd164e4679919ddbc310eab519278a1
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9$(0
zh6aeZgTny_2ZvqL)pku++d4^kU6=gQCaHOqVlzvG|NVXc@9+D+pU?mOeE!e##lP=1
zGr)l2PZmZHTL(md>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1
zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#
Onx@porfgM325SK6|6q#%

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_ContainsCompartment.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_ContainsCompartment.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4388857c5efde0c251943aa1d2f0ae44fe164212
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?wjQ
zXgF}-z??aA92^cfI5_N@uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSruL&0CF

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_FalseConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_FalseConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..944a638ff8bd988ea9c19f8fa2fc218dfce0fc3b
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ
zXgF}-z??aA92^cfI5_N@uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSruIzL~Y

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_ImplicationConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_ImplicationConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..24850669d3e7f77fcc377ccf10488f5675c68ae2
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mdbCIQ;(~KR@37|9$(0
zh6aeZg9Aun*L1aA)77?4QeM|3zqCneUZvQ~65)S;-~apj{_p4We?Oo9^L+8|yUh$R
zp!k!85yaL35g<DmSYs3v`cfk8)EH)-Jv`;Y)=B-%eUnN&jX#_8T+5!MDW={pm7M7u
zs4;u_33ib_tvRPox>+&ksNMH=u@DGqnEfK*!=jVzObZj-<Zrap+|JcH{W3kDA*ZG(
MwXrE%Rgu9O0HJwcCIA2c

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_InType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_InType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4388857c5efde0c251943aa1d2f0ae44fe164212
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?wjQ
zXgF}-z??aA92^cfI5_N@uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSruL&0CF

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_IsParent.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_IsParent.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ed8ee387a3ce098b74d29d76ef4005710845f6ed
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn<O%QbB}ZU6tr&yTnNf8V~L
zq2a)R19Rrgad0@`;NY-py4tSkYFj5Muj`Uu+9WlvQfy|4@V~$B|NVXc_w)I`pU?k!
zzWDduW(F8g{K>)yV(Wkikev*yF$xNODUo(+3^UIjo^oO9r2gi<NhO}fpG|tMWlz!+
zQ}35b&U6mcn7#Z2yGWnboKq*=tQd6E?t8mf2n03Eev$BD(aCnEg$Zu*H(F|L=W3mP
TnV!#(Q`3~%*p#iR$Y2cs(1c)U

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_IsSourceType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_IsSourceType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f1bc279050bfebe458f1a3dddf7c07c0cba444f6
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gs@g
zLjy$I!Qp^|gTt=rYP+VZZJngNu1kJtlhnLQv6&^p|Ng%J_xJtZ&*%SsKL6+W;@@|h
z8DK#1CkrEptpg%Jb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncy<aLh
z(>YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=
OO;c)PQ?{xigEasdJ7CKI

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_IsTarget.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_IsTarget.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8a34e95b34f5c408cbfccb8e2d58be90368d2995
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gs@g
zLjy$I!Qp^|gTt=rYP+VZZJngNu1kJtlhnLQv6&^p|Ng%J_xJtZ&*%SsKL6+W;@@|h
z8DK#1CkrEptpg%Jb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncy<aLh
z(>YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=
OO;c)PQ?{xigEau}{9uv*

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_IsTargetType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_IsTargetType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..37db3e582f3910396fd0119976fcaf1023feb7c6
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi;2r
z&~V_ufjM*LI5-?|aB$c)U2WHNwXKts*LBG+ZIYT-DK@i2_}}06|Ng%J`}zFe&*%R<
zU;O)SGXo4L{$ybUv2{QM$W8{<7zKsClt?=@hM8v%Pr0ylQh#&bq!Lf#&n7+BvL|VZ
zsrO4IXF3OJ%wB$iU8GNI&Z(1bRt!37_q|;#1cDl7zexD7=wv(7!UQ+@8!a`rbG1&t
TOwVV?scA}WY|2(uWUvMRYMNi&

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_LogicalConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_LogicalConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ff5397fa2a2aebf8109630fb09cf86d7aaf9bec6
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3
zG&CGIaA3}yISvj792^{WO;_7BU2W?m<#k>1OPi$TRf^3l5&rl0{lCBO|9(FI_w)Hb
z&lmr`+spt1ia%KxL2Mlm0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fn
zV(R@;$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(X
TFVpiGa%!4V8=JCK6&b7n=__L~

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_NotConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_NotConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..944a638ff8bd988ea9c19f8fa2fc218dfce0fc3b
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ
zXgF}-z??aA92^cfI5_N@uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSruIzL~Y

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_OrConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_OrConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a31e5142add7f49c9be1e2fa87e1668b5f3e0879
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0
zh6aeZgTny_2ZvqL)pku++d4^kU6=gQCaHOqVlzvG|NVXc@9+D+pU?mOeE!e##lP=1
zGr)l2PZmZHTL(md>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1
zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#
Onx@porfgM325SJtFJM;y

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_SourceEqualsTarget.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_SourceEqualsTarget.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0669409fbd0654de1b14423aaf1a2325ccd12269
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ
zXgF}-z??aA92^cfI5_N@uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSruH{oBN

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_SourceEqualsTargetType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_SourceEqualsTargetType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..dcdeb6ef0cc9615f86898d49897aff7a0bd01522
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFd;b5ApC51k|Gs@g
zLjy$I!Qp^|gTt=rYP+VZZJngNu1kJtlhnLQv6&^p|Ng%J_xJtZ&*%SsKL6+W;@@|h
z8DK#1CkrEptpg%Jb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncy<aLh
z(>YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=
OO;c)PQ?{xigEasdu3*am

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_TrueConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_leftRule_TrueConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0aa23c2e565e235d6dec3a421a64e8c32485dbf2
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3
zG&CGIaA3}yISvj792^{WO;_7BU2W?m<#k>1OPi$TRf^3l5&rl0{lCBO|9(FI_w)Hb
z&lmr`+spt1ia%KxL2Mlm0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fn
zV(R@;$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(X
TFVpiGa%!4V8=JCK6&b7n=mKLg

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_AndConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_AndConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..bdb8c8410cd164e4679919ddbc310eab519278a1
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9$(0
zh6aeZgTny_2ZvqL)pku++d4^kU6=gQCaHOqVlzvG|NVXc@9+D+pU?mOeE!e##lP=1
zGr)l2PZmZHTL(md>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1
zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#
Onx@porfgM325SK6|6q#%

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_ContainsCompartment.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_ContainsCompartment.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4388857c5efde0c251943aa1d2f0ae44fe164212
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?wjQ
zXgF}-z??aA92^cfI5_N@uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSruL&0CF

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_FalseConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_FalseConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..944a638ff8bd988ea9c19f8fa2fc218dfce0fc3b
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ
zXgF}-z??aA92^cfI5_N@uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSruIzL~Y

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_ImplicationConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_ImplicationConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..24850669d3e7f77fcc377ccf10488f5675c68ae2
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mdbCIQ;(~KR@37|9$(0
zh6aeZg9Aun*L1aA)77?4QeM|3zqCneUZvQ~65)S;-~apj{_p4We?Oo9^L+8|yUh$R
zp!k!85yaL35g<DmSYs3v`cfk8)EH)-Jv`;Y)=B-%eUnN&jX#_8T+5!MDW={pm7M7u
zs4;u_33ib_tvRPox>+&ksNMH=u@DGqnEfK*!=jVzObZj-<Zrap+|JcH{W3kDA*ZG(
MwXrE%Rgu9O0HJwcCIA2c

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_InType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_InType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4388857c5efde0c251943aa1d2f0ae44fe164212
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?wjQ
zXgF}-z??aA92^cfI5_N@uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSruL&0CF

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_IsParent.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_IsParent.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ed8ee387a3ce098b74d29d76ef4005710845f6ed
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn<O%QbB}ZU6tr&yTnNf8V~L
zq2a)R19Rrgad0@`;NY-py4tSkYFj5Muj`Uu+9WlvQfy|4@V~$B|NVXc_w)I`pU?k!
zzWDduW(F8g{K>)yV(Wkikev*yF$xNODUo(+3^UIjo^oO9r2gi<NhO}fpG|tMWlz!+
zQ}35b&U6mcn7#Z2yGWnboKq*=tQd6E?t8mf2n03Eev$BD(aCnEg$Zu*H(F|L=W3mP
TnV!#(Q`3~%*p#iR$Y2cs(1c)U

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_IsSourceType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_IsSourceType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f1bc279050bfebe458f1a3dddf7c07c0cba444f6
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gs@g
zLjy$I!Qp^|gTt=rYP+VZZJngNu1kJtlhnLQv6&^p|Ng%J_xJtZ&*%SsKL6+W;@@|h
z8DK#1CkrEptpg%Jb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncy<aLh
z(>YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=
OO;c)PQ?{xigEasdJ7CKI

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_IsTarget.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_IsTarget.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8a34e95b34f5c408cbfccb8e2d58be90368d2995
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gs@g
zLjy$I!Qp^|gTt=rYP+VZZJngNu1kJtlhnLQv6&^p|Ng%J_xJtZ&*%SsKL6+W;@@|h
z8DK#1CkrEptpg%Jb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncy<aLh
z(>YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=
OO;c)PQ?{xigEau}{9uv*

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_IsTargetType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_IsTargetType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..37db3e582f3910396fd0119976fcaf1023feb7c6
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi;2r
z&~V_ufjM*LI5-?|aB$c)U2WHNwXKts*LBG+ZIYT-DK@i2_}}06|Ng%J`}zFe&*%R<
zU;O)SGXo4L{$ybUv2{QM$W8{<7zKsClt?=@hM8v%Pr0ylQh#&bq!Lf#&n7+BvL|VZ
zsrO4IXF3OJ%wB$iU8GNI&Z(1bRt!37_q|;#1cDl7zexD7=wv(7!UQ+@8!a`rbG1&t
TOwVV?scA}WY|2(uWUvMRYMNi&

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_LogicalConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_LogicalConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ff5397fa2a2aebf8109630fb09cf86d7aaf9bec6
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3
zG&CGIaA3}yISvj792^{WO;_7BU2W?m<#k>1OPi$TRf^3l5&rl0{lCBO|9(FI_w)Hb
z&lmr`+spt1ia%KxL2Mlm0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fn
zV(R@;$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(X
TFVpiGa%!4V8=JCK6&b7n=__L~

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_NotConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_NotConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..944a638ff8bd988ea9c19f8fa2fc218dfce0fc3b
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ
zXgF}-z??aA92^cfI5_N@uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSruIzL~Y

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_OrConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_OrConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a31e5142add7f49c9be1e2fa87e1668b5f3e0879
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0
zh6aeZgTny_2ZvqL)pku++d4^kU6=gQCaHOqVlzvG|NVXc@9+D+pU?mOeE!e##lP=1
zGr)l2PZmZHTL(md>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1
zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#
Onx@porfgM325SJtFJM;y

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_SourceEqualsTarget.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_SourceEqualsTarget.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0669409fbd0654de1b14423aaf1a2325ccd12269
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ
zXgF}-z??aA92^cfI5_N@uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSruH{oBN

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_SourceEqualsTargetType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_SourceEqualsTargetType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..dcdeb6ef0cc9615f86898d49897aff7a0bd01522
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFd;b5ApC51k|Gs@g
zLjy$I!Qp^|gTt=rYP+VZZJngNu1kJtlhnLQv6&^p|Ng%J_xJtZ&*%SsKL6+W;@@|h
z8DK#1CkrEptpg%Jb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncy<aLh
z(>YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=
OO;c)PQ?{xigEasdu3*am

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_TrueConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryConstraintRule_rightRule_TrueConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0aa23c2e565e235d6dec3a421a64e8c32485dbf2
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3
zG&CGIaA3}yISvj792^{WO;_7BU2W?m<#k>1OPi$TRf^3l5&rl0{lCBO|9(FI_w)Hb
z&lmr`+spt1ia%KxL2Mlm0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fn
zV(R@;$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(X
TFVpiGa%!4V8=JCK6&b7n=mKLg

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_AndFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_AndFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..65c0cbe832669cce9f0bb430663167b4df3930e7
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gs@g
zL&NVMU*Fs~dVl}?OUo*EO;_7BU2W?m<#k>1OPi$TRf^3l5&rl0{lCBO|9(FI_w)Hb
z&lmr`+spt1ia%KxL2Mlm0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fn
zV(R@;$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(X
TFVpiGa%!4V8=JCK6&b7n7{FuW

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_FalseFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_FalseFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0056d63c98232b9ccfd7714ce4d3d2480f928f8e
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L
zq2c$BuWxP~y}y6{rDc`7rmO9muC{fO^13ehrA<=vD#d1&2><*0{@>sCe?Oo9`}zEz
z=Zk;eZDxQ0#h)yUAhr&O0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JO
zG4+0_<V@#4joHgju#5C*%{g__&5A)s?Y_5*g+Nfl>=y|i7M*NoTA1J_f1{=5cCOax
Tm+AQoIW<kGjZN9AiVW5OB8+46

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_ImplicationFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_ImplicationFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5c5a999f886e3b929df623268800d0ba5d4cecdf
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?<?9RB~0pC51k|Gs@g
zL&NVMU*Fs~dVl}?OUo*EO;_7BU2W?m<#k>1OPi$TRf^3l5&rl0{lCBO|9(FI_w)Hb
z&lmr`+spt1ia%KxL2Mlm0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fn
zV(R@;$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(X
TFVpiGa%!4V8=JCK6&b7n#71Lr

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_IsFeature.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_IsFeature.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b24124ac7a71778dcb498d96cddd5053281cebeb
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}<p2Ni^W*LR-?wjQ
zX!!l(>zf-#@9&>~X<6m2>1w;Ct8Ja6ysk@rX_M5vO0k(G!vFrh|M&O(-_Pg&em?)_
z`QqPqn;Bq0@h1x-h^+%6Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*R
zOub(!Iny~%WA^eB>>_<yb55OfvtrOuyYKB{ArRCs`$fWsMJL;t7ACmK-)O11ovU^F
TWqLkCPEAv4V^g-OB7-#mi*92n

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_LogicalFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_LogicalFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5d1e5fce69bfcf958f59275a59bd5f4923f4692a
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEs_S=+QUx=ijfay!8Kn{QP+P|M%@1
z8XA88`1<C?(fj-7Us_hVYr5L5>1taiDX;62U)m%!uTpGgiSWO_@BjUM|M&Cxzn{<l
zdA|7f-DU<DQ2fcl2x9Ai2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs
z6jSe)O3ri+)R?{e1iMI|)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9
Uewm)nkW<r?+Srt>s>oms0P*f-SpWb4

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_NotFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_NotFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0056d63c98232b9ccfd7714ce4d3d2480f928f8e
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L
zq2c$BuWxP~y}y6{rDc`7rmO9muC{fO^13ehrA<=vD#d1&2><*0{@>sCe?Oo9`}zEz
z=Zk;eZDxQ0#h)yUAhr&O0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JO
zG4+0_<V@#4joHgju#5C*%{g__&5A)s?Y_5*g+Nfl>=y|i7M*NoTA1J_f1{=5cCOax
Tm+AQoIW<kGjZN9AiVW5OB8+46

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_OrFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_OrFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5204d4b6a99516aeb1a9d70411f8012ae9684c01
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAmjsO3TpC51k|Gs@g
zL&NVMU*Fs~dVl}?OUo*EO;_7BU2W?m<#k>1OPi$TRf^3l5&rl0{lCBO|9(FI_w)Hb
z&lmr`+spt1ia%KxL2Mlm0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fn
zV(R@;$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(X
TFVpiGa%!4V8=JCK6&b7n^KfIZ

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_TrueFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_leftRule_TrueFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8997497557c1fa26a8bfaa59c4cc2cba6bd7595f
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L
zq2c$BuWxP~y}y6{rDc`7rmO9muC{fO^13ehrA<=vD#d1&2><*0{@>sCe?Oo9`}zEz
z=Zk;eZDxQ0#h)yUAhr&O0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JO
zG4+0_<V@#4joHgju#5C*%{g__&5A)s?Y_5*g+Nfl>=y|i7M*NoTA1J_f1{=5cCOax
Tm+AQoIW<kGjZN9AiVW5OWVU2R

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_AndFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_AndFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..65c0cbe832669cce9f0bb430663167b4df3930e7
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gs@g
zL&NVMU*Fs~dVl}?OUo*EO;_7BU2W?m<#k>1OPi$TRf^3l5&rl0{lCBO|9(FI_w)Hb
z&lmr`+spt1ia%KxL2Mlm0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fn
zV(R@;$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(X
TFVpiGa%!4V8=JCK6&b7n7{FuW

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_FalseFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_FalseFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0056d63c98232b9ccfd7714ce4d3d2480f928f8e
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L
zq2c$BuWxP~y}y6{rDc`7rmO9muC{fO^13ehrA<=vD#d1&2><*0{@>sCe?Oo9`}zEz
z=Zk;eZDxQ0#h)yUAhr&O0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JO
zG4+0_<V@#4joHgju#5C*%{g__&5A)s?Y_5*g+Nfl>=y|i7M*NoTA1J_f1{=5cCOax
Tm+AQoIW<kGjZN9AiVW5OB8+46

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_ImplicationFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_ImplicationFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5c5a999f886e3b929df623268800d0ba5d4cecdf
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?<?9RB~0pC51k|Gs@g
zL&NVMU*Fs~dVl}?OUo*EO;_7BU2W?m<#k>1OPi$TRf^3l5&rl0{lCBO|9(FI_w)Hb
z&lmr`+spt1ia%KxL2Mlm0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fn
zV(R@;$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(X
TFVpiGa%!4V8=JCK6&b7n#71Lr

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_IsFeature.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_IsFeature.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b24124ac7a71778dcb498d96cddd5053281cebeb
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}<p2Ni^W*LR-?wjQ
zX!!l(>zf-#@9&>~X<6m2>1w;Ct8Ja6ysk@rX_M5vO0k(G!vFrh|M&O(-_Pg&em?)_
z`QqPqn;Bq0@h1x-h^+%6Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*R
zOub(!Iny~%WA^eB>>_<yb55OfvtrOuyYKB{ArRCs`$fWsMJL;t7ACmK-)O11ovU^F
TWqLkCPEAv4V^g-OB7-#mi*92n

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_LogicalFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_LogicalFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5d1e5fce69bfcf958f59275a59bd5f4923f4692a
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEs_S=+QUx=ijfay!8Kn{QP+P|M%@1
z8XA88`1<C?(fj-7Us_hVYr5L5>1taiDX;62U)m%!uTpGgiSWO_@BjUM|M&Cxzn{<l
zdA|7f-DU<DQ2fcl2x9Ai2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs
z6jSe)O3ri+)R?{e1iMI|)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9
Uewm)nkW<r?+Srt>s>oms0P*f-SpWb4

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_NotFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_NotFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0056d63c98232b9ccfd7714ce4d3d2480f928f8e
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L
zq2c$BuWxP~y}y6{rDc`7rmO9muC{fO^13ehrA<=vD#d1&2><*0{@>sCe?Oo9`}zEz
z=Zk;eZDxQ0#h)yUAhr&O0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JO
zG4+0_<V@#4joHgju#5C*%{g__&5A)s?Y_5*g+Nfl>=y|i7M*NoTA1J_f1{=5cCOax
Tm+AQoIW<kGjZN9AiVW5OB8+46

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_OrFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_OrFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5204d4b6a99516aeb1a9d70411f8012ae9684c01
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAmjsO3TpC51k|Gs@g
zL&NVMU*Fs~dVl}?OUo*EO;_7BU2W?m<#k>1OPi$TRf^3l5&rl0{lCBO|9(FI_w)Hb
z&lmr`+spt1ia%KxL2Mlm0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fn
zV(R@;$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(X
TFVpiGa%!4V8=JCK6&b7n^KfIZ

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_TrueFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateBinaryFeatureRule_rightRule_TrueFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8997497557c1fa26a8bfaa59c4cc2cba6bd7595f
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L
zq2c$BuWxP~y}y6{rDc`7rmO9muC{fO^13ehrA<=vD#d1&2><*0{@>sCe?Oo9`}zEz
z=Zk;eZDxQ0#h)yUAhr&O0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JO
zG4+0_<V@#4joHgju#5C*%{g__&5A)s?Y_5*g+Nfl>=y|i7M*NoTA1J_f1{=5cCOax
Tm+AQoIW<kGjZN9AiVW5OWVU2R

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateModel_policies_Policy.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateModel_policies_Policy.gif
new file mode 100644
index 0000000000000000000000000000000000000000..dd7b99881d7502fe6231cb1bc4e34bdc75358858
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L
zq2b5xuQ%Qt-G6`nvP+e_rmO9muC{fO^13ehrA<=vD#d1&2><*0{@>sCe?Oo9`}zEz
z=Zk;eZDxQ0#h)yUAhr&O0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JO
zG4+0_<V@#4joHgju#5C*%{g__&5A)s?Y_5*g+Nfl>=y|i7M*NoTA1J_f1{=5cCOax
Tm+AQoIW<kGjZN9AiVW5OA}M3@

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_AndConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_AndConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b2b20e53ddd9d564200d0fc2b2096dd335fcff13
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9$(0
zhK3iH_T1dmb7p4Rfd+?N)75rOSKB&Cd0m(M(k7{Sm0~kXg#Z10|L^bnzn{<l{e1q<
z^TogKHZ#D0;!hSv5L*XCfb3*ojZskOONq2oW0-mN@RSQ%C-pb?O)Bv;{%q27Eqjut
zn0mida;9^j#_Z)M*hTuZ=A1g|X2qbRcHi5@LLjJN_KSoMi%zyPElhBeztK{2J6G%U
T%k+GPoSLT8#-?mlMFwjC5~X5K

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_ContainsCompartment.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_ContainsCompartment.gif
new file mode 100644
index 0000000000000000000000000000000000000000..223e215586cd1ed586901c4ea03db1a978d27f37
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?wjQ
zXn1jH&&^FeXJ)1yXmHpyU2WHNwXKts*LBG+ZIYT-DK@i2_}}06|Ng%J`}zFe&*%R<
zU;O)SGXo4L{$ybUv2{QM$W8{<7zKsClt?=@hM8v%Pr0ylQh#&bq!Lf#&n7+BvL|VZ
zsrO4IXF3OJ%wB$iU8GNI&Z(1bRt!37_q|;#1cDl7zexD7=wv(7!UQ+@8!a`rbG1&t
TOwVV?scA}WY|2(uWUvMRY*=A#

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_FalseConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_FalseConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..db04142ade3f9571e6aa5edbad01b6c3f8d7652c
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ
zXn1jH&&^FeXJ)1yXmHpyU2WHNwXKts*LBG+ZIYT-DK@i2_}}06|Ng%J`}zFe&*%R<
zU;O)SGXo4L{$ybUv2{QM$W8{<7zKsClt?=@hM8v%Pr0ylQh#&bq!Lf#&n7+BvL|VZ
zsrO4IXF3OJ%wB$iU8GNI&Z(1bRt!37_q|;#1cDl7zexD7=wv(7!UQ+@8!a`rbG1&t
TOwVV?scA}WY|2(uWUvMRV%A||

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_ImplicationConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_ImplicationConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..014b83a419e331739d3782ce08d53514f156eb1a
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mdbCIQ;(~KR@37|9$(0
zhK3iH_T1dmb7p4Rfd+?N)75rOSKB&Cd0m(M(k7{Sm0~kXg#Z10|L^bnzn{<l{e1q<
z^TogKHZ#D0;!hSv5L*XCfb3*ojZskOONq2oW0-mN@RSQ%C-pb?O)Bv;{%q27Eqjut
zn0mida;9^j#_Z)M*hTuZ=A1g|X2qbRcHi5@LLjJN_KSoMi%zyPElhBeztK{2J6G%U
T%k+GPoSLT8#-?mlMFwjC$`E1d

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_InType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_InType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..223e215586cd1ed586901c4ea03db1a978d27f37
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?wjQ
zXn1jH&&^FeXJ)1yXmHpyU2WHNwXKts*LBG+ZIYT-DK@i2_}}06|Ng%J`}zFe&*%R<
zU;O)SGXo4L{$ybUv2{QM$W8{<7zKsClt?=@hM8v%Pr0ylQh#&bq!Lf#&n7+BvL|VZ
zsrO4IXF3OJ%wB$iU8GNI&Z(1bRt!37_q|;#1cDl7zexD7=wv(7!UQ+@8!a`rbG1&t
TOwVV?scA}WY|2(uWUvMRY*=A#

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_IsParent.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_IsParent.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1b954c54bf0553c42c690d7837e7c867ca5b27c9
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn<O%QbB}ZU6tr&yTnNf8V~L
zq2a})JvTS?oSB(+puu6+bhTa6)wWJjUe_hRv`K1SrP$08;eUVM|NHy?@8|P>KcD~e
zeDUwQ%?vQ0_>+YZ#MS{3AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhu
zrrs}=oar2>F?;z5c9A}<Ij2s#SuyCS-S>8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~o
TGCiLmr=}^ju_;?sk--`O`5R&^

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_IsSourceType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_IsSourceType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7253e5b3dc71da8f13ea54d821f7e856c195e6ad
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gs@g
zL&J+pdv0#(IWsfuK!d}s>1w;Ct8Ja6ysk@rX_M5vO0k(G!vFrh|M&O(-_Pg&em?)_
z`QqPqn;Bq0@h1x-h^+%6Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*R
zOub(!Iny~%WA^eB>>_<yb55OfvtrOuyYKB{ArRCs`$fWsMJL;t7ACmK-)O11ovU^F
TWqLkCPEAv4V^g-OB7-#mLDFK6

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_IsTarget.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_IsTarget.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a2eae982b37cc5fe7206fb7dd897e8c0765f791a
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gs@g
zL&J+pdv0#(IWsfuK!d}s>1w;Ct8Ja6ysk@rX_M5vO0k(G!vFrh|M&O(-_Pg&em?)_
z`QqPqn;Bq0@h1x-h^+%6Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*R
zOub(!Iny~%WA^eB>>_<yb55OfvtrOuyYKB{ArRCs`$fWsMJL;t7ACmK-)O11ovU^F
TWqLkCPEAv4V^g-OB7-#m7@}fU

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_IsTargetType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_IsTargetType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5bfbb66ec7501857a70dad1aac2d1228d352f0ad
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi;2r
z(D35Yo|~I`&df|Z(BQCZy4tSkYFj5Muj`Uu+9WlvQfy|4@V~$B|NVXc_w)I`pU?k!
zzWDduW(F8g{K>)yV(Wkikev*yF$xNODUo(+3^UIjo^oO9r2gi<NhO}fpG|tMWlz!+
zQ}35b&U6mcn7#Z2yGWnboKq*=tQd6E?t8mf2n03Eev$BD(aCnEg$Zu*H(F|L=W3mP
TnV!#(Q`3~%*p#iR$Y2cslQChT

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_LogicalConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_LogicalConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9c351cc5ec8888bd35fad339ae75274e2dae5b03
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3
zG&H=pwCCogo-;Gk4m3FIny$8My4u!B%Imu1mo`bws}!4ABK+^~`+tAm|NVUa@8|P>
zo-h7=x0wM36o0ZXg4jAB0%RuxYm9<IUrMB%8pF)9ho@ZFI;p?8Z&Hb;@n@5sYuS@D
z#nk(yk~5tHHD)hA!7kFLHRsexH!B7mwfo*K76L&HvtJ~9Sah<TX<>q!{Ee2H+qqh&
UU#90X<kU2!Ha2CeDl%9D01?q-^#A|>

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_NotConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_NotConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..db04142ade3f9571e6aa5edbad01b6c3f8d7652c
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ
zXn1jH&&^FeXJ)1yXmHpyU2WHNwXKts*LBG+ZIYT-DK@i2_}}06|Ng%J`}zFe&*%R<
zU;O)SGXo4L{$ybUv2{QM$W8{<7zKsClt?=@hM8v%Pr0ylQh#&bq!Lf#&n7+BvL|VZ
zsrO4IXF3OJ%wB$iU8GNI&Z(1bRt!37_q|;#1cDl7zexD7=wv(7!UQ+@8!a`rbG1&t
TOwVV?scA}WY|2(uWUvMRV%A||

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_OrConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_OrConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d01836d01e406e1da79acd6f62538f714b2c396f
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0
zhK3iH_T1dmb7p4Rfd+?N)75rOSKB&Cd0m(M(k7{Sm0~kXg#Z10|L^bnzn{<l{e1q<
z^TogKHZ#D0;!hSv5L*XCfb3*ojZskOONq2oW0-mN@RSQ%C-pb?O)Bv;{%q27Eqjut
zn0mida;9^j#_Z)M*hTuZ=A1g|X2qbRcHi5@LLjJN_KSoMi%zyPElhBeztK{2J6G%U
T%k+GPoSLT8#-?mlMFwjC?Z#po

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_SourceEqualsTarget.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_SourceEqualsTarget.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1d6c3b9e88557f6417d389e4815257c7f9d83cd1
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ
zXn1jH&&^FeXJ)1yXmHpyU2WHNwXKts*LBG+ZIYT-DK@i2_}}06|Ng%J`}zFe&*%R<
zU;O)SGXo4L{$ybUv2{QM$W8{<7zKsClt?=@hM8v%Pr0ylQh#&bq!Lf#&n7+BvL|VZ
zsrO4IXF3OJ%wB$iU8GNI&Z(1bRt!37_q|;#1cDl7zexD7=wv(7!UQ+@8!a`rbG1&t
TOwVV?scA}WY|2(uWUvMRV0d9-

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_SourceEqualsTargetType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_SourceEqualsTargetType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2cafabf8033a9484fececb2980e58684b0247bcc
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFd;b5ApC51k|Gs@g
zL&J+pdv0#(IWsfuK!d}s>1w;Ct8Ja6ysk@rX_M5vO0k(G!vFrh|M&O(-_Pg&em?)_
z`QqPqn;Bq0@h1x-h^+%6Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*R
zOub(!Iny~%WA^eB>>_<yb55OfvtrOuyYKB{ArRCs`$fWsMJL;t7ACmK-)O11ovU^F
TWqLkCPEAv4V^g-OB7-#mLPcVa

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_TrueConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryConstraintRule_rules_TrueConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c39f97857ce9ee4dc4f6941a559eb280ecf7dedd
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3
zG&H=pwCCogo-;Gk4m3FIny$8My4u!B%Imu1mo`bws}!4ABK+^~`+tAm|NVUa@8|P>
zo-h7=x0wM36o0ZXg4jAB0%RuxYm9<IUrMB%8pF)9ho@ZFI;p?8Z&Hb;@n@5sYuS@D
z#nk(yk~5tHHD)hA!7kFLHRsexH!B7mwfo*K76L&HvtJ~9Sah<TX<>q!{Ee2H+qqh&
UU#90X<kU2!Ha2CeDl%9D01&8T^#A|>

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_AndFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_AndFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e9b333df51f50ac0688cfc7189d65f12add47e06
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gs@g
zL&KgIFM4j?OgnSN;lP1i)75rOSKB&Cd0m(M(k7{Sm0~kXg#Z10|L^bnzn{<l{e1q<
z^TogKHZ#D0;!hSv5L*XCfb3*ojZskOONq2oW0-mN@RSQ%C-pb?O)Bv;{%q27Eqjut
zn0mida;9^j#_Z)M*hTuZ=A1g|X2qbRcHi5@LLjJN_KSoMi%zyPElhBeztK{2J6G%U
T%k+GPoSLT8#-?mlMFwjCUKL`@

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_FalseFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_FalseFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..16dbb0e6769173330138b3e3c307a700bdcfe83a
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L
zp<&O97d<y`rky$CaNxkM>1w;Ct8Ja6ysk@rX_M5vO0k(G!vFrh|M&O(-_Pg&em?)_
z`QqPqn;Bq0@h1x-h^+%6Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*R
zOub(!Iny~%WA^eB>>_<yb55OfvtrOuyYKB{ArRCs`$fWsMJL;t7ACmK-)O11ovU^F
TWqLkCPEAv4V^g-OB7-#mXW?Sp

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_ImplicationFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_ImplicationFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..df7afd72faff7722378d2e7e5f8d4e520c1c3e59
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?<?9RB~0pC51k|Gs@g
zL&KgIFM4j?OgnSN;lP1i)75rOSKB&Cd0m(M(k7{Sm0~kXg#Z10|L^bnzn{<l{e1q<
z^TogKHZ#D0;!hSv5L*XCfb3*ojZskOONq2oW0-mN@RSQ%C-pb?O)Bv;{%q27Eqjut
zn0mida;9^j#_Z)M*hTuZ=A1g|X2qbRcHi5@LLjJN_KSoMi%zyPElhBeztK{2J6G%U
T%k+GPoSLT8#-?mlMFwjC394dR

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_IsFeature.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_IsFeature.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0062ded58add417b0079a3c990c276865c3af733
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}<p2Ni^W*LR-?wjQ
zXxQ`OMbFKfX=lzj95}FRy4tSkYFj5Muj`Uu+9WlvQfy|4@V~$B|NVXc_w)I`pU?k!
zzWDduW(F8g{K>)yV(Wkikev*yF$xNODUo(+3^UIjo^oO9r2gi<NhO}fpG|tMWlz!+
zQ}35b&U6mcn7#Z2yGWnboKq*=tQd6E?t8mf2n03Eev$BD(aCnEg$Zu*H(F|L=W3mP
TnV!#(Q`3~%*p#iR$Y2cs(8FR9

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_LogicalFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_LogicalFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ba6791249066d427497277b12ccf5d9ee98b665f
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEs_S=+QUx=ijfay!8Kn{QP+P|M%@1
z8XESzc+qq7X4;uE4hIhGny$8My4u!B%Imu1mo`bws}!4ABK+^~`+tAm|NVUa@8|P>
zo-h7=x0wM36o0ZXg4jAB0%RuxYm9<IUrMB%8pF)9ho@ZFI;p?8Z&Hb;@n@5sYuS@D
z#nk(yk~5tHHD)hA!7kFLHRsexH!B7mwfo*K76L&HvtJ~9Sah<TX<>q!{Ee2H+qqh&
UU#90X<kU2!Ha2CeDl%9D05?))LI3~&

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_NotFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_NotFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..16dbb0e6769173330138b3e3c307a700bdcfe83a
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L
zp<&O97d<y`rky$CaNxkM>1w;Ct8Ja6ysk@rX_M5vO0k(G!vFrh|M&O(-_Pg&em?)_
z`QqPqn;Bq0@h1x-h^+%6Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*R
zOub(!Iny~%WA^eB>>_<yb55OfvtrOuyYKB{ArRCs`$fWsMJL;t7ACmK-)O11ovU^F
TWqLkCPEAv4V^g-OB7-#mXW?Sp

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_OrFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_OrFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cfb2d6e244d92376e284f7a6a7a37a40999641a4
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAmjsO3TpC51k|Gs@g
zL&KgIFM4j?OgnSN;lP1i)75rOSKB&Cd0m(M(k7{Sm0~kXg#Z10|L^bnzn{<l{e1q<
z^TogKHZ#D0;!hSv5L*XCfb3*ojZskOONq2oW0-mN@RSQ%C-pb?O)Bv;{%q27Eqjut
zn0mida;9^j#_Z)M*hTuZ=A1g|X2qbRcHi5@LLjJN_KSoMi%zyPElhBeztK{2J6G%U
T%k+GPoSLT8#-?mlMFwjCIMia9

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_TrueFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateNaryFeatureRule_rules_TrueFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e268a9e4429250b626a3bc50a1dc7fb68295c2c2
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L
zp<&O97d<y`rky$CaNxkM>1w;Ct8Ja6ysk@rX_M5vO0k(G!vFrh|M&O(-_Pg&em?)_
z`QqPqn;Bq0@h1x-h^+%6Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*R
zOub(!Iny~%WA^eB>>_<yb55OfvtrOuyYKB{ArRCs`$fWsMJL;t7ACmK-)O11ovU^F
TWqLkCPEAv4V^g-OB7-#mstaQ;

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_AndConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_AndConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3cc3c1b0c50afe436f1e8d10162b308cf68948df
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9$(0
zhK8nV*Mg57vs|-Ar>$+*bhTa6)wWJjUe_hRv`K1SrP$08;eUVM|NHy?@8|P>KcD~e
zeDUwQ%?vQ0_>+YZ#MS{3AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhu
zrrs}=oar2>F?;z5c9A}<Ij2s#SuyCS-S>8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~o
TGCiLmr=}^ju_;?sk--`OWz}I#

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_ContainsCompartment.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_ContainsCompartment.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8f7d7ca62aca12227bedde682ecb5d6169f8212c
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?wjQ
zXlS~2E%?|m%Qb6s+S+zaSKBpRZR;fEbzSmHo22Gdip?w${`dF&zrXMQem?*A^Z7r|
z7yrK7%m4$5KUo+-Y#k5*vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp
z>its5na+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD
S)AJc}YMN3To3d3E8LR=nh+u30

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_FalseConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_FalseConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..19ae1446ad8b8924f1e2281d5df6c16f1e893a58
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ
zXlS~2E%?|m%Qb6s+S+zaSKBpRZR;fEbzSmHo22Gdip?w${`dF&zrXMQem?*A^Z7r|
z7yrK7%m4$5KUo+-Y#k5*vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp
z>its5na+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD
S)AJc}YMN3To3d3E8LR=e24G+S

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_ImplicationConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_ImplicationConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5694faf3635979736128cfe3e55d09ad24d5fbc1
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mdbCIQ;(~KR@37|9$(0
zhK8nV*Mg57vs|-Ar>$+*bhTa6)wWJjUe_hRv`K1SrP$08;eUVM|NHy?@8|P>KcD~e
zeDUwQ%?vQ0_>+YZ#MS{3AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhu
zrrs}=oar2>F?;z5c9A}<Ij2s#SuyCS-S>8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~o
TGCiLmr=}^ju_;?sk--`O9Zz8B

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_InType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_InType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8f7d7ca62aca12227bedde682ecb5d6169f8212c
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?wjQ
zXlS~2E%?|m%Qb6s+S+zaSKBpRZR;fEbzSmHo22Gdip?w${`dF&zrXMQem?*A^Z7r|
z7yrK7%m4$5KUo+-Y#k5*vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp
z>its5na+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD
S)AJc}YMN3To3d3E8LR=nh+u30

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_IsParent.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_IsParent.gif
new file mode 100644
index 0000000000000000000000000000000000000000..535fd3825892ffa2a8b3b75ec542f783f1cbed9c
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn<O%QbB}ZU6tr&yTnNf8V~L
zp`q#8wcumNEZ3~jX=~dxU2WHNwXKts*LBG+ZIYT-DK@i2_}}06|Ng%J`}zFe&*%R<
zU;O)SGXo4L{$ybUv2{QM$W8{<7zKsClt?=@hM8v%Pr0ylQh#&bq!Lf#&n7+BvL|VZ
zsrO4IXF3OJ%wB$iU8GNI&Z(1bRt!37_q|;#1cDl7zexD7=wv(7!UQ+@8!a`rbG1&t
TOwVV?scA}WY|2(uWUvMROj=<o

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_IsSourceType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_IsSourceType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2f9f86f07131fc54f9f337ffaa75eb1d9220b563
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gs@g
zLqpTGYr)5kS*}^5)7G|Yy4tSkYFj5Muj`Uu+9WlvQfy|4@V~$B|NVXc_w)I`pU?k!
zzWDduW(F8g{K>)yV(Wkikev*yF$xNODUo(+3^UIjo^oO9r2gi<NhO}fpG|tMWlz!+
zQ}35b&U6mcn7#Z2yGWnboKq*=tQd6E?t8mf2n03Eev$BD(aCnEg$Zu*H(F|L=W3mP
TnV!#(Q`3~%*p#iR$Y2csl>%Xn

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_IsTarget.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_IsTarget.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a488171ffed1c00f3c4a75a256004d5f80d69fa4
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gs@g
zLqpTGYr)5kS*}^5)7G|Yy4tSkYFj5Muj`Uu+9WlvQfy|4@V~$B|NVXc_w)I`pU?k!
zzWDduW(F8g{K>)yV(Wkikev*yF$xNODUo(+3^UIjo^oO9r2gi<NhO}fpG|tMWlz!+
zQ}35b&U6mcn7#Z2yGWnboKq*=tQd6E?t8mf2n03Eev$BD(aCnEg$Zu*H(F|L=W3mP
TnV!#(Q`3~%*p#iR$Y2csYtms<

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_IsTargetType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_IsTargetType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..65e9a41807f7a448b15e2b038cb1af59ac7b000e
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi;2r
z(9m@4TJW)BmTT7Nw6*P;uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSru=3!u;

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_LogicalConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_LogicalConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b446c03e5730c9b7def6b810e0b2f8368285641c
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3
zG&D3_yB2)xnB|%^I&E#crmO9muC{fO^13ehrA<=vD#d1&2><*0{@>sCe?Oo9`}zEz
z=Zk;eZDxQ0#h)yUAhr&O0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JO
zG4+0_<V@#4joHgju#5C*%{g__&5A)s?Y_5*g+Nfl>=y|i7M*NoTA1J_f1{=5cCOax
Tm+AQoIW<kGjZN9AiVW5OWdURJ

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_NotConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_NotConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..19ae1446ad8b8924f1e2281d5df6c16f1e893a58
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ
zXlS~2E%?|m%Qb6s+S+zaSKBpRZR;fEbzSmHo22Gdip?w${`dF&zrXMQem?*A^Z7r|
z7yrK7%m4$5KUo+-Y#k5*vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp
z>its5na+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD
S)AJc}YMN3To3d3E8LR=e24G+S

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_OrConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_OrConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3e3b45a82b4059837740bbcd25d1812ddfb32416
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0
zhK8nV*Mg57vs|-Ar>$+*bhTa6)wWJjUe_hRv`K1SrP$08;eUVM|NHy?@8|P>KcD~e
zeDUwQ%?vQ0_>+YZ#MS{3AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhu
zrrs}=oar2>F?;z5c9A}<Ij2s#SuyCS-S>8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~o
TGCiLmr=}^ju_;?sk--`OK?PwM

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_SourceEqualsTarget.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_SourceEqualsTarget.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f2eedabaf1519a23bd85f71a48861eeae1fbfec0
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ
zXlS~2E%?|m%Qb6s+S+zaSKBpRZR;fEbzSmHo22Gdip?w${`dF&zrXMQem?*A^Z7r|
z7yrK7%m4$5KUo+-Y#k5*vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp
z>its5na+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD
S)AJc}YMN3To3d3E8LR=bs9<0K

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_SourceEqualsTargetType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_SourceEqualsTargetType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c69e87c3c2ee792a296cc4ba69f6298ebac097d2
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFd;b5ApC51k|Gs@g
zLqpTGYr)5kS*}^5)7G|Yy4tSkYFj5Muj`Uu+9WlvQfy|4@V~$B|NVXc_w)I`pU?k!
zzWDduW(F8g{K>)yV(Wkikev*yF$xNODUo(+3^UIjo^oO9r2gi<NhO}fpG|tMWlz!+
zQ}35b&U6mcn7#Z2yGWnboKq*=tQd6E?t8mf2n03Eev$BD(aCnEg$Zu*H(F|L=W3mP
TnV!#(Q`3~%*p#iR$Y2csm33i_

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_TrueConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_constraintRule_TrueConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fb31e4b052870ef16e83dda4417cdae34e7297b3
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3
zG&D3_yB2)xnB|%^I&E#crmO9muC{fO^13ehrA<=vD#d1&2><*0{@>sCe?Oo9`}zEz
z=Zk;eZDxQ0#h)yUAhr&O0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JO
zG4+0_<V@#4joHgju#5C*%{g__&5A)s?Y_5*g+Nfl>=y|i7M*NoTA1J_f1{=5cCOax
Tm+AQoIW<kGjZN9AiVW5OW7uQ!

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_AndFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_AndFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..946cda2c3638b11eec31026e579608db32a7141f
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gs@g
zLqpTGYr)5kS*}^5)7G|Yy4tSkYFj5Muj`Uu+9WlvQfy|4@V~$B|NVXc_w)I`pU?k!
zzWDduW(F8g{K>)yV(Wkikev*yF$xNODUo(+3^UIjo^oO9r2gi<NhO}fpG|tMWlz!+
zQ}35b&U6mcn7#Z2yGWnboKq*=tQd6E?t8mf2n03Eev$BD(aCnEg$Zu*H(F|L=W3mP
TnV!#(Q`3~%*p#iR$Y2csK>A@C

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_FalseFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_FalseFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e01fab445e08617c0c0c17bba6c526ebcc08b88a
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L
zp#fQZ*L1aA)77?4QeM|3zqCneUZvQ~65)S;-~apj{_p4We?Oo9^L+8|yUh$Rp!k!8
z5yaL35g<DmSYs3v`cfk8)EH)-Jv`;Y)=B-%eUnN&jX#_8T+5!MDW={pm7M7us4;u_
z33ib_tvRPox>+&ksNMH=u@DGqnEfK*!=jVzObZj-<Zrap+|JcH{W3kDA*ZG(wXrE%
IRgu9O07}MTDgXcg

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_ImplicationFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_ImplicationFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f0b400c3f014d9ec584b43eb3efd44d037a67d61
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?<?9RB~0pC51k|Gs@g
zLqpTGYr)5kS*}^5)7G|Yy4tSkYFj5Muj`Uu+9WlvQfy|4@V~$B|NVXc_w)I`pU?k!
zzWDduW(F8g{K>)yV(Wkikev*yF$xNODUo(+3^UIjo^oO9r2gi<NhO}fpG|tMWlz!+
zQ}35b&U6mcn7#Z2yGWnboKq*=tQd6E?t8mf2n03Eev$BD(aCnEg$Zu*H(F|L=W3mP
TnV!#(Q`3~%*p#iR$Y2cs?0{gX

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_IsFeature.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_IsFeature.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8e8c9603553a09b90f06a2a439dcf2c70b21aa40
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}<p2Ni^W*LR-?wjQ
zXlS~2E%?|m%Qb6s+S+zaSKBpRZR;fEbzSmHo22Gdip?w${`dF&zrXMQem?*A^Z7r|
z7yrK7%m4$5KUo+-Y#k5*vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp
z>its5na+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD
S)AJc}YMN3To3d3E8LR=bs9<0K

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_LogicalFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_LogicalFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..31a5c1d45512bd8f5f8063908e64ef36bb558e74
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEs_S=+QUx=ijfay!8Kn{QP+P|M%@1
z8XB6eT?;;T%yP{dowl}J)75rOSKB&Cd0m(M(k7{Sm0~kXg#Z10|L^bnzn{<l{e1q<
z^TogKHZ#D0;!hSv5L*XCfb3*ojZskOONq2oW0-mN@RSQ%C-pb?O)Bv;{%q27Eqjut
zn0mida;9^j#_Z)M*hTuZ=A1g|X2qbRcHi5@LLjJN_KSoMi%zyPElhBeztK{2J6G%U
T%k+GPoSLT8#-?mlMFwjC8aHE*

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_NotFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_NotFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e01fab445e08617c0c0c17bba6c526ebcc08b88a
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L
zp#fQZ*L1aA)77?4QeM|3zqCneUZvQ~65)S;-~apj{_p4We?Oo9^L+8|yUh$Rp!k!8
z5yaL35g<DmSYs3v`cfk8)EH)-Jv`;Y)=B-%eUnN&jX#_8T+5!MDW={pm7M7us4;u_
z33ib_tvRPox>+&ksNMH=u@DGqnEfK*!=jVzObZj-<Zrap+|JcH{W3kDA*ZG(wXrE%
IRgu9O07}MTDgXcg

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_OrFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_OrFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..09329608c9af820219dabd13b634fd0a4f0d4b08
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAmjsO3TpC51k|Gs@g
zLqpTGYr)5kS*}^5)7G|Yy4tSkYFj5Muj`Uu+9WlvQfy|4@V~$B|NVXc_w)I`pU?k!
zzWDduW(F8g{K>)yV(Wkikev*yF$xNODUo(+3^UIjo^oO9r2gi<NhO}fpG|tMWlz!+
zQ}35b&U6mcn7#Z2yGWnboKq*=tQd6E?t8mf2n03Eev$BD(aCnEg$Zu*H(F|L=W3mP
TnV!#(Q`3~%*p#iR$Y2cs8@XWT

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_TrueFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreatePolicy_featureRule_TrueFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e0077899a2871a43facf640cfa9ea76c4221c688
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L
zp`q#8wcumNEZ3~jX=~dxU2WHNwXKts*LBG+ZIYT-DK@i2_}}06|Ng%J`}zFe&*%R<
zU;O)SGXo4L{$ybUv2{QM$W8{<7zKsClt?=@hM8v%Pr0ylQh#&bq!Lf#&n7+BvL|VZ
zsrO4IXF3OJ%wB$iU8GNI&Z(1bRt!37_q|;#1cDl7zexD7=wv(7!UQ+@8!a`rbG1&t
TOwVV?scA}WY|2(uWUvMRjPPN7

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_AndConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_AndConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b61a66864fb7c788fbc0b04c86344306e7b0c7fd
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9$(0
zh6afEfd&T$2ZvqL)pku++d4^kU6=gQCaHOqVlzvG|NVXc@9+D+pU?mOeE!e##lP=1
zGr)l2PZmZHTL(md>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1
zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#
Onx@porfgM325SHm&S1*`

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_ContainsCompartment.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_ContainsCompartment.gif
new file mode 100644
index 0000000000000000000000000000000000000000..57fa1bbb6eb46818734c374c7dd090aaf9f254c2
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?wjQ
zXgF}-z??aA4uFImc1>5?HC=7%B;|Eo@=Kef=2eQ#ED`?q_x-=W@Be;2|M&CxKhGEc
zzT3<I1ByRc7(r|u5CO82fi*@!p)V!UPK{ya*~3#VY@O8K+&8Jj)A+MV&$aAHnqunx
zQpuUlff}=ypI{g1)0%VYq?;9kj@o^17Yl))hS@I?J}f%f&a^PWP5wqp&Fx&R(=XHW
Q8FFfxQX8AHRTUYm0d9d`>Hq)$

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_FalseConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_FalseConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..64ea1744a2e94fb96cf6f4090fcba8595a964316
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ
zXgF}-z??aA4m3D8I5_N@uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSruWdC2@

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_ImplicationConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_ImplicationConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4937a9c8b59d21e99eb3ddbf17046fdb2c147cca
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mdbCIQ;(~KR@37|9$(0
zh6bp314w+=bhTa6)wWJjUe_hRv`K1SrP$08;eUVM|NHy?@8|P>KcD~eeDUwQ%?vQ0
z_>+YZ#MS{3AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>
zF?;z5c9A}<Ij2s#SuyCS-S>8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^j
Lu_;?sk--`O%sF6Y

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_InType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_InType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..57fa1bbb6eb46818734c374c7dd090aaf9f254c2
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?wjQ
zXgF}-z??aA4uFImc1>5?HC=7%B;|Eo@=Kef=2eQ#ED`?q_x-=W@Be;2|M&CxKhGEc
zzT3<I1ByRc7(r|u5CO82fi*@!p)V!UPK{ya*~3#VY@O8K+&8Jj)A+MV&$aAHnqunx
zQpuUlff}=ypI{g1)0%VYq?;9kj@o^17Yl))hS@I?J}f%f&a^PWP5wqp&Fx&R(=XHW
Q8FFfxQX8AHRTUYm0d9d`>Hq)$

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_IsParent.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_IsParent.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d56a04bddf1dea2014e520f41042568e2226198e
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn<O%QbB}ZU6tr&yTnNf8V~L
zq2a)R19RrgIndzX;NY-py4tSkYFj5Muj`Uu+9WlvQfy|4@V~$B|NVXc_w)I`pU?k!
zzWDduW(F8g{K>)yV(Wkikev*yF$xNODUo(+3^UIjo^oO9r2gi<NhO}fpG|tMWlz!+
zQ}35b&U6mcn7#Z2yGWnboKq*=tQd6E?t8mf2n03Eev$BD(aCnEg$Zu*H(F|L=W3mP
TnV!#(Q`3~%*p#iR$Y2cs`$S-<

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_IsSourceType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_IsSourceType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..997e434522761bb0741f11f33b621c2db8f51096
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gs@g
zLjy$oK!byWgTt=rYP+VZZJngNu1kJtlhnLQv6&^p|Ng%J_xJtZ&*%SsKL6+W;@@|h
z8DK#1CkrEptpg%Jb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncy<aLh
z(>YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=
OO;c)PQ?{xigEas{`(X<J

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_IsTarget.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_IsTarget.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3daea53959d1125f28a3891c89b438a110ada9e3
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gs@g
zLjy$oK!byWgTt=rYP+VZZJngNu1kJtlhnLQv6&^p|Ng%J_xJtZ&*%SsKL6+W;@@|h
z8DK#1CkrEptpg%Jb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncy<aLh
z(>YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=
OO;c)PQ?{xigEase%V5#~

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_IsTargetType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_IsTargetType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..327451149c2180bfb3d349e160dd69593534fd3b
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi;2r
z&~V_ufjM*L8~_PB?3%8&Yr5LjNy_WG<d-%{&8rlfSt9)J@B4p$-~au5{_p4Wf1WS?
zeYcqb1{8m?FoM`RAOd7318a<eLSIUxof^Z;vxlc#*gC1dxo=X5r}1Z#o@?2YG{w~W
zrIIt912twZKfx~2r#0u)NjED79ku)3E*1ho4YOY)d{}g{ooQi$oBWNIn%lWrr(dS$
RGvw4Xr8YKYt12>B0|1p;U>yJe

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_LogicalConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_LogicalConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..15849811ea967913ded6aa37f39326c8efbec633
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3
zG&CGIaA3}yIR_dX92^{WO;_7BU2W?m<#k>1OPi$TRf^3l5&rl0{lCBO|9(FI_w)Hb
z&lmr`+spt1ia%KxL2Mlm0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fn
zV(R@;$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(X
TFVpiGa%!4V8=JCK6&b7n6Z&Iu

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_NotConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_NotConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..64ea1744a2e94fb96cf6f4090fcba8595a964316
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ
zXgF}-z??aA4m3D8I5_N@uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSruWdC2@

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_OrConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_OrConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c200e691abd4deb48fdbbe790765c9a97d5e30a1
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0
zh6afEfd&T$2ZvqL)pku++d4^kU6=gQCaHOqVlzvG|NVXc@9+D+pU?mOeE!e##lP=1
zGr)l2PZmZHTL(md>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1
zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#
Onx@porfgM325SKC?_iez

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_SourceEqualsTarget.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_SourceEqualsTarget.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4455fd045196097cf030c1ad8af358d567d98115
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ
zXgF}-z??aA4m3D8I5_N@uC{Bs+SW<R>$>EZHc8E^6q{Kh{O|Ake}CWq{e1rK=ktG_
zFaCYEnE?hAf3h%w*g7BrWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI
z)cd89Go1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@R
Trsp%{)HJ0wHf5_SGFSruVxeE&

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_SourceEqualsTargetType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_SourceEqualsTargetType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..aced3dd98f86d8ff23e843b7ad19d3b887fae850
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFd;b5ApC51k|Gs@g
zLjy$oK!byWgTt=rYP+VZZJngNu1kJtlhnLQv6&^p|Ng%J_xJtZ&*%SsKL6+W;@@|h
z8DK#1CkrEptpg%Jb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncy<aLh
z(>YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=
OO;c)PQ?{xigEas|Zea@m

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_TrueConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryConstraintRule_rule_TrueConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1ed27624c11be000e64c53c3d5dcc1c0f3dadc5b
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3
zG&CGIaA3}yIR_dX92^{WO;_7BU2W?m<#k>1OPi$TRf^3l5&rl0{lCBO|9(FI_w)Hb
z&lmr`+spt1ia%KxL2Mlm0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fn
zV(R@;$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(X
TFVpiGa%!4V8=JCK6&b7n647IE

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_AndFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_AndFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b806b6dcf6cd017d188e02867f46ffa24d1fc980
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gs@g
zLjzpgc;?Jq)75rOSKB&Cd0m(M(k7{Sm0~kXg#Z10|L^bnzn{<l{e1q<^TogKHZ#D0
z;!hSv5L*XCfb3*ojZskOONq2oW0-mN@RSQ%C-pb?O)Bv;{%q27Eqjutn0mida;9^j
z#_Z)M*hTuZ=A1g|X2qbRcHi5@LLjJN_KSoMi%zyPElhBeztK{2J6G%U%k+GPoSLT8
L#-?mlMFwjCSixaE

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_FalseFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_FalseFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..decea7bad6ac8e698fff47e25f89cf30eb9ce1a2
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L
zq2a)R19RrgX=rFLo;h>ZbhTa6)wWJjUe_hRv`K1SrP$08;eUVM|NHy?@8|P>KcD~e
zeDUwQ%?vQ0_>+YZ#MS{3AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhu
zrrs}=oar2>F?;z5c9A}<Ij2s#SuyCS-S>8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~o
TGCiLmr=}^ju_;?sk--`OVvS)<

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_ImplicationFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_ImplicationFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..01c271236da5e9c429d23a2c3bc5afa4c9b64e13
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?<?9RB~0pC51k|Gs@g
zLjy#-p`pQe=FDBw)pku++d4^kU6=gQCaHOqVlzvG|NVXc@9+D+pU?mOeE!e##lP=1
zGr)l2PZmZHTL(md>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1
zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#
Onx@porfgM325SHWR$$8j

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_IsFeature.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_IsFeature.gif
new file mode 100644
index 0000000000000000000000000000000000000000..282ee0352e4ab28d4dd669f461de03ef9899952f
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}<p2Ni^W*LR-?wjQ
zXgF}-z??aA8X6jmXU^O;U2WHNwXKts*LBG+ZIYT-DK@i2_}}06|Ng%J`}zFe&*%R<
zU;O)SGXo4L{$ybUv2{QM$W8{<7zKsClt?=@hM8v%Pr0ylQh#&bq!Lf#&n7+BvL|VZ
zsrO4IXF3OJ%wB$iU8GNI&Z(1bRt!37_q|;#1cDl7zexD7=wv(7!UQ+@8!a`rbG1&t
TOwVV?scA}WY|2(uWUvMR%Wq(V

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_LogicalFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_LogicalFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cf5dedc743584e361658fe9684dc2ebb31328b03
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEs_S=+QUx=ijfay!8Kn{QP+P|M%@1
z8X689I520<oQ8%5<C!yeO;_7BU2W?m<#k>1OPi$TRf^3l5&rl0{lCBO|9(FI_w)Hb
z&lmr`+spt1ia%KxL2Mlm0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fn
zV(R@;$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(X
TFVpiGa%!4V8=JCK6&b7nG5%w-

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_NotFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_NotFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..decea7bad6ac8e698fff47e25f89cf30eb9ce1a2
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L
zq2a)R19RrgX=rFLo;h>ZbhTa6)wWJjUe_hRv`K1SrP$08;eUVM|NHy?@8|P>KcD~e
zeDUwQ%?vQ0_>+YZ#MS{3AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhu
zrrs}=oar2>F?;z5c9A}<Ij2s#SuyCS-S>8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~o
TGCiLmr=}^ju_;?sk--`OVvS)<

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_OrFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_OrFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d6e65ce8a1cded8cc21a23838f2fbf562bfaab5f
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAmjsO3TpC51k|Gs@g
zLjzpgc;?Jq)75rOSKB&Cd0m(M(k7{Sm0~kXg#Z10|L^bnzn{<l{e1q<^TogKHZ#D0
z;!hSv5L*XCfb3*ojZskOONq2oW0-mN@RSQ%C-pb?O)Bv;{%q27Eqjutn0mida;9^j
z#_Z)M*hTuZ=A1g|X2qbRcHi5@LLjJN_KSoMi%zyPElhBeztK{2J6G%U%k+GPoSLT8
L#-?mlMFwjCGk{?V

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_TrueFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/ctool16/CreateUnaryFeatureRule_rule_TrueFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4e8a6db4db81536d51689f0836e5228c3351e153
GIT binary patch
literal 223
zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L
zq2a)R19RrgX=rFLo;h>ZbhTa6)wWJjUe_hRv`K1SrP$08;eUVM|NHy?@8|P>KcD~e
zeDUwQ%?vQ0_>+YZ#MS{3AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhu
zrrs}=oar2>F?;z5c9A}<Ij2s#SuyCS-S>8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~o
TGCiLmr=}^ju_;?sk--`Oq_<(9

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/AndConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/AndConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ed8747474012f8278002a9785026a1a40155b192
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|3U0IbLKQO
zG#JmEsrZwHk%57eK?kH0WCjC^p211a)q5>ofBB}u|FF<?yD96flmxE@3%}aveVnFt
X)vUZ{r6#}ba>h=#BNK&$85yhr$1gAg

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/AndFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/AndFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cdd3b76e3c0b3318166d84292d8d9e2146a48aa1
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|3U0IbLKQO
zG|V(kQ~b%o$iTqKpaaqgGJ}Cd&)}rz>b(}PzkE~Se^}_c-IVoKN`lvdg<oy-K2B4+
XYF6H}Qj=eIIb)~Wk%>aWj11NQxz;bx

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/ContainsCompartment.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/ContainsCompartment.gif
new file mode 100644
index 0000000000000000000000000000000000000000..48e3cf2268736efbb8bc3c5bd29315702f2b38c4
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|3U1uGiePC
z4Gs<tia%Kx85lSjbU->mW-zem8JzT7z1QOPmv1Wk4+~wlo3h?YN$^^*@T-m9$7yO;
X&B}XLYVzwYXY6!4GEqpFk--`Oh^H?i

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/FalseConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/FalseConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..afb82ea48a50d3fb875ce03cf0ec154e51c97cb7
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|NmcG({!vS
zculcoTcnQSPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjY
an%Y&f@}8BN{JP5-JKc^<6cT1+um%8xtuGb;

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/FalseFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/FalseFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d3dc5a9ad8159548d5ada4a1cd545ec1d4de029c
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|Nl2#yB2)x
znB|%^I&E!=KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~r
aX=+!^%6nF7^6M^V>~uRaQAn7P!5RR(LNDL|

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/ImplicationConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/ImplicationConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..10d222998af0a3a571390bae7e117c9964ec1562
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|3U0IbLJd4
z;Nalkp!k!8k%57eK?kH0WCjC^p211a)q5>ofBB}u|FF<?yD96flmxE@3%}aveVnFt
X)vUZ{r6#}ba>h=#BNK&$85yhrtv4^8

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/ImplicationFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/ImplicationFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..35ef84e20e26f1cef1dcd7ae80d192fd40472368
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|3U0IbLKcS
z9B^=OQ2fcl$iTqKpaaqgGJ}Cd&)}rz>b(}PzkE~Se^}_c-IVoKN`lvdg<oy-K2B4+
XYF6H}Qj=eIIb)~Wk%>aWj11NQnfEVV

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/InType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/InType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..48e3cf2268736efbb8bc3c5bd29315702f2b38c4
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|3U1uGiePC
z4Gs<tia%Kx85lSjbU->mW-zem8JzT7z1QOPmv1Wk4+~wlo3h?YN$^^*@T-m9$7yO;
X&B}XLYVzwYXY6!4GEqpFk--`Oh^H?i

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsFeature.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsFeature.gif
new file mode 100644
index 0000000000000000000000000000000000000000..106881e5d9bf05cb0cf3375cfd102e8039b8ace9
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|Nl2#TN8Y&
z$8t@vPFtknPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjY
an%Y&f@}8BN{JP5-JKc^<6cT1+um%8vPcIe#

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsParent.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsParent.gif
new file mode 100644
index 0000000000000000000000000000000000000000..83afb9b3c9a3c3e261dd043d2232d39254ac8e4a
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|NmcWx^^u1
z*c!_<Z8~j=KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~r
aX=+!^%6nF7^6M^V>~uRaQAn7P!5RR))-T`y

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsSourceType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsSourceType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4365960a04b1589a21b7607f45f9b5907e2f01a8
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|3U0IbLKQO
zGz1^(QT)lm$iTqKpaaqgGJ}Cd&)}rz>b(}PzkE~Se^}_c-IVoKN`lvdg<oy-K2B4+
XYF6H}Qj=eIIb)~Wk%>aWj11NQ*xWEf

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsTarget.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsTarget.gif
new file mode 100644
index 0000000000000000000000000000000000000000..30f0c48da8d4450f7e94a696c4de0a7cc41aa728
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|3U0IbLKQO
zG#m>KR{Y7r$iTqKpaaqgGJ}Cd&)}rz>b(}PzkE~Se^}_c-IVoKN`lvdg<oy-K2B4+
XYF6H}Qj=eIIb)~Wk%>aWj11NQ$?`A?

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsTargetType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/IsTargetType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..45731fe28e7e3521c15328ef201d58b47a13b383
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|3U1TXVMxP
z8XO!P6o0ZXGB9v5=zw&B%wS;AGdStFdauRnFW*%79~Qc9H)Xw*lHj#q;a3~IkJHqy
Xnw9sg)a2J)&e-X8WTKETBZD;nm;NtR

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/LogicalConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/LogicalConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..33a997a1606acf7cb8a32921faeee1e5c809a0cb
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|NsB^{q@G1
zqx<jAUv{Zd@h1x-0|O_64oD}+3<efGgOi@C_gcLE@=b;RVWI1GQ`TE430?~peznp2
bI8E)US$WS&O@7_wjGb;rCJG5NGFSrujmR>o

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/LogicalFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/LogicalFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1e5345fb3237c2f6eabcee2dbe44a371b49d8379
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|Nnpe`uph7
zH}mJ;udKYJ_>+Z^fq|1j2c#2Z1_O(p!AZ~6do5mn`KH4Eu+Vk8DeJA21g`}PzuM@1
aoThfwth{HXCco}-#!j~*6NQ8s8LR<tpfW}P

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/Model.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/Model.gif
new file mode 100644
index 0000000000000000000000000000000000000000..33a997a1606acf7cb8a32921faeee1e5c809a0cb
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|NsB^{q@G1
zqx<jAUv{Zd@h1x-0|O_64oD}+3<efGgOi@C_gcLE@=b;RVWI1GQ`TE430?~peznp2
bI8E)US$WS&O@7_wjGb;rCJG5NGFSrujmR>o

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/NotConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/NotConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..afb82ea48a50d3fb875ce03cf0ec154e51c97cb7
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|NmcG({!vS
zculcoTcnQSPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjY
an%Y&f@}8BN{JP5-JKc^<6cT1+um%8xtuGb;

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/NotFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/NotFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d3dc5a9ad8159548d5ada4a1cd545ec1d4de029c
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|Nl2#yB2)x
znB|%^I&E!=KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~r
aX=+!^%6nF7^6M^V>~uRaQAn7P!5RR(LNDL|

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/OrConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/OrConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..904159880b359f157463f3cb9230da602e5b3d3a
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|3U0IbLLbo
zyX4^Dp!k!8k%57eK?kH0WCjC^p211a)q5>ofBB}u|FF<?yD96flmxE@3%}aveVnFt
X)vUZ{r6#}ba>h=#BNK&$85yhrx>qmH

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/OrFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/OrFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..420eee177528d9bd6d862c38d2a66c14835a6140
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|3U0IbLKQO
zG|V(MR{Y7r$iTqKpaaqgGJ}Cd&)}rz>b(}PzkE~Se^}_c-IVoKN`lvdg<oy-K2B4+
XYF6H}Qj=eIIb)~Wk%>aWj11NQtQRkx

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/Policy.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/Policy.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d3dc5a9ad8159548d5ada4a1cd545ec1d4de029c
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|Nl2#yB2)x
znB|%^I&E!=KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~r
aX=+!^%6nF7^6M^V>~uRaQAn7P!5RR(LNDL|

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/SourceEqualsTarget.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/SourceEqualsTarget.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f8041d22553d3f326e3e82be501f2e9bac3794b0
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|NpOPy4DkX
ztk`l*q)waSPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjY
an%Y&f@}8BN{JP5-JKc^<6cT1+um%8vPcIe#

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/SourceEqualsTargetType.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/SourceEqualsTargetType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cb1755a712505aeaaa447d9b1cc5940e602f87b6
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|3U0IbLKQO
zG#m@=QT)lm$iTqKpaaqgGJ}Cd&)}rz>b(}PzkE~Se^}_c-IVoKN`lvdg<oy-K2B4+
XYF6H}Qj=eIIb)~Wk%>aWj11NQ*-tP-

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/TrueConstraintRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/TrueConstraintRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2124f3e3ab2646fd6aec35b94fe003b565ba4c2c
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|Nnpe@%!kF
zH}m)3uUvLX@h1x-0|O_64oD}+3<efGgOi@C_gcLE@=b;RVWI1GQ`TE430?~peznp2
bI8E)US$WS&O@7_wjGb;rCJG5NGFSrujGr>8

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/TrueFeatureRule.gif b/org.framed.iorm.editpolicymodel.edit/icons/full/obj16/TrueFeatureRule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c3370c7ddd5e0817a59de6fd45ad0993b52abe28
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14Gatn4Gawp2M!!)XlP*g&%nU&|G<F*|Nnzo|Np<(v*%_{
z&zZEe0}c*~KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~r
aX=+!^%6nF7^6M^V>~uRaQAn7P!5RSADljtu

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.edit/plugin.properties b/org.framed.iorm.editpolicymodel.edit/plugin.properties
new file mode 100644
index 00000000..cf48b07b
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/plugin.properties
@@ -0,0 +1,135 @@
+#
+
+pluginName = editpolicymodel Edit Support
+providerName = www.example.org
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_Model_type = Model
+_UI_Policy_type = Policy
+_UI_ContainsCompartment_type = Contains Compartment
+_UI_IsTarget_type = Is Target
+_UI_IsParent_type = Is Parent
+_UI_FeatureRule_type = Feature Rule
+_UI_IsFeature_type = Is Feature
+_UI_ConstraintRule_type = Constraint Rule
+_UI_IsTargetType_type = Is Target Type
+_UI_UnaryConstraintRule_type = Unary Constraint Rule
+_UI_NotConstraintRule_type = Not Constraint Rule
+_UI_AndConstraintRule_type = And Constraint Rule
+_UI_BinaryConstraintRule_type = Binary Constraint Rule
+_UI_TrueConstraintRule_type = True Constraint Rule
+_UI_FalseConstraintRule_type = False Constraint Rule
+_UI_OrConstraintRule_type = Or Constraint Rule
+_UI_ImplicationConstraintRule_type = Implication Constraint Rule
+_UI_IsSourceType_type = Is Source Type
+_UI_TypeArgumentRule_type = Type Argument Rule
+_UI_NaryConstraintRule_type = Nary Constraint Rule
+_UI_LogicalConstraintRule_type = Logical Constraint Rule
+_UI_TrueFeatureRule_type = True Feature Rule
+_UI_NotFeatureRule_type = Not Feature Rule
+_UI_FalseFeatureRule_type = False Feature Rule
+_UI_NaryFeatureRule_type = Nary Feature Rule
+_UI_BinaryFeatureRule_type = Binary Feature Rule
+_UI_LogicalFeatureRule_type = Logical Feature Rule
+_UI_ImplicationFeatureRule_type = Implication Feature Rule
+_UI_UnaryFeatureRule_type = Unary Feature Rule
+_UI_OrFeatureRule_type = Or Feature Rule
+_UI_AndFeatureRule_type = And Feature Rule
+_UI_SourceEqualsTarget_type = Source Equals Target
+_UI_SourceEqualsTargetType_type = Source Equals Target Type
+_UI_InType_type = In Type
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_Model_policies_feature = Policies
+_UI_Policy_override_feature = Override
+_UI_Policy_action_feature = Action
+_UI_Policy_actionType_feature = Action Type
+_UI_Policy_featureRule_feature = Feature Rule
+_UI_Policy_constraintRule_feature = Constraint Rule
+_UI_IsFeature_featureName_feature = Feature Name
+_UI_UnaryConstraintRule_rule_feature = Rule
+_UI_BinaryConstraintRule_leftRule_feature = Left Rule
+_UI_BinaryConstraintRule_rightRule_feature = Right Rule
+_UI_TypeArgumentRule_type_feature = Type
+_UI_NaryConstraintRule_rules_feature = Rules
+_UI_NaryFeatureRule_rules_feature = Rules
+_UI_BinaryFeatureRule_rightRule_feature = Right Rule
+_UI_BinaryFeatureRule_leftRule_feature = Left Rule
+_UI_UnaryFeatureRule_rule_feature = Rule
+_UI_Unknown_feature = Unspecified
+
+_UI_ActionEnum_Create_literal = Create
+_UI_ActionEnum_Add_literal = Add
+_UI_ActionEnum_Start_literal = Start
+_UI_ActionEnum_Reconnect_literal = Reconnect
+_UI_ActionEnum_Execute_literal = Execute
+_UI_ActionEnum_Direct_Edit_literal = Direct_Edit
+_UI_ActionEnum_Create_Property_literal = Create_Property
+_UI_ActionEnum_Create_Attribute_literal = Create_Attribute
+_UI_ActionEnum_Add_Property_literal = Add_Property
+_UI_ActionEnum_Create_Operation_literal = Create_Operation
+_UI_TypeEnum_Acyclic_literal = Acyclic
+_UI_TypeEnum_CompartmentType_literal = CompartmentType
+_UI_TypeEnum_Irreflexive_literal = Irreflexive
+_UI_TypeEnum_RoleProhibition_literal = RoleProhibition
+_UI_TypeEnum_RoleImplication_literal = RoleImplication
+_UI_TypeEnum_RoleGroup_literal = RoleGroup
+_UI_TypeEnum_RoleEquivalence_literal = RoleEquivalence
+_UI_TypeEnum_RoleType_literal = RoleType
+_UI_TypeEnum_RelationshipImplication_literal = RelationshipImplication
+_UI_TypeEnum_RelationshipExclusion_literal = RelationshipExclusion
+_UI_TypeEnum_Relationship_literal = Relationship
+_UI_TypeEnum_Reflexive_literal = Reflexive
+_UI_TypeEnum_Group_literal = Group
+_UI_TypeEnum_Inheritance_literal = Inheritance
+_UI_TypeEnum_Fulfillment_literal = Fulfillment
+_UI_TypeEnum_DataType_literal = DataType
+_UI_TypeEnum_Cyclic_literal = Cyclic
+_UI_TypeEnum_NaturalType_literal = NaturalType
+_UI_FeatureNameEnum_Roles_literal = Roles
+_UI_FeatureNameEnum_Role_Types_literal = Role_Types
+_UI_FeatureNameEnum_Role_Structure_literal = Role_Structure
+_UI_FeatureNameEnum_Role_Properties_literal = Role_Properties
+_UI_FeatureNameEnum_Role_Prohibition_literal = Role_Prohibition
+_UI_FeatureNameEnum_Role_Inheritance_literal = Role_Inheritance
+_UI_FeatureNameEnum_Role_Implication_literal = Role_Implication
+_UI_FeatureNameEnum_Role_Equivalence_literal = Role_Equivalence
+_UI_FeatureNameEnum_Role_Constraints_literal = Role_Constraints
+_UI_FeatureNameEnum_Role_Behavior_literal = Role_Behavior
+_UI_FeatureNameEnum_RML_Feature_Model_literal = RML_Feature_Model
+_UI_FeatureNameEnum_Relationships_literal = Relationships
+_UI_FeatureNameEnum_Relationship_Constraints_literal = Relationship_Constraints
+_UI_FeatureNameEnum_Relationship_Cardinality_literal = Relationship_Cardinality
+_UI_FeatureNameEnum_Players_literal = Players
+_UI_FeatureNameEnum_Playable_by_Defining_Compartment_literal = Playable_by_Defining_Compartment
+_UI_FeatureNameEnum_Playable_literal = Playable
+_UI_FeatureNameEnum_Parthood_Constraints_literal = Parthood_Constraints
+_UI_FeatureNameEnum_On_Relationships_literal = On_Relationships
+_UI_FeatureNameEnum_On_Compartments_literal = On_Compartments
+_UI_FeatureNameEnum_Occurrence_Constraints_literal = Occurrence_Constraints
+_UI_FeatureNameEnum_Naturals_literal = Naturals
+_UI_FeatureNameEnum_Intra_Relationship_Constraints_literal = Intra_Relationship_Constraints
+_UI_FeatureNameEnum_Inter_Relationship_Constraints_literal = Inter_Relationship_Constraints
+_UI_FeatureNameEnum_Group_Constraints_literal = Group_Constraints
+_UI_FeatureNameEnum_Dependent_literal = Dependent
+_UI_FeatureNameEnum_Dates_literal = Dates
+_UI_FeatureNameEnum_Data_Types_literal = Data_Types
+_UI_FeatureNameEnum_Compartments_literal = Compartments
+_UI_FeatureNameEnum_Contains_Compartments_literal = Contains_Compartments
+_UI_FeatureNameEnum_Compartment_Types_literal = Compartment_Types
+_UI_FeatureNameEnum_Compartment_Structure_literal = Compartment_Structure
+_UI_FeatureNameEnum_Compartment_Properties_literal = Compartment_Properties
+_UI_FeatureNameEnum_Compartment_Inheritance_literal = Compartment_Inheritance
+_UI_FeatureNameEnum_Compartment_Behavior_literal = Compartment_Behavior
+_UI_FeatureNameEnum_Participants_literal = Participants
+_UI_FeatureNameEnum_Data_Type_Inheritance_literal = Data_Type_Inheritance
diff --git a/org.framed.iorm.editpolicymodel.edit/plugin.xml b/org.framed.iorm.editpolicymodel.edit/plugin.xml
new file mode 100644
index 00000000..5b1a97c4
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated editpolicymodel -->
+      <factory
+            uri="http://framed/editpolicymodel"
+            class="editpolicymodel.provider.editpolicymodelItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+</plugin>
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/AndConstraintRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/AndConstraintRuleItemProvider.java
new file mode 100644
index 00000000..44a2f6c3
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/AndConstraintRuleItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.AndConstraintRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AndConstraintRuleItemProvider extends NaryConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AndConstraintRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns AndConstraintRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/AndConstraintRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_AndConstraintRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/AndFeatureRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/AndFeatureRuleItemProvider.java
new file mode 100644
index 00000000..f4b8bc8b
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/AndFeatureRuleItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.AndFeatureRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AndFeatureRuleItemProvider extends NaryFeatureRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AndFeatureRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns AndFeatureRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/AndFeatureRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_AndFeatureRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/BinaryConstraintRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/BinaryConstraintRuleItemProvider.java
new file mode 100644
index 00000000..1ea87acd
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/BinaryConstraintRuleItemProvider.java
@@ -0,0 +1,301 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.BinaryConstraintRule;
+import editpolicymodel.editpolicymodelFactory;
+import editpolicymodel.editpolicymodelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.BinaryConstraintRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BinaryConstraintRuleItemProvider extends LogicalConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BinaryConstraintRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE);
+			childrenFeatures.add(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_BinaryConstraintRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(BinaryConstraintRule.class)) {
+			case editpolicymodelPackage.BINARY_CONSTRAINT_RULE__LEFT_RULE:
+			case editpolicymodelPackage.BINARY_CONSTRAINT_RULE__RIGHT_RULE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createContainsCompartment()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsTarget()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsParent()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsTargetType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createLogicalConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createNotConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createAndConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createTrueConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createFalseConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createOrConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createImplicationConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsSourceType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createSourceEqualsTarget()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createSourceEqualsTargetType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createInType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createContainsCompartment()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsTarget()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsParent()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsTargetType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createLogicalConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createNotConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createAndConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createTrueConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createFalseConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createOrConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createImplicationConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsSourceType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createSourceEqualsTarget()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createSourceEqualsTargetType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createInType()));
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE ||
+			childFeature == editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/BinaryFeatureRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/BinaryFeatureRuleItemProvider.java
new file mode 100644
index 00000000..4447dc54
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/BinaryFeatureRuleItemProvider.java
@@ -0,0 +1,231 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.BinaryFeatureRule;
+import editpolicymodel.editpolicymodelFactory;
+import editpolicymodel.editpolicymodelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.BinaryFeatureRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BinaryFeatureRuleItemProvider extends LogicalFeatureRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BinaryFeatureRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__RIGHT_RULE);
+			childrenFeatures.add(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__LEFT_RULE);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_BinaryFeatureRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(BinaryFeatureRule.class)) {
+			case editpolicymodelPackage.BINARY_FEATURE_RULE__RIGHT_RULE:
+			case editpolicymodelPackage.BINARY_FEATURE_RULE__LEFT_RULE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsFeature()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createLogicalFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createTrueFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createNotFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createFalseFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createImplicationFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createOrFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__RIGHT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createAndFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsFeature()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createLogicalFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createTrueFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createNotFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createFalseFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createImplicationFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createOrFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__LEFT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createAndFeatureRule()));
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__RIGHT_RULE ||
+			childFeature == editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__LEFT_RULE;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ConstraintRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ConstraintRuleItemProvider.java
new file mode 100644
index 00000000..88141427
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ConstraintRuleItemProvider.java
@@ -0,0 +1,109 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.ConstraintRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConstraintRuleItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ConstraintRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_ConstraintRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return editpolicymodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ContainsCompartmentItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ContainsCompartmentItemProvider.java
new file mode 100644
index 00000000..9004f7d6
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ContainsCompartmentItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.ContainsCompartment} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ContainsCompartmentItemProvider extends ConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ContainsCompartmentItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns ContainsCompartment.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ContainsCompartment"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_ContainsCompartment_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/FalseConstraintRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/FalseConstraintRuleItemProvider.java
new file mode 100644
index 00000000..042c4d1b
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/FalseConstraintRuleItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.FalseConstraintRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FalseConstraintRuleItemProvider extends LogicalConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FalseConstraintRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns FalseConstraintRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/FalseConstraintRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_FalseConstraintRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/FalseFeatureRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/FalseFeatureRuleItemProvider.java
new file mode 100644
index 00000000..43c48ffe
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/FalseFeatureRuleItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.FalseFeatureRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FalseFeatureRuleItemProvider extends LogicalFeatureRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FalseFeatureRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns FalseFeatureRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/FalseFeatureRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_FalseFeatureRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/FeatureRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/FeatureRuleItemProvider.java
new file mode 100644
index 00000000..800142ff
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/FeatureRuleItemProvider.java
@@ -0,0 +1,109 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.FeatureRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FeatureRuleItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FeatureRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_FeatureRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return editpolicymodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ImplicationConstraintRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ImplicationConstraintRuleItemProvider.java
new file mode 100644
index 00000000..505e3af0
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ImplicationConstraintRuleItemProvider.java
@@ -0,0 +1,119 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.editpolicymodelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.ImplicationConstraintRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ImplicationConstraintRuleItemProvider extends BinaryConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ImplicationConstraintRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns ImplicationConstraintRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ImplicationConstraintRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_ImplicationConstraintRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__LEFT_RULE ||
+			childFeature == editpolicymodelPackage.Literals.BINARY_CONSTRAINT_RULE__RIGHT_RULE;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ImplicationFeatureRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ImplicationFeatureRuleItemProvider.java
new file mode 100644
index 00000000..45ebcfc8
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ImplicationFeatureRuleItemProvider.java
@@ -0,0 +1,119 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.editpolicymodelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.ImplicationFeatureRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ImplicationFeatureRuleItemProvider extends BinaryFeatureRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ImplicationFeatureRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns ImplicationFeatureRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ImplicationFeatureRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_ImplicationFeatureRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__RIGHT_RULE ||
+			childFeature == editpolicymodelPackage.Literals.BINARY_FEATURE_RULE__LEFT_RULE;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/InTypeItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/InTypeItemProvider.java
new file mode 100644
index 00000000..7135e23b
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/InTypeItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.InType;
+import editpolicymodel.TypeEnum;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.InType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class InTypeItemProvider extends TypeArgumentRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public InTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns InType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/InType"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		TypeEnum labelValue = ((InType)object).getType();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_InType_type") :
+			getString("_UI_InType_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsFeatureItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsFeatureItemProvider.java
new file mode 100644
index 00000000..bcdb646c
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsFeatureItemProvider.java
@@ -0,0 +1,134 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.FeatureNameEnum;
+import editpolicymodel.IsFeature;
+import editpolicymodel.editpolicymodelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.IsFeature} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IsFeatureItemProvider extends FeatureRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IsFeatureItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addFeatureNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Feature Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFeatureNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IsFeature_featureName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_IsFeature_featureName_feature", "_UI_IsFeature_type"),
+				 editpolicymodelPackage.Literals.IS_FEATURE__FEATURE_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns IsFeature.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/IsFeature"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		FeatureNameEnum labelValue = ((IsFeature)object).getFeatureName();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_IsFeature_type") :
+			getString("_UI_IsFeature_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(IsFeature.class)) {
+			case editpolicymodelPackage.IS_FEATURE__FEATURE_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsParentItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsParentItemProvider.java
new file mode 100644
index 00000000..6b14c7b9
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsParentItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.IsParent;
+import editpolicymodel.TypeEnum;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.IsParent} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IsParentItemProvider extends TypeArgumentRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IsParentItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns IsParent.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/IsParent"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		TypeEnum labelValue = ((IsParent)object).getType();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_IsParent_type") :
+			getString("_UI_IsParent_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsSourceTypeItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsSourceTypeItemProvider.java
new file mode 100644
index 00000000..7f2bf37d
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsSourceTypeItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.IsSourceType;
+import editpolicymodel.TypeEnum;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.IsSourceType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IsSourceTypeItemProvider extends TypeArgumentRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IsSourceTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns IsSourceType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/IsSourceType"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		TypeEnum labelValue = ((IsSourceType)object).getType();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_IsSourceType_type") :
+			getString("_UI_IsSourceType_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsTargetItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsTargetItemProvider.java
new file mode 100644
index 00000000..be60d8d9
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsTargetItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.IsTarget;
+import editpolicymodel.TypeEnum;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.IsTarget} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IsTargetItemProvider extends TypeArgumentRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IsTargetItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns IsTarget.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/IsTarget"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		TypeEnum labelValue = ((IsTarget)object).getType();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_IsTarget_type") :
+			getString("_UI_IsTarget_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsTargetTypeItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsTargetTypeItemProvider.java
new file mode 100644
index 00000000..fadaa640
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/IsTargetTypeItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.IsTargetType;
+import editpolicymodel.TypeEnum;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.IsTargetType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IsTargetTypeItemProvider extends TypeArgumentRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IsTargetTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns IsTargetType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/IsTargetType"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		TypeEnum labelValue = ((IsTargetType)object).getType();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_IsTargetType_type") :
+			getString("_UI_IsTargetType_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/LogicalConstraintRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/LogicalConstraintRuleItemProvider.java
new file mode 100644
index 00000000..9c535fb8
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/LogicalConstraintRuleItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.LogicalConstraintRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class LogicalConstraintRuleItemProvider extends ConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LogicalConstraintRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns LogicalConstraintRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/LogicalConstraintRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_LogicalConstraintRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/LogicalFeatureRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/LogicalFeatureRuleItemProvider.java
new file mode 100644
index 00000000..b5ec0731
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/LogicalFeatureRuleItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.LogicalFeatureRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class LogicalFeatureRuleItemProvider extends FeatureRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LogicalFeatureRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns LogicalFeatureRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/LogicalFeatureRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_LogicalFeatureRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ModelItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ModelItemProvider.java
new file mode 100644
index 00000000..de2cd48f
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/ModelItemProvider.java
@@ -0,0 +1,168 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.Model;
+import editpolicymodel.editpolicymodelFactory;
+import editpolicymodel.editpolicymodelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.Model} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ModelItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ModelItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(editpolicymodelPackage.Literals.MODEL__POLICIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Model.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Model"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_Model_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Model.class)) {
+			case editpolicymodelPackage.MODEL__POLICIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.MODEL__POLICIES,
+				 editpolicymodelFactory.eINSTANCE.createPolicy()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return editpolicymodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NaryConstraintRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NaryConstraintRuleItemProvider.java
new file mode 100644
index 00000000..dabf0d4e
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NaryConstraintRuleItemProvider.java
@@ -0,0 +1,201 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.NaryConstraintRule;
+import editpolicymodel.editpolicymodelFactory;
+import editpolicymodel.editpolicymodelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.NaryConstraintRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NaryConstraintRuleItemProvider extends LogicalConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NaryConstraintRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_NaryConstraintRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(NaryConstraintRule.class)) {
+			case editpolicymodelPackage.NARY_CONSTRAINT_RULE__RULES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createContainsCompartment()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createIsTarget()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createIsParent()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createIsTargetType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createLogicalConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createNotConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createAndConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createTrueConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createFalseConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createOrConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createImplicationConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createIsSourceType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createSourceEqualsTarget()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createSourceEqualsTargetType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_CONSTRAINT_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createInType()));
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NaryFeatureRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NaryFeatureRuleItemProvider.java
new file mode 100644
index 00000000..4f96c562
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NaryFeatureRuleItemProvider.java
@@ -0,0 +1,166 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.NaryFeatureRule;
+import editpolicymodel.editpolicymodelFactory;
+import editpolicymodel.editpolicymodelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.NaryFeatureRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NaryFeatureRuleItemProvider extends LogicalFeatureRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NaryFeatureRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(editpolicymodelPackage.Literals.NARY_FEATURE_RULE__RULES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_NaryFeatureRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(NaryFeatureRule.class)) {
+			case editpolicymodelPackage.NARY_FEATURE_RULE__RULES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_FEATURE_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createIsFeature()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_FEATURE_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createLogicalFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_FEATURE_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createTrueFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_FEATURE_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createNotFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_FEATURE_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createFalseFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_FEATURE_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createImplicationFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_FEATURE_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createOrFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.NARY_FEATURE_RULE__RULES,
+				 editpolicymodelFactory.eINSTANCE.createAndFeatureRule()));
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NotConstraintRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NotConstraintRuleItemProvider.java
new file mode 100644
index 00000000..4a0536b8
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NotConstraintRuleItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.NotConstraintRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NotConstraintRuleItemProvider extends UnaryConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotConstraintRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns NotConstraintRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/NotConstraintRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_NotConstraintRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NotFeatureRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NotFeatureRuleItemProvider.java
new file mode 100644
index 00000000..0d5f7c9f
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/NotFeatureRuleItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.NotFeatureRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NotFeatureRuleItemProvider extends UnaryFeatureRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotFeatureRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns NotFeatureRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/NotFeatureRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_NotFeatureRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/OrConstraintRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/OrConstraintRuleItemProvider.java
new file mode 100644
index 00000000..b2d87b97
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/OrConstraintRuleItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.OrConstraintRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OrConstraintRuleItemProvider extends NaryConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OrConstraintRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns OrConstraintRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/OrConstraintRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_OrConstraintRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/OrFeatureRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/OrFeatureRuleItemProvider.java
new file mode 100644
index 00000000..2ea2e7f6
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/OrFeatureRuleItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.OrFeatureRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OrFeatureRuleItemProvider extends NaryFeatureRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OrFeatureRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns OrFeatureRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/OrFeatureRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_OrFeatureRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/PolicyItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/PolicyItemProvider.java
new file mode 100644
index 00000000..59dbda72
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/PolicyItemProvider.java
@@ -0,0 +1,360 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.Policy;
+import editpolicymodel.editpolicymodelFactory;
+import editpolicymodel.editpolicymodelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.Policy} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PolicyItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PolicyItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addOverridePropertyDescriptor(object);
+			addActionPropertyDescriptor(object);
+			addActionTypePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Override feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOverridePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Policy_override_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_Policy_override_feature", "_UI_Policy_type"),
+				 editpolicymodelPackage.Literals.POLICY__OVERRIDE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Action feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addActionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Policy_action_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_Policy_action_feature", "_UI_Policy_type"),
+				 editpolicymodelPackage.Literals.POLICY__ACTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Action Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addActionTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Policy_actionType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_Policy_actionType_feature", "_UI_Policy_type"),
+				 editpolicymodelPackage.Literals.POLICY__ACTION_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(editpolicymodelPackage.Literals.POLICY__FEATURE_RULE);
+			childrenFeatures.add(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Policy.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Policy"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		Boolean labelValue = ((Policy)object).getOverride();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Policy_type") :
+			getString("_UI_Policy_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Policy.class)) {
+			case editpolicymodelPackage.POLICY__OVERRIDE:
+			case editpolicymodelPackage.POLICY__ACTION:
+			case editpolicymodelPackage.POLICY__ACTION_TYPE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case editpolicymodelPackage.POLICY__FEATURE_RULE:
+			case editpolicymodelPackage.POLICY__CONSTRAINT_RULE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__FEATURE_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsFeature()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__FEATURE_RULE,
+				 editpolicymodelFactory.eINSTANCE.createLogicalFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__FEATURE_RULE,
+				 editpolicymodelFactory.eINSTANCE.createTrueFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__FEATURE_RULE,
+				 editpolicymodelFactory.eINSTANCE.createNotFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__FEATURE_RULE,
+				 editpolicymodelFactory.eINSTANCE.createFalseFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__FEATURE_RULE,
+				 editpolicymodelFactory.eINSTANCE.createImplicationFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__FEATURE_RULE,
+				 editpolicymodelFactory.eINSTANCE.createOrFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__FEATURE_RULE,
+				 editpolicymodelFactory.eINSTANCE.createAndFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createContainsCompartment()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsTarget()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsParent()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsTargetType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createLogicalConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createNotConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createAndConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createTrueConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createFalseConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createOrConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createImplicationConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsSourceType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createSourceEqualsTarget()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createSourceEqualsTargetType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.POLICY__CONSTRAINT_RULE,
+				 editpolicymodelFactory.eINSTANCE.createInType()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return editpolicymodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/SourceEqualsTargetItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/SourceEqualsTargetItemProvider.java
new file mode 100644
index 00000000..fdd66df7
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/SourceEqualsTargetItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.SourceEqualsTarget} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SourceEqualsTargetItemProvider extends ConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SourceEqualsTargetItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns SourceEqualsTarget.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/SourceEqualsTarget"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_SourceEqualsTarget_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/SourceEqualsTargetTypeItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/SourceEqualsTargetTypeItemProvider.java
new file mode 100644
index 00000000..9ae53f3f
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/SourceEqualsTargetTypeItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.SourceEqualsTargetType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SourceEqualsTargetTypeItemProvider extends ConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SourceEqualsTargetTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns SourceEqualsTargetType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/SourceEqualsTargetType"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_SourceEqualsTargetType_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/TrueConstraintRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/TrueConstraintRuleItemProvider.java
new file mode 100644
index 00000000..bb1cc676
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/TrueConstraintRuleItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.TrueConstraintRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TrueConstraintRuleItemProvider extends LogicalConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TrueConstraintRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns TrueConstraintRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/TrueConstraintRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_TrueConstraintRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/TrueFeatureRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/TrueFeatureRuleItemProvider.java
new file mode 100644
index 00000000..fc6d9a1a
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/TrueFeatureRuleItemProvider.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.TrueFeatureRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TrueFeatureRuleItemProvider extends LogicalFeatureRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TrueFeatureRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns TrueFeatureRule.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/TrueFeatureRule"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_TrueFeatureRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/TypeArgumentRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/TypeArgumentRuleItemProvider.java
new file mode 100644
index 00000000..acea57e0
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/TypeArgumentRuleItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.TypeArgumentRule;
+import editpolicymodel.TypeEnum;
+import editpolicymodel.editpolicymodelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.TypeArgumentRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TypeArgumentRuleItemProvider extends ConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TypeArgumentRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTypePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_TypeArgumentRule_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_TypeArgumentRule_type_feature", "_UI_TypeArgumentRule_type"),
+				 editpolicymodelPackage.Literals.TYPE_ARGUMENT_RULE__TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		TypeEnum labelValue = ((TypeArgumentRule)object).getType();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_TypeArgumentRule_type") :
+			getString("_UI_TypeArgumentRule_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(TypeArgumentRule.class)) {
+			case editpolicymodelPackage.TYPE_ARGUMENT_RULE__TYPE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/UnaryConstraintRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/UnaryConstraintRuleItemProvider.java
new file mode 100644
index 00000000..01341d41
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/UnaryConstraintRuleItemProvider.java
@@ -0,0 +1,201 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.UnaryConstraintRule;
+import editpolicymodel.editpolicymodelFactory;
+import editpolicymodel.editpolicymodelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.UnaryConstraintRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class UnaryConstraintRuleItemProvider extends LogicalConstraintRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnaryConstraintRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_UnaryConstraintRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(UnaryConstraintRule.class)) {
+			case editpolicymodelPackage.UNARY_CONSTRAINT_RULE__RULE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createContainsCompartment()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsTarget()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsParent()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsTargetType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createLogicalConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createNotConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createAndConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createTrueConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createFalseConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createOrConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createImplicationConstraintRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsSourceType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createSourceEqualsTarget()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createSourceEqualsTargetType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_CONSTRAINT_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createInType()));
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/UnaryFeatureRuleItemProvider.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/UnaryFeatureRuleItemProvider.java
new file mode 100644
index 00000000..5e03ef6c
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/UnaryFeatureRuleItemProvider.java
@@ -0,0 +1,166 @@
+/**
+ */
+package editpolicymodel.provider;
+
+
+import editpolicymodel.UnaryFeatureRule;
+import editpolicymodel.editpolicymodelFactory;
+import editpolicymodel.editpolicymodelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link editpolicymodel.UnaryFeatureRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class UnaryFeatureRuleItemProvider extends LogicalFeatureRuleItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnaryFeatureRuleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(editpolicymodelPackage.Literals.UNARY_FEATURE_RULE__RULE);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_UnaryFeatureRule_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(UnaryFeatureRule.class)) {
+			case editpolicymodelPackage.UNARY_FEATURE_RULE__RULE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_FEATURE_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createIsFeature()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_FEATURE_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createLogicalFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_FEATURE_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createTrueFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_FEATURE_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createNotFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_FEATURE_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createFalseFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_FEATURE_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createImplicationFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_FEATURE_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createOrFeatureRule()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(editpolicymodelPackage.Literals.UNARY_FEATURE_RULE__RULE,
+				 editpolicymodelFactory.eINSTANCE.createAndFeatureRule()));
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/editpolicymodelEditPlugin.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/editpolicymodelEditPlugin.java
new file mode 100644
index 00000000..d475cd7c
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/editpolicymodelEditPlugin.java
@@ -0,0 +1,92 @@
+/**
+ */
+package editpolicymodel.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.framed.iorm.model.provider.ORMEditPlugin;
+
+/**
+ * This is the central singleton for the editpolicymodel edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class editpolicymodelEditPlugin extends EMFPlugin {
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final editpolicymodelEditPlugin INSTANCE = new editpolicymodelEditPlugin();
+
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static Implementation plugin;
+
+	/**
+	 * Create the instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public editpolicymodelEditPlugin() {
+		super
+		  (new ResourceLocator [] {
+		     ORMEditPlugin.INSTANCE,
+		   });
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getPluginResourceLocator() {
+		return plugin;
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public static Implementation getPlugin() {
+		return plugin;
+	}
+
+	/**
+	 * The actual implementation of the Eclipse <b>Plugin</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static class Implementation extends EclipsePlugin {
+		/**
+		 * Creates an instance.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public Implementation() {
+			super();
+
+			// Remember the static instance.
+			//
+			plugin = this;
+		}
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/editpolicymodelItemProviderAdapterFactory.java b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/editpolicymodelItemProviderAdapterFactory.java
new file mode 100644
index 00000000..ff0e68b3
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.edit/src/editpolicymodel/provider/editpolicymodelItemProviderAdapterFactory.java
@@ -0,0 +1,775 @@
+/**
+ */
+package editpolicymodel.provider;
+
+import editpolicymodel.util.editpolicymodelAdapterFactory;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class editpolicymodelItemProviderAdapterFactory extends editpolicymodelAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public editpolicymodelItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.Model} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ModelItemProvider modelItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.Model}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createModelAdapter() {
+		if (modelItemProvider == null) {
+			modelItemProvider = new ModelItemProvider(this);
+		}
+
+		return modelItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.Policy} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PolicyItemProvider policyItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.Policy}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createPolicyAdapter() {
+		if (policyItemProvider == null) {
+			policyItemProvider = new PolicyItemProvider(this);
+		}
+
+		return policyItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.ContainsCompartment} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ContainsCompartmentItemProvider containsCompartmentItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.ContainsCompartment}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createContainsCompartmentAdapter() {
+		if (containsCompartmentItemProvider == null) {
+			containsCompartmentItemProvider = new ContainsCompartmentItemProvider(this);
+		}
+
+		return containsCompartmentItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.IsTarget} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IsTargetItemProvider isTargetItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.IsTarget}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createIsTargetAdapter() {
+		if (isTargetItemProvider == null) {
+			isTargetItemProvider = new IsTargetItemProvider(this);
+		}
+
+		return isTargetItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.IsParent} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IsParentItemProvider isParentItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.IsParent}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createIsParentAdapter() {
+		if (isParentItemProvider == null) {
+			isParentItemProvider = new IsParentItemProvider(this);
+		}
+
+		return isParentItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.IsFeature} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IsFeatureItemProvider isFeatureItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.IsFeature}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createIsFeatureAdapter() {
+		if (isFeatureItemProvider == null) {
+			isFeatureItemProvider = new IsFeatureItemProvider(this);
+		}
+
+		return isFeatureItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.IsTargetType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IsTargetTypeItemProvider isTargetTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.IsTargetType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createIsTargetTypeAdapter() {
+		if (isTargetTypeItemProvider == null) {
+			isTargetTypeItemProvider = new IsTargetTypeItemProvider(this);
+		}
+
+		return isTargetTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.NotConstraintRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected NotConstraintRuleItemProvider notConstraintRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.NotConstraintRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createNotConstraintRuleAdapter() {
+		if (notConstraintRuleItemProvider == null) {
+			notConstraintRuleItemProvider = new NotConstraintRuleItemProvider(this);
+		}
+
+		return notConstraintRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.AndConstraintRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AndConstraintRuleItemProvider andConstraintRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.AndConstraintRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createAndConstraintRuleAdapter() {
+		if (andConstraintRuleItemProvider == null) {
+			andConstraintRuleItemProvider = new AndConstraintRuleItemProvider(this);
+		}
+
+		return andConstraintRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.TrueConstraintRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TrueConstraintRuleItemProvider trueConstraintRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.TrueConstraintRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createTrueConstraintRuleAdapter() {
+		if (trueConstraintRuleItemProvider == null) {
+			trueConstraintRuleItemProvider = new TrueConstraintRuleItemProvider(this);
+		}
+
+		return trueConstraintRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.FalseConstraintRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FalseConstraintRuleItemProvider falseConstraintRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.FalseConstraintRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createFalseConstraintRuleAdapter() {
+		if (falseConstraintRuleItemProvider == null) {
+			falseConstraintRuleItemProvider = new FalseConstraintRuleItemProvider(this);
+		}
+
+		return falseConstraintRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.OrConstraintRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OrConstraintRuleItemProvider orConstraintRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.OrConstraintRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createOrConstraintRuleAdapter() {
+		if (orConstraintRuleItemProvider == null) {
+			orConstraintRuleItemProvider = new OrConstraintRuleItemProvider(this);
+		}
+
+		return orConstraintRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.ImplicationConstraintRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ImplicationConstraintRuleItemProvider implicationConstraintRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.ImplicationConstraintRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createImplicationConstraintRuleAdapter() {
+		if (implicationConstraintRuleItemProvider == null) {
+			implicationConstraintRuleItemProvider = new ImplicationConstraintRuleItemProvider(this);
+		}
+
+		return implicationConstraintRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.IsSourceType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IsSourceTypeItemProvider isSourceTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.IsSourceType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createIsSourceTypeAdapter() {
+		if (isSourceTypeItemProvider == null) {
+			isSourceTypeItemProvider = new IsSourceTypeItemProvider(this);
+		}
+
+		return isSourceTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.LogicalConstraintRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LogicalConstraintRuleItemProvider logicalConstraintRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.LogicalConstraintRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createLogicalConstraintRuleAdapter() {
+		if (logicalConstraintRuleItemProvider == null) {
+			logicalConstraintRuleItemProvider = new LogicalConstraintRuleItemProvider(this);
+		}
+
+		return logicalConstraintRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.TrueFeatureRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TrueFeatureRuleItemProvider trueFeatureRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.TrueFeatureRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createTrueFeatureRuleAdapter() {
+		if (trueFeatureRuleItemProvider == null) {
+			trueFeatureRuleItemProvider = new TrueFeatureRuleItemProvider(this);
+		}
+
+		return trueFeatureRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.NotFeatureRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected NotFeatureRuleItemProvider notFeatureRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.NotFeatureRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createNotFeatureRuleAdapter() {
+		if (notFeatureRuleItemProvider == null) {
+			notFeatureRuleItemProvider = new NotFeatureRuleItemProvider(this);
+		}
+
+		return notFeatureRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.FalseFeatureRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FalseFeatureRuleItemProvider falseFeatureRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.FalseFeatureRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createFalseFeatureRuleAdapter() {
+		if (falseFeatureRuleItemProvider == null) {
+			falseFeatureRuleItemProvider = new FalseFeatureRuleItemProvider(this);
+		}
+
+		return falseFeatureRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.LogicalFeatureRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LogicalFeatureRuleItemProvider logicalFeatureRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.LogicalFeatureRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createLogicalFeatureRuleAdapter() {
+		if (logicalFeatureRuleItemProvider == null) {
+			logicalFeatureRuleItemProvider = new LogicalFeatureRuleItemProvider(this);
+		}
+
+		return logicalFeatureRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.ImplicationFeatureRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ImplicationFeatureRuleItemProvider implicationFeatureRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.ImplicationFeatureRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createImplicationFeatureRuleAdapter() {
+		if (implicationFeatureRuleItemProvider == null) {
+			implicationFeatureRuleItemProvider = new ImplicationFeatureRuleItemProvider(this);
+		}
+
+		return implicationFeatureRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.OrFeatureRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OrFeatureRuleItemProvider orFeatureRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.OrFeatureRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createOrFeatureRuleAdapter() {
+		if (orFeatureRuleItemProvider == null) {
+			orFeatureRuleItemProvider = new OrFeatureRuleItemProvider(this);
+		}
+
+		return orFeatureRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.AndFeatureRule} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AndFeatureRuleItemProvider andFeatureRuleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.AndFeatureRule}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createAndFeatureRuleAdapter() {
+		if (andFeatureRuleItemProvider == null) {
+			andFeatureRuleItemProvider = new AndFeatureRuleItemProvider(this);
+		}
+
+		return andFeatureRuleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.SourceEqualsTarget} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SourceEqualsTargetItemProvider sourceEqualsTargetItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.SourceEqualsTarget}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createSourceEqualsTargetAdapter() {
+		if (sourceEqualsTargetItemProvider == null) {
+			sourceEqualsTargetItemProvider = new SourceEqualsTargetItemProvider(this);
+		}
+
+		return sourceEqualsTargetItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.SourceEqualsTargetType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SourceEqualsTargetTypeItemProvider sourceEqualsTargetTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.SourceEqualsTargetType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createSourceEqualsTargetTypeAdapter() {
+		if (sourceEqualsTargetTypeItemProvider == null) {
+			sourceEqualsTargetTypeItemProvider = new SourceEqualsTargetTypeItemProvider(this);
+		}
+
+		return sourceEqualsTargetTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link editpolicymodel.InType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected InTypeItemProvider inTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link editpolicymodel.InType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createInTypeAdapter() {
+		if (inTypeItemProvider == null) {
+			inTypeItemProvider = new InTypeItemProvider(this);
+		}
+
+		return inTypeItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void dispose() {
+		if (modelItemProvider != null) modelItemProvider.dispose();
+		if (policyItemProvider != null) policyItemProvider.dispose();
+		if (containsCompartmentItemProvider != null) containsCompartmentItemProvider.dispose();
+		if (isTargetItemProvider != null) isTargetItemProvider.dispose();
+		if (isParentItemProvider != null) isParentItemProvider.dispose();
+		if (isFeatureItemProvider != null) isFeatureItemProvider.dispose();
+		if (isTargetTypeItemProvider != null) isTargetTypeItemProvider.dispose();
+		if (notConstraintRuleItemProvider != null) notConstraintRuleItemProvider.dispose();
+		if (andConstraintRuleItemProvider != null) andConstraintRuleItemProvider.dispose();
+		if (trueConstraintRuleItemProvider != null) trueConstraintRuleItemProvider.dispose();
+		if (falseConstraintRuleItemProvider != null) falseConstraintRuleItemProvider.dispose();
+		if (orConstraintRuleItemProvider != null) orConstraintRuleItemProvider.dispose();
+		if (implicationConstraintRuleItemProvider != null) implicationConstraintRuleItemProvider.dispose();
+		if (isSourceTypeItemProvider != null) isSourceTypeItemProvider.dispose();
+		if (logicalConstraintRuleItemProvider != null) logicalConstraintRuleItemProvider.dispose();
+		if (trueFeatureRuleItemProvider != null) trueFeatureRuleItemProvider.dispose();
+		if (notFeatureRuleItemProvider != null) notFeatureRuleItemProvider.dispose();
+		if (falseFeatureRuleItemProvider != null) falseFeatureRuleItemProvider.dispose();
+		if (logicalFeatureRuleItemProvider != null) logicalFeatureRuleItemProvider.dispose();
+		if (implicationFeatureRuleItemProvider != null) implicationFeatureRuleItemProvider.dispose();
+		if (orFeatureRuleItemProvider != null) orFeatureRuleItemProvider.dispose();
+		if (andFeatureRuleItemProvider != null) andFeatureRuleItemProvider.dispose();
+		if (sourceEqualsTargetItemProvider != null) sourceEqualsTargetItemProvider.dispose();
+		if (sourceEqualsTargetTypeItemProvider != null) sourceEqualsTargetTypeItemProvider.dispose();
+		if (inTypeItemProvider != null) inTypeItemProvider.dispose();
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.editor/.classpath b/org.framed.iorm.editpolicymodel.editor/.classpath
new file mode 100644
index 00000000..22f30643
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.editor/.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.editor/.gitignore b/org.framed.iorm.editpolicymodel.editor/.gitignore
new file mode 100644
index 00000000..ae3c1726
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.editor/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/org.framed.iorm.editpolicymodel.editor/.project b/org.framed.iorm.editpolicymodel.editor/.project
new file mode 100644
index 00000000..fe67e1e5
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.editor/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.framed.iorm.editpolicymodel.editor</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<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.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.framed.iorm.editpolicymodel.editor/META-INF/MANIFEST.MF b/org.framed.iorm.editpolicymodel.editor/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..165cac85
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.framed.iorm.editpolicymodel.editor;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: editpolicymodel.presentation.editpolicymodelEditorPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: editpolicymodel.presentation
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources;visibility:=reexport,
+ org.framed.iorm.editpolicymodel.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.ui.ide;visibility:=reexport,
+ org.framed.iorm.model.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/org.framed.iorm.editpolicymodel.editor/build.properties b/org.framed.iorm.editpolicymodel.editor/build.properties
new file mode 100644
index 00000000..5fb07711
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.editor/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+               icons/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin
diff --git a/org.framed.iorm.editpolicymodel.editor/icons/full/obj16/editpolicymodelModelFile.gif b/org.framed.iorm.editpolicymodel.editor/icons/full/obj16/editpolicymodelModelFile.gif
new file mode 100644
index 0000000000000000000000000000000000000000..feaa4ac36d0cd135b8efe429e09806171c334d81
GIT binary patch
literal 346
zcmZ?wbhEHb6krfwxXQrL(9jScAHRS9{{Q#qA2@KJp`n4{KLZ29{{sgO{QnPT{r~^<
z_wS=`-ps#$zw*+hEfZ|FOt9V1Z?~q$VR^UHq7LV|t*+CX+?vaM>q`BqivzA~%DlC=
z=D~^npTGWm|M~mtkKdoZ{{Haw_uEguUVZp^|K*Q6&%ZNJ4=Da*VPs%nW6%K^3Gx#I
zTe(AXfrpNe;t7>Y8Z8y`F7UQ!{)|{Jv$BxsRh9Kk&xt}>?Q+iqmPQEf<m7LP4$+Kq
z`{DkuQ9iOuTt$VKwS~7y+?A=Im8GSS$(6r~mt|T%e^<}cewK+Y5~`|gt&1dFCDm3{
a@vl;obd}m9Rlu@Y%EyU`f4++&gEasR)_e{C

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.editor/icons/full/wizban/Neweditpolicymodel.gif b/org.framed.iorm.editpolicymodel.editor/icons/full/wizban/Neweditpolicymodel.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a5c66c3970d4fe8f59e9fedaf35e65c79b79fa54
GIT binary patch
literal 2462
zcmZ?wbhEHb^k#5k_|5<V|NsAg_wmQOkKcD3zIOWZqtllkK6&}+?Z+S1QQfxDJ+{%^
zUw{8T`sU62`}Zp^U2;yG;F>(iC2@jV@+7z9i5{tweKV)|XV37@o*tMxGbndvNdBzw
z!a3oEv!hDpMU~8rEng5{xhMgI7A99OPODp**|<EXd1Zdv>Vmda#hq)*de&F<Z>*iP
zxpv~F=IPs8rf=_>ySsbto{5VOOah_(Q<oi@x$?-&m51l7IW~X&i3K2Ze95L$t9G1Q
zxBJ5O!`F5kxqj%(of8)yT)zF{%I)XZ?!LTn|JA)G@9sQ$^X&EKCoezR#Prz3_S(jD
z+sF0U$MrfU^t&WYa7~`*o;ukrWujO56raqgfq657@@9q<%nC1>6J9hsvSeN)$no<N
zsusmpE=;Iem|U|swQgxn%gXGQ6~$d^OMBK=_HS&My0v-6_Ldpj+h_0WnzyHG-tOK7
zd;1pd>sz>Y;*tZCmK>P4c>lyD`zI~gKXv)RnX8U0*l=S0`r`{W9ACWo)UvH-R_-{r
zcK3yKdoFC;cWKMPE4z>1*mv^Q!83P`Uwm--%A>Q_o?N*3?A-Mymv2A6diUksC+}`Q
zdh_7f`+HB`zWMNN#;U_})*hX|;l%t6$Cqt8vv$vg?MJTdJ9X>G`FkfWJvepc;pICo
zF5G;2?)u|v_g+4E_36=z53k;Td-3+m@k<ZRUVnV~&hxAHUfy`{>i)C$cb~ky{pj`U
z58qzB|N7$X=l7p~y!-V1*_+Q#UVVJ=?#tUx-@mMj|8jfN=ZD9xA6dF}^W5o+r?<_X
zRx@={>BI@ijji)GZd$Q@%br6!_Z-@J?D)1lJJ&3lJ!$XZ<M$ujJ9F&(xf2&Jp1F4O
z#$!-Y8+=#?<RnmDVBq-Az|0}zv0=f%W)5Mkm<$6krXU_=uQ?VM6<2l(XlC8fFr3!V
zE}>r}<2flor(MB0P3PpM$DUKP47bf$`5}d&Uo&~#l9Qj)bmnsuy?S%=^0Si*oRWp+
zW`4;C2=a8+)4gfJ5VRzqv}?|;kIS#m4qxatwaZ}o&CMB?SNZ;){4jid_~ER(RRZBg
zX(vCux_f$i{<`R01-doAjouwzUM&15>)Q6hB`N*xs*AU>1gXSsXHc%GHg0I>Z{t^Y
zTj4!5^YYrD?Oh_Ald?S)XPlg;J3BJ%EU$I-Umhv#M;A*cuMAo{t28@mZESy(pS0M6
zGrN3>>V8^&iI}-0R9$=DtgmmLZcIP?U#efbAnoAX(%&|bw(D-}wB~-LlxH*ZsmGS&
zc5(jK`9Gs~KQX#nCHM8&y;9Dz+wUf?*(r9iZi|D*>52_!l(-URFs4n((-*CHP+B5s
zGQUv8&SEz6SzixDoyB*`qDxvzZ_G>laMXQ*p6aG!b8>hr4lwBa3Dod3(n~Az(UU2A
z@v!}as)T1bznf(=Gr!4#M_rG3BUMV`G*8ZJOjKRkBE)X7a&fKosb>e6HIim7RguiI
zY?ywf@#j6)6uE)}TGi7$r8)(don)BJ|7XV{m5xJAGxc`y2>USam6^;lH@?lyYhLxb
zMK70euG=P)Bd|_$RaeI}D+axtIup+r@o*^jESaMB|EI{ZnR%;T&f}Cc=2Dsb(){)U
zK9=Yg+LI0ht<pKh*YGBmM`H8oB~!M!pJLqdDf8{tI=Lm>#hI&4rZF$tr`f6V<Xq(>
zopQy`IcpRqYIbQ<9m{^bhtrl@E_X|Sq|T0PGlkPTo}7C0bi$c6uTys?_i?VDckSA)
z%x!Fv%ClPzSY0@9^pKH&!A`GxEZ#=P9HJ%Wd7WAGVfV*xmio&%-Zts?=S0;Q9?Q-;
zQy6T2(#Y$Ca&pM0rRvMyY*;HG{={gX==n1T&Pa0KQEZ>|;m_@*OU@*1((qbvX2Yo)
z>w@(6{W^7rfjPza?)uBGUxxV@NB)f2dX+PK@7Gf`b!Qi^NSeHM`^_Aq{~sn*ZCtbV
zvQEDCoUMDDZ~rRo=RdM$%f0H$cXssW3Wo3)2Mfn-I_ao<uk<dv?%uRBmCk%SZ!V5L
z)9^IsxQoS|$kS&(oZ2C!qVsa;>^iGgldUgA8ZOw<`}}tJ@pqMvT=`Y1-tT;U?)Uc9
z{49SSw3geM-{s_W=6>84zvlO)N#A)Z7!D`QoBV8p^n9bc3*?vly?eKRul4>%;eHnk
z4(^WoyPJFUoR|OOoKO5-CbIv;#r2FYXPz_QX_#Rc=$-Mpc!sixsiSXde)4~>S>Jzb
z+qGWhgZfiuDVFQox!h-LXb~}4$fZ6*AZ`j*pk&YdCsrpGez}t(aXLamg>S>*P=&-+
z2cAdD{~K-`67S;<lv*OsYpWr!n8#Uionw>8at~KcD<#hUiX(#Cb{uuf_}Fq%x`R9Z
z$NIw7w++%+i~O%x@T9mXaTfGE7Mx_@u2*!Cqx{JuPTh_PaR~*<8wEsn+_*ALZ>3@5
zAqO^@*&9zNn;f1vA;-<Q$Ka%=)Wb>c0g9*j9=Ypl_LsCqEtayqG0ny6)07oHs#@I%
zCw;;`gmJ!fJ^oLOA#mf#Hff_L{yr;D#m$>Ewg1lI!$~u}4+x&hUo68RTz--vevy#K
z*@k5*y&pJKVqS;6HSW-Vu|zIVb939{?p6bd13hU5i|0J|d2V^O@|4df&W0}M6J~{$
zURtIKy`EmnR$rU>->-Pl<~f&r4q5MX+tQL#JT3lZ;1`~m4qsUmB%XvUcbTc^+sM_M
zx7GTDe$I`6#vgqPTc4cqZBpz>_1QANUuMOgbw4+>{BfGTLuP^p<MUOiH@+-;U85qj
zB6RJ|wP%)2RpzlxjXH5|LWrbCXq)Hh%9gomJWV&|giEk8@wA&=Q48bMde9`;vt(Uy
z-vp0{dB4hSt3*}ACPg@fwn|+}>Dn}d$#Rva>dY3|Am26I*%2YXLnbgTF_qlQ(3ZgN
zedCbSw+(HgY!2azTY?yP*Qcmv*vyvbX5?WIn|ktevclr&XP>EZRweovxy)ucHsjlr
zrM)fl?o6}0xpB)<8BMKoH<XpVn_FEt#T#Y+>z&%y*I+z7_LI;Im&KFL9$i~sH8smA
z?N%7mQ7-kwF3!Bt*SC&*{J3VP<&*nKDlxZro!xQm^U5Og;u9ZLU+yfM6?K)X-E^m_
zcti8gWjTjEmp|l6-L+Qrb#~&*X(_Kh?R>Lv;=hvW9h?45*>nHOJE`XA_}43rWc}=Y
L@SIOTfWaC7$nwdX

literal 0
HcmV?d00001

diff --git a/org.framed.iorm.editpolicymodel.editor/plugin.properties b/org.framed.iorm.editpolicymodel.editor/plugin.properties
new file mode 100644
index 00000000..0dfcf416
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.editor/plugin.properties
@@ -0,0 +1,53 @@
+#
+
+pluginName = editpolicymodel Editor
+providerName = www.example.org
+
+_UI_editpolicymodelEditor_menu = &editpolicymodel Editor
+
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+
+_UI_SelectionPage_label = Selection
+_UI_ParentPage_label = Parent
+_UI_ListPage_label = List
+_UI_TreePage_label = Tree
+_UI_TablePage_label = Table
+_UI_TreeWithColumnsPage_label = Tree with Columns
+_UI_ObjectColumn_label = Object
+_UI_SelfColumn_label = Self
+
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+
+_UI_OpenEditorError_label = Open Editor
+
+_UI_Wizard_category = Example EMF Model Creation Wizards
+
+_UI_CreateModelError_message = Problems encountered in file "{0}"
+
+_UI_editpolicymodelModelWizard_label = editpolicymodel Model
+_UI_editpolicymodelModelWizard_description = Create a new editpolicymodel model
+
+_UI_editpolicymodelEditor_label = editpolicymodel Model Editor
+
+_UI_editpolicymodelEditorFilenameDefaultBase = My
+_UI_editpolicymodelEditorFilenameExtensions = editpolicymodel
+
+_UI_Wizard_label = New
+
+_WARN_FilenameExtension = The file name must end in ''.{0}''
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Select a model object to create
+
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor.  Do you wish to discard this editor's changes?
+
diff --git a/org.framed.iorm.editpolicymodel.editor/plugin.xml b/org.framed.iorm.editpolicymodel.editor/plugin.xml
new file mode 100644
index 00000000..e3bf97b8
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.editor/plugin.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.ui.newWizards">
+      <!-- @generated editpolicymodel -->
+      <category
+            id="org.eclipse.emf.ecore.Wizard.category.ID"
+            name="%_UI_Wizard_category"/>
+      <wizard
+            id="editpolicymodel.presentation.editpolicymodelModelWizardID"
+            name="%_UI_editpolicymodelModelWizard_label"
+            class="editpolicymodel.presentation.editpolicymodelModelWizard"
+            category="org.eclipse.emf.ecore.Wizard.category.ID"
+            icon="icons/full/obj16/editpolicymodelModelFile.gif">
+         <description>%_UI_editpolicymodelModelWizard_description</description>
+         <selection class="org.eclipse.core.resources.IResource"/>
+      </wizard>
+   </extension>
+
+   <extension point="org.eclipse.ui.editors">
+      <!-- @generated editpolicymodel -->
+      <editor
+            id="editpolicymodel.presentation.editpolicymodelEditorID"
+            name="%_UI_editpolicymodelEditor_label"
+            icon="icons/full/obj16/editpolicymodelModelFile.gif"
+            extensions="editpolicymodel"
+            class="editpolicymodel.presentation.editpolicymodelEditor"
+            contributorClass="editpolicymodel.presentation.editpolicymodelActionBarContributor">
+      </editor>
+   </extension>
+
+</plugin>
diff --git a/org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelActionBarContributor.java b/org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelActionBarContributor.java
new file mode 100644
index 00000000..174018f5
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelActionBarContributor.java
@@ -0,0 +1,423 @@
+/**
+ */
+package editpolicymodel.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the editpolicymodel model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class editpolicymodelActionBarContributor
+	extends EditingDomainActionBarContributor
+	implements ISelectionChangedListener {
+	/**
+	 * This keeps track of the active editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IEditorPart activeEditorPart;
+
+	/**
+	 * This keeps track of the current selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionProvider selectionProvider;
+
+	/**
+	 * This action opens the Properties view.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction showPropertiesViewAction =
+		new Action(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+			@Override
+			public void run() {
+				try {
+					getPage().showView("org.eclipse.ui.views.PropertySheet");
+				}
+				catch (PartInitException exception) {
+					editpolicymodelEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * This action refreshes the viewer of the current editor if the editor
+	 * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IAction refreshViewerAction =
+		new Action(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+			@Override
+			public boolean isEnabled() {
+				return activeEditorPart instanceof IViewerProvider;
+			}
+
+			@Override
+			public void run() {
+				if (activeEditorPart instanceof IViewerProvider) {
+					Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+					if (viewer != null) {
+						viewer.refresh();
+					}
+				}
+			}
+		};
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createChildActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createChildMenuManager;
+
+	/**
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> createSiblingActions;
+
+	/**
+	 * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IMenuManager createSiblingMenuManager;
+
+	/**
+	 * This creates an instance of the contributor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public editpolicymodelActionBarContributor() {
+		super(ADDITIONS_LAST_STYLE);
+		loadResourceAction = new LoadResourceAction();
+		validateAction = new ValidateAction();
+		controlAction = new ControlAction();
+	}
+
+	/**
+	 * This adds Separators for editor additions to the tool bar.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToToolBar(IToolBarManager toolBarManager) {
+		toolBarManager.add(new Separator("editpolicymodel-settings"));
+		toolBarManager.add(new Separator("editpolicymodel-additions"));
+	}
+
+	/**
+	 * This adds to the menu bar a menu and some separators for editor additions,
+	 * as well as the sub-menus for object creation items.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void contributeToMenu(IMenuManager menuManager) {
+		super.contributeToMenu(menuManager);
+
+		IMenuManager submenuManager = new MenuManager(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_editpolicymodelEditor_menu"), "editpolicymodelMenuID");
+		menuManager.insertAfter("additions", submenuManager);
+		submenuManager.add(new Separator("settings"));
+		submenuManager.add(new Separator("actions"));
+		submenuManager.add(new Separator("additions"));
+		submenuManager.add(new Separator("additions-end"));
+
+		// Prepare for CreateChild item addition or removal.
+		//
+		createChildMenuManager = new MenuManager(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		submenuManager.insertBefore("additions", createChildMenuManager);
+
+		// Prepare for CreateSibling item addition or removal.
+		//
+		createSiblingMenuManager = new MenuManager(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+		// Force an update because Eclipse hides empty menus now.
+		//
+		submenuManager.addMenuListener
+			(new IMenuListener() {
+				 public void menuAboutToShow(IMenuManager menuManager) {
+					 menuManager.updateAll(true);
+				 }
+			 });
+
+		addGlobalActions(submenuManager);
+	}
+
+	/**
+	 * When the active editor changes, this remembers the change and registers with it as a selection provider.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setActiveEditor(IEditorPart part) {
+		super.setActiveEditor(part);
+		activeEditorPart = part;
+
+		// Switch to the new selection provider.
+		//
+		if (selectionProvider != null) {
+			selectionProvider.removeSelectionChangedListener(this);
+		}
+		if (part == null) {
+			selectionProvider = null;
+		}
+		else {
+			selectionProvider = part.getSite().getSelectionProvider();
+			selectionProvider.addSelectionChangedListener(this);
+
+			// Fake a selection changed event to update the menus.
+			//
+			if (selectionProvider.getSelection() != null) {
+				selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+			}
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+	 * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+	 * that can be added to the selected object and updating the menus accordingly.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void selectionChanged(SelectionChangedEvent event) {
+		// Remove any menu items for old selection.
+		//
+		if (createChildMenuManager != null) {
+			depopulateManager(createChildMenuManager, createChildActions);
+		}
+		if (createSiblingMenuManager != null) {
+			depopulateManager(createSiblingMenuManager, createSiblingActions);
+		}
+
+		// Query the new selection for appropriate new child/sibling descriptors
+		//
+		Collection<?> newChildDescriptors = null;
+		Collection<?> newSiblingDescriptors = null;
+
+		ISelection selection = event.getSelection();
+		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+			Object object = ((IStructuredSelection)selection).getFirstElement();
+
+			EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+			newChildDescriptors = domain.getNewChildDescriptors(object, null);
+			newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+		}
+
+		// Generate actions for selection; populate and redraw the menus.
+		//
+		createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+		createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+		if (createChildMenuManager != null) {
+			populateManager(createChildMenuManager, createChildActions, null);
+			createChildMenuManager.update(true);
+		}
+		if (createSiblingMenuManager != null) {
+			populateManager(createSiblingMenuManager, createSiblingActions, null);
+			createSiblingMenuManager.update(true);
+		}
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
+
+	/**
+	 * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+	 * by inserting them before the specified contribution item <code>contributionID</code>.
+	 * If <code>contributionID</code> is <code>null</code>, they are simply added.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+		if (actions != null) {
+			for (IAction action : actions) {
+				if (contributionID != null) {
+					manager.insertBefore(contributionID, action);
+				}
+				else {
+					manager.add(action);
+				}
+			}
+		}
+	}
+		
+	/**
+	 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+		if (actions != null) {
+			IContributionItem[] items = manager.getItems();
+			for (int i = 0; i < items.length; i++) {
+				// Look into SubContributionItems
+				//
+				IContributionItem contributionItem = items[i];
+				while (contributionItem instanceof SubContributionItem) {
+					contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+				}
+
+				// Delete the ActionContributionItems with matching action.
+				//
+				if (contributionItem instanceof ActionContributionItem) {
+					IAction action = ((ActionContributionItem)contributionItem).getAction();
+					if (actions.contains(action)) {
+						manager.remove(contributionItem);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This populates the pop-up menu before it appears.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void menuAboutToShow(IMenuManager menuManager) {
+		super.menuAboutToShow(menuManager);
+		MenuManager submenuManager = null;
+
+		submenuManager = new MenuManager(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+		populateManager(submenuManager, createChildActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+
+		submenuManager = new MenuManager(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+		populateManager(submenuManager, createSiblingActions, null);
+		menuManager.insertBefore("edit", submenuManager);
+	}
+
+	/**
+	 * This inserts global actions before the "additions-end" separator.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void addGlobalActions(IMenuManager menuManager) {
+		menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+		menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		
+		menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+		super.addGlobalActions(menuManager);
+	}
+
+	/**
+	 * This ensures that a delete action will clean up all references to deleted objects.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean removeAllReferencesOnDelete() {
+		return true;
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelEditor.java b/org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelEditor.java
new file mode 100644
index 00000000..4d78297f
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelEditor.java
@@ -0,0 +1,1826 @@
+/**
+ */
+package editpolicymodel.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+
+import org.eclipse.jface.util.LocalSelectionTransfer;
+
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.custom.CTabFolder;
+
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+
+import org.eclipse.swt.graphics.Point;
+
+import org.eclipse.swt.layout.FillLayout;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.ui.dialogs.SaveAsDialog;
+
+import org.eclipse.ui.ide.IGotoMarker;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import editpolicymodel.provider.editpolicymodelItemProviderAdapterFactory;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.framed.iorm.featuremodel.provider.FeaturemodelItemProviderAdapterFactory;
+
+import org.framed.iorm.model.provider.OrmItemProviderAdapterFactory;
+
+
+/**
+ * This is an example of a editpolicymodel model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class editpolicymodelEditor
+	extends MultiPageEditorPart
+	implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+	/**
+	 * This keeps track of the editing domain that is used to track all changes to the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AdapterFactoryEditingDomain editingDomain;
+
+	/**
+	 * This is the one adapter factory used for providing views of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory adapterFactory;
+
+	/**
+	 * This is the content outline page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IContentOutlinePage contentOutlinePage;
+
+	/**
+	 * This is a kludge...
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStatusLineManager contentOutlineStatusLineManager;
+
+	/**
+	 * This is the content outline page's viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer contentOutlineViewer;
+
+	/**
+	 * This is the property sheet page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+	/**
+	 * This is the viewer that shadows the selection in the content outline.
+	 * The parent relation must be correctly defined for this to work.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer selectionViewer;
+
+	/**
+	 * This inverts the roll of parent and child in the content provider and show parents as a tree.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer parentViewer;
+
+	/**
+	 * This shows how a tree view works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewer;
+
+	/**
+	 * This shows how a list view works.
+	 * A list viewer doesn't support icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ListViewer listViewer;
+
+	/**
+	 * This shows how a table view works.
+	 * A table can be used as a list with icons.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableViewer tableViewer;
+
+	/**
+	 * This shows how a tree view with columns works.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TreeViewer treeViewerWithColumns;
+
+	/**
+	 * This keeps track of the active viewer pane, in the book.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ViewerPane currentViewerPane;
+
+	/**
+	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Viewer currentViewer;
+
+	/**
+	 * This listens to which ever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelectionChangedListener selectionChangedListener;
+
+	/**
+	 * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+	/**
+	 * This keeps track of the selection of the editor as a whole.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+	/**
+	 * The MarkerHelper is responsible for creating workspace resource markers presented
+	 * in Eclipse's Problems View.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+	/**
+	 * This listens for when the outline becomes active
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPartListener partListener =
+		new IPartListener() {
+			public void partActivated(IWorkbenchPart p) {
+				if (p instanceof ContentOutline) {
+					if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+						getActionBarContributor().setActiveEditor(editpolicymodelEditor.this);
+
+						setCurrentViewer(contentOutlineViewer);
+					}
+				}
+				else if (p instanceof PropertySheet) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+						getActionBarContributor().setActiveEditor(editpolicymodelEditor.this);
+						handleActivate();
+					}
+				}
+				else if (p == editpolicymodelEditor.this) {
+					handleActivate();
+				}
+			}
+			public void partBroughtToTop(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partClosed(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partDeactivated(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partOpened(IWorkbenchPart p) {
+				// Ignore.
+			}
+		};
+
+	/**
+	 * Resources that have been removed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been changed since last activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+	/**
+	 * Resources that have been saved.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+	/**
+	 * Map to store the diagnostic associated with a resource.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+	/**
+	 * Controls whether the problem indication should be updated.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean updateProblemIndication = true;
+
+	/**
+	 * Adapter used to update the problem indication when resources are demanded loaded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EContentAdapter problemIndicationAdapter =
+		new EContentAdapter() {
+			protected boolean dispatching;
+
+			@Override
+			public void notifyChanged(Notification notification) {
+				if (notification.getNotifier() instanceof Resource) {
+					switch (notification.getFeatureID(Resource.class)) {
+						case Resource.RESOURCE__IS_LOADED:
+						case Resource.RESOURCE__ERRORS:
+						case Resource.RESOURCE__WARNINGS: {
+							Resource resource = (Resource)notification.getNotifier();
+							Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+							if (diagnostic.getSeverity() != Diagnostic.OK) {
+								resourceToDiagnosticMap.put(resource, diagnostic);
+							}
+							else {
+								resourceToDiagnosticMap.remove(resource);
+							}
+							dispatchUpdateProblemIndication();
+							break;
+						}
+					}
+				}
+				else {
+					super.notifyChanged(notification);
+				}
+			}
+
+			protected void dispatchUpdateProblemIndication() {
+				if (updateProblemIndication && !dispatching) {
+					dispatching = true;
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 dispatching = false;
+								 updateProblemIndication();
+							 }
+						 });
+				}
+			}
+
+			@Override
+			protected void setTarget(Resource target) {
+				basicSetTarget(target);
+			}
+
+			@Override
+			protected void unsetTarget(Resource target) {
+				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				dispatchUpdateProblemIndication();
+			}
+		};
+
+	/**
+	 * This listens for workspace changes.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IResourceChangeListener resourceChangeListener =
+		new IResourceChangeListener() {
+			public void resourceChanged(IResourceChangeEvent event) {
+				IResourceDelta delta = event.getDelta();
+				try {
+					class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+						protected ResourceSet resourceSet = editingDomain.getResourceSet();
+						protected Collection<Resource> changedResources = new ArrayList<Resource>();
+						protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+						public boolean visit(IResourceDelta delta) {
+							if (delta.getResource().getType() == IResource.FILE) {
+								if (delta.getKind() == IResourceDelta.REMOVED ||
+								    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+									Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+									if (resource != null) {
+										if (delta.getKind() == IResourceDelta.REMOVED) {
+											removedResources.add(resource);
+										}
+										else if (!savedResources.remove(resource)) {
+											changedResources.add(resource);
+										}
+									}
+								}
+								return false;
+							}
+
+							return true;
+						}
+
+						public Collection<Resource> getChangedResources() {
+							return changedResources;
+						}
+
+						public Collection<Resource> getRemovedResources() {
+							return removedResources;
+						}
+					}
+
+					final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+					delta.accept(visitor);
+
+					if (!visitor.getRemovedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 removedResources.addAll(visitor.getRemovedResources());
+									 if (!isDirty()) {
+										 getSite().getPage().closeEditor(editpolicymodelEditor.this, false);
+									 }
+								 }
+							 });
+					}
+
+					if (!visitor.getChangedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 changedResources.addAll(visitor.getChangedResources());
+									 if (getSite().getPage().getActiveEditor() == editpolicymodelEditor.this) {
+										 handleActivate();
+									 }
+								 }
+							 });
+					}
+				}
+				catch (CoreException exception) {
+					editpolicymodelEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
+
+	/**
+	 * Handles activation of the editor or it's associated views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleActivate() {
+		// Recompute the read only state.
+		//
+		if (editingDomain.getResourceToReadOnlyMap() != null) {
+		  editingDomain.getResourceToReadOnlyMap().clear();
+
+		  // Refresh any actions that may become enabled or disabled.
+		  //
+		  setSelection(getSelection());
+		}
+
+		if (!removedResources.isEmpty()) {
+			if (handleDirtyConflict()) {
+				getSite().getPage().closeEditor(editpolicymodelEditor.this, false);
+			}
+			else {
+				removedResources.clear();
+				changedResources.clear();
+				savedResources.clear();
+			}
+		}
+		else if (!changedResources.isEmpty()) {
+			changedResources.removeAll(savedResources);
+			handleChangedResources();
+			changedResources.clear();
+			savedResources.clear();
+		}
+	}
+
+	/**
+	 * Handles what to do with changed resources on activation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void handleChangedResources() {
+		if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+			if (isDirty()) {
+				changedResources.addAll(editingDomain.getResourceSet().getResources());
+			}
+			editingDomain.getCommandStack().flush();
+
+			updateProblemIndication = false;
+			for (Resource resource : changedResources) {
+				if (resource.isLoaded()) {
+					resource.unload();
+					try {
+						resource.load(Collections.EMPTY_MAP);
+					}
+					catch (IOException exception) {
+						if (!resourceToDiagnosticMap.containsKey(resource)) {
+							resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+						}
+					}
+				}
+			}
+
+			if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+				setSelection(StructuredSelection.EMPTY);
+			}
+
+			updateProblemIndication = true;
+			updateProblemIndication();
+		}
+	}
+
+	/**
+	 * Updates the problems indication with the information described in the specified diagnostic.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void updateProblemIndication() {
+		if (updateProblemIndication) {
+			BasicDiagnostic diagnostic =
+				new BasicDiagnostic
+					(Diagnostic.OK,
+					 "org.framed.iorm.editpolicymodel.editor",
+					 0,
+					 null,
+					 new Object [] { editingDomain.getResourceSet() });
+			for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+				if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+					diagnostic.add(childDiagnostic);
+				}
+			}
+
+			int lastEditorPage = getPageCount() - 1;
+			if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+				((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					setActivePage(lastEditorPage);
+				}
+			}
+			else if (diagnostic.getSeverity() != Diagnostic.OK) {
+				ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+				problemEditorPart.setDiagnostic(diagnostic);
+				problemEditorPart.setMarkerHelper(markerHelper);
+				try {
+					addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+					setPageText(lastEditorPage, problemEditorPart.getPartName());
+					setActivePage(lastEditorPage);
+					showTabs();
+				}
+				catch (PartInitException exception) {
+					editpolicymodelEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+
+			if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+				try {
+					markerHelper.updateMarkers(diagnostic);
+				}
+				catch (CoreException exception) {
+					editpolicymodelEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		}
+	}
+
+	/**
+	 * Shows a dialog that asks if conflicting changes should be discarded.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean handleDirtyConflict() {
+		return
+			MessageDialog.openQuestion
+				(getSite().getShell(),
+				 getString("_UI_FileConflict_label"),
+				 getString("_WARN_FileConflict"));
+	}
+
+	/**
+	 * This creates a model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public editpolicymodelEditor() {
+		super();
+		initializeEditingDomain();
+	}
+
+	/**
+	 * This sets up the editing domain for the model editor.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void initializeEditingDomain() {
+		// Create an adapter factory that yields item providers.
+		//
+		adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+		adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new editpolicymodelItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new OrmItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new FeaturemodelItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+		// Create the command stack that will notify this editor as commands are executed.
+		//
+		BasicCommandStack commandStack = new BasicCommandStack();
+
+		// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+		//
+		commandStack.addCommandStackListener
+			(new CommandStackListener() {
+				 public void commandStackChanged(final EventObject event) {
+					 getContainer().getDisplay().asyncExec
+						 (new Runnable() {
+							  public void run() {
+								  firePropertyChange(IEditorPart.PROP_DIRTY);
+
+								  // Try to select the affected objects.
+								  //
+								  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+								  if (mostRecentCommand != null) {
+									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+								  }
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
+								  }
+							  }
+						  });
+				 }
+			 });
+
+		// Create the editing domain with a special command stack.
+		//
+		editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+	}
+
+	/**
+	 * This is here for the listener to be able to call it.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+			@Override
+	protected void firePropertyChange(int action) {
+		super.firePropertyChange(action);
+	}
+
+	/**
+	 * This sets the selection into whichever viewer is active.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelectionToViewer(Collection<?> collection) {
+		final Collection<?> theSelection = collection;
+		// Make sure it's okay.
+		//
+		if (theSelection != null && !theSelection.isEmpty()) {
+			Runnable runnable =
+				new Runnable() {
+					public void run() {
+						// Try to select the items in the current content viewer of the editor.
+						//
+						if (currentViewer != null) {
+							currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+						}
+					}
+				};
+			getSite().getShell().getDisplay().asyncExec(runnable);
+		}
+	}
+
+	/**
+	 * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+	 * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+	 * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomain getEditingDomain() {
+		return editingDomain;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+			super(adapterFactory);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getElements(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object [] getChildren(Object object) {
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public boolean hasChildren(Object object) {
+			Object parent = super.getParent(object);
+			return parent != null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public Object getParent(Object object) {
+			return null;
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewerPane(ViewerPane viewerPane) {
+		if (currentViewerPane != viewerPane) {
+			if (currentViewerPane != null) {
+				currentViewerPane.showFocus(false);
+			}
+			currentViewerPane = viewerPane;
+		}
+		setCurrentViewer(currentViewerPane.getViewer());
+	}
+
+	/**
+	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+	 * is the current one.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCurrentViewer(Viewer viewer) {
+		// If it is changing...
+		//
+		if (currentViewer != viewer) {
+			if (selectionChangedListener == null) {
+				// Create the listener on demand.
+				//
+				selectionChangedListener =
+					new ISelectionChangedListener() {
+						// This just notifies those things that are affected by the section.
+						//
+						public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+							setSelection(selectionChangedEvent.getSelection());
+						}
+					};
+			}
+
+			// Stop listening to the old one.
+			//
+			if (currentViewer != null) {
+				currentViewer.removeSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Start listening to the new one.
+			//
+			if (viewer != null) {
+				viewer.addSelectionChangedListener(selectionChangedListener);
+			}
+
+			// Remember it.
+			//
+			currentViewer = viewer;
+
+			// Set the editors selection based on the current viewer's selection.
+			//
+			setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+		}
+	}
+
+	/**
+	 * This returns the viewer as required by the {@link IViewerProvider} interface.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Viewer getViewer() {
+		return currentViewer;
+	}
+
+	/**
+	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createContextMenuFor(StructuredViewer viewer) {
+		MenuManager contextMenu = new MenuManager("#PopUp");
+		contextMenu.add(new Separator("additions"));
+		contextMenu.setRemoveAllWhenShown(true);
+		contextMenu.addMenuListener(this);
+		Menu menu= contextMenu.createContextMenu(viewer.getControl());
+		viewer.getControl().setMenu(menu);
+		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+	}
+
+	/**
+	 * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createModel() {
+		URI resourceURI = EditUIUtil.getURI(getEditorInput(), editingDomain.getResourceSet().getURIConverter());
+		Exception exception = null;
+		Resource resource = null;
+		try {
+			// Load the resource through the editing domain.
+			//
+			resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+		}
+		catch (Exception e) {
+			exception = e;
+			resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+		}
+
+		Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+		if (diagnostic.getSeverity() != Diagnostic.OK) {
+			resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));
+		}
+		editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+	}
+
+	/**
+	 * Returns a diagnostic describing the errors and warnings listed in the resource
+	 * and the specified exception (if any).
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+		boolean hasErrors = !resource.getErrors().isEmpty();
+		if (hasErrors || !resource.getWarnings().isEmpty()) {
+			BasicDiagnostic basicDiagnostic =
+				new BasicDiagnostic
+					(hasErrors ? Diagnostic.ERROR : Diagnostic.WARNING,
+					 "org.framed.iorm.editpolicymodel.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object [] { exception == null ? (Object)resource : exception });
+			basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+			return basicDiagnostic;
+		}
+		else if (exception != null) {
+			return
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.framed.iorm.editpolicymodel.editor",
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()),
+					 new Object[] { exception });
+		}
+		else {
+			return Diagnostic.OK_INSTANCE;
+		}
+	}
+
+	/**
+	 * This is the method used by the framework to install your own controls.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void createPages() {
+		// Creates the model from the editor input
+		//
+		createModel();
+
+		// Only creates the other pages if there is something that can be edited
+		//
+		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+			// Create a page for the selection tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), editpolicymodelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				selectionViewer = (TreeViewer)viewerPane.getViewer();
+				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				selectionViewer.setUseHashlookup(true);
+
+				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+				selectionViewer.setInput(editingDomain.getResourceSet());
+				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+				viewerPane.setTitle(editingDomain.getResourceSet());
+
+				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(selectionViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+			}
+
+			// Create a page for the parent tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), editpolicymodelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				parentViewer = (TreeViewer)viewerPane.getViewer();
+				parentViewer.setAutoExpandLevel(30);
+				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(parentViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ParentPage_label"));
+			}
+
+			// This is the page for the list viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), editpolicymodelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new ListViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				listViewer = (ListViewer)viewerPane.getViewer();
+				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(listViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ListPage_label"));
+			}
+
+			// This is the page for the tree viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), editpolicymodelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				treeViewer = (TreeViewer)viewerPane.getViewer();
+				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+				createContextMenuFor(treeViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreePage_label"));
+			}
+
+			// This is the page for the table viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), editpolicymodelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TableViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				tableViewer = (TableViewer)viewerPane.getViewer();
+
+				Table table = tableViewer.getTable();
+				TableLayout layout = new TableLayout();
+				table.setLayout(layout);
+				table.setHeaderVisible(true);
+				table.setLinesVisible(true);
+
+				TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(3, 100, true));
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+
+				TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(2, 100, true));
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+
+				tableViewer.setColumnProperties(new String [] {"a", "b"});
+				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(tableViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TablePage_label"));
+			}
+
+			// This is the page for the table tree viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), editpolicymodelEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+
+				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+				Tree tree = treeViewerWithColumns.getTree();
+				tree.setLayoutData(new FillLayout());
+				tree.setHeaderVisible(true);
+				tree.setLinesVisible(true);
+
+				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+				objectColumn.setText(getString("_UI_ObjectColumn_label"));
+				objectColumn.setResizable(true);
+				objectColumn.setWidth(250);
+
+				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+				selfColumn.setText(getString("_UI_SelfColumn_label"));
+				selfColumn.setResizable(true);
+				selfColumn.setWidth(200);
+
+				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
+				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+				createContextMenuFor(treeViewerWithColumns);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+			}
+
+			getSite().getShell().getDisplay().asyncExec
+				(new Runnable() {
+					 public void run() {
+						 setActivePage(0);
+					 }
+				 });
+		}
+
+		// Ensures that this editor will only display the page's tab
+		// area if there are more than one page
+		//
+		getContainer().addControlListener
+			(new ControlAdapter() {
+				boolean guard = false;
+				@Override
+				public void controlResized(ControlEvent event) {
+					if (!guard) {
+						guard = true;
+						hideTabs();
+						guard = false;
+					}
+				}
+			 });
+
+		getSite().getShell().getDisplay().asyncExec
+			(new Runnable() {
+				 public void run() {
+					 updateProblemIndication();
+				 }
+			 });
+	}
+
+	/**
+	 * If there is just one page in the multi-page editor part,
+	 * this hides the single tab at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void hideTabs() {
+		if (getPageCount() <= 1) {
+			setPageText(0, "");
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(1);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y + 6);
+			}
+		}
+	}
+
+	/**
+	 * If there is more than one page in the multi-page editor part,
+	 * this shows the tabs at the bottom.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void showTabs() {
+		if (getPageCount() > 1) {
+			setPageText(0, getString("_UI_SelectionPage_label"));
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y - 6);
+			}
+		}
+	}
+
+	/**
+	 * This is used to track the active viewer.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void pageChange(int pageIndex) {
+		super.pageChange(pageIndex);
+
+		if (contentOutlinePage != null) {
+			handleContentOutlineSelection(contentOutlinePage.getSelection());
+		}
+	}
+
+	/**
+	 * This is how the framework determines which interfaces we implement.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("rawtypes")
+	@Override
+	public Object getAdapter(Class key) {
+		if (key.equals(IContentOutlinePage.class)) {
+			return showOutlineView() ? getContentOutlinePage() : null;
+		}
+		else if (key.equals(IPropertySheetPage.class)) {
+			return getPropertySheetPage();
+		}
+		else if (key.equals(IGotoMarker.class)) {
+			return this;
+		}
+		else {
+			return super.getAdapter(key);
+		}
+	}
+
+	/**
+	 * This accesses a cached version of the content outliner.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IContentOutlinePage getContentOutlinePage() {
+		if (contentOutlinePage == null) {
+			// The content outline is just a tree.
+			//
+			class MyContentOutlinePage extends ContentOutlinePage {
+				@Override
+				public void createControl(Composite parent) {
+					super.createControl(parent);
+					contentOutlineViewer = getTreeViewer();
+					contentOutlineViewer.addSelectionChangedListener(this);
+
+					// Set up the tree viewer.
+					//
+					contentOutlineViewer.setUseHashlookup(true);
+					contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+					contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+					contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+					// Make sure our popups work.
+					//
+					createContextMenuFor(contentOutlineViewer);
+
+					if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+					  // Select the root object in the view.
+					  //
+					  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+					}
+				}
+
+				@Override
+				public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+					super.makeContributions(menuManager, toolBarManager, statusLineManager);
+					contentOutlineStatusLineManager = statusLineManager;
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			}
+
+			contentOutlinePage = new MyContentOutlinePage();
+
+			// Listen to selection so that we can handle it is a special way.
+			//
+			contentOutlinePage.addSelectionChangedListener
+				(new ISelectionChangedListener() {
+					 // This ensures that we handle selections correctly.
+					 //
+					 public void selectionChanged(SelectionChangedEvent event) {
+						 handleContentOutlineSelection(event.getSelection());
+					 }
+				 });
+		}
+
+		return contentOutlinePage;
+	}
+
+	/**
+	 * This accesses a cached version of the property sheet.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPropertySheetPage getPropertySheetPage() {
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					editpolicymodelEditor.this.setSelectionToViewer(selection);
+					editpolicymodelEditor.this.setFocus();
+				}
+
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
+
+		return propertySheetPage;
+	}
+
+	/**
+	 * This deals with how we want selection in the outliner to affect the other views.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void handleContentOutlineSelection(ISelection selection) {
+		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+			Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+			if (selectedElements.hasNext()) {
+				// Get the first selected element.
+				//
+				Object selectedElement = selectedElements.next();
+
+				// If it's the selection viewer, then we want it to select the same selection as this selection.
+				//
+				if (currentViewerPane.getViewer() == selectionViewer) {
+					ArrayList<Object> selectionList = new ArrayList<Object>();
+					selectionList.add(selectedElement);
+					while (selectedElements.hasNext()) {
+						selectionList.add(selectedElements.next());
+					}
+
+					// Set the selection to the widget.
+					//
+					selectionViewer.setSelection(new StructuredSelection(selectionList));
+				}
+				else {
+					// Set the input to the widget.
+					//
+					if (currentViewerPane.getViewer().getInput() != selectedElement) {
+						currentViewerPane.getViewer().setInput(selectedElement);
+						currentViewerPane.setTitle(selectedElement);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply tests the command stack.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isDirty() {
+		return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+	}
+
+	/**
+	 * This is for implementing {@link IEditorPart} and simply saves the model file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSave(IProgressMonitor progressMonitor) {
+		// Save only resources that have actually changed.
+		//
+		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+		// Do the work within an operation because this is a long running activity that modifies the workbench.
+		//
+		WorkspaceModifyOperation operation =
+			new WorkspaceModifyOperation() {
+				// This is the method that gets invoked when the operation runs.
+				//
+				@Override
+				public void execute(IProgressMonitor monitor) {
+					// Save the resources to the file system.
+					//
+					boolean first = true;
+					List<Resource> resources = editingDomain.getResourceSet().getResources();
+					for (int i = 0; i < resources.size(); ++i) {
+						Resource resource = resources.get(i);
+						if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+							try {
+								long timeStamp = resource.getTimeStamp();
+								resource.save(saveOptions);
+								if (resource.getTimeStamp() != timeStamp) {
+									savedResources.add(resource);
+								}
+							}
+							catch (Exception exception) {
+								resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+							}
+							first = false;
+						}
+					}
+				}
+			};
+
+		updateProblemIndication = false;
+		try {
+			// This runs the options, and shows progress.
+			//
+			new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+			// Refresh the necessary state.
+			//
+			((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+			firePropertyChange(IEditorPart.PROP_DIRTY);
+		}
+		catch (Exception exception) {
+			// Something went wrong that shouldn't.
+			//
+			editpolicymodelEditorPlugin.INSTANCE.log(exception);
+		}
+		updateProblemIndication = true;
+		updateProblemIndication();
+	}
+
+	/**
+	 * This returns whether something has been persisted to the URI of the specified resource.
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean isPersisted(Resource resource) {
+		boolean result = false;
+		try {
+			InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+			if (stream != null) {
+				result = true;
+				stream.close();
+			}
+		}
+		catch (IOException e) {
+			// Ignore
+		}
+		return result;
+	}
+
+	/**
+	 * This always returns true because it is not currently supported.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return true;
+	}
+
+	/**
+	 * This also changes the editor's input.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void doSaveAs() {
+		SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+		saveAsDialog.open();
+		IPath path = saveAsDialog.getResult();
+		if (path != null) {
+			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+			if (file != null) {
+				doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+			}
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void doSaveAs(URI uri, IEditorInput editorInput) {
+		(editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		IProgressMonitor progressMonitor =
+			getActionBars().getStatusLineManager() != null ?
+				getActionBars().getStatusLineManager().getProgressMonitor() :
+				new NullProgressMonitor();
+		doSave(progressMonitor);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void gotoMarker(IMarker marker) {
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
+		}
+	}
+
+	/**
+	 * This is called during startup.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput editorInput) {
+		setSite(site);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		site.setSelectionProvider(this);
+		site.getPage().addPartListener(partListener);
+		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setFocus() {
+		if (currentViewerPane != null) {
+			currentViewerPane.setFocus();
+		}
+		else {
+			getControl(getActivePage()).setFocus();
+		}
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.add(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangedListeners.remove(listener);
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ISelection getSelection() {
+		return editorSelection;
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+	 * Calling this result will notify the listeners.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelection(ISelection selection) {
+		editorSelection = selection;
+
+		for (ISelectionChangedListener listener : selectionChangedListeners) {
+			listener.selectionChanged(new SelectionChangedEvent(this, selection));
+		}
+		setStatusLineManager(selection);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStatusLineManager(ISelection selection) {
+		IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+			contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+		if (statusLineManager != null) {
+			if (selection instanceof IStructuredSelection) {
+				Collection<?> collection = ((IStructuredSelection)selection).toList();
+				switch (collection.size()) {
+					case 0: {
+						statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+						break;
+					}
+					case 1: {
+						String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+						statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+						break;
+					}
+					default: {
+						statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+						break;
+					}
+				}
+			}
+			else {
+				statusLineManager.setMessage("");
+			}
+		}
+	}
+
+	/**
+	 * This looks up a string in the plugin's plugin.properties file.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key) {
+		return editpolicymodelEditorPlugin.INSTANCE.getString(key);
+	}
+
+	/**
+	 * This looks up a string in plugin.properties, making a substitution.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static String getString(String key, Object s1) {
+		return editpolicymodelEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+	}
+
+	/**
+	 * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void menuAboutToShow(IMenuManager menuManager) {
+		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EditingDomainActionBarContributor getActionBarContributor() {
+		return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IActionBars getActionBars() {
+		return getActionBarContributor().getActionBars();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdapterFactory getAdapterFactory() {
+		return adapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void dispose() {
+		updateProblemIndication = false;
+
+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+		getSite().getPage().removePartListener(partListener);
+
+		adapterFactory.dispose();
+
+		if (getActionBarContributor().getActiveEditor() == this) {
+			getActionBarContributor().setActiveEditor(null);
+		}
+
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
+			propertySheetPage.dispose();
+		}
+
+		if (contentOutlinePage != null) {
+			contentOutlinePage.dispose();
+		}
+
+		super.dispose();
+	}
+
+	/**
+	 * Returns whether the outline view should be presented to the user.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected boolean showOutlineView() {
+		return true;
+	}
+}
diff --git a/org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelEditorPlugin.java b/org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelEditorPlugin.java
new file mode 100644
index 00000000..d9e07783
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelEditorPlugin.java
@@ -0,0 +1,94 @@
+/**
+ */
+package editpolicymodel.presentation;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.framed.iorm.model.provider.ORMEditPlugin;
+
+/**
+ * This is the central singleton for the editpolicymodel editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class editpolicymodelEditorPlugin extends EMFPlugin {
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final editpolicymodelEditorPlugin INSTANCE = new editpolicymodelEditorPlugin();
+	
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static Implementation plugin;
+
+	/**
+	 * Create the instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public editpolicymodelEditorPlugin() {
+		super
+			(new ResourceLocator [] {
+				ORMEditPlugin.INSTANCE,
+			});
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getPluginResourceLocator() {
+		return plugin;
+	}
+	
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public static Implementation getPlugin() {
+		return plugin;
+	}
+	
+	/**
+	 * The actual implementation of the Eclipse <b>Plugin</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static class Implementation extends EclipseUIPlugin {
+		/**
+		 * Creates an instance.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public Implementation() {
+			super();
+	
+			// Remember the static instance.
+			//
+			plugin = this;
+		}
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelModelWizard.java b/org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelModelWizard.java
new file mode 100644
index 00000000..c451d0e7
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.editor/src/editpolicymodel/presentation/editpolicymodelModelWizard.java
@@ -0,0 +1,627 @@
+/**
+ */
+package editpolicymodel.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.common.CommonPlugin;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+import editpolicymodel.editpolicymodelFactory;
+import editpolicymodel.editpolicymodelPackage;
+import editpolicymodel.provider.editpolicymodelEditPlugin;
+
+
+import org.eclipse.core.runtime.Path;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class editpolicymodelModelWizard extends Wizard implements INewWizard {
+	/**
+	 * The supported extensions for created files.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<String> FILE_EXTENSIONS =
+		Collections.unmodifiableList(Arrays.asList(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_editpolicymodelEditorFilenameExtensions").split("\\s*,\\s*")));
+
+	/**
+	 * A formatted list of supported file extensions, suitable for display.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String FORMATTED_FILE_EXTENSIONS =
+		editpolicymodelEditorPlugin.INSTANCE.getString("_UI_editpolicymodelEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+	/**
+	 * This caches an instance of the model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected editpolicymodelPackage _editpolicymodelPackage = editpolicymodelPackage.eINSTANCE;
+
+	/**
+	 * This caches an instance of the model factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected editpolicymodelFactory _editpolicymodelFactory = _editpolicymodelPackage.geteditpolicymodelFactory();
+
+	/**
+	 * This is the file creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected editpolicymodelModelWizardNewFileCreationPage newFileCreationPage;
+
+	/**
+	 * This is the initial object creation page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected editpolicymodelModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+	/**
+	 * Remember the selection during initialization for populating the default container.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IStructuredSelection selection;
+
+	/**
+	 * Remember the workbench during initialization.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IWorkbench workbench;
+
+	/**
+	 * Caches the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<String> initialObjectNames;
+
+	/**
+	 * This just records the information.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		this.workbench = workbench;
+		this.selection = selection;
+		setWindowTitle(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+		setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(editpolicymodelEditorPlugin.INSTANCE.getImage("full/wizban/Neweditpolicymodel")));
+	}
+
+	/**
+	 * Returns the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<String> getInitialObjectNames() {
+		if (initialObjectNames == null) {
+			initialObjectNames = new ArrayList<String>();
+			for (EClassifier eClassifier : _editpolicymodelPackage.getEClassifiers()) {
+				if (eClassifier instanceof EClass) {
+					EClass eClass = (EClass)eClassifier;
+					if (!eClass.isAbstract()) {
+						initialObjectNames.add(eClass.getName());
+					}
+				}
+			}
+			Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+		}
+		return initialObjectNames;
+	}
+
+	/**
+	 * Create a new model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EObject createInitialModel() {
+		EClass eClass = (EClass)_editpolicymodelPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+		EObject rootObject = _editpolicymodelFactory.create(eClass);
+		return rootObject;
+	}
+
+	/**
+	 * Do the work after everything is specified.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean performFinish() {
+		try {
+			// Remember the file.
+			//
+			final IFile modelFile = getModelFile();
+
+			// Do the work within an operation.
+			//
+			WorkspaceModifyOperation operation =
+				new WorkspaceModifyOperation() {
+					@Override
+					protected void execute(IProgressMonitor progressMonitor) {
+						try {
+							// Create a resource set
+							//
+							ResourceSet resourceSet = new ResourceSetImpl();
+
+							// Get the URI of the model file.
+							//
+							URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+							// Create a resource for this file.
+							//
+							Resource resource = resourceSet.createResource(fileURI);
+
+							// Add the initial model object to the contents.
+							//
+							EObject rootObject = createInitialModel();
+							if (rootObject != null) {
+								resource.getContents().add(rootObject);
+							}
+
+							// Save the contents of the resource to the file system.
+							//
+							Map<Object, Object> options = new HashMap<Object, Object>();
+							options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+							resource.save(options);
+						}
+						catch (Exception exception) {
+							editpolicymodelEditorPlugin.INSTANCE.log(exception);
+						}
+						finally {
+							progressMonitor.done();
+						}
+					}
+				};
+
+			getContainer().run(false, false, operation);
+
+			// Select the new file resource in the current view.
+			//
+			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+			IWorkbenchPage page = workbenchWindow.getActivePage();
+			final IWorkbenchPart activePart = page.getActivePart();
+			if (activePart instanceof ISetSelectionTarget) {
+				final ISelection targetSelection = new StructuredSelection(modelFile);
+				getShell().getDisplay().asyncExec
+					(new Runnable() {
+						 public void run() {
+							 ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+						 }
+					 });
+			}
+
+			// Open an editor on the new file.
+			//
+			try {
+				page.openEditor
+					(new FileEditorInput(modelFile),
+					 workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());					 	 
+			}
+			catch (PartInitException exception) {
+				MessageDialog.openError(workbenchWindow.getShell(), editpolicymodelEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+				return false;
+			}
+
+			return true;
+		}
+		catch (Exception exception) {
+			editpolicymodelEditorPlugin.INSTANCE.log(exception);
+			return false;
+		}
+	}
+
+	/**
+	 * This is the one page of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class editpolicymodelModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public editpolicymodelModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+			super(pageId, selection);
+		}
+
+		/**
+		 * The framework calls this to see if the file is correct.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		protected boolean validatePage() {
+			if (super.validatePage()) {
+				String extension = new Path(getFileName()).getFileExtension();
+				if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+					String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+					setErrorMessage(editpolicymodelEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+					return false;
+				}
+				return true;
+			}
+			return false;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public IFile getModelFile() {
+			return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+		}
+	}
+
+	/**
+	 * This is the page where the type of object to create is selected.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public class editpolicymodelModelWizardInitialObjectCreationPage extends WizardPage {
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo initialObjectField;
+
+		/**
+		 * @generated
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 */
+		protected List<String> encodings;
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Combo encodingField;
+
+		/**
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public editpolicymodelModelWizardInitialObjectCreationPage(String pageId) {
+			super(pageId);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public void createControl(Composite parent) {
+			Composite composite = new Composite(parent, SWT.NONE); {
+				GridLayout layout = new GridLayout();
+				layout.numColumns = 1;
+				layout.verticalSpacing = 12;
+				composite.setLayout(layout);
+
+				GridData data = new GridData();
+				data.verticalAlignment = GridData.FILL;
+				data.grabExcessVerticalSpace = true;
+				data.horizontalAlignment = GridData.FILL;
+				composite.setLayoutData(data);
+			}
+
+			Label containerLabel = new Label(composite, SWT.LEFT);
+			{
+				containerLabel.setText(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				containerLabel.setLayoutData(data);
+			}
+
+			initialObjectField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				initialObjectField.setLayoutData(data);
+			}
+
+			for (String objectName : getInitialObjectNames()) {
+				initialObjectField.add(getLabel(objectName));
+			}
+
+			if (initialObjectField.getItemCount() == 1) {
+				initialObjectField.select(0);
+			}
+			initialObjectField.addModifyListener(validator);
+
+			Label encodingLabel = new Label(composite, SWT.LEFT);
+			{
+				encodingLabel.setText(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				encodingLabel.setLayoutData(data);
+			}
+			encodingField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				encodingField.setLayoutData(data);
+			}
+
+			for (String encoding : getEncodings()) {
+				encodingField.add(encoding);
+			}
+
+			encodingField.select(0);
+			encodingField.addModifyListener(validator);
+
+			setPageComplete(validatePage());
+			setControl(composite);
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected ModifyListener validator =
+			new ModifyListener() {
+				public void modifyText(ModifyEvent e) {
+					setPageComplete(validatePage());
+				}
+			};
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected boolean validatePage() {
+			return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		@Override
+		public void setVisible(boolean visible) {
+			super.setVisible(visible);
+			if (visible) {
+				if (initialObjectField.getItemCount() == 1) {
+					initialObjectField.clearSelection();
+					encodingField.setFocus();
+				}
+				else {
+					encodingField.clearSelection();
+					initialObjectField.setFocus();
+				}
+			}
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getInitialObjectName() {
+			String label = initialObjectField.getText();
+
+			for (String name : getInitialObjectNames()) {
+				if (getLabel(name).equals(label)) {
+					return name;
+				}
+			}
+			return null;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public String getEncoding() {
+			return encodingField.getText();
+		}
+
+		/**
+		 * Returns the label for the specified type name.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected String getLabel(String typeName) {
+			try {
+				return editpolicymodelEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+			}
+			catch(MissingResourceException mre) {
+				editpolicymodelEditorPlugin.INSTANCE.log(mre);
+			}
+			return typeName;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		protected Collection<String> getEncodings() {
+			if (encodings == null) {
+				encodings = new ArrayList<String>();
+				for (StringTokenizer stringTokenizer = new StringTokenizer(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
+					encodings.add(stringTokenizer.nextToken());
+				}
+			}
+			return encodings;
+		}
+	}
+
+	/**
+	 * The framework calls this to create the contents of the wizard.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+		@Override
+	public void addPages() {
+		// Create a page, set the title, and the initial model file name.
+		//
+		newFileCreationPage = new editpolicymodelModelWizardNewFileCreationPage("Whatever", selection);
+		newFileCreationPage.setTitle(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_editpolicymodelModelWizard_label"));
+		newFileCreationPage.setDescription(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_editpolicymodelModelWizard_description"));
+		newFileCreationPage.setFileName(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_editpolicymodelEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+		addPage(newFileCreationPage);
+
+		// Try and get the resource selection to determine a current directory for the file dialog.
+		//
+		if (selection != null && !selection.isEmpty()) {
+			// Get the resource...
+			//
+			Object selectedElement = selection.iterator().next();
+			if (selectedElement instanceof IResource) {
+				// Get the resource parent, if its a file.
+				//
+				IResource selectedResource = (IResource)selectedElement;
+				if (selectedResource.getType() == IResource.FILE) {
+					selectedResource = selectedResource.getParent();
+				}
+
+				// This gives us a directory...
+				//
+				if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+					// Set this for the container.
+					//
+					newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+					// Make up a unique new name here.
+					//
+					String defaultModelBaseFilename = editpolicymodelEditorPlugin.INSTANCE.getString("_UI_editpolicymodelEditorFilenameDefaultBase");
+					String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+					String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+					for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+						modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+					}
+					newFileCreationPage.setFileName(modelFilename);
+				}
+			}
+		}
+		initialObjectCreationPage = new editpolicymodelModelWizardInitialObjectCreationPage("Whatever2");
+		initialObjectCreationPage.setTitle(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_editpolicymodelModelWizard_label"));
+		initialObjectCreationPage.setDescription(editpolicymodelEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+		addPage(initialObjectCreationPage);
+	}
+
+	/**
+	 * Get the file from the page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IFile getModelFile() {
+		return newFileCreationPage.getModelFile();
+	}
+
+}
diff --git a/org.framed.iorm.editpolicymodel.tests/.classpath b/org.framed.iorm.editpolicymodel.tests/.classpath
new file mode 100644
index 00000000..22f30643
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/.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.tests/.gitignore b/org.framed.iorm.editpolicymodel.tests/.gitignore
new file mode 100644
index 00000000..ae3c1726
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/org.framed.iorm.editpolicymodel.tests/.project b/org.framed.iorm.editpolicymodel.tests/.project
new file mode 100644
index 00000000..90e3ade0
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.framed.iorm.editpolicymodel.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<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.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.framed.iorm.editpolicymodel.tests/META-INF/MANIFEST.MF b/org.framed.iorm.editpolicymodel.tests/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..a0292c30
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.framed.iorm.editpolicymodel.tests;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: editpolicymodel.tests
+Require-Bundle: org.eclipse.core.runtime,
+ org.framed.iorm.editpolicymodel;visibility:=reexport,
+ org.framed.iorm.model;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.junit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/org.framed.iorm.editpolicymodel.tests/build.properties b/org.framed.iorm.editpolicymodel.tests/build.properties
new file mode 100644
index 00000000..08af0685
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/build.properties
@@ -0,0 +1,8 @@
+#
+
+bin.includes = .,\
+               META-INF/,\
+               plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/org.framed.iorm.editpolicymodel.tests/plugin.properties b/org.framed.iorm.editpolicymodel.tests/plugin.properties
new file mode 100644
index 00000000..ab1f467c
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/plugin.properties
@@ -0,0 +1,4 @@
+#
+
+pluginName = editpolicymodel Tests
+providerName = www.example.org
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/AndConstraintRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/AndConstraintRuleTest.java
new file mode 100644
index 00000000..d3420191
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/AndConstraintRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.AndConstraintRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>And Constraint Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AndConstraintRuleTest extends NaryConstraintRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(AndConstraintRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new And Constraint Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AndConstraintRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this And Constraint Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected AndConstraintRule getFixture() {
+		return (AndConstraintRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createAndConstraintRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //AndConstraintRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/AndFeatureRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/AndFeatureRuleTest.java
new file mode 100644
index 00000000..60e51d86
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/AndFeatureRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.AndFeatureRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>And Feature Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AndFeatureRuleTest extends NaryFeatureRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(AndFeatureRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new And Feature Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AndFeatureRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this And Feature Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected AndFeatureRule getFixture() {
+		return (AndFeatureRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createAndFeatureRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //AndFeatureRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/BinaryConstraintRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/BinaryConstraintRuleTest.java
new file mode 100644
index 00000000..28f2e96e
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/BinaryConstraintRuleTest.java
@@ -0,0 +1,36 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.BinaryConstraintRule;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Binary Constraint Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class BinaryConstraintRuleTest extends LogicalConstraintRuleTest {
+
+	/**
+	 * Constructs a new Binary Constraint Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BinaryConstraintRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Binary Constraint Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected BinaryConstraintRule getFixture() {
+		return (BinaryConstraintRule)fixture;
+	}
+
+} //BinaryConstraintRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/BinaryFeatureRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/BinaryFeatureRuleTest.java
new file mode 100644
index 00000000..1cd456cb
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/BinaryFeatureRuleTest.java
@@ -0,0 +1,36 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.BinaryFeatureRule;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Binary Feature Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class BinaryFeatureRuleTest extends LogicalFeatureRuleTest {
+
+	/**
+	 * Constructs a new Binary Feature Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BinaryFeatureRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Binary Feature Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected BinaryFeatureRule getFixture() {
+		return (BinaryFeatureRule)fixture;
+	}
+
+} //BinaryFeatureRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ConstraintRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ConstraintRuleTest.java
new file mode 100644
index 00000000..8e657ffd
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ConstraintRuleTest.java
@@ -0,0 +1,55 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.ConstraintRule;
+
+import junit.framework.TestCase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Constraint Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class ConstraintRuleTest extends TestCase {
+
+	/**
+	 * The fixture for this Constraint Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ConstraintRule fixture = null;
+
+	/**
+	 * Constructs a new Constraint Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ConstraintRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Constraint Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(ConstraintRule fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Constraint Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ConstraintRule getFixture() {
+		return fixture;
+	}
+
+} //ConstraintRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ContainsCompartmentTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ContainsCompartmentTest.java
new file mode 100644
index 00000000..d341e570
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ContainsCompartmentTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.ContainsCompartment;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Contains Compartment</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ContainsCompartmentTest extends ConstraintRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(ContainsCompartmentTest.class);
+	}
+
+	/**
+	 * Constructs a new Contains Compartment test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ContainsCompartmentTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Contains Compartment test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected ContainsCompartment getFixture() {
+		return (ContainsCompartment)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createContainsCompartment());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //ContainsCompartmentTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/FalseConstraintRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/FalseConstraintRuleTest.java
new file mode 100644
index 00000000..5b42f5ef
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/FalseConstraintRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.FalseConstraintRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>False Constraint Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FalseConstraintRuleTest extends LogicalConstraintRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(FalseConstraintRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new False Constraint Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FalseConstraintRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this False Constraint Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected FalseConstraintRule getFixture() {
+		return (FalseConstraintRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createFalseConstraintRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //FalseConstraintRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/FalseFeatureRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/FalseFeatureRuleTest.java
new file mode 100644
index 00000000..213dbc1e
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/FalseFeatureRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.FalseFeatureRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>False Feature Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FalseFeatureRuleTest extends LogicalFeatureRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(FalseFeatureRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new False Feature Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FalseFeatureRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this False Feature Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected FalseFeatureRule getFixture() {
+		return (FalseFeatureRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createFalseFeatureRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //FalseFeatureRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/FeatureRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/FeatureRuleTest.java
new file mode 100644
index 00000000..8b631a67
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/FeatureRuleTest.java
@@ -0,0 +1,55 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.FeatureRule;
+
+import junit.framework.TestCase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Feature Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class FeatureRuleTest extends TestCase {
+
+	/**
+	 * The fixture for this Feature Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FeatureRule fixture = null;
+
+	/**
+	 * Constructs a new Feature Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FeatureRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Feature Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(FeatureRule fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Feature Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FeatureRule getFixture() {
+		return fixture;
+	}
+
+} //FeatureRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ImplicationConstraintRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ImplicationConstraintRuleTest.java
new file mode 100644
index 00000000..2091ad13
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ImplicationConstraintRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.ImplicationConstraintRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Implication Constraint Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ImplicationConstraintRuleTest extends BinaryConstraintRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(ImplicationConstraintRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new Implication Constraint Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ImplicationConstraintRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Implication Constraint Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected ImplicationConstraintRule getFixture() {
+		return (ImplicationConstraintRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createImplicationConstraintRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //ImplicationConstraintRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ImplicationFeatureRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ImplicationFeatureRuleTest.java
new file mode 100644
index 00000000..37e0bd74
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ImplicationFeatureRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.ImplicationFeatureRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Implication Feature Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ImplicationFeatureRuleTest extends BinaryFeatureRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(ImplicationFeatureRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new Implication Feature Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ImplicationFeatureRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Implication Feature Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected ImplicationFeatureRule getFixture() {
+		return (ImplicationFeatureRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createImplicationFeatureRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //ImplicationFeatureRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/InTypeTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/InTypeTest.java
new file mode 100644
index 00000000..d0d5a86e
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/InTypeTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.InType;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>In Type</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class InTypeTest extends TypeArgumentRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(InTypeTest.class);
+	}
+
+	/**
+	 * Constructs a new In Type test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public InTypeTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this In Type test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected InType getFixture() {
+		return (InType)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createInType());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //InTypeTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsFeatureTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsFeatureTest.java
new file mode 100644
index 00000000..9414d2a5
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsFeatureTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.IsFeature;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Is Feature</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IsFeatureTest extends FeatureRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(IsFeatureTest.class);
+	}
+
+	/**
+	 * Constructs a new Is Feature test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IsFeatureTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Is Feature test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected IsFeature getFixture() {
+		return (IsFeature)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createIsFeature());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //IsFeatureTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsParentTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsParentTest.java
new file mode 100644
index 00000000..8056dd9f
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsParentTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.IsParent;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Is Parent</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IsParentTest extends TypeArgumentRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(IsParentTest.class);
+	}
+
+	/**
+	 * Constructs a new Is Parent test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IsParentTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Is Parent test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected IsParent getFixture() {
+		return (IsParent)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createIsParent());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //IsParentTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsSourceTypeTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsSourceTypeTest.java
new file mode 100644
index 00000000..af495c95
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsSourceTypeTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.IsSourceType;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Is Source Type</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IsSourceTypeTest extends TypeArgumentRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(IsSourceTypeTest.class);
+	}
+
+	/**
+	 * Constructs a new Is Source Type test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IsSourceTypeTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Is Source Type test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected IsSourceType getFixture() {
+		return (IsSourceType)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createIsSourceType());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //IsSourceTypeTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetTest.java
new file mode 100644
index 00000000..3481de8e
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.IsTarget;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Is Target</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IsTargetTest extends TypeArgumentRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(IsTargetTest.class);
+	}
+
+	/**
+	 * Constructs a new Is Target test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IsTargetTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Is Target test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected IsTarget getFixture() {
+		return (IsTarget)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createIsTarget());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //IsTargetTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetTypeTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetTypeTest.java
new file mode 100644
index 00000000..cdafd8fb
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetTypeTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.IsTargetType;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Is Target Type</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IsTargetTypeTest extends TypeArgumentRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(IsTargetTypeTest.class);
+	}
+
+	/**
+	 * Constructs a new Is Target Type test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IsTargetTypeTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Is Target Type test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected IsTargetType getFixture() {
+		return (IsTargetType)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createIsTargetType());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //IsTargetTypeTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/LogicalConstraintRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/LogicalConstraintRuleTest.java
new file mode 100644
index 00000000..e366784f
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/LogicalConstraintRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.LogicalConstraintRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Logical Constraint Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class LogicalConstraintRuleTest extends ConstraintRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(LogicalConstraintRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new Logical Constraint Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LogicalConstraintRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Logical Constraint Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected LogicalConstraintRule getFixture() {
+		return (LogicalConstraintRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createLogicalConstraintRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //LogicalConstraintRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/LogicalFeatureRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/LogicalFeatureRuleTest.java
new file mode 100644
index 00000000..c6f63129
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/LogicalFeatureRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.LogicalFeatureRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Logical Feature Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class LogicalFeatureRuleTest extends FeatureRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(LogicalFeatureRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new Logical Feature Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LogicalFeatureRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Logical Feature Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected LogicalFeatureRule getFixture() {
+		return (LogicalFeatureRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createLogicalFeatureRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //LogicalFeatureRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ModelTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ModelTest.java
new file mode 100644
index 00000000..8f0687e9
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ModelTest.java
@@ -0,0 +1,89 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.Model;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ModelTest extends TestCase {
+
+	/**
+	 * The fixture for this Model test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Model fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(ModelTest.class);
+	}
+
+	/**
+	 * Constructs a new Model test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ModelTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Model test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(Model fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Model test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Model getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createModel());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //ModelTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NaryConstraintRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NaryConstraintRuleTest.java
new file mode 100644
index 00000000..57be1e15
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NaryConstraintRuleTest.java
@@ -0,0 +1,36 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.NaryConstraintRule;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Nary Constraint Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class NaryConstraintRuleTest extends LogicalConstraintRuleTest {
+
+	/**
+	 * Constructs a new Nary Constraint Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NaryConstraintRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Nary Constraint Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected NaryConstraintRule getFixture() {
+		return (NaryConstraintRule)fixture;
+	}
+
+} //NaryConstraintRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NaryFeatureRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NaryFeatureRuleTest.java
new file mode 100644
index 00000000..cd6e2ec4
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NaryFeatureRuleTest.java
@@ -0,0 +1,36 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.NaryFeatureRule;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Nary Feature Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class NaryFeatureRuleTest extends LogicalFeatureRuleTest {
+
+	/**
+	 * Constructs a new Nary Feature Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NaryFeatureRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Nary Feature Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected NaryFeatureRule getFixture() {
+		return (NaryFeatureRule)fixture;
+	}
+
+} //NaryFeatureRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NotConstraintRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NotConstraintRuleTest.java
new file mode 100644
index 00000000..621096ee
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NotConstraintRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.NotConstraintRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Not Constraint Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NotConstraintRuleTest extends UnaryConstraintRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(NotConstraintRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new Not Constraint Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotConstraintRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Not Constraint Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected NotConstraintRule getFixture() {
+		return (NotConstraintRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createNotConstraintRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //NotConstraintRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NotFeatureRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NotFeatureRuleTest.java
new file mode 100644
index 00000000..55820e9d
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/NotFeatureRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.NotFeatureRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Not Feature Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NotFeatureRuleTest extends UnaryFeatureRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(NotFeatureRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new Not Feature Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotFeatureRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Not Feature Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected NotFeatureRule getFixture() {
+		return (NotFeatureRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createNotFeatureRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //NotFeatureRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/OrConstraintRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/OrConstraintRuleTest.java
new file mode 100644
index 00000000..28a8d3d5
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/OrConstraintRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.OrConstraintRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Or Constraint Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OrConstraintRuleTest extends NaryConstraintRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(OrConstraintRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new Or Constraint Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OrConstraintRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Or Constraint Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected OrConstraintRule getFixture() {
+		return (OrConstraintRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createOrConstraintRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //OrConstraintRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/OrFeatureRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/OrFeatureRuleTest.java
new file mode 100644
index 00000000..d684232e
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/OrFeatureRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.OrFeatureRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Or Feature Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OrFeatureRuleTest extends NaryFeatureRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(OrFeatureRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new Or Feature Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OrFeatureRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Or Feature Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected OrFeatureRule getFixture() {
+		return (OrFeatureRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createOrFeatureRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //OrFeatureRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/PolicyTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/PolicyTest.java
new file mode 100644
index 00000000..c5648282
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/PolicyTest.java
@@ -0,0 +1,89 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.Policy;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Policy</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PolicyTest extends TestCase {
+
+	/**
+	 * The fixture for this Policy test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Policy fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(PolicyTest.class);
+	}
+
+	/**
+	 * Constructs a new Policy test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PolicyTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Policy test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(Policy fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Policy test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Policy getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createPolicy());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //PolicyTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/SourceEqualsTargetTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/SourceEqualsTargetTest.java
new file mode 100644
index 00000000..e4ab72ed
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/SourceEqualsTargetTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.SourceEqualsTarget;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Source Equals Target</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SourceEqualsTargetTest extends ConstraintRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(SourceEqualsTargetTest.class);
+	}
+
+	/**
+	 * Constructs a new Source Equals Target test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SourceEqualsTargetTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Source Equals Target test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected SourceEqualsTarget getFixture() {
+		return (SourceEqualsTarget)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createSourceEqualsTarget());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //SourceEqualsTargetTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/SourceEqualsTargetTypeTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/SourceEqualsTargetTypeTest.java
new file mode 100644
index 00000000..d3fbe26d
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/SourceEqualsTargetTypeTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.SourceEqualsTargetType;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Source Equals Target Type</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SourceEqualsTargetTypeTest extends ConstraintRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(SourceEqualsTargetTypeTest.class);
+	}
+
+	/**
+	 * Constructs a new Source Equals Target Type test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SourceEqualsTargetTypeTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Source Equals Target Type test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected SourceEqualsTargetType getFixture() {
+		return (SourceEqualsTargetType)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createSourceEqualsTargetType());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //SourceEqualsTargetTypeTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/TrueConstraintRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/TrueConstraintRuleTest.java
new file mode 100644
index 00000000..4f492f7e
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/TrueConstraintRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.TrueConstraintRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>True Constraint Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TrueConstraintRuleTest extends LogicalConstraintRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(TrueConstraintRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new True Constraint Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TrueConstraintRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this True Constraint Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected TrueConstraintRule getFixture() {
+		return (TrueConstraintRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createTrueConstraintRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //TrueConstraintRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/TrueFeatureRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/TrueFeatureRuleTest.java
new file mode 100644
index 00000000..c9ed522b
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/TrueFeatureRuleTest.java
@@ -0,0 +1,70 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.TrueFeatureRule;
+import editpolicymodel.editpolicymodelFactory;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>True Feature Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TrueFeatureRuleTest extends LogicalFeatureRuleTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(TrueFeatureRuleTest.class);
+	}
+
+	/**
+	 * Constructs a new True Feature Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TrueFeatureRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this True Feature Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected TrueFeatureRule getFixture() {
+		return (TrueFeatureRule)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(editpolicymodelFactory.eINSTANCE.createTrueFeatureRule());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //TrueFeatureRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/TypeArgumentRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/TypeArgumentRuleTest.java
new file mode 100644
index 00000000..a98591c1
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/TypeArgumentRuleTest.java
@@ -0,0 +1,36 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.TypeArgumentRule;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Type Argument Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class TypeArgumentRuleTest extends ConstraintRuleTest {
+
+	/**
+	 * Constructs a new Type Argument Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TypeArgumentRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Type Argument Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected TypeArgumentRule getFixture() {
+		return (TypeArgumentRule)fixture;
+	}
+
+} //TypeArgumentRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/UnaryConstraintRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/UnaryConstraintRuleTest.java
new file mode 100644
index 00000000..5cee383e
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/UnaryConstraintRuleTest.java
@@ -0,0 +1,36 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.UnaryConstraintRule;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Unary Constraint Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class UnaryConstraintRuleTest extends LogicalConstraintRuleTest {
+
+	/**
+	 * Constructs a new Unary Constraint Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnaryConstraintRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Unary Constraint Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected UnaryConstraintRule getFixture() {
+		return (UnaryConstraintRule)fixture;
+	}
+
+} //UnaryConstraintRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/UnaryFeatureRuleTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/UnaryFeatureRuleTest.java
new file mode 100644
index 00000000..b04d6efa
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/UnaryFeatureRuleTest.java
@@ -0,0 +1,36 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.UnaryFeatureRule;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Unary Feature Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class UnaryFeatureRuleTest extends LogicalFeatureRuleTest {
+
+	/**
+	 * Constructs a new Unary Feature Rule test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnaryFeatureRuleTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this Unary Feature Rule test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected UnaryFeatureRule getFixture() {
+		return (UnaryFeatureRule)fixture;
+	}
+
+} //UnaryFeatureRuleTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/editpolicymodelAllTests.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/editpolicymodelAllTests.java
new file mode 100644
index 00000000..622aabaa
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/editpolicymodelAllTests.java
@@ -0,0 +1,46 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test suite for the '<em><b>editpolicymodel</b></em>' model.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class editpolicymodelAllTests extends TestSuite {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(suite());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static Test suite() {
+		TestSuite suite = new editpolicymodelAllTests("editpolicymodel Tests");
+		return suite;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public editpolicymodelAllTests(String name) {
+		super(name);
+	}
+
+} //editpolicymodelAllTests
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/editpolicymodelExample.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/editpolicymodelExample.java
new file mode 100644
index 00000000..6d093960
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/editpolicymodelExample.java
@@ -0,0 +1,121 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import editpolicymodel.Model;
+import editpolicymodel.editpolicymodelFactory;
+import editpolicymodel.editpolicymodelPackage;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.util.Diagnostician;
+
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * A sample utility for the '<em><b>editpolicymodel</b></em>' package.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class editpolicymodelExample {
+	/**
+	 * <!-- begin-user-doc -->
+	 * Load all the argument file paths or URIs as instances of the model.
+	 * <!-- end-user-doc -->
+	 * @param args the file paths or URIs.
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		// Create a resource set to hold the resources.
+		//
+		ResourceSet resourceSet = new ResourceSetImpl();
+		
+		// Register the appropriate resource factory to handle all file extensions.
+		//
+		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put
+			(Resource.Factory.Registry.DEFAULT_EXTENSION, 
+			 new XMIResourceFactoryImpl());
+
+		// Register the package to ensure it is available during loading.
+		//
+		resourceSet.getPackageRegistry().put
+			(editpolicymodelPackage.eNS_URI, 
+			 editpolicymodelPackage.eINSTANCE);
+        
+		// If there are no arguments, emit an appropriate usage message.
+		//
+		if (args.length == 0) {
+			System.out.println("Enter a list of file paths or URIs that have content like this:");
+			try {
+				Resource resource = resourceSet.createResource(URI.createURI("http:///My.editpolicymodel"));
+				Model root = editpolicymodelFactory.eINSTANCE.createModel();
+				resource.getContents().add(root);
+				resource.save(System.out, null);
+			}
+			catch (IOException exception) {
+				exception.printStackTrace();
+			}
+		}
+		else {
+			// Iterate over all the arguments.
+			//
+			for (int i = 0; i < args.length; ++i) {
+				// Construct the URI for the instance file.
+				// The argument is treated as a file path only if it denotes an existing file.
+				// Otherwise, it's directly treated as a URL.
+				//
+				File file = new File(args[i]);
+				URI uri = file.isFile() ? URI.createFileURI(file.getAbsolutePath()): URI.createURI(args[i]);
+
+				try {
+					// Demand load resource for this file.
+					//
+					Resource resource = resourceSet.getResource(uri, true);
+					System.out.println("Loaded " + uri);
+
+					// Validate the contents of the loaded resource.
+					//
+					for (EObject eObject : resource.getContents()) {
+						Diagnostic diagnostic = Diagnostician.INSTANCE.validate(eObject);
+						if (diagnostic.getSeverity() != Diagnostic.OK) {
+							printDiagnostic(diagnostic, "");
+						}
+					}
+				}
+				catch (RuntimeException exception) {
+					System.out.println("Problem loading " + uri);
+					exception.printStackTrace();
+				}
+			}
+		}
+	}
+	
+	/**
+	 * <!-- begin-user-doc -->
+	 * Prints diagnostics with indentation.
+	 * <!-- end-user-doc -->
+	 * @param diagnostic the diagnostic to print.
+	 * @param indent the indentation for printing.
+	 * @generated
+	 */
+	protected static void printDiagnostic(Diagnostic diagnostic, String indent) {
+		System.out.print(indent);
+		System.out.println(diagnostic.getMessage());
+		for (Diagnostic child : diagnostic.getChildren()) {
+			printDiagnostic(child, indent + "  ");
+		}
+	}
+
+} //editpolicymodelExample
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/editpolicymodelTests.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/editpolicymodelTests.java
new file mode 100644
index 00000000..97f16005
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/editpolicymodelTests.java
@@ -0,0 +1,46 @@
+/**
+ */
+package editpolicymodel.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test suite for the '<em><b>editpolicymodel</b></em>' package.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class editpolicymodelTests extends TestSuite {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(suite());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static Test suite() {
+		TestSuite suite = new editpolicymodelTests("editpolicymodel Tests");
+		return suite;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public editpolicymodelTests(String name) {
+		super(name);
+	}
+
+} //editpolicymodelTests
diff --git a/org.framed.iorm.editpolicymodel/model/editpolicymodel.ecore b/org.framed.iorm.editpolicymodel/model/editpolicymodel.ecore
index 0d77bca0..d9384a2e 100644
--- a/org.framed.iorm.editpolicymodel/model/editpolicymodel.ecore
+++ b/org.framed.iorm.editpolicymodel/model/editpolicymodel.ecore
@@ -149,5 +149,5 @@
   </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"/>
+  <eClassifiers xsi:type="ecore:EClass" name="InType" eSuperTypes="#//TypeArgumentRule"/>
 </ecore:EPackage>
diff --git a/org.framed.iorm.editpolicymodel/model/representations.aird b/org.framed.iorm.editpolicymodel/model/representations.aird
index c8613686..185f3963 100644
--- a/org.framed.iorm.editpolicymodel/model/representations.aird
+++ b/org.framed.iorm.editpolicymodel/model/representations.aird
@@ -90,7 +90,7 @@
             <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"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL2MRhv9Eeir3aeVscTXqw" x="1464" y="828"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_QL4BdBv9Eeir3aeVscTXqw" type="2003" element="_QLGlYRv9Eeir3aeVscTXqw">
           <children xmi:type="notation:Node" xmi:id="_QL4Bdxv9Eeir3aeVscTXqw" type="5007"/>
@@ -99,7 +99,7 @@
             <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"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL4Bdhv9Eeir3aeVscTXqw" x="1106" 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"/>
@@ -108,7 +108,7 @@
             <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"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL5Pkhv9Eeir3aeVscTXqw" x="1191" y="973"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_QL52oBv9Eeir3aeVscTXqw" type="2003" element="_QLIakBv9Eeir3aeVscTXqw">
           <children xmi:type="notation:Node" xmi:id="_QL52oxv9Eeir3aeVscTXqw" type="5007"/>
@@ -197,7 +197,7 @@
             <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"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMBLYhv9Eeir3aeVscTXqw" x="1044" y="973"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_QMBLZxv9Eeir3aeVscTXqw" type="2003" element="_QLTZsBv9Eeir3aeVscTXqw">
           <children xmi:type="notation:Node" xmi:id="_QMBycBv9Eeir3aeVscTXqw" type="5007"/>
@@ -278,7 +278,7 @@
             <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"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QKMXkh2LEei8arfb2j0BMw" x="972" 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"/>
@@ -664,7 +664,7 @@
             <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"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="__AveUkJgEei5GdIMm-4mwA" x="1236" 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">
@@ -701,17 +701,17 @@
         </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"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aa_eVR2MEei8arfb2j0BMw" x="-22" 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"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aa_eVx2MEei8arfb2j0BMw" x="37" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_AbAFYB2MEei8arfb2j0BMw" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AbAFYR2MEei8arfb2j0BMw" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AbAFYR2MEei8arfb2j0BMw" x="1" 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]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Aa_eUx2MEei8arfb2j0BMw" points="[0, -49, -155, 264]$[0, -241, -155, 72]$[156, -241, 1, 72]$[156, -264, 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>
@@ -1197,17 +1197,17 @@
         </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"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7rT10S4jEei--d1NiPU4Dw" x="-107" 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"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7rUc4S4jEei--d1NiPU4Dw" x="-8" 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"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7rUc4y4jEei--d1NiPU4Dw" x="-96" 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]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7rTOwy4jEei--d1NiPU4Dw" points="[0, 0, -425, 203]$[212, 0, -213, 203]$[212, -120, -213, 83]$[483, -120, 58, 83]$[483, -165, 58, 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>
@@ -1291,22 +1291,6 @@
           <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"/>
@@ -1323,6 +1307,22 @@
           <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>
+        <edges xmi:type="notation:Edge" xmi:id="_RhVAoGwOEeiADrDVd9gLEg" type="4001" element="_BXeFIEJhEei5GdIMm-4mwA" source="__AveUEJgEei5GdIMm-4mwA" target="_01GZQB2LEei8arfb2j0BMw">
+          <children xmi:type="notation:Node" xmi:id="_RhkRMGwOEeiADrDVd9gLEg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhkRMWwOEeiADrDVd9gLEg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_RhlfUGwOEeiADrDVd9gLEg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhlfUWwOEeiADrDVd9gLEg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_RhmGYGwOEeiADrDVd9gLEg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhmGYWwOEeiADrDVd9gLEg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_RhVAoWwOEeiADrDVd9gLEg" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_RhVAomwOEeiADrDVd9gLEg" fontName="Cantarell" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RhVAo2wOEeiADrDVd9gLEg" points="[0, 0, 274, 264]$[0, -364, 274, -100]$[-224, -364, 50, -100]$[-224, -313, 50, -49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RhpwwGwOEeiADrDVd9gLEg" id="(0.4745762711864407,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RhpwwWwOEeiADrDVd9gLEg" id="(0.4934840425531915,0.5)"/>
+        </edges>
       </data>
     </ownedAnnotationEntries>
     <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QK-CgBv9Eeir3aeVscTXqw" name="Model" tooltipText="" outgoingEdges="_QLkfcBv9Eeir3aeVscTXqw" width="12" height="10">
@@ -1526,7 +1526,7 @@
         <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">
+    <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 _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>
@@ -1749,7 +1749,7 @@
       </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">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_00vM4B2LEei8arfb2j0BMw" name="TypeArgumentRule" tooltipText="" outgoingEdges="_UpKAwB2MEei8arfb2j0BMw" incomingEdges="_QKGQ8B2LEei8arfb2j0BMw _QLu3gxv9Eeir3aeVscTXqw _XfgucBy-EeiJONAgrNPLDA _X73TQBy-EeiJONAgrNPLDA _BXeFIEJhEei5GdIMm-4mwA" 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>
@@ -2755,9 +2755,9 @@
       </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"/>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_-9CqEEJgEei5GdIMm-4mwA" name="InType" tooltipText="" outgoingEdges="_BXeFIEJhEei5GdIMm-4mwA" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//InType"/>
+      <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//InType"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
@@ -2766,9 +2766,9 @@
       </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"/>
+    <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_BXeFIEJhEei5GdIMm-4mwA" sourceNode="_-9CqEEJgEei5GdIMm-4mwA" targetNode="_00vM4B2LEei8arfb2j0BMw">
+      <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//InType"/>
+      <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//InType/@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">
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/InCompartment.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/InCompartment.java
deleted file mode 100644
index 4b0c5a03..00000000
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/InCompartment.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- */
-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/InType.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/InType.java
new file mode 100644
index 00000000..395f3cbf
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/InType.java
@@ -0,0 +1,17 @@
+/**
+ */
+package editpolicymodel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>In Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see editpolicymodel.editpolicymodelPackage#getInType()
+ * @model
+ * @generated
+ */
+public interface InType extends TypeArgumentRule {
+} // InType
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelFactory.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelFactory.java
index 21873965..9c64e676 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelFactory.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelFactory.java
@@ -238,13 +238,13 @@ public interface editpolicymodelFactory extends EFactory {
 	SourceEqualsTargetType createSourceEqualsTargetType();
 
 	/**
-	 * Returns a new object of class '<em>In Compartment</em>'.
+	 * Returns a new object of class '<em>In Type</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>In Compartment</em>'.
+	 * @return a new object of class '<em>In Type</em>'.
 	 * @generated
 	 */
-	InCompartment createInCompartment();
+	InType createInType();
 
 	/**
 	 * Returns the package supported by this factory.
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelPackage.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelPackage.java
index 6088cc75..a4faf987 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelPackage.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelPackage.java
@@ -1252,32 +1252,41 @@ public interface editpolicymodelPackage extends EPackage {
 	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.
+	 * The meta object id for the '{@link editpolicymodel.impl.InTypeImpl <em>In Type</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see editpolicymodel.impl.InCompartmentImpl
-	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getInCompartment()
+	 * @see editpolicymodel.impl.InTypeImpl
+	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getInType()
 	 * @generated
 	 */
-	int IN_COMPARTMENT = 33;
+	int IN_TYPE = 33;
 
 	/**
-	 * The number of structural features of the '<em>In Compartment</em>' class.
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IN_TYPE__TYPE = TYPE_ARGUMENT_RULE__TYPE;
+
+	/**
+	 * The number of structural features of the '<em>In Type</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int IN_COMPARTMENT_FEATURE_COUNT = CONSTRAINT_RULE_FEATURE_COUNT + 0;
+	int IN_TYPE_FEATURE_COUNT = TYPE_ARGUMENT_RULE_FEATURE_COUNT + 0;
 
 	/**
-	 * The number of operations of the '<em>In Compartment</em>' class.
+	 * The number of operations of the '<em>In Type</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int IN_COMPARTMENT_OPERATION_COUNT = CONSTRAINT_RULE_OPERATION_COUNT + 0;
+	int IN_TYPE_OPERATION_COUNT = TYPE_ARGUMENT_RULE_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link editpolicymodel.ActionEnum <em>Action Enum</em>}' enum.
@@ -1817,14 +1826,14 @@ public interface editpolicymodelPackage extends EPackage {
 	EClass getSourceEqualsTargetType();
 
 	/**
-	 * Returns the meta object for class '{@link editpolicymodel.InCompartment <em>In Compartment</em>}'.
+	 * Returns the meta object for class '{@link editpolicymodel.InType <em>In Type</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>In Compartment</em>'.
-	 * @see editpolicymodel.InCompartment
+	 * @return the meta object for class '<em>In Type</em>'.
+	 * @see editpolicymodel.InType
 	 * @generated
 	 */
-	EClass getInCompartment();
+	EClass getInType();
 
 	/**
 	 * Returns the meta object for enum '{@link editpolicymodel.ActionEnum <em>Action Enum</em>}'.
@@ -2338,14 +2347,14 @@ public interface editpolicymodelPackage extends EPackage {
 		EClass SOURCE_EQUALS_TARGET_TYPE = eINSTANCE.getSourceEqualsTargetType();
 
 		/**
-		 * The meta object literal for the '{@link editpolicymodel.impl.InCompartmentImpl <em>In Compartment</em>}' class.
+		 * The meta object literal for the '{@link editpolicymodel.impl.InTypeImpl <em>In Type</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see editpolicymodel.impl.InCompartmentImpl
-		 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getInCompartment()
+		 * @see editpolicymodel.impl.InTypeImpl
+		 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getInType()
 		 * @generated
 		 */
-		EClass IN_COMPARTMENT = eINSTANCE.getInCompartment();
+		EClass IN_TYPE = eINSTANCE.getInType();
 
 		/**
 		 * The meta object literal for the '{@link editpolicymodel.ActionEnum <em>Action Enum</em>}' enum.
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/InCompartmentImpl.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/InTypeImpl.java
similarity index 57%
rename from org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/InCompartmentImpl.java
rename to org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/InTypeImpl.java
index 02e7c6f0..bc4afb22 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/InCompartmentImpl.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/InTypeImpl.java
@@ -2,25 +2,25 @@
  */
 package editpolicymodel.impl;
 
-import editpolicymodel.InCompartment;
+import editpolicymodel.InType;
 import editpolicymodel.editpolicymodelPackage;
 
 import org.eclipse.emf.ecore.EClass;
 
 /**
  * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>In Compartment</b></em>'.
+ * An implementation of the model object '<em><b>In Type</b></em>'.
  * <!-- end-user-doc -->
  *
  * @generated
  */
-public class InCompartmentImpl extends ConstraintRuleImpl implements InCompartment {
+public class InTypeImpl extends TypeArgumentRuleImpl implements InType {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected InCompartmentImpl() {
+	protected InTypeImpl() {
 		super();
 	}
 
@@ -31,7 +31,7 @@ public class InCompartmentImpl extends ConstraintRuleImpl implements InCompartme
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return editpolicymodelPackage.Literals.IN_COMPARTMENT;
+		return editpolicymodelPackage.Literals.IN_TYPE;
 	}
 
-} //InCompartmentImpl
+} //InTypeImpl
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelFactoryImpl.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelFactoryImpl.java
index c98fc96d..0d3a56cb 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelFactoryImpl.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelFactoryImpl.java
@@ -81,7 +81,7 @@ public class editpolicymodelFactoryImpl extends EFactoryImpl implements editpoli
 			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();
+			case editpolicymodelPackage.IN_TYPE: return createInType();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -370,9 +370,9 @@ public class editpolicymodelFactoryImpl extends EFactoryImpl implements editpoli
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public InCompartment createInCompartment() {
-		InCompartmentImpl inCompartment = new InCompartmentImpl();
-		return inCompartment;
+	public InType createInType() {
+		InTypeImpl inType = new InTypeImpl();
+		return inType;
 	}
 
 	/**
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelPackageImpl.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelPackageImpl.java
index a42aedf2..a1d60d2d 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelPackageImpl.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelPackageImpl.java
@@ -15,7 +15,7 @@ import editpolicymodel.FeatureNameEnum;
 import editpolicymodel.FeatureRule;
 import editpolicymodel.ImplicationConstraintRule;
 import editpolicymodel.ImplicationFeatureRule;
-import editpolicymodel.InCompartment;
+import editpolicymodel.InType;
 import editpolicymodel.IsFeature;
 import editpolicymodel.IsParent;
 import editpolicymodel.IsSourceType;
@@ -295,7 +295,7 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass inCompartmentEClass = null;
+	private EClass inTypeEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -828,8 +828,8 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getInCompartment() {
-		return inCompartmentEClass;
+	public EClass getInType() {
+		return inTypeEClass;
 	}
 
 	/**
@@ -969,7 +969,7 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 
 		sourceEqualsTargetTypeEClass = createEClass(SOURCE_EQUALS_TARGET_TYPE);
 
-		inCompartmentEClass = createEClass(IN_COMPARTMENT);
+		inTypeEClass = createEClass(IN_TYPE);
 
 		// Create enums
 		actionEnumEEnum = createEEnum(ACTION_ENUM);
@@ -1034,7 +1034,7 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 		andFeatureRuleEClass.getESuperTypes().add(this.getNaryFeatureRule());
 		sourceEqualsTargetEClass.getESuperTypes().add(this.getConstraintRule());
 		sourceEqualsTargetTypeEClass.getESuperTypes().add(this.getConstraintRule());
-		inCompartmentEClass.getESuperTypes().add(this.getConstraintRule());
+		inTypeEClass.getESuperTypes().add(this.getTypeArgumentRule());
 
 		// Initialize classes, features, and operations; add parameters
 		initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -1119,7 +1119,7 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 
 		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);
+		initEClass(inTypeEClass, InType.class, "InType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		// Initialize enums and add enum literals
 		initEEnum(actionEnumEEnum, ActionEnum.class, "ActionEnum");
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelAdapterFactory.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelAdapterFactory.java
index cdd962e4..551d4041 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelAdapterFactory.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelAdapterFactory.java
@@ -200,8 +200,8 @@ public class editpolicymodelAdapterFactory extends AdapterFactoryImpl {
 				return createSourceEqualsTargetTypeAdapter();
 			}
 			@Override
-			public Adapter caseInCompartment(InCompartment object) {
-				return createInCompartmentAdapter();
+			public Adapter caseInType(InType object) {
+				return createInTypeAdapter();
 			}
 			@Override
 			public Adapter defaultCase(EObject object) {
@@ -686,16 +686,16 @@ public class editpolicymodelAdapterFactory extends AdapterFactoryImpl {
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link editpolicymodel.InCompartment <em>In Compartment</em>}'.
+	 * Creates a new adapter for an object of class '{@link editpolicymodel.InType <em>In 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.InCompartment
+	 * @see editpolicymodel.InType
 	 * @generated
 	 */
-	public Adapter createInCompartmentAdapter() {
+	public Adapter createInTypeAdapter() {
 		return null;
 	}
 
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelSwitch.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelSwitch.java
index 9372cb6b..b480b7ff 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelSwitch.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelSwitch.java
@@ -323,10 +323,11 @@ public class editpolicymodelSwitch<T> extends Switch<T> {
 				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);
+			case editpolicymodelPackage.IN_TYPE: {
+				InType inType = (InType)theEObject;
+				T result = caseInType(inType);
+				if (result == null) result = caseTypeArgumentRule(inType);
+				if (result == null) result = caseConstraintRule(inType);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -830,17 +831,17 @@ public class editpolicymodelSwitch<T> extends Switch<T> {
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>In Compartment</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>In 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>In Compartment</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>In Type</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseInCompartment(InCompartment object) {
+	public T caseInType(InType object) {
 		return null;
 	}
 
diff --git a/org.framed.iorm.ui/core/baseRules.ecl b/org.framed.iorm.ui/core/baseRules.ecl
new file mode 100644
index 00000000..1552f9e9
--- /dev/null
+++ b/org.framed.iorm.ui/core/baseRules.ecl
@@ -0,0 +1,22 @@
+//https://github.com/leondart/FRaMED/wiki/EditPolicy-Rules
+ 
+//base rules 
+Add RoleType (true) when InCompartment(); 
+Create RoleType (true) when InCompartment(); 
+
+Add NaturalType (true) when true;
+Add Group (true) when true;
+Create NaturalType (true) when true;
+Create Group (true) when true;
+
+Create RelationshipExclusion (true) when true;
+Create RelationshipImplication (true) when true;
+Create Inheritance (true) when true;
+Create Fulfillment (true) when true;
+Create Relationship (true) when true;
+
+//enable all context menues
+Execute CompartmentType (true) when true;
+Execute Relationship (true) when true;
+Execute Fulfillment (true) when true;
+Execute Inheritance (true) when true;
diff --git a/org.framed.iorm.ui/core/baseRules.editpolicy b/org.framed.iorm.ui/core/baseRules.editpolicy
index d1615af4..c17974c9 100644
--- a/org.framed.iorm.ui/core/baseRules.editpolicy
+++ b/org.framed.iorm.ui/core/baseRules.editpolicy
@@ -2,11 +2,11 @@
 <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">
   <policies action="Add" actionType="RoleType">
     <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="editpolicymodel:InCompartment"/>
+    <constraintRule xsi:type="editpolicymodel:InType"/>
   </policies>
   <policies actionType="RoleType">
     <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="editpolicymodel:InCompartment"/>
+    <constraintRule xsi:type="editpolicymodel:InType"/>
   </policies>
   <policies action="Add" actionType="NaturalType">
     <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/>
diff --git a/org.framed.iorm.ui/core/fulfillment/Fulfillment.ecl b/org.framed.iorm.ui/core/fulfillment/Fulfillment.ecl
new file mode 100644
index 00000000..11f20422
--- /dev/null
+++ b/org.framed.iorm.ui/core/fulfillment/Fulfillment.ecl
@@ -0,0 +1,9 @@
+//Fullfillment or Players?? 
+Add Fulfillment (Naturals) when IsSourceType(NaturalType) and IsTargetType(CompartmentType);
+Start Fulfillment (Naturals) when IsSourceType(NaturalType); 
+Add Fulfillment (Roles) when IsSourceType(RoleType) and IsTargetType(CompartmentType);
+Start Fulfillment (Roles) when IsSourceType(RoleType);
+Add Fulfillment (Compartments) when IsSourceType(CompartmentType) and IsTargetType(CompartmentType) and !SourceEqualsTarget();
+Start Fulfillment (Compartments) when IsSourceType(CompartmentType);
+Add Fulfillment (Dates) when IsSourceType(DataType);
+Start Fulfillment (Dates) when IsSourceType(DataType);
\ No newline at end of file
diff --git a/org.framed.iorm.ui/core/fulfillment/FulfillmentPattern.java b/org.framed.iorm.ui/core/fulfillment/FulfillmentPattern.java
index caaf0fba..e7d9e250 100644
--- a/org.framed.iorm.ui/core/fulfillment/FulfillmentPattern.java
+++ b/org.framed.iorm.ui/core/fulfillment/FulfillmentPattern.java
@@ -119,8 +119,6 @@ public class FulfillmentPattern extends FRaMEDConnectionPattern {
 				editFulfillmentFeature.execute(customContext);
 	}	}
 	
-	// add feature
-	// ~~~~~~~~~~~
 	/**
 	 * calculates if a fulfillment can be added to the pictogram diagram
 	 * <p>
@@ -133,7 +131,7 @@ public class FulfillmentPattern extends FRaMEDConnectionPattern {
 		if (addContext.getNewObject() instanceof Relation) {
 			Relation relation = (Relation) addContext.getNewObject();
 			if (relation.getType() == Type.FULFILLMENT)
-				   return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext); //TODO: Add actual Type
+				   return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext, relation.getType());
 		}
 		return false;
 	}
diff --git a/org.framed.iorm.ui/core/inheritance/InheritancePattern.java b/org.framed.iorm.ui/core/inheritance/InheritancePattern.java
index 75429f1e..5b610986 100644
--- a/org.framed.iorm.ui/core/inheritance/InheritancePattern.java
+++ b/org.framed.iorm.ui/core/inheritance/InheritancePattern.java
@@ -119,7 +119,7 @@ public class InheritancePattern extends FRaMEDConnectionPattern {
 		if(addContext.getNewObject() instanceof Relation) {
 		   Relation relation = (Relation) addContext.getNewObject();
 		   if(relation.getType() == Type.INHERITANCE)
-			   return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext); //Why is the Type not given ,Type.INHERITANCE
+			   return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext, relation.getType());
 		}
 		return false;
 	}
@@ -178,19 +178,15 @@ public class InheritancePattern extends FRaMEDConnectionPattern {
 	    Anchor targetAnchor = createContext.getTargetAnchor();
 	    ModelElement source = UIUtil.getModelElementForAnchor(sourceAnchor);
 	    ModelElement target = UIUtil.getModelElementForAnchor(targetAnchor);
-	    //TODO: Check whether both elements have the same Model to Create In
 	    Model sM=getModelToCreateIn(source);
 	    Model tM=getModelToCreateIn(target);
 	    if(source instanceof org.framed.iorm.model.Shape && target instanceof org.framed.iorm.model.Shape) {
 			org.framed.iorm.model.Shape sourceShape = (org.framed.iorm.model.Shape) source;
 			org.framed.iorm.model.Shape targetShape = (org.framed.iorm.model.Shape) target;
-			if(sourceShape != null && targetShape != null) {
-				if(sourceShape.getContainer() == targetShape.getContainer() && //TODO: Fix this Check using sM == tM
-			       !(sourceShape.equals(targetShape))) { //TODO: Move this check to EditPolicy
-			    	if(types.contains(sourceShape.getType())) //TODO: Remove these tests and defer them to the EditPolicyHandler
-			    		if(targetShape.getType() == sourceShape.getType())
-							return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, Type.INHERITANCE);
-		}	} 	}
+			if(sourceShape != null && targetShape != null && sM == tM) {
+			    if(types.contains(sourceShape.getType())) //TODO: Remove these tests and defer them to the EditPolicyHandler
+					return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, Type.INHERITANCE);
+		}	}
 	    return false;
 	}
 	 
diff --git a/org.framed.iorm.ui/modules/compartment/CompartmentTypes.ecl b/org.framed.iorm.ui/modules/compartment/CompartmentTypes.ecl
new file mode 100644
index 00000000..f80f120a
--- /dev/null
+++ b/org.framed.iorm.ui/modules/compartment/CompartmentTypes.ecl
@@ -0,0 +1,8 @@
+//compartmentTypes
+//If Compartment_Types is not set, then only one CompartmentType can be
+//added in the top-level view (This will be named RoleModel).
+Add CompartmentType (!Compartment_Types) when !InCompartment() and !ContainsCompartment();
+Create CompartmentType (!Compartment_Types) when !InCompartment() and !ContainsCompartment();
+Add CompartmentType (Compartment_Types) when !InCompartment();
+Create CompartmentType (Compartment_Types) when !InCompartment();
+ 
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/compartment/CompartmentTypes.editpolicy b/org.framed.iorm.ui/modules/compartment/CompartmentTypes.editpolicy
index e0cca489..a2754200 100644
--- a/org.framed.iorm.ui/modules/compartment/CompartmentTypes.editpolicy
+++ b/org.framed.iorm.ui/modules/compartment/CompartmentTypes.editpolicy
@@ -6,7 +6,7 @@
     </featureRule>
     <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
       <rules xsi:type="editpolicymodel:NotConstraintRule">
-        <rule xsi:type="editpolicymodel:InCompartment"/>
+        <rule xsi:type="editpolicymodel:InType"/>
       </rules>
       <rules xsi:type="editpolicymodel:NotConstraintRule">
         <rule xsi:type="editpolicymodel:ContainsCompartment"/>
@@ -19,7 +19,7 @@
     </featureRule>
     <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
       <rules xsi:type="editpolicymodel:NotConstraintRule">
-        <rule xsi:type="editpolicymodel:InCompartment"/>
+        <rule xsi:type="editpolicymodel:InType"/>
       </rules>
       <rules xsi:type="editpolicymodel:NotConstraintRule">
         <rule xsi:type="editpolicymodel:ContainsCompartment"/>
@@ -29,13 +29,13 @@
   <policies action="Add" actionType="CompartmentType">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Compartment_Types"/>
     <constraintRule xsi:type="editpolicymodel:NotConstraintRule">
-      <rule xsi:type="editpolicymodel:InCompartment"/>
+      <rule xsi:type="editpolicymodel:InType"/>
     </constraintRule>
   </policies>
   <policies actionType="CompartmentType">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Compartment_Types"/>
     <constraintRule xsi:type="editpolicymodel:NotConstraintRule">
-      <rule xsi:type="editpolicymodel:InCompartment"/>
+      <rule xsi:type="editpolicymodel:InType"/>
     </constraintRule>
   </policies>
 </editpolicymodel:Model>
diff --git a/org.framed.iorm.ui/modules/compartment/containts_compartments/ContainsCompartments.ecl b/org.framed.iorm.ui/modules/compartment/containts_compartments/ContainsCompartments.ecl
new file mode 100644
index 00000000..1c374da4
--- /dev/null
+++ b/org.framed.iorm.ui/modules/compartment/containts_compartments/ContainsCompartments.ecl
@@ -0,0 +1,3 @@
+//ContainsCompartments
+Add CompartmentType (Contains_Compartments) when InCompartment();
+Create CompartmentType (Contains_Compartments) when InCompartment(); 
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/compartment/containts_compartments/ContainsCompartments.editpolicy b/org.framed.iorm.ui/modules/compartment/containts_compartments/ContainsCompartments.editpolicy
index cf4764fa..e10e6ed2 100644
--- a/org.framed.iorm.ui/modules/compartment/containts_compartments/ContainsCompartments.editpolicy
+++ b/org.framed.iorm.ui/modules/compartment/containts_compartments/ContainsCompartments.editpolicy
@@ -2,10 +2,10 @@
 <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">
   <policies action="Add" actionType="CompartmentType">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Contains_Compartments"/>
-    <constraintRule xsi:type="editpolicymodel:InCompartment"/>
+    <constraintRule xsi:type="editpolicymodel:InType"/>
   </policies>
   <policies actionType="CompartmentType">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Contains_Compartments"/>
-    <constraintRule xsi:type="editpolicymodel:InCompartment"/>
+    <constraintRule xsi:type="editpolicymodel:InType"/>
   </policies>
 </editpolicymodel:Model>
diff --git a/org.framed.iorm.ui/modules/compartment/inheritance/CompartmentInheritance.ecl b/org.framed.iorm.ui/modules/compartment/inheritance/CompartmentInheritance.ecl
new file mode 100644
index 00000000..35e295cc
--- /dev/null
+++ b/org.framed.iorm.ui/modules/compartment/inheritance/CompartmentInheritance.ecl
@@ -0,0 +1,4 @@
+//Inheritance or Role_Inheritance/Data_Type_Inheritance/Compartment_Inheritance     
+Start Inheritance (Compartment_Inheritance) when IsSourceType(CompartmentType); 
+Add Inheritance (Compartment_Inheritance) when IsSourceType(CompartmentType) and !SourceEqualsTarget() and SourceEqualsTargetType(); //acyclic
+ 
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/compartment/playing_own_roles/PlayingOwnRoles.ecl b/org.framed.iorm.ui/modules/compartment/playing_own_roles/PlayingOwnRoles.ecl
new file mode 100644
index 00000000..343a77e1
--- /dev/null
+++ b/org.framed.iorm.ui/modules/compartment/playing_own_roles/PlayingOwnRoles.ecl
@@ -0,0 +1,3 @@
+//Playing_own_roles
+Start Fulfillment (Playable_by_Defining_Compartment) when IsSourceType(CompartmentType); //sourceEqualsTarget not available on Start
+Add Fulfillment (Playable_by_Defining_Compartment) when IsSourceType(CompartmentType) and SourceEqualsTarget();
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/compartment/properties/CompartmentTypeAttsAndOps.ecl b/org.framed.iorm.ui/modules/compartment/properties/CompartmentTypeAttsAndOps.ecl
new file mode 100644
index 00000000..b223b457
--- /dev/null
+++ b/org.framed.iorm.ui/modules/compartment/properties/CompartmentTypeAttsAndOps.ecl
@@ -0,0 +1,6 @@
+//Compartment Properties
+Create_Property CompartmentType (Compartment_Properties) when true;
+Create_Attribute CompartmentType (Compartment_Properties) when true;
+Create_Operation CompartmentType (Compartment_Behavior) when true;
+Add_Property CompartmentType (true) when true;
+ 
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/datatype/DataTypes.ecl b/org.framed.iorm.ui/modules/datatype/DataTypes.ecl
new file mode 100644
index 00000000..10794ec2
--- /dev/null
+++ b/org.framed.iorm.ui/modules/datatype/DataTypes.ecl
@@ -0,0 +1,3 @@
+//DataTypes
+Add DataType (Data_Types) when true;  
+Create DataType (Data_Types) when true;
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/datatype/inheritance/DataTypeInheritance.ecl b/org.framed.iorm.ui/modules/datatype/inheritance/DataTypeInheritance.ecl
new file mode 100644
index 00000000..625f62ad
--- /dev/null
+++ b/org.framed.iorm.ui/modules/datatype/inheritance/DataTypeInheritance.ecl
@@ -0,0 +1,3 @@
+//Inheritance or Role_Inheritance/Data_Type_Inheritance/Compartment_Inheritance
+Start Inheritance (Data_Type_Inheritance) when IsSourceType(DataType);
+Add Inheritance (Data_Type_Inheritance) when IsSourceType(DataType) and !SourceEqualsTarget() and SourceEqualsTargetType(); // check acyclic
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/relationship/Relationship.ecl b/org.framed.iorm.ui/modules/relationship/Relationship.ecl
new file mode 100644
index 00000000..7ced21f0
--- /dev/null
+++ b/org.framed.iorm.ui/modules/relationship/Relationship.ecl
@@ -0,0 +1,6 @@
+//Relationships 
+Start Relationship (Relationships) when true;
+Add Relationship (Relationships) when true;
+ 
+Start Relationship (true) when IsSourceType(RoleType);//For Relationship-Relation Source and Target must be Role-Type	
+Add Relationship (true) when IsTargetType(RoleType) and IsSourceType(RoleType);
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/relationship/RelationshipPattern.java b/org.framed.iorm.ui/modules/relationship/RelationshipPattern.java
index a64a1483..a964fb55 100644
--- a/org.framed.iorm.ui/modules/relationship/RelationshipPattern.java
+++ b/org.framed.iorm.ui/modules/relationship/RelationshipPattern.java
@@ -160,9 +160,7 @@ public class RelationshipPattern extends FRaMEDConnectionPattern {
 			DeleteContext deleteContextForInterRelCon = new DeleteContext(connectionToDeleteAlso);
 			deleteConnectionFeature.delete(deleteContextForInterRelCon);
 	}	}
-	
-	//add feature
-	//~~~~~~~~~~~
+
 	/**
 	 * calculates if a relationship can be added to the pictogram diagram
 	 * <p>
@@ -174,7 +172,7 @@ public class RelationshipPattern extends FRaMEDConnectionPattern {
 		if(addContext.getNewObject() instanceof Relation) {
 		   Relation relation = (Relation) addContext.getNewObject();
 		   if(relation.getType() == Type.RELATIONSHIP) {
-			   return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext);
+			   return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext, relation.getType());
 		}	}
 		return false;
 	}
diff --git a/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/AbstractInterRelationshipConstraintPattern.java b/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/AbstractInterRelationshipConstraintPattern.java
index b286e42d..ce8cc44d 100644
--- a/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/AbstractInterRelationshipConstraintPattern.java
+++ b/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/AbstractInterRelationshipConstraintPattern.java
@@ -77,8 +77,9 @@ public abstract class AbstractInterRelationshipConstraintPattern extends FRaMEDC
 		Anchor newAnchor = context.getNewAnchor();
 		org.framed.iorm.model.ModelElement newRelation = UIUtil.getModelElementForAnchor(newAnchor);
 		if(newRelation != null) 
-			return (newRelation.getType() == Type.RELATIONSHIP);
-		return false; //TODO: Call EditPolicyHandler
+			//return (newRelation.getType() == Type.RELATIONSHIP);
+			return EditPolicyService.getHandler(this.getDiagram()).canReconnect(context, newRelation.getType());
+		return false;
 	}
 	
 	/**
@@ -110,7 +111,7 @@ public abstract class AbstractInterRelationshipConstraintPattern extends FRaMEDC
 		if(addContext.getNewObject() instanceof Relation) {
 			Relation relation = (Relation) addContext.getNewObject();
 			if(relation.getType() == type) {
-				return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext); //Type use actual Type
+				return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext, type);
 			}   
 		}
 		return false;
@@ -163,12 +164,10 @@ public abstract class AbstractInterRelationshipConstraintPattern extends FRaMEDC
 	    org.framed.iorm.model.ModelElement sourceConnection = UIUtil.getModelElementForAnchor(sourceAnchor);
 	    org.framed.iorm.model.ModelElement targetConnection = UIUtil.getModelElementForAnchor(targetAnchor);
 	    if(sourceConnection != null && targetConnection != null) {
-	    	if(sourceConnection.getContainer() == targetConnection.getContainer() &&
-	    	   !(sourceConnection.equals(targetConnection))) {
-	    		if(sourceConnection.getType() == Type.RELATIONSHIP)
-	    			if(targetConnection.getType() == sourceConnection.getType())
-						   return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, Type.RELATIONSHIP); //Use actual Type to check
-		}	}
+	    	if(sourceConnection.getContainer() == targetConnection.getContainer()) {
+				return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, sourceConnection.getType() );
+	    	}	
+	    }
 	    return false;
 	}
 		
@@ -186,7 +185,7 @@ public abstract class AbstractInterRelationshipConstraintPattern extends FRaMEDC
 		org.framed.iorm.model.ModelElement sourceConnection = UIUtil.getModelElementForAnchor(sourceAnchor);
 		if(sourceConnection != null){	
 			if(sourceConnection.getType() == Type.RELATIONSHIP)
-				return true; //TODO: Call EditPolicyHandler
+				return EditPolicyService.getHandler(this.getDiagram()).canStart(createContext, sourceConnection.getType() );
 		}	
 		return false;
 	}
diff --git a/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/InterRelationship.ecl b/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/InterRelationship.ecl
new file mode 100644
index 00000000..e846307e
--- /dev/null
+++ b/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/InterRelationship.ecl
@@ -0,0 +1,15 @@
+//InterRelationship 
+Add RelationshipExclusion (Inter_Relationship_Constraints) when true;
+Start RelationshipExclusion (Inter_Relationship_Constraints) when true;
+Add RelationshipImplication (Inter_Relationship_Constraints) when true;
+Start RelationshipImplication (Inter_Relationship_Constraints) when true;
+
+ 
+//IntraRelationshipConstraint
+/*
+ * Irreflexive,  Acyclic, cyclic, ...
+ */
+Add Irreflexive (Intra_Relationship_Constraints) when true;
+Start Irreflexive (Intra_Relationship_Constraints) when true;
+Add Irreflexive (Intra_Relationship_Constraints) when true;
+Start Irreflexive (Intra_Relationship_Constraints) when true;
diff --git a/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/InterRelationship.editpolicy b/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/InterRelationship.editpolicy
index 11bccd06..e1ca26c4 100644
--- a/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/InterRelationship.editpolicy
+++ b/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/InterRelationship.editpolicy
@@ -16,4 +16,20 @@
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
     <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
   </policies>
+  <policies action="Add" actionType="Irreflexive">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
+    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+  </policies>
+  <policies action="Start" actionType="Irreflexive">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
+    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+  </policies>
+  <policies action="Add" actionType="Irreflexive">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
+    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+  </policies>
+  <policies action="Start" actionType="Irreflexive">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
+    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+  </policies>
 </editpolicymodel:Model>
diff --git a/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/AbstractIntraRelationshipConstraintPattern.java b/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/AbstractIntraRelationshipConstraintPattern.java
index 237acf86..b6b3be64 100644
--- a/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/AbstractIntraRelationshipConstraintPattern.java
+++ b/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/AbstractIntraRelationshipConstraintPattern.java
@@ -120,7 +120,7 @@ public abstract class AbstractIntraRelationshipConstraintPattern extends FRaMEDS
 		if(addContext.getNewObject() instanceof Relation) {
 		   Relation relation = (Relation) addContext.getNewObject();
 		   if(relation.getType() == type) {
-			   return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext);
+			   return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext, type);
 		}	}
 		return false;
 	}
diff --git a/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.ecl b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.ecl
new file mode 100644
index 00000000..68cdb6f9
--- /dev/null
+++ b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.ecl
@@ -0,0 +1,3 @@
+//groupConstraints/RoleGroup 
+Add RoleGroup (Group_Constraints) when InCompartment();  
+Create RoleGroup (Group_Constraints) when InCompartment();
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.editpolicy b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.editpolicy
new file mode 100644
index 00000000..539cf64e
--- /dev/null
+++ b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.editpolicy
@@ -0,0 +1,11 @@
+<?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">
+  <policies action="Add" actionType="RoleGroup">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    <constraintRule xsi:type="editpolicymodel:InType"/>
+  </policies>
+  <policies actionType="RoleGroup">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    <constraintRule xsi:type="editpolicymodel:InType"/>
+  </policies>
+</editpolicymodel:Model>
diff --git a/org.framed.iorm.ui/modules/roletype/inheritance/RoleInheritance.ecl b/org.framed.iorm.ui/modules/roletype/inheritance/RoleInheritance.ecl
new file mode 100644
index 00000000..5ad798c7
--- /dev/null
+++ b/org.framed.iorm.ui/modules/roletype/inheritance/RoleInheritance.ecl
@@ -0,0 +1,3 @@
+//Inheritance or Role_Inheritance/Data_Type_Inheritance/Compartment_Inheritance 
+Start Inheritance (Role_Inheritance) when IsSourceType(RoleType); 
+Add Inheritance (Role_Inheritance) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType();  //TODO, check acyclic 
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/roletype/properties/RoleTypeAttsAndOps.ecl b/org.framed.iorm.ui/modules/roletype/properties/RoleTypeAttsAndOps.ecl
new file mode 100644
index 00000000..68c04876
--- /dev/null
+++ b/org.framed.iorm.ui/modules/roletype/properties/RoleTypeAttsAndOps.ecl
@@ -0,0 +1,5 @@
+//Role Structure 
+Create_Property RoleType (Role_Properties) when true;
+Create_Attribute RoleType (Role_Properties) when true;
+Create_Operation RoleType (Role_Behavior) when true;
+Add_Property RoleType (true) when true;
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl b/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl
new file mode 100644
index 00000000..26b82a35
--- /dev/null
+++ b/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl
@@ -0,0 +1,9 @@
+//RoleConstraints 
+Start RoleImplication (Role_Implication) when IsSourceType(RoleType); 
+Add RoleImplication (Role_Implication) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
+ 
+Start RoleEquivalence (Role_Equivalence) when IsSourceType(RoleType); 
+Add RoleEquivalence (Role_Equivalence) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
+
+Start RoleProhibition (Role_Prohibition) when IsSourceType(RoleType); 
+Add RoleProhibition (Role_Prohibition) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.editpolicy b/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.editpolicy
index 4c7187c4..f1fe0a70 100644
--- a/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.editpolicy
+++ b/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.editpolicy
@@ -1,11 +1,51 @@
 <?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">
-  <policies action="Add" actionType="RoleGroup">
-    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
-    <constraintRule xsi:type="editpolicymodel:InCompartment"/>
+  <policies action="Start" actionType="RoleImplication">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Role_Implication"/>
+    <constraintRule xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
   </policies>
-  <policies actionType="RoleGroup">
-    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
-    <constraintRule xsi:type="editpolicymodel:InCompartment"/>
+  <policies action="Add" actionType="RoleImplication">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Role_Implication"/>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
+    </constraintRule>
+  </policies>
+  <policies action="Start" actionType="RoleEquivalence">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Role_Equivalence"/>
+    <constraintRule xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+  </policies>
+  <policies action="Add" actionType="RoleEquivalence">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Role_Equivalence"/>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
+    </constraintRule>
+  </policies>
+  <policies action="Start" actionType="RoleProhibition">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Role_Prohibition"/>
+    <constraintRule xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+  </policies>
+  <policies action="Add" actionType="RoleProhibition">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Role_Prohibition"/>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
+    </constraintRule>
   </policies>
 </editpolicymodel:Model>
diff --git a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/ConstraintRuleVisitor.java b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/ConstraintRuleVisitor.java
index 2e852cf1..6735388d 100644
--- a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/ConstraintRuleVisitor.java
+++ b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/ConstraintRuleVisitor.java
@@ -15,13 +15,14 @@ import org.eclipse.graphiti.mm.pictograms.Shape;
 import org.framed.iorm.model.ModelElement;
 import org.framed.iorm.model.Type;
 import org.framed.iorm.ui.UIUtil;
+import org.framed.iorm.ui.exceptions.InvalidTypeOfEditorInputException;
 import org.framed.iorm.ui.exceptions.NoDiagramFoundException;
 
 import editpolicymodel.AndConstraintRule;
 import editpolicymodel.ConstraintRule;
 import editpolicymodel.ContainsCompartment;
 import editpolicymodel.FalseConstraintRule;
-import editpolicymodel.InCompartment;
+import editpolicymodel.InType;
 import editpolicymodel.IsSourceType;
 import editpolicymodel.IsTargetType;
 import editpolicymodel.NotConstraintRule;
@@ -79,8 +80,8 @@ public class ConstraintRuleVisitor {
 	 * @return Boolean
 	 */
 	public boolean checkRule(ConstraintRule rule) {
-		if (rule instanceof InCompartment) {
-			return isInCompartmentRuleVisitor((InCompartment) rule);
+		if (rule instanceof InType) {
+			return isInTypeRuleVisitor((InType) rule);
 		}
 
 		if (rule instanceof AndConstraintRule)
@@ -124,7 +125,7 @@ public class ConstraintRuleVisitor {
 		return true;
 	}
 
-	private boolean isInCompartmentRuleVisitor(InCompartment rule) {
+	private boolean isInTypeRuleVisitor(InType rule) {
 		ContainerShape container = null;
 		if (this.context instanceof AddContext) {
 			container = ((AddContext) this.context).getTargetContainer();
@@ -134,10 +135,19 @@ public class ConstraintRuleVisitor {
 		if (container == null)
 			return false;
 		// travers Containers to find the compartment type.
-		Diagram compartmentDiagram = findContainerDiagramOfType(container, Type.COMPARTMENT_TYPE);
+		Diagram compartmentDiagram = findContainerDiagramOfType(container, this.getTypeByLiteral(rule.getType().getLiteral()));
 		return compartmentDiagram != null;
 	}
 
+	private Type getTypeByLiteral(String typeString) {
+		for (Type type : Type.VALUES ) {
+			if(type.getLiteral().equals(typeString)) {
+				return type;
+			}
+		}
+		return null;
+	}
+	
 	/**
 	 * Returns the grouping reference (diagram kind) of the given container type, if
 	 * it exists. Note: this method is cached for better performance.
@@ -179,8 +189,7 @@ public class ConstraintRuleVisitor {
 			return null;
 		if (sourceShape instanceof Diagram)
 			return (Diagram) sourceShape;
-		throw new IllegalStateException(
-				"Invariant violated! findDiagramOfType found a sourceShape that was not a Diagram.");
+		throw new IllegalStateException("Invariant violated! findDiagramOfType found a sourceShape that was not a Diagram.");
 	}
 
 	private boolean andRuleVisitor(AndConstraintRule rule) {
@@ -212,22 +221,21 @@ public class ConstraintRuleVisitor {
 	}
 
 	private boolean containsCompartmentVisitor(ContainsCompartment rule) {
-		System.out.println("containsCompartmentVisitor: TODO: " + this.diagram.getChildren().toString());
-		if(this.context instanceof CreateContext) {
-			CreateContext ctx = (CreateContext)this.context;
-			System.out.println(ctx.getTargetContainer().eContents().toString());
-			for(Shape action : ctx.getTargetContainer().getChildren()) {
-				System.out.println(action.toString());
-				System.out.println(action.eResource());
-				System.out.println(action.getClass());
-
-			}
+		ContainerShape container = null;
+		if (this.context instanceof AddContext) {
+			container = ((AddContext) this.context).getTargetContainer();
+		} else if (this.context instanceof CreateContext) {
+			container = ((CreateContext) this.context).getTargetContainer();
 		}
-		return false;
+		if (container == null)
+			return false;
+		// travers Containers to find the compartment type.
+		Diagram compartmentDiagram = findContainerDiagramOfType(container, Type.COMPARTMENT_TYPE);
+		System.out.println("containsCompartmentVisitor: TODO: " + compartmentDiagram != null);
+		return compartmentDiagram != null;
 	}
 
 	private boolean sourceEqualsTargetVisitor(SourceEqualsTarget rule) {
-		// System.out.println("class is: " + this.context.getClass());
 		Anchor sourceAnchor = this.getSourceAnchorFromContext(this.context);
 		ModelElement source = UIUtil.getModelElementForAnchor(sourceAnchor);
 
diff --git a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyHandler.java b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyHandler.java
index 96992e8d..1872daee 100644
--- a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyHandler.java
+++ b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyHandler.java
@@ -63,8 +63,6 @@ public class EditPolicyHandler {
 	 * @return
 	 */
 	private List<ConstraintRule> getConstraints(ActionEnum action, Type type) {
-		System.out.println("Action: " + action.toString() + ", Type: " + type.toString());
-
 		List<ConstraintRule> rules = new LinkedList<>();
 		
 		for(Policy policy: this.activatedPolicies) {
@@ -118,15 +116,7 @@ public class EditPolicyHandler {
 		}
 		return false;
 	}
-	
-	public boolean canAdd(IAddContext context) {
-		//new Object is either relation or shape
-		//TODO: if there are both options, then account for both or remove this method and use the concrete Type
-		Relation relation = (Relation) context.getNewObject();
-		Type type = relation.getType();
-		return this.canAdd(context, type);
-	}
-	
+
 	public boolean canAdd(IAddContext context, Type type) {
 		List<ConstraintRule> constraints = this.getConstraints(ActionEnum.ADD, type);
 		return this.checkConstraints(constraints, context, type);
-- 
GitLab