diff --git a/org.framed.iorm.ui/modules/roletype/group_constraints/RoleConstraintsAndRoleGroups.ecl b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleConstraintsAndRoleGroups.ecl new file mode 100644 index 0000000000000000000000000000000000000000..1c66ead995508a6a991b084e8a23e92884081958 --- /dev/null +++ b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleConstraintsAndRoleGroups.ecl @@ -0,0 +1,36 @@ +//RoleConstraints and RoleGroups +Start RoleImplication (Role_Implication and Group_Constraints) when + IsSourceType(RoleType) or IsSourceType(RoleGroup); +Add RoleImplication (Role_Implication and Group_Constraints) when + (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and + (IsTargetType(RoleType) or IsTargetType(RoleGroup)); +Reconnect RoleImplication (Role_Implication and Group_Constraints) when + (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and + (IsTargetType(RoleType) or IsTargetType(RoleGroup)); +Create RoleImplication (Role_Implication and Group_Constraints) when + (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and + (IsTargetType(RoleType) or IsTargetType(RoleGroup)); + +Start RoleEquivalence (Role_Equivalence and Group_Constraints) when + IsSourceType(RoleType) or IsSourceType(RoleGroup); +Add RoleEquivalence (Role_Equivalence and Group_Constraints) when + (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and + (IsTargetType(RoleType) or IsTargetType(RoleGroup)); +Reconnect RoleEquivalence (Role_Equivalence and Group_Constraints) when + (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and + (IsTargetType(RoleType) or IsTargetType(RoleGroup)); +Create RoleEquivalence (Role_Equivalence and Group_Constraints) when + (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and + (IsTargetType(RoleType) or IsTargetType(RoleGroup)); + +Start RoleProhibition (Role_Prohibition and Group_Constraints) when + IsSourceType(RoleType) or IsSourceType(RoleGroup); +Add RoleProhibition (Role_Prohibition and Group_Constraints) when + (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and + (IsTargetType(RoleType) or IsTargetType(RoleGroup)); +Reconnect RoleProhibition (Role_Prohibition and Group_Constraints) when + (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and + (IsTargetType(RoleType) or IsTargetType(RoleGroup)); +Create RoleProhibition (Role_Prohibition and Group_Constraints) when + (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and + (IsTargetType(RoleType) or IsTargetType(RoleGroup)); \ No newline at end of file diff --git a/org.framed.iorm.ui/modules/roletype/group_constraints/RoleConstraintsAndRoleGroups.editpolicy b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleConstraintsAndRoleGroups.editpolicy new file mode 100644 index 0000000000000000000000000000000000000000..6630ab19de89946fddaaadcf4925b9932ce5a9b9 --- /dev/null +++ b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleConstraintsAndRoleGroups.editpolicy @@ -0,0 +1,222 @@ +<?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="Start" actionType="RoleImplication"> + <featureRule xsi:type="editpolicymodel:AndFeatureRule"> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Implication"/> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/> + </featureRule> + <constraintRule xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/> + </constraintRule> + </policies> + <policies action="Add" actionType="RoleImplication"> + <featureRule xsi:type="editpolicymodel:AndFeatureRule"> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Implication"/> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/> + </featureRule> + <constraintRule xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/> + </rules> + <rules xsi:type="editpolicymodel:NotConstraintRule"> + <rule xsi:type="editpolicymodel:SourceEqualsTarget"/> + </rules> + </rules> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/> + </rules> + </constraintRule> + </policies> + <policies action="Reconnect" actionType="RoleImplication"> + <featureRule xsi:type="editpolicymodel:AndFeatureRule"> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Implication"/> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/> + </featureRule> + <constraintRule xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/> + </rules> + <rules xsi:type="editpolicymodel:NotConstraintRule"> + <rule xsi:type="editpolicymodel:SourceEqualsTarget"/> + </rules> + </rules> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/> + </rules> + </constraintRule> + </policies> + <policies actionType="RoleImplication"> + <featureRule xsi:type="editpolicymodel:AndFeatureRule"> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Implication"/> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/> + </featureRule> + <constraintRule xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/> + </rules> + <rules xsi:type="editpolicymodel:NotConstraintRule"> + <rule xsi:type="editpolicymodel:SourceEqualsTarget"/> + </rules> + </rules> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/> + </rules> + </constraintRule> + </policies> + <policies action="Start" actionType="RoleEquivalence"> + <featureRule xsi:type="editpolicymodel:AndFeatureRule"> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Equivalence"/> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/> + </featureRule> + <constraintRule xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/> + </constraintRule> + </policies> + <policies action="Add" actionType="RoleEquivalence"> + <featureRule xsi:type="editpolicymodel:AndFeatureRule"> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Equivalence"/> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/> + </featureRule> + <constraintRule xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/> + </rules> + <rules xsi:type="editpolicymodel:NotConstraintRule"> + <rule xsi:type="editpolicymodel:SourceEqualsTarget"/> + </rules> + </rules> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/> + </rules> + </constraintRule> + </policies> + <policies action="Reconnect" actionType="RoleEquivalence"> + <featureRule xsi:type="editpolicymodel:AndFeatureRule"> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Equivalence"/> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/> + </featureRule> + <constraintRule xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/> + </rules> + <rules xsi:type="editpolicymodel:NotConstraintRule"> + <rule xsi:type="editpolicymodel:SourceEqualsTarget"/> + </rules> + </rules> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/> + </rules> + </constraintRule> + </policies> + <policies actionType="RoleEquivalence"> + <featureRule xsi:type="editpolicymodel:AndFeatureRule"> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Equivalence"/> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/> + </featureRule> + <constraintRule xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/> + </rules> + <rules xsi:type="editpolicymodel:NotConstraintRule"> + <rule xsi:type="editpolicymodel:SourceEqualsTarget"/> + </rules> + </rules> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/> + </rules> + </constraintRule> + </policies> + <policies action="Start" actionType="RoleProhibition"> + <featureRule xsi:type="editpolicymodel:AndFeatureRule"> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Prohibition"/> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/> + </featureRule> + <constraintRule xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/> + </constraintRule> + </policies> + <policies action="Add" actionType="RoleProhibition"> + <featureRule xsi:type="editpolicymodel:AndFeatureRule"> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Prohibition"/> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/> + </featureRule> + <constraintRule xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/> + </rules> + <rules xsi:type="editpolicymodel:NotConstraintRule"> + <rule xsi:type="editpolicymodel:SourceEqualsTarget"/> + </rules> + </rules> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/> + </rules> + </constraintRule> + </policies> + <policies action="Reconnect" actionType="RoleProhibition"> + <featureRule xsi:type="editpolicymodel:AndFeatureRule"> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Prohibition"/> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/> + </featureRule> + <constraintRule xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/> + </rules> + <rules xsi:type="editpolicymodel:NotConstraintRule"> + <rule xsi:type="editpolicymodel:SourceEqualsTarget"/> + </rules> + </rules> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/> + </rules> + </constraintRule> + </policies> + <policies actionType="RoleProhibition"> + <featureRule xsi:type="editpolicymodel:AndFeatureRule"> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Prohibition"/> + <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/> + </featureRule> + <constraintRule xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:AndConstraintRule"> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/> + </rules> + <rules xsi:type="editpolicymodel:NotConstraintRule"> + <rule xsi:type="editpolicymodel:SourceEqualsTarget"/> + </rules> + </rules> + <rules xsi:type="editpolicymodel:OrConstraintRule"> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/> + <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/> + </rules> + </constraintRule> + </policies> +</editpolicymodel:Model> diff --git a/org.framed.iorm.ui/modules/roletype/role_constraints/AbstractRoleConstraintPattern.java b/org.framed.iorm.ui/modules/roletype/role_constraints/AbstractRoleConstraintPattern.java index 2f40db8cc7454913e0a05d7adbc393bca2b5a860..6b5aea2b923102c06f0069deb436d15c5f32d6e3 100644 --- a/org.framed.iorm.ui/modules/roletype/role_constraints/AbstractRoleConstraintPattern.java +++ b/org.framed.iorm.ui/modules/roletype/role_constraints/AbstractRoleConstraintPattern.java @@ -43,7 +43,7 @@ public abstract class AbstractRoleConstraintPattern extends FRaMEDConnectionPatt org.framed.iorm.model.ModelElement oldShape = UIUtil.getModelElementForAnchor(oldAnchor); if(newShape != null && oldShape != null) { if(newShape.getContainer() == oldShape.getContainer()) { - return EditPolicyService.getHandler(this.getDiagram()).canReconnect(context, this.modelType); + return EditPolicyService.getHandler(this.getDiagram()).canReconnect(context, this.getModelType()); } } return false; } @@ -58,7 +58,7 @@ public abstract class AbstractRoleConstraintPattern extends FRaMEDConnectionPatt if(addContext.getNewObject() instanceof Relation) { Relation relation = (Relation) addContext.getNewObject(); if(relation != null && relation.getType() != null) { - return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext, this.modelType); + return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext, this.getModelType()); } } return false; @@ -82,7 +82,7 @@ public abstract class AbstractRoleConstraintPattern extends FRaMEDConnectionPatt org.framed.iorm.model.ModelElement sourceShape = UIUtil.getModelElementForAnchor(sourceAnchor); org.framed.iorm.model.ModelElement targetShape = UIUtil.getModelElementForAnchor(targetAnchor); if(sourceShape != null && targetShape != null) { - return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, this.modelType); + return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, this.getModelType()); } return false; } @@ -100,7 +100,7 @@ public abstract class AbstractRoleConstraintPattern extends FRaMEDConnectionPatt Anchor sourceAnchor = createContext.getSourceAnchor(); org.framed.iorm.model.ModelElement sourceShape = UIUtil.getModelElementForAnchor(sourceAnchor); if(sourceShape != null){ - return EditPolicyService.getHandler(this.getDiagram()).canStart(createContext, this.modelType); + return EditPolicyService.getHandler(this.getDiagram()).canStart(createContext, this.getModelType()); } return false; } diff --git a/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl b/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl index 2116907788a7c76d881b1c1769f02d67c2bdaf8c..151ba1aaa1797abfddb63829d2a4b03ae233102c 100644 --- a/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl +++ b/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl @@ -2,14 +2,14 @@ Start RoleImplication (Role_Implication) when IsSourceType(RoleType); Add RoleImplication (Role_Implication) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); Reconnect RoleImplication (Role_Implication) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); -Create RoleProhibition (true) when true; +Create 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(); Reconnect RoleEquivalence (Role_Equivalence) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); -Create RoleProhibition (true) when true; +Create 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(); Reconnect RoleProhibition (Role_Prohibition) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); -Create RoleProhibition (true) when true; \ No newline at end of file +Create 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 9302f433ed8aaafccc0083517e09820aa4425499..bef68bc3163c9b5af27ea62dab991692244c867c 100644 --- a/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.editpolicy +++ b/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.editpolicy @@ -28,9 +28,17 @@ <rules xsi:type="editpolicymodel:SourceEqualsTargetType"/> </constraintRule> </policies> - <policies actionType="RoleProhibition"> - <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/> - <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/> + <policies 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"/> @@ -60,9 +68,17 @@ <rules xsi:type="editpolicymodel:SourceEqualsTargetType"/> </constraintRule> </policies> - <policies actionType="RoleProhibition"> - <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/> - <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/> + <policies 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"/> @@ -93,7 +109,15 @@ </constraintRule> </policies> <policies actionType="RoleProhibition"> - <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/> - <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/> + <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>