Skip to content
Snippets Groups Projects
Commit 2cfc4072 authored by Thomas's avatar Thomas
Browse files

Fixed InterRelationship constraints, by fixing canCreate, canStart, and

corresponding EditPolicies
parent 8aa99962
No related branches found
No related tags found
No related merge requests found
......@@ -159,7 +159,7 @@ public abstract class AbstractInterRelationshipConstraintPattern extends FRaMEDC
org.framed.iorm.model.ModelElement targetConnection = UIUtil.getModelElementForAnchor(targetAnchor);
if(sourceConnection != null && targetConnection != null) {
if(sourceConnection.getContainer() == targetConnection.getContainer()) {
return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, this.modelType);
return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, this.getModelType());
}
}
return false;
......@@ -179,7 +179,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 EditPolicyService.getHandler(this.getDiagram()).canStart(createContext, sourceConnection.getType() );
return EditPolicyService.getHandler(this.getDiagram()).canStart(createContext, this.getModelType() );
}
return false;
}
......
//InterRelationship
Start RelationshipExclusion (Inter_Relationship_Constraints) when true;
Add RelationshipExclusion (Inter_Relationship_Constraints) when true;
Reconnect RelationshipExclusion (Inter_Relationship_Constraints) when true;
Create RelationshipExclusion (Inter_Relationship_Constraints) when true;
Start RelationshipExclusion (Inter_Relationship_Constraints) when IsSourceType(Relationship);
Add RelationshipExclusion (Inter_Relationship_Constraints) when IsSourceType(Relationship) and SourceEqualsTargetType() and !SourceEqualsTarget();
Reconnect RelationshipExclusion (Inter_Relationship_Constraints) when IsSourceType(Relationship) and SourceEqualsTargetType() and !SourceEqualsTarget();
Create RelationshipExclusion (Inter_Relationship_Constraints) when IsSourceType(Relationship) and SourceEqualsTargetType() and !SourceEqualsTarget();
Start RelationshipImplication (Inter_Relationship_Constraints) when true;
Add RelationshipImplication (Inter_Relationship_Constraints) when true;
Reconnect RelationshipImplication (Inter_Relationship_Constraints) when true;
Create RelationshipImplication (Inter_Relationship_Constraints) when true;
Start RelationshipImplication (Inter_Relationship_Constraints) when IsSourceType(Relationship);
Add RelationshipImplication (Inter_Relationship_Constraints) when IsSourceType(Relationship) and SourceEqualsTargetType() and !SourceEqualsTarget();
Reconnect RelationshipImplication (Inter_Relationship_Constraints) when IsSourceType(Relationship) and SourceEqualsTargetType() and !SourceEqualsTarget();
Create RelationshipImplication (Inter_Relationship_Constraints) when IsSourceType(Relationship) and SourceEqualsTargetType() and !SourceEqualsTarget();
......@@ -2,34 +2,82 @@
<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="RelationshipExclusion">
<featureRule xsi:type="editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
<constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
<constraintRule xsi:type="editpolicymodel:IsSourceType" type="Relationship"/>
</policies>
<policies action="Add" actionType="RelationshipExclusion">
<featureRule xsi:type="editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
<constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
<constraintRule xsi:type="editpolicymodel:AndConstraintRule">
<rules xsi:type="editpolicymodel:AndConstraintRule">
<rules xsi:type="editpolicymodel:IsSourceType" type="Relationship"/>
<rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
</rules>
<rules xsi:type="editpolicymodel:NotConstraintRule">
<rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
</rules>
</constraintRule>
</policies>
<policies action="Reconnect" actionType="RelationshipExclusion">
<featureRule xsi:type="editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
<constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
<constraintRule xsi:type="editpolicymodel:AndConstraintRule">
<rules xsi:type="editpolicymodel:AndConstraintRule">
<rules xsi:type="editpolicymodel:IsSourceType" type="Relationship"/>
<rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
</rules>
<rules xsi:type="editpolicymodel:NotConstraintRule">
<rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
</rules>
</constraintRule>
</policies>
<policies actionType="RelationshipExclusion">
<featureRule xsi:type="editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
<constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
<constraintRule xsi:type="editpolicymodel:AndConstraintRule">
<rules xsi:type="editpolicymodel:AndConstraintRule">
<rules xsi:type="editpolicymodel:IsSourceType" type="Relationship"/>
<rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
</rules>
<rules xsi:type="editpolicymodel:NotConstraintRule">
<rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
</rules>
</constraintRule>
</policies>
<policies action="Start" actionType="RelationshipImplication">
<featureRule xsi:type="editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
<constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
<constraintRule xsi:type="editpolicymodel:IsSourceType" type="Relationship"/>
</policies>
<policies action="Add" actionType="RelationshipImplication">
<featureRule xsi:type="editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
<constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
<constraintRule xsi:type="editpolicymodel:AndConstraintRule">
<rules xsi:type="editpolicymodel:AndConstraintRule">
<rules xsi:type="editpolicymodel:IsSourceType" type="Relationship"/>
<rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
</rules>
<rules xsi:type="editpolicymodel:NotConstraintRule">
<rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
</rules>
</constraintRule>
</policies>
<policies action="Reconnect" actionType="RelationshipImplication">
<featureRule xsi:type="editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
<constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
<constraintRule xsi:type="editpolicymodel:AndConstraintRule">
<rules xsi:type="editpolicymodel:AndConstraintRule">
<rules xsi:type="editpolicymodel:IsSourceType" type="Relationship"/>
<rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
</rules>
<rules xsi:type="editpolicymodel:NotConstraintRule">
<rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
</rules>
</constraintRule>
</policies>
<policies actionType="RelationshipImplication">
<featureRule xsi:type="editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
<constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
<constraintRule xsi:type="editpolicymodel:AndConstraintRule">
<rules xsi:type="editpolicymodel:AndConstraintRule">
<rules xsi:type="editpolicymodel:IsSourceType" type="Relationship"/>
<rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
</rules>
<rules xsi:type="editpolicymodel:NotConstraintRule">
<rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
</rules>
</constraintRule>
</policies>
</editpolicymodel:Model>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment