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

cleanup editpolicyhandler

parent 2878efc1
Branches
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