Skip to content
Snippets Groups Projects
Commit b476da7a authored by nullsub's avatar nullsub
Browse files

cleanup editpolicyhandler

parent 2878efc1
No related branches found
No related tags found
No related merge requests found
......@@ -47,6 +47,10 @@
<featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
<constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
</policies>
<policies action="Start" actionType="Relationship">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Relationships"/>
<constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
</policies>
<policies action="Add" actionType="Relationship">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Relationships"/>
<constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
......@@ -58,12 +62,9 @@
<rules xsi:type="Editpolicymodel:IsTargetType" type="CompartmentType"/>
</constraintRule>
</policies>
<policies actionType="Fulfillment">
<policies action="Start" actionType="Fulfillment">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Naturals"/>
<constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
<rules xsi:type="Editpolicymodel:IsSourceType" type="NaturalType"/>
<rules xsi:type="Editpolicymodel:IsTargetType" type="CompartmentType"/>
</constraintRule>
<constraintRule xsi:type="Editpolicymodel:IsSourceType" type="NaturalType"/>
</policies>
<policies action="Add" actionType="Fulfillment">
<featureRule xsi:type="Editpolicymodel:IsFeature"/>
......@@ -72,12 +73,9 @@
<rules xsi:type="Editpolicymodel:IsTargetType" type="CompartmentType"/>
</constraintRule>
</policies>
<policies actionType="Fulfillment">
<policies action="Start" actionType="Fulfillment">
<featureRule xsi:type="Editpolicymodel:IsFeature"/>
<constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
<rules xsi:type="Editpolicymodel:IsSourceType" type="RoleType"/>
<rules xsi:type="Editpolicymodel:IsTargetType" type="CompartmentType"/>
</constraintRule>
<constraintRule xsi:type="Editpolicymodel:IsSourceType" type="RoleType"/>
</policies>
<policies action="Add" actionType="Fulfillment">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartments"/>
......@@ -91,23 +89,15 @@
</rules>
</constraintRule>
</policies>
<policies actionType="Fulfillment">
<policies action="Start" actionType="Fulfillment">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartments"/>
<constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
<rules xsi:type="Editpolicymodel:AndConstraintRule">
<rules xsi:type="Editpolicymodel:IsSourceType" type="CompartmentType"/>
<rules xsi:type="Editpolicymodel:IsTargetType" type="CompartmentType"/>
</rules>
<rules xsi:type="Editpolicymodel:NotConstraintRule">
<rule xsi:type="Editpolicymodel:SourceEqualsTarget"/>
</rules>
</constraintRule>
<constraintRule xsi:type="Editpolicymodel:IsSourceType" type="CompartmentType"/>
</policies>
<policies action="Add" actionType="Fulfillment">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Dates"/>
<constraintRule xsi:type="Editpolicymodel:IsSourceType" type="DataType"/>
</policies>
<policies actionType="Fulfillment">
<policies action="Start" actionType="Fulfillment">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Dates"/>
<constraintRule xsi:type="Editpolicymodel:IsSourceType" type="DataType"/>
</policies>
......@@ -119,10 +109,6 @@
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
<constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
</policies>
<policies actionType="RelationshipExclusion">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
<constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
</policies>
<policies action="Add" actionType="RelationshipImplication">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
<constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
......@@ -131,10 +117,6 @@
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
<constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
</policies>
<policies actionType="RelationshipImplication">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
<constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
</policies>
<policies action="Start" actionType="Inheritance">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Role_Inheritance"/>
<constraintRule xsi:type="Editpolicymodel:IsSourceType" type="RoleType"/>
......@@ -151,6 +133,10 @@
<rules xsi:type="Editpolicymodel:SourceEqualsTargetType"/>
</constraintRule>
</policies>
<policies action="Start" actionType="Inheritance">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Data_Type_Inheritance"/>
<constraintRule xsi:type="Editpolicymodel:IsSourceType" type="DataType"/>
</policies>
<policies action="Add" actionType="Inheritance">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Data_Type_Inheritance"/>
<constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
......@@ -163,6 +149,10 @@
<rules xsi:type="Editpolicymodel:SourceEqualsTargetType"/>
</constraintRule>
</policies>
<policies action="Start" actionType="Inheritance">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartment_Inheritance"/>
<constraintRule xsi:type="Editpolicymodel:IsSourceType" type="CompartmentType"/>
</policies>
<policies action="Add" actionType="Inheritance">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartment_Inheritance"/>
<constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
......@@ -202,6 +192,10 @@
<rule xsi:type="Editpolicymodel:InCompartment"/>
</constraintRule>
</policies>
<policies action="Start" actionType="Relationship">
<featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
<constraintRule xsi:type="Editpolicymodel:IsSourceType" type="RoleType"/>
</policies>
<policies action="Add" actionType="Relationship">
<featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
<constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
......@@ -261,6 +255,10 @@
<featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
<constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
</policies>
<policies actionType="Fulfillment">
<featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
<constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
</policies>
<policies action="Start" actionType="Fulfillment">
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartments"/>
<constraintRule xsi:type="Editpolicymodel:IsSourceType" type="CompartmentType"/>
......@@ -277,8 +275,4 @@
<featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Dates"/>
<constraintRule xsi:type="Editpolicymodel:IsSourceType" type="DataType"/>
</policies>
<policies action="Start" actionType="Relationship">
<featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
<constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
</policies>
</Editpolicymodel:Model>
......@@ -73,42 +73,7 @@ public class ConstraintRuleVisitor {
public boolean checkRule(ConstraintRule rule)
{
if(rule instanceof InCompartment) {
org.framed.iorm.model.Shape parent = null;
if(this.context instanceof AddCompartmentTypeContext) {
AddCompartmentTypeContext ctx = (AddCompartmentTypeContext) context;
parent = ctx.getModelToLink().getParent();
} else if(this.context instanceof AddContext) {
AddContext ctx = (AddContext) context;
Diagram contextDiagram = (Diagram)ctx.getTargetContainer();
if(contextDiagram.getName().startsWith("compartmentType"))
return true;
System.out.println("wrong diagram InCompartment(): " + contextDiagram.getName());
return false;
} else if(this.context instanceof CreateContext) {
CreateContext ctx = (CreateContext) context;
Diagram contextDiagram = (Diagram)ctx.getTargetContainer();
if(contextDiagram.getName().startsWith("compartmentType"))
return true;
System.out.println("wrong diagram InCompartment(): " + contextDiagram.getName());
return false;
} else {
System.out.println("wrong context InCompartment(): " + this.context.getClass());
return false;
}
String parentDiagramName = null;
try {
parentDiagramName = parent.getContainer().getParent().getName();
} catch (Exception e) {}
Diagram myDiagram = this.getDiagramWithName(parentDiagramName, this.diagram);
if(myDiagram == null)
return false;
//System.out.println("MYDIAGRAM: " + myDiagram.getName() + ", " + parent.getName() +", " + parent.getName());
if(myDiagram.getName().startsWith("compartmentType"))
return true;
return false;
return isInCompartmentRuleVisitor((InCompartment)rule);
}
if (rule instanceof AndConstraintRule)
......@@ -152,6 +117,40 @@ public class ConstraintRuleVisitor {
return true;
}
private boolean isInCompartmentRuleVisitor(InCompartment rule) {
org.framed.iorm.model.Shape parent = null;
if(this.context instanceof AddCompartmentTypeContext) {
AddCompartmentTypeContext ctx = (AddCompartmentTypeContext) context;
parent = ctx.getModelToLink().getParent();
} else if(this.context instanceof AddContext) {
AddContext ctx = (AddContext) context;
Diagram contextDiagram = (Diagram)ctx.getTargetContainer();
if(contextDiagram.getName().startsWith("compartmentType"))
return true;
} else if(this.context instanceof CreateContext) {
CreateContext ctx = (CreateContext) context;
Diagram contextDiagram = (Diagram)ctx.getTargetContainer();
if(contextDiagram.getName().startsWith("compartmentType"))
return true;
}
if(parent == null) {
System.out.println("Parent null. Wrong context InCompartment(): " + this.context.getClass());
return false;
}
String parentDiagramName = null;
try {
parentDiagramName = parent.getContainer().getParent().getName();
} catch (Exception e) {}
Diagram myDiagram = this.getDiagramWithName(parentDiagramName, this.diagram);
if(myDiagram == null)
return false;
if(myDiagram.getName().startsWith("compartmentType"))
return true;
return false;
}
private boolean andRuleVisitor(AndConstraintRule rule) {
for(ConstraintRule abstractRule : rule.getRules()) {
if(!checkRule(abstractRule))
......@@ -196,8 +195,6 @@ public class ConstraintRuleVisitor {
if(targetAnchor == null || sourceAnchor == null)
return false;
System.out.println("sourceEqualsTargetVisitor comparison: " + source.hashCode() + " == " + target.hashCode());
return source.hashCode() == target.hashCode();
}
......
......@@ -39,7 +39,6 @@ public class EditPolicyHandler {
}
public void updateConfig(List<Editpolicymodel.Model> models, FRaMEDConfiguration config) {
System.out.println("updating Config: ");
//parse all editpolicies to create list with activated policies
//load all constraints which are activated by current configuration
activatedPolicies = new LinkedList<>();
......@@ -49,12 +48,9 @@ public class EditPolicyHandler {
for(Editpolicymodel.Policy policy : model.getPolicies()) {
if(featureRuleVisitor.checkRule(policy.getFeatureRule())) {
activatedPolicies.add(policy);
System.out.println("policyAdded: " + policy.getFeatureRule().toString());
}
}
}
}
/**
......
......@@ -51,7 +51,6 @@ public class EditPolicyService {
return null;
}
Diagram diagram = UIUtil.getMainDiagramForAnyDiagram(diagram0);
//System.out.println("Diagrams: " + diagram.getName() + ", " + diagram0.getName());
if(!EditPolicyService.editPolicyHandlers.containsKey(diagram.getName())) {
EditPolicyHandler handler = new EditPolicyHandler(diagram);
......@@ -65,7 +64,6 @@ public class EditPolicyService {
public static void setConfiguration(Diagram diagram, FRaMEDConfiguration config)
{
//System.out.println("updating config for " + diagram.getName());
diagram = UIUtil.getMainDiagramForAnyDiagram(diagram);
EditPolicyService.getHandler(diagram).updateConfig(editpolicymodels, config);
}
......
......@@ -33,9 +33,7 @@ public class FeatureRuleVisitor {
}
/**
* dispatch abstract rule
*
* returns whether this.cmd is allowed according to @param rule
* returns whether feature rule is active
*
* @param rule
* @return Boolean
......@@ -80,7 +78,6 @@ public class FeatureRuleVisitor {
return false;
}
private boolean andRuleVisitor(AndFeatureRule rule) {
for(FeatureRule abstractRule : rule.getRules()) {
if(!checkRule(abstractRule))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment