[jboss-svn-commits] JBL Code SVN: r32091 - in labs/jbossrules/trunk/drools-verifier/src: main/java/org/drools/verifier/data and 25 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Mar 15 07:32:41 EDT 2010
Author: Rikkola
Date: 2010-03-15 07:32:39 -0400 (Mon, 15 Mar 2010)
New Revision: 32091
Added:
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Equivalence.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Overlap.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Reason.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/ReasonType.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/components/
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/components/CauseTest.java
labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/overlaps/
labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/overlaps/RestrictionsTest.drl
labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/report/
labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/report/components/
labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/report/components/Causes.drl
Removed:
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/CauseType.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/RangeCheckCause.java
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/equivalence/
Modified:
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Consequence.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Constraint.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Field.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Pattern.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Restriction.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubPattern.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubRule.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/TextConsequence.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierEvalDescr.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierPredicateDescr.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierRule.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierComponent.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReport.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReportImpl.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/AlwaysTrue.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Cause.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Gap.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Incompatibility.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/MissingNumberPattern.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/MissingRange.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Opposites.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Redundancy.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Subsumption.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessage.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessageBase.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierRangeCheckMessage.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ComponentsReportVisitor.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/MissingRangesReportVisitor.java
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/Consequence.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Patterns.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Rules.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Patterns.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Rules.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incoherence/Patterns.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incoherence/Restrictions.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/missingEquality/MissingEquality.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Restrictions.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/PatternOrder.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/RestrictionOrder.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/overlaps/Restrictions.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Notes.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Redundancy.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Warnings.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Consequences.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Restrictions.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/SubPatterns.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/SubRules.drl
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/TestBase.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifyingScopeTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/equivalence/EquivalentRulesTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityBase.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityPatternsTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityRestrictionsTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositePatternsTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositeRestrictionsTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositesBase.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/overlaps/OverlappingRestrictionsTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/WarningsTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantSubPatternsTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantSubRulesTest.java
labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/FindPatterns.drl
labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/VerifyingScope.drl
Log:
JBRULES-2451 : Better verifier message reporting
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Consequence.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Consequence.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Consequence.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -24,4 +24,7 @@
public ConsequenceType getConsequenceType();
+ public String getRuleGuid();
+
+ public String getRuleName();
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Constraint.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Constraint.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Constraint.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,7 +1,6 @@
package org.drools.verifier.components;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
/**
*
@@ -20,10 +19,6 @@
return VerifierComponentType.CONSTRAINT;
}
- public CauseType getCauseType() {
- return CauseType.CONSTRAINT;
- }
-
public int getLineNumber() {
return lineNumber;
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Field.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Field.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Field.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,7 +1,6 @@
package org.drools.verifier.components;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
/**
*
@@ -30,10 +29,6 @@
return VerifierComponentType.FIELD;
}
- public CauseType getCauseType() {
- return CauseType.FIELD;
- }
-
public String getName() {
return name;
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Pattern.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Pattern.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Pattern.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,7 +1,6 @@
package org.drools.verifier.components;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
/**
*
@@ -22,10 +21,6 @@
private boolean isPatternExists = false;
private boolean isPatternForall = false;
- public CauseType getCauseType() {
- return CauseType.PATTERN;
- }
-
public boolean isPatternNot() {
return isPatternNot;
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Restriction.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Restriction.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Restriction.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -2,7 +2,6 @@
import org.drools.base.evaluators.Operator;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
/**
*
@@ -34,10 +33,6 @@
protected Operator operator;
- public CauseType getCauseType() {
- return CauseType.RESTRICTION;
- }
-
public abstract RestrictionType getRestrictionType();
@Override
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubPattern.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubPattern.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubPattern.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -3,8 +3,6 @@
import java.util.HashSet;
import java.util.Set;
-import org.drools.verifier.report.components.CauseType;
-
/**
* Instance of this class represents a possible combination of Constraints under
* one Pattern. Each possibility returns true if all the Constraints in the
@@ -49,10 +47,6 @@
return pattern.isPatternForall();
}
- public CauseType getCauseType() {
- return CauseType.SUB_PATTERN;
- }
-
public void setPattern(Pattern pattern) {
this.pattern = pattern;
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubRule.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubRule.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubRule.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -6,7 +6,6 @@
import java.util.Set;
import org.drools.verifier.components.Consequence.ConsequenceType;
-import org.drools.verifier.report.components.CauseType;
/**
* Instance of this class represents a possible combination of
@@ -25,10 +24,6 @@
private VerifierRule rule;
- public CauseType getCauseType() {
- return CauseType.SUB_RULE;
- }
-
public Set<RuleComponent> getItems() {
return items;
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/TextConsequence.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/TextConsequence.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/TextConsequence.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,7 +1,5 @@
package org.drools.verifier.components;
-import org.drools.verifier.report.components.CauseType;
-
public class TextConsequence extends RuleComponent
implements
Consequence {
@@ -12,10 +10,6 @@
return ConsequenceType.TEXT;
}
- public CauseType getCauseType() {
- return CauseType.CONSEQUENCE;
- }
-
public void setText(String text) {
this.text = text;
}
@@ -27,4 +21,8 @@
public VerifierComponentType getVerifierComponentType() {
return VerifierComponentType.CONSEQUENCE;
}
+
+ public String toString() {
+ return "TextConsequence: {\n" + text + "\n";
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierEvalDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierEvalDescr.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierEvalDescr.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,7 +1,6 @@
package org.drools.verifier.components;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
/**
*
@@ -14,10 +13,6 @@
private String content;
private String classMethodName;
- public CauseType getCauseType() {
- return CauseType.EVAL;
- }
-
public String getClassMethodName() {
return classMethodName;
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierPredicateDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierPredicateDescr.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierPredicateDescr.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,7 +1,6 @@
package org.drools.verifier.components;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
/**
*
@@ -14,10 +13,6 @@
private String content;
private String classMethodName;
- public CauseType getCauseType() {
- return CauseType.PREDICATE;
- }
-
public String getClassMethodName() {
return classMethodName;
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierRule.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierRule.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierRule.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -8,7 +8,6 @@
import org.drools.verifier.components.Consequence.ConsequenceType;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
/**
*
@@ -40,10 +39,6 @@
private Map<String, List<String>> otherInfo = new HashMap<String, List<String>>();
- public CauseType getCauseType() {
- return CauseType.RULE;
- }
-
public void setAttributes(Map<String, String> attributes) {
this.attributes = attributes;
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierComponent.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierComponent.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierComponent.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,13 +1,16 @@
package org.drools.verifier.data;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import org.drools.verifier.components.VerifierComponentType;
+import org.drools.verifier.report.components.Cause;
public abstract class VerifierComponent
implements
- Comparable<VerifierComponent> {
+ Comparable<VerifierComponent>,
+ Cause {
static class GuidFactory {
@@ -42,4 +45,8 @@
public int compareTo(VerifierComponent another) {
return this.guid.compareTo( another.getGuid() );
}
+
+ public Collection<Cause> getCauses() {
+ return null;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReport.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReport.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReport.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -4,7 +4,7 @@
import org.drools.verifier.report.components.Gap;
import org.drools.verifier.report.components.MissingNumberPattern;
-import org.drools.verifier.report.components.RangeCheckCause;
+import org.drools.verifier.report.components.MissingRange;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.VerifierMessageBase;
@@ -24,12 +24,10 @@
public VerifierData getVerifierData();
- public Collection<RangeCheckCause> getRangeCheckCauses();
+ public Collection<MissingRange> getRangeCheckCauses();
- public Collection<RangeCheckCause> getRangeCheckCausesByFieldId(int id);
+ public Collection<Gap> getGapsByFieldId(String fieldId);
- public Collection<Gap> getGapsByFieldId(int fieldId);
-
public void add(VerifierMessageBase note);
/**
@@ -41,6 +39,6 @@
*/
public Collection<VerifierMessageBase> getBySeverity(Severity severity);
- public Collection<RangeCheckCause> getRangeCheckCausesByFieldId(String guid);
+ public Collection<MissingRange> getRangeCheckCausesByFieldId(String guid);
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReportImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReportImpl.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReportImpl.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -9,7 +9,7 @@
import org.drools.verifier.report.components.Gap;
import org.drools.verifier.report.components.MissingNumberPattern;
-import org.drools.verifier.report.components.RangeCheckCause;
+import org.drools.verifier.report.components.MissingRange;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.VerifierMessageBase;
@@ -75,8 +75,8 @@
return gapsByFieldId.get( fieldId );
}
- public Collection<RangeCheckCause> getRangeCheckCauses() {
- Collection<RangeCheckCause> result = new ArrayList<RangeCheckCause>();
+ public Collection<MissingRange> getRangeCheckCauses() {
+ Collection<MissingRange> result = new ArrayList<MissingRange>();
result.addAll( gapsById.values() );
result.addAll( missingNumberPatternsById.values() );
@@ -93,8 +93,8 @@
missingNumberPattern );
}
- public Collection<RangeCheckCause> getRangeCheckCausesByFieldId(String id) {
- Collection<RangeCheckCause> result = new ArrayList<RangeCheckCause>();
+ public Collection<MissingRange> getRangeCheckCausesByFieldId(String id) {
+ Collection<MissingRange> result = new ArrayList<MissingRange>();
result.addAll( gapsByFieldId.get( id ) );
@@ -115,13 +115,4 @@
return this.data;
}
- public Collection<Gap> getGapsByFieldId(int fieldId) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public Collection<RangeCheckCause> getRangeCheckCausesByFieldId(int id) {
- // TODO Auto-generated method stub
- return null;
- }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/AlwaysTrue.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/AlwaysTrue.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/AlwaysTrue.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,37 +1,58 @@
package org.drools.verifier.report.components;
+import java.util.Arrays;
+import java.util.Collection;
+
/**
* Pattern, rule or similar that is always satisfied.
*
* @author trikkola
*
*/
-public class AlwaysTrue implements Cause {
+public class AlwaysTrue
+ implements
+ Reason,
+ Cause {
- private static int index = 0;
+ private static int index = 0;
- private final String guid = String.valueOf( index++ );
+ private final String guid = String.valueOf( index++ );
- private final Cause cause;
+ private final Cause impactedComponent;
- /**
- *
- * @param cause
- * Component that is always satisfied.
- */
- public AlwaysTrue(Cause cause) {
- this.cause = cause;
- }
+ private final Collection<Cause> causes;
- public CauseType getCauseType() {
- return CauseType.ALWAYS_TRUE;
- }
+ /**
+ *
+ * @param cause
+ * Component that is always satisfied.
+ */
+ public AlwaysTrue(Cause cause,
+ Collection<Cause> causes) {
+ this.impactedComponent = cause;
+ this.causes = causes;
+ }
- public String getGuid() {
- return guid;
- }
+ public AlwaysTrue(Cause cause,
+ Cause... causes) {
+ this.impactedComponent = cause;
+ this.causes = Arrays.asList( causes );
+ }
- public Cause getCause() {
- return cause;
- }
+ public ReasonType getReasonType() {
+ return ReasonType.ALWAYS_TRUE;
+ }
+
+ public String getGuid() {
+ return guid;
+ }
+
+ public Cause getCause() {
+ return impactedComponent;
+ }
+
+ public Collection<Cause> getCauses() {
+ return causes;
+ }
+
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Cause.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Cause.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Cause.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,13 +1,15 @@
package org.drools.verifier.report.components;
+import java.util.Collection;
/**
*
+ * Cause for a Reason.
+ *
* @author Toni Rikkola
*/
public interface Cause {
- public String getGuid();
+ public Collection<Cause> getCauses();
- public CauseType getCauseType();
}
Deleted: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/CauseType.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/CauseType.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/CauseType.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,29 +0,0 @@
-package org.drools.verifier.report.components;
-
-public class CauseType {
-
- public static final CauseType RULE = new CauseType( "RULE" );
- public static final CauseType FIELD = new CauseType( "FIELD" );
- public static final CauseType GAP = new CauseType( "GAP" );
- public static final CauseType PATTERN = new CauseType( "PATTERN" );
- public static final CauseType RESTRICTION = new CauseType( "RESTRICTION" );
- public static final CauseType SUB_PATTERN = new CauseType( "SUB_PATTERN" );
- public static final CauseType SUB_RULE = new CauseType( "SUB_RULE" );
- public static final CauseType SOURCE = new CauseType( "SOURCE" );
- public static final CauseType RANGE_CHECK_CAUSE = new CauseType( "RANGE_CHECK_CAUSE" );
- public static final CauseType REDUNDANCY = new CauseType( "REDUNDANCY" );
- public static final CauseType EVAL = new CauseType( "EVAL" );
- public static final CauseType PREDICATE = new CauseType( "PREDICATE" );
- public static final CauseType CONSTRAINT = new CauseType( "CONSTRAINT" );
- public static final CauseType CONSEQUENCE = new CauseType( "CONSEQUENCE" );
- public static final CauseType SUBSUMPTION = new CauseType( "SUBSUMPTION" );
- public static final CauseType OPPOSITE = new CauseType( "OPPOSITE" );
- public static final CauseType INCOMPATIBLE = new CauseType( "INCOMPATIBLE" );
- public static final CauseType ALWAYS_TRUE = new CauseType( "ALWAYS_TRUE" );
-
- public final String type;
-
- public CauseType(String type) {
- this.type = type;
- }
-}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Equivalence.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Equivalence.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Equivalence.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -0,0 +1,51 @@
+package org.drools.verifier.report.components;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.drools.verifier.data.VerifierComponent;
+
+/**
+ * Object type that indicates a equivalence between two objects.
+ *
+ * Equivalence happens when the LHS of the rules are redundant, but the LHS is different.
+ *
+ * @author Toni Rikkola
+ */
+public class Equivalence
+ implements
+ Cause {
+
+ private final List<VerifierComponent> items = new ArrayList<VerifierComponent>( 2 );
+ private final Collection<Cause> causes;
+
+ public Equivalence(VerifierComponent first,
+ VerifierComponent second) {
+ items.add( first );
+ items.add( second );
+ this.causes = Collections.emptyList();
+ }
+
+ public Equivalence(VerifierComponent first,
+ VerifierComponent second,
+ Collection<Cause> causes) {
+ items.add( first );
+ items.add( second );
+ this.causes = causes;
+ }
+
+ public List<VerifierComponent> getItems() {
+ return items;
+ }
+
+ @Override
+ public String toString() {
+ return "Equivalency between: (" + items.get( 0 ) + ") and (" + items.get( 1 ) + ").";
+ }
+
+ public Collection<Cause> getCauses() {
+ return causes;
+ }
+}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Gap.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Gap.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Gap.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,5 +1,7 @@
package org.drools.verifier.report.components;
+import java.util.Collection;
+
import org.drools.base.evaluators.Operator;
import org.drools.verifier.components.Field;
import org.drools.verifier.components.LiteralRestriction;
@@ -8,53 +10,56 @@
*
* @author Toni Rikkola
*/
-public class Gap extends MissingRange implements RangeCheckCause,
- Comparable<MissingRange> {
+public class Gap extends MissingRange
+ implements
+ Comparable<MissingRange> {
- private final LiteralRestriction restriction;
+ private final LiteralRestriction restriction;
- public int compareTo(MissingRange another) {
- return super.compareTo(another);
- }
+ public int compareTo(MissingRange another) {
+ return super.compareTo( another );
+ }
- public CauseType getCauseType() {
- return CauseType.GAP;
- }
+ /**
+ *
+ * @param field
+ * Field from where the value is missing.
+ * @param evaluator
+ * Evaluator for the missing value.
+ * @param cause
+ * The restriction that the gap begins from.
+ */
+ public Gap(Field field,
+ Operator operator,
+ LiteralRestriction restriction) {
+ super( field,
+ operator );
- /**
- *
- * @param field
- * Field from where the value is missing.
- * @param evaluator
- * Evaluator for the missing value.
- * @param cause
- * The restriction that the gap begins from.
- */
- public Gap(Field field, Operator operator, LiteralRestriction restriction) {
- super(field, operator);
+ this.restriction = restriction;
+ }
- this.restriction = restriction;
- }
+ public String getRuleName() {
+ return restriction.getRuleName();
+ }
- public String getRuleName() {
- return restriction.getRuleName();
- }
+ public LiteralRestriction getRestriction() {
+ return restriction;
+ }
- public LiteralRestriction getRestriction() {
- return restriction;
- }
+ public String getValueAsString() {
+ return restriction.getValueAsString();
+ }
- public String getValueAsString() {
- return restriction.getValueAsString();
- }
+ public Object getValueAsObject() {
+ return restriction.getValueAsObject();
+ }
- public Object getValueAsObject() {
- return restriction.getValueAsObject();
- }
+ @Override
+ public String toString() {
+ return "Gap: (" + field + ") " + getOperator() + " " + getValueAsString() + " from rule: [" + getRuleName() + "]";
+ }
- @Override
- public String toString() {
- return "Gap: (" + field + ") " + getOperator() + " "
- + getValueAsString() + " from rule: [" + getRuleName() + "]";
- }
+ public Collection<Cause> getCauses() {
+ return null;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Incompatibility.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Incompatibility.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Incompatibility.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,45 +1,51 @@
package org.drools.verifier.report.components;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
/**
+ * Object type that indicates an incompatibility between two objects.
*
- * Two causes are incompatible.
- * <p>
- * For example: Restrictions (a > b) and (a == b)
+ * Incompatibility happens when there is no value that would satisfy both objects.
*
+ *
+ * Example:
+ * A: x > 10
+ * B: x == 100
+ *
* @author Toni Rikkola
*/
-public class Incompatibility implements Cause {
+public class Incompatibility
+ implements
+ Cause {
- private static int index = 0;
+ private final Cause left;
+ private final Cause right;
- private final String guid = String.valueOf( index++ );
+ public Incompatibility(Cause left,
+ Cause right) {
+ this.left = left;
+ this.right = right;
+ }
- private final Cause left;
- private final Cause right;
+ public Cause getLeft() {
+ return left;
+ }
- public Incompatibility(Cause left, Cause right) {
- this.left = left;
- this.right = right;
- }
+ public Cause getRight() {
+ return right;
+ }
- public String getGuid() {
- return guid;
- }
+ @Override
+ public String toString() {
+ return "(" + getLeft() + ") and (" + getRight() + ") are incompatible.";
+ }
- public CauseType getCauseType() {
- return CauseType.INCOMPATIBLE;
- }
-
- public Cause getLeft() {
- return left;
- }
-
- public Cause getRight() {
- return right;
- }
-
- @Override
- public String toString() {
- return "(" + getLeft() + ") and (" + getRight() + ") are incompatible.";
- }
+ public Collection<Cause> getCauses() {
+ List<Cause> list = new ArrayList<Cause>();
+ list.add( left );
+ list.add( right );
+ return list;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/MissingNumberPattern.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/MissingNumberPattern.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/MissingNumberPattern.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -2,6 +2,7 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.util.Collection;
import java.util.Locale;
import org.drools.base.evaluators.Operator;
@@ -13,7 +14,6 @@
*/
public class MissingNumberPattern extends MissingRange
implements
- RangeCheckCause,
Comparable<MissingRange> {
private final String valueType;
@@ -24,10 +24,6 @@
return super.compareTo( another );
}
- public CauseType getCauseType() {
- return CauseType.RANGE_CHECK_CAUSE;
- }
-
public MissingNumberPattern(Field field,
Operator operator,
String valueType,
@@ -82,4 +78,8 @@
public String toString() {
return "Missing restriction " + operator + " " + value;
}
+
+ public Collection<Cause> getCauses() {
+ return null;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/MissingRange.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/MissingRange.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/MissingRange.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -5,7 +5,9 @@
public abstract class MissingRange
implements
- Comparable<MissingRange> {
+ Comparable<MissingRange>,
+ Reason,
+ Cause {
private static int index = 0;
protected final String guid = String.valueOf( index++ );
@@ -19,6 +21,10 @@
this.operator = operator;
}
+ public ReasonType getReasonType() {
+ return ReasonType.MISSING_VALUE;
+ }
+
/**
* Takes the given operator e, and returns a reversed version of it.
*
@@ -58,4 +64,9 @@
public Operator getOperator() {
return operator;
}
+
+ public abstract Object getValueAsObject();
+
+ public abstract String getValueAsString();
+
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Opposites.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Opposites.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Opposites.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,25 +1,30 @@
package org.drools.verifier.report.components;
/**
+ * Object type that indicates an opposity between two objects.
*
- * Two causes are opposites.
- * <p>
- * For example: Restrictions (a > b) and (a <= b)
*
+ * Opposity happens when only the values that would satisfy object A
+ * can not satisfy object B.
+ *
+ * Example:
+ * A: a == 10
+ * B: a != 10
+ *
* @author Toni Rikkola
*/
-public class Opposites extends Incompatibility implements Cause {
+public class Opposites extends Incompatibility
+ implements
+ Cause {
- public Opposites(Cause left, Cause right) {
- super(left, right);
- }
+ public Opposites(Cause left,
+ Cause right) {
+ super( left,
+ right );
+ }
- public CauseType getCauseType() {
- return CauseType.OPPOSITE;
- }
-
- @Override
- public String toString() {
- return "Opposites: (" + getLeft() + ") and (" + getRight() + ").";
- }
+ @Override
+ public String toString() {
+ return "Opposites: (" + getLeft() + ") and (" + getRight() + ").";
+ }
}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Overlap.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Overlap.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Overlap.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -0,0 +1,44 @@
+package org.drools.verifier.report.components;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.drools.verifier.data.VerifierComponent;
+
+/**
+ * Object type that indicates an overlap between two objects.
+ *
+ * Overlap happens when only some values can satisfy both objects
+ *
+ * Example "values between 1 and 9 can satisfy both":
+ * A: x > 10
+ * B: x < 0
+ *
+ * @author toni rikkola
+ */
+public class Overlap
+ implements
+ Cause {
+
+ private final List<Cause> items = new ArrayList<Cause>( 2 );
+
+ public Overlap(VerifierComponent first,
+ VerifierComponent second) {
+ items.add( first );
+ items.add( second );
+ }
+
+ public List<Cause> getItems() {
+ return items;
+ }
+
+ public Collection<Cause> getCauses() {
+ return items;
+ }
+
+ @Override
+ public String toString() {
+ return "Overlap between: (" + items.get( 0 ) + ") and (" + items.get( 1 ) + ").";
+ }
+}
Deleted: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/RangeCheckCause.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/RangeCheckCause.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/RangeCheckCause.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,19 +0,0 @@
-package org.drools.verifier.report.components;
-
-import org.drools.base.evaluators.Operator;
-import org.drools.verifier.components.Field;
-
-/**
- *
- * @author Toni Rikkola
- */
-public interface RangeCheckCause extends Cause {
-
- public Field getField();
-
- public Object getValueAsObject();
-
- public String getValueAsString();
-
- public Operator getOperator();
-}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Reason.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Reason.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Reason.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -0,0 +1,17 @@
+package org.drools.verifier.report.components;
+
+import java.util.Collection;
+
+/**
+ *
+ * Reason why something is wrong.
+ *
+ * @author trikkola
+ *
+ */
+public interface Reason {
+
+ public Collection<Cause> getCauses();
+
+ public ReasonType getReasonType();
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/ReasonType.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/ReasonType.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/ReasonType.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -0,0 +1,23 @@
+package org.drools.verifier.report.components;
+
+/**
+ *
+ * @author trikkola
+ *
+ */
+public class ReasonType {
+
+ public static final ReasonType MISSING_VALUE = new ReasonType( "MISSING_VALUE" );
+ public static final ReasonType REDUNDANT = new ReasonType( "REDUNDANT" );
+ public static final ReasonType SUBSUMPTANT = new ReasonType( "SUBSUMPTANT" );
+ public static final ReasonType ALWAYS_TRUE = new ReasonType( "ALWAYS_TRUE" );
+ public static final ReasonType ALWAYS_FALSE = new ReasonType( "ALWAYS_FALSE" );
+ public static final ReasonType INCOMPATIBLE = new ReasonType( "INCOMPATIBLE" );
+ public static final ReasonType OPPOSITY = new ReasonType( "OPPOSITY" );
+
+ public final String type;
+
+ public ReasonType(String type) {
+ this.type = type;
+ }
+}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Redundancy.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Redundancy.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Redundancy.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,42 +1,47 @@
package org.drools.verifier.report.components;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.List;
+import org.drools.verifier.data.VerifierComponent;
+
/**
- * Presents a redundancy between two Causes. The link between them can be WEAK
- * or STRONG.
+ * Object type that indicates a redundancy between two objects.
*
- * WEAK redundancy is for example two VerifierRules, but not their rule
- * possibilities. STRONG redundancy includes possibilities.
+ * Redundancy happens when all the possible values satisfy both objects.
*
+ * Example:
+ * A: x == 10
+ * B: x == 10
+ *
* @author Toni Rikkola
*/
public class Redundancy
implements
Cause {
- private static int index = 0;
+ private final List<VerifierComponent> items = new ArrayList<VerifierComponent>( 2 );
- private final String guid = String.valueOf( index++ );
+ private final Collection<Cause> causes;
- private final List<Cause> items = new ArrayList<Cause>( 2 );
-
- public Redundancy(Cause first,
- Cause second) {
+ public Redundancy(VerifierComponent first,
+ VerifierComponent second) {
items.add( first );
items.add( second );
+ this.causes = Collections.emptyList();
}
- public String getGuid() {
- return guid;
+ public Redundancy(VerifierComponent first,
+ VerifierComponent second,
+ Collection<Cause> causes) {
+ items.add( first );
+ items.add( second );
+ this.causes = causes;
}
- public CauseType getCauseType() {
- return CauseType.REDUNDANCY;
- }
-
- public List<Cause> getItems() {
+ public List<VerifierComponent> getItems() {
return items;
}
@@ -44,4 +49,8 @@
public String toString() {
return "Redundancy between: (" + items.get( 0 ) + ") and (" + items.get( 1 ) + ").";
}
+
+ public Collection<Cause> getCauses() {
+ return causes;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Subsumption.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Subsumption.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Subsumption.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,42 +1,62 @@
package org.drools.verifier.report.components;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.drools.verifier.data.VerifierComponent;
+
/**
+ * Object type that indicates a subsumption between two objects.
*
+ * Subsumption happens when all possible the values for component A,
+ * are able to satisfy component B and only some values that are able to
+ * satisfy component B are able to satisfy component A.
+ *
+ * Example "if x is more than 1 both restrictions are satisfied":
+ * A: x > 10
+ * B: x > 1
+ *
* @author Toni Rikkola
*/
-public class Subsumption implements Cause {
+public class Subsumption
+ implements
+ Cause {
- private static int index = 0;
+ private final VerifierComponent left;
+ private final VerifierComponent right;
+ private final Collection<Cause> causes;
- private final String guid = String.valueOf( index++ );
+ public Subsumption(VerifierComponent left,
+ VerifierComponent right) {
+ this.left = left;
+ this.right = right;
+ this.causes = Collections.emptyList();
+ }
- private final Cause left;
- private final Cause right;
+ public Subsumption(VerifierComponent left,
+ VerifierComponent right,
+ Collection<Cause> causes) {
+ this.left = left;
+ this.right = right;
+ this.causes = causes;
+ }
- public Subsumption(Cause left, Cause right) {
- this.left = left;
- this.right = right;
- }
+ public VerifierComponent getLeft() {
+ return left;
+ }
- public String getGuid() {
- return guid;
- }
+ public VerifierComponent getRight() {
+ return right;
+ }
- public CauseType getCauseType() {
- return CauseType.SUBSUMPTION;
- }
+ @Override
+ public String toString() {
+ return "Subsumption between: (" + getLeft() + ") and (" + getRight() + ").";
+ }
- public Cause getLeft() {
- return left;
- }
-
- public Cause getRight() {
- return right;
- }
-
- @Override
- public String toString() {
- return "Subsumption between: (" + getLeft() + ") and (" + getRight()
- + ").";
- }
+ public Collection<Cause> getCauses() {
+ return causes;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessage.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessage.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessage.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,59 +1,94 @@
package org.drools.verifier.report.components;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.Map;
/**
*
* @author Toni Rikkola
*/
public class VerifierMessage extends VerifierMessageBase {
- private static final long serialVersionUID = 9190003495068712452L;
+ private static final long serialVersionUID = 9190003495068712452L;
- protected final Collection<Cause> causes;
+ protected final Collection<Cause> causes;
- public VerifierMessage(Severity severity, MessageType messageType,
- Cause faulty, String message, Collection<Cause> causes) {
- super(severity, messageType, faulty, message);
+ public VerifierMessage(Map<String, String> impactedRules,
+ Severity severity,
+ MessageType messageType,
+ Cause faulty,
+ String message,
+ Collection<Cause> causes) {
+ super( impactedRules,
+ severity,
+ messageType,
+ faulty,
+ message );
- this.causes = causes;
- }
+ this.causes = causes;
+ }
- public VerifierMessage(Severity severity, MessageType messageType,
- Cause faulty, String message) {
- super(severity, messageType, faulty, message);
+ public VerifierMessage(Map<String, String> impactedRules,
+ Severity severity,
+ MessageType messageType,
+ Cause faulty,
+ String message,
+ Cause cause) {
+ super( impactedRules,
+ severity,
+ messageType,
+ faulty,
+ message );
- this.causes = Collections.emptyList();
- }
+ Collection<Cause> causes = new ArrayList<Cause>();
+ causes.add( cause );
- public Collection<Cause> getCauses() {
- return causes;
- }
+ this.causes = causes;
+ }
- @Override
- public String toString() {
- StringBuffer str = new StringBuffer(severity.getSingular());
+ public VerifierMessage(Map<String, String> impactedRules,
+ Severity severity,
+ MessageType messageType,
+ Cause faulty,
+ String message) {
+ super( impactedRules,
+ severity,
+ messageType,
+ faulty,
+ message );
- str.append(" id = ");
- str.append(id);
- str.append(":\n");
+ this.causes = Collections.emptyList();
+ }
- if (faulty != null) {
- str.append("faulty : ");
- str.append(faulty);
- str.append(", ");
- }
+ public Collection<Cause> getCauses() {
+ return causes;
+ }
- str.append(message);
- str.append(" \n\tCauses are [ \n");
+ @Override
+ public String toString() {
+ StringBuffer str = new StringBuffer( severity.getSingular() );
- for (Cause cause : causes) {
- str.append("\t\t");
- str.append(cause);
- str.append("\n");
- }
- str.append("\t]");
+ str.append( " id = " );
+ str.append( id );
+ str.append( ":\n" );
- return str.toString();
- }
+ if ( faulty != null ) {
+ str.append( "faulty : " );
+ str.append( faulty );
+ str.append( ", " );
+ }
+
+ str.append( message );
+ str.append( " \n\tCauses are [ \n" );
+
+ for ( Cause cause : causes ) {
+ str.append( "\t\t" );
+ str.append( cause );
+ str.append( "\n" );
+ }
+ str.append( "\t]" );
+
+ return str.toString();
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessageBase.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessageBase.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessageBase.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -2,80 +2,99 @@
import java.io.Serializable;
import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
/**
*
* @author Toni Rikkola
*/
-abstract public class VerifierMessageBase implements Serializable,
- Comparable<VerifierMessageBase> {
- private static final long serialVersionUID = 9190003495068712452L;
+abstract public class VerifierMessageBase
+ implements
+ Serializable,
+ Comparable<VerifierMessageBase> {
+ private static final long serialVersionUID = 9190003495068712452L;
- private static int index = 0;
+ private static int index = 0;
- protected final Severity severity;
- protected final MessageType messageType;
+ // <guid,rule name>
+ private Map<String, String> impactedRules = new HashMap<String, String>();
- protected final int id = index++;
- protected final Cause faulty;
- protected final String message;
+ protected final Severity severity;
+ protected final MessageType messageType;
- public int compareTo(VerifierMessageBase o) {
- if (id == o.getId()) {
- return 0;
- }
+ protected final int id = index++;
+ protected final Cause faulty;
+ protected final String message;
- return (id > o.getId() ? 1 : -1);
- }
+ public int compareTo(VerifierMessageBase o) {
+ if ( id == o.getId() ) {
+ return 0;
+ }
- protected VerifierMessageBase(Severity severity, MessageType messageType,
- Cause faulty, String message) {
- this.severity = severity;
- this.messageType = messageType;
- this.faulty = faulty;
- this.message = message;
- }
+ return (id > o.getId() ? 1 : -1);
+ }
- public int getId() {
- return id;
- }
+ protected VerifierMessageBase(Map<String, String> impactedRules,
+ Severity severity,
+ MessageType messageType,
+ Cause faulty,
+ String message) {
+ this.impactedRules = impactedRules;
+ this.severity = severity;
+ this.messageType = messageType;
+ this.faulty = faulty;
+ this.message = message;
+ }
- public String getMessage() {
- return message;
- }
+ public int getId() {
+ return id;
+ }
- public Cause getFaulty() {
- return faulty;
- }
+ public String getMessage() {
+ return message;
+ }
- public MessageType getMessageType() {
- return messageType;
- }
+ public Cause getFaulty() {
+ return faulty;
+ }
- public Severity getSeverity() {
- return severity;
- }
+ public MessageType getMessageType() {
+ return messageType;
+ }
- @Override
- public String toString() {
- StringBuffer str = new StringBuffer(severity.singular);
+ public Severity getSeverity() {
+ return severity;
+ }
- str.append(" id = ");
- str.append(id);
- str.append(":\n");
+ @Override
+ public String toString() {
+ StringBuffer str = new StringBuffer( severity.singular );
- if (faulty != null) {
- str.append("faulty : ");
- str.append(faulty);
- str.append(", ");
- }
+ str.append( " id = " );
+ str.append( id );
+ str.append( ":\n" );
- str.append(message);
+ if ( faulty != null ) {
+ str.append( "faulty : " );
+ str.append( faulty );
+ str.append( ", " );
+ }
- str.append("\t]");
+ str.append( message );
- return str.toString();
- }
+ str.append( "\t]" );
- public abstract Collection<? extends Cause> getCauses();
+ return str.toString();
+ }
+
+ public void setImpactedRules(Map<String, String> impactedRules) {
+ this.impactedRules = impactedRules;
+ }
+
+ public Map<String, String> getImpactedRules() {
+ return impactedRules;
+ }
+
+ public abstract Collection<Cause> getCauses();
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierRangeCheckMessage.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierRangeCheckMessage.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierRangeCheckMessage.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,24 +1,40 @@
package org.drools.verifier.report.components;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashMap;
public class VerifierRangeCheckMessage extends VerifierMessageBase {
- private static final long serialVersionUID = -2403507929285633672L;
+ private static final long serialVersionUID = -2403507929285633672L;
- private Collection<RangeCheckCause> causes;
+ private Collection<MissingRange> causes;
- public VerifierRangeCheckMessage(Severity severity, Cause faulty,
- String message, Collection<RangeCheckCause> causes) {
- super(severity, MessageType.RANGE_CHECK, faulty, message);
+ public VerifierRangeCheckMessage(Severity severity,
+ Cause faulty,
+ String message,
+ Collection<MissingRange> causes) {
+ super( new HashMap<String, String>(),
+ severity,
+ MessageType.RANGE_CHECK,
+ faulty,
+ message );
- this.causes = causes;
- }
+ this.causes = causes;
+ }
- public Collection<RangeCheckCause> getCauses() {
- return causes;
- }
+ public Collection<MissingRange> getMissingRanges() {
+ return causes;
+ }
- public void setCauses(Collection<RangeCheckCause> reasons) {
- this.causes = reasons;
- }
+ public Collection<Cause> getCauses() {
+ Collection<Cause> causes = new ArrayList<Cause>();
+ for ( Cause cause : this.causes ) {
+ causes.add( cause );
+ }
+ return causes;
+ }
+
+ public void setCauses(Collection<MissingRange> reasons) {
+ this.causes = reasons;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ComponentsReportVisitor.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ComponentsReportVisitor.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ComponentsReportVisitor.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -12,7 +12,7 @@
import org.drools.verifier.components.VerifierRule;
import org.drools.verifier.data.VerifierData;
import org.drools.verifier.data.VerifierReport;
-import org.drools.verifier.report.components.RangeCheckCause;
+import org.drools.verifier.report.components.MissingRange;
import org.mvel2.templates.TemplateRuntime;
class ComponentsReportVisitor extends ReportVisitor {
@@ -130,7 +130,7 @@
rules );
if ( field.getFieldType() == Field.DOUBLE || field.getFieldType() == Field.DATE || field.getFieldType() == Field.INT ) {
- Collection<RangeCheckCause> causes = result.getRangeCheckCausesByFieldId( field.getGuid() );
+ Collection<MissingRange> causes = result.getRangeCheckCausesByFieldId( field.getGuid() );
Collection<Restriction> restrictions = data.getRestrictionsByFieldGuid( field.getGuid() );
map.put( "ranges",
"Ranges:" + MissingRangesReportVisitor.visitRanges( UrlFactory.PREVIOUS_FOLDER,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/MissingRangesReportVisitor.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/MissingRangesReportVisitor.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/MissingRangesReportVisitor.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -12,7 +12,7 @@
import org.drools.verifier.components.Restriction;
import org.drools.verifier.components.VerifierComponentType;
import org.drools.verifier.data.VerifierData;
-import org.drools.verifier.report.components.RangeCheckCause;
+import org.drools.verifier.report.components.MissingRange;
import org.drools.verifier.report.components.VerifierRangeCheckMessage;
import org.mvel2.templates.TemplateRuntime;
@@ -23,11 +23,11 @@
public static Collection<String> visitRestrictionsCollection(String sourceFolder,
Collection<Restriction> restrictions,
- Collection<RangeCheckCause> causes) {
+ Collection<MissingRange> causes) {
Multimap<Object, DataRow> dt = new TreeMultimap<Object, DataRow>();
Collection<String> stringRows = new ArrayList<String>();
- for ( RangeCheckCause cause : causes ) {
+ for ( MissingRange cause : causes ) {
dt.put( cause.getValueAsObject(),
new DataRow( null,
null,
@@ -102,13 +102,13 @@
public static String visitRanges(String sourceFolder,
Collection<Restriction> restrictions,
- Collection<RangeCheckCause> causes) {
+ Collection<MissingRange> collection) {
Map<String, Object> map = new HashMap<String, Object>();
map.put( "lines",
visitRestrictionsCollection( sourceFolder,
restrictions,
- causes ) );
+ collection ) );
String myTemplate = readFile( "ranges.htm" );
@@ -159,7 +159,7 @@
map.put( "ranges",
visitRanges( UrlFactory.THIS_FOLDER,
restrictions,
- message.getCauses() ) );
+ message.getMissingRanges() ) );
String myTemplate = readFile( "missingRange.htm" );
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/Consequence.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/Consequence.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/Consequence.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -9,6 +9,9 @@
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.MessageType;
+import java.util.Map;
+import java.util.HashMap;
+
#declare any global variables here
global VerifierReport result;
@@ -21,7 +24,11 @@
guid matches $c.ruleGuid
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $r.getGuid(), $r.getRuleName());
+
result.add( new VerifierMessage(
+ impactedRules,
Severity.WARNING,
MessageType.MISSING_COMPONENT,
$r,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Patterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Patterns.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Patterns.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -17,6 +17,9 @@
import org.drools.verifier.data.VerifierReport;
+import java.util.Map;
+import java.util.HashMap;
+
global VerifierReport result;
#
@@ -54,8 +57,12 @@
$r :VerifierRule( guid == $p.ruleGuid )
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $r.getGuid(), $r.getRuleName());
+
# Report an error
result.add( new VerifierMessage(
+ impactedRules,
Severity.ERROR,
MessageType.ALWAYS_FALSE,
$p,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Rules.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Rules.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Rules.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -16,6 +16,12 @@
import org.drools.verifier.data.VerifierReport;
+import java.util.Map;
+import java.util.HashMap;
+
+import java.util.Map;
+import java.util.HashMap;
+
global VerifierReport result;
#
@@ -45,8 +51,12 @@
)
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $r.getGuid(), $r.getRuleName());
+
# Report an error
result.add( new VerifierMessage(
+ impactedRules,
Severity.ERROR,
MessageType.ALWAYS_FALSE,
$r,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Patterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Patterns.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Patterns.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -20,6 +20,9 @@
import org.drools.verifier.data.VerifierReport;
+import java.util.Map;
+import java.util.HashMap;
+
global VerifierReport result;
@@ -38,7 +41,7 @@
)
)
then
- insert( new AlwaysTrue( $pp ));
+ insert( new AlwaysTrue( $pp , a, b ));
end
/*
#
@@ -112,7 +115,11 @@
$r :VerifierRule( guid matches $p.ruleGuid )
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $r.getGuid(), $r.getRuleName());
+
result.add( new VerifierMessage(
+ impactedRules,
Severity.NOTE,
MessageType.ALWAYS_TRUE,
$p,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Rules.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Rules.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Rules.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -20,6 +20,9 @@
import org.drools.verifier.data.VerifierReport;
+import java.util.Map;
+import java.util.HashMap;
+
global VerifierReport result;
#
@@ -76,7 +79,11 @@
)
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $r.getGuid(), $r.getRuleName());
+
result.add( new VerifierMessage(
+ impactedRules,
Severity.WARNING,
MessageType.ALWAYS_TRUE,
$r,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incoherence/Patterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incoherence/Patterns.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incoherence/Patterns.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -18,6 +18,8 @@
import java.util.Collection;
import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
import org.drools.base.evaluators.Operator;
@@ -76,11 +78,15 @@
guid matches $rp.ruleGuid
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $r.getGuid(), $r.getRuleName());
+
Collection list = new ArrayList();
list.add( $p1 );
list.add( $p2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.WARNING,
MessageType.INCOHERENCE,
$r,
@@ -142,11 +148,15 @@
guid matches $rp.ruleGuid
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $r.getGuid(), $r.getRuleName());
+
Collection list = new ArrayList();
list.add( $p1 );
list.add( $p2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.WARNING,
MessageType.INCOHERENCE,
$r,
@@ -207,11 +217,15 @@
guid matches $rp.ruleGuid
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $r.getGuid(), $r.getRuleName());
+
Collection list = new ArrayList();
list.add( $p1 );
list.add( $p2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.WARNING,
MessageType.INCOHERENCE,
$r,
@@ -272,11 +286,15 @@
guid matches $rp.ruleGuid
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $r.getGuid(), $r.getRuleName());
+
Collection list = new ArrayList();
list.add( $p1 );
list.add( $p2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.WARNING,
MessageType.INCOHERENCE,
$r,
@@ -338,11 +356,15 @@
guid matches $rp.ruleGuid
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $r.getGuid(), $r.getRuleName());
+
Collection list = new ArrayList();
list.add( $p1 );
list.add( $p2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.WARNING,
MessageType.INCOHERENCE,
$r,
@@ -404,11 +426,15 @@
guid matches $rp.ruleGuid
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $r.getGuid(), $r.getRuleName());
+
Collection list = new ArrayList();
list.add( $p1 );
list.add( $p2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.WARNING,
MessageType.INCOHERENCE,
$r,
@@ -469,11 +495,15 @@
guid matches $rp.ruleGuid
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $r.getGuid(), $r.getRuleName());
+
Collection list = new ArrayList();
list.add( $p1 );
list.add( $p2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.WARNING,
MessageType.INCOHERENCE,
$r,
@@ -535,11 +565,15 @@
guid matches $rp.ruleGuid
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $r.getGuid(), $r.getRuleName());
+
Collection list = new ArrayList();
list.add( $p1 );
list.add( $p2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.WARNING,
MessageType.INCOHERENCE,
$r,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incoherence/Restrictions.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incoherence/Restrictions.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incoherence/Restrictions.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -15,6 +15,8 @@
import java.util.Collection;
import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
import org.drools.base.evaluators.Operator;
@@ -56,11 +58,15 @@
$p :Pattern( guid matches $pp.patternGuid )
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $p.getRuleGuid(), $p.getRuleName());
+
Collection list = new ArrayList();
list.add( $r1 );
list.add( $r2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.ERROR,
MessageType.INCOHERENCE,
$p,
@@ -102,11 +108,15 @@
$p :Pattern( guid matches $pp.patternGuid )
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $p.getRuleGuid(), $p.getRuleName());
+
Collection list = new ArrayList();
list.add( $r1 );
list.add( $r2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.ERROR,
MessageType.INCOHERENCE,
$p,
@@ -148,11 +158,15 @@
$p :Pattern( guid matches $pp.patternGuid )
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $p.getRuleGuid(), $p.getRuleName());
+
Collection list = new ArrayList();
list.add( $r1 );
list.add( $r2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.ERROR,
MessageType.INCOHERENCE,
$p,
@@ -194,11 +208,15 @@
$p :Pattern( guid matches $pp.patternGuid )
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $p.getRuleGuid(), $p.getRuleName());
+
Collection list = new ArrayList();
list.add( $r1 );
list.add( $r2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.ERROR,
MessageType.INCOHERENCE,
$p,
@@ -240,11 +258,15 @@
$p :Pattern( guid matches $pp.patternGuid )
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $p.getRuleGuid(), $p.getRuleName());
+
Collection list = new ArrayList();
list.add( $r1 );
list.add( $r2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.ERROR,
MessageType.INCOHERENCE,
$p,
@@ -287,11 +309,15 @@
$p :Pattern( guid matches $pp.patternGuid )
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $p.getRuleGuid(), $p.getRuleName());
+
Collection list = new ArrayList();
list.add( $r1 );
list.add( $r2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.ERROR,
MessageType.INCOHERENCE,
$p,
@@ -331,11 +357,15 @@
$p :Pattern( guid matches $pp.patternGuid )
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $p.getRuleGuid(), $p.getRuleName());
+
Collection list = new ArrayList();
list.add( $r1 );
list.add( $r2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.ERROR,
MessageType.INCOHERENCE,
$p,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/missingEquality/MissingEquality.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/missingEquality/MissingEquality.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/missingEquality/MissingEquality.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -14,8 +14,11 @@
import org.drools.verifier.report.components.MessageType;
import org.drools.verifier.data.VerifierReport;
+import java.util.Map;
+import java.util.HashMap;
+
#declare any global variables here
global VerifierReport result;
@@ -84,6 +87,7 @@
)
then
result.add( new VerifierMessage(
+ new HashMap<String, String>(),
Severity.WARNING,
MessageType.MISSING_EQUALITY,
$r,
@@ -215,6 +219,7 @@
)
then
result.add( new VerifierMessage(
+ new HashMap<String, String>(),
Severity.WARNING,
MessageType.MISSING_EQUALITY,
$r,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Restrictions.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Restrictions.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Restrictions.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -8,7 +8,6 @@
import org.drools.verifier.report.components.Cause;
import org.drools.verifier.report.components.MissingRange;
-import org.drools.verifier.report.components.VerifierMessage;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.MessageType;
import org.drools.verifier.report.components.Opposites;
@@ -82,7 +81,7 @@
# Check that there is not already a pair with these values.
not Opposites(
- left == $left,
+ left == $left,
right == $right
)
not Opposites(
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/PatternOrder.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/PatternOrder.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/PatternOrder.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -17,6 +17,9 @@
import org.drools.verifier.report.components.MessageType;
import org.drools.verifier.data.VerifierReport;
+import java.util.Map;
+import java.util.HashMap;
+
#declare any global variables here
global VerifierReport result;
@@ -53,10 +56,14 @@
guid matches $eval.ruleGuid
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $rule.getGuid(), $rule.getRuleName());
+
Collection list = new ArrayList();
list.add( $eval );
list.add( $other );
result.add( new VerifierMessage(
+ impactedRules,
Severity.NOTE,
MessageType.OPTIMISATION,
$rule,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/RestrictionOrder.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/RestrictionOrder.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/RestrictionOrder.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -23,6 +23,9 @@
import org.drools.verifier.report.components.MessageType;
import org.drools.verifier.data.VerifierReport;
+import java.util.Map;
+import java.util.HashMap;
+
#declare any global variables here
global VerifierReport result;
@@ -83,10 +86,14 @@
guid == $sp.patternGuid
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $pattern.getRuleGuid(), $pattern.getRuleName());
+
Collection list = new ArrayList();
list.add( $r1 );
list.add( $r2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.NOTE,
MessageType.OPTIMISATION,
$pattern,
@@ -157,10 +164,14 @@
guid == $r1.patternGuid
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $pattern.getGuid(), $pattern.getRuleName());
+
Collection list = new ArrayList();
list.add( $r1 );
list.add( $r2 );
result.add( new VerifierMessage(
+ impactedRules,
Severity.NOTE,
MessageType.OPTIMISATION,
$pattern,
@@ -199,10 +210,14 @@
guid == $predicate.ruleGuid
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $rule.getGuid(), $rule.getRuleName());
+
Collection list = new ArrayList();
list.add( $predicate );
list.add( $other );
result.add( new VerifierMessage(
+ impactedRules,
Severity.NOTE,
MessageType.OPTIMISATION,
$rule,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/overlaps/Restrictions.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/overlaps/Restrictions.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/overlaps/Restrictions.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,5 +1,5 @@
#created on: 2.2.2008
-package org.drools.verifier.overlaps.restrictions
+package org.drools.verifier.overlaps
#list any import classes here.
import java.util.Collection;
@@ -10,10 +10,9 @@
import org.drools.verifier.components.LiteralRestriction;
import org.drools.verifier.report.components.Subsumption;
-import org.drools.verifier.report.components.VerifierMessage;
-import org.drools.verifier.report.components.CauseType;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.MessageType;
+import org.drools.verifier.report.components.Overlap;
#declare any global variables here
global VerifierReport result;
@@ -33,18 +32,19 @@
rule "Find overlapping restrictions"
when
# There is subsumption between two restrictions
- $subsumption :Subsumption(
- left.causeType == CauseType.RESTRICTION,
- $leftGuid :left.guid,
- $rightGuid :right.guid
- )
- $left :LiteralRestriction(
- guid matches $leftGuid
- )
+ $left :LiteralRestriction()
$right :LiteralRestriction(
- guid matches $rightGuid
+ guid != $left.guid
)
+
+ $subsumption :Subsumption(
+ left.guid == $left.guid,
+ left.verifierComponentType == $left.verifierComponentType,
+ right.guid == $right.guid,
+ right.verifierComponentType == $right.verifierComponentType
+ )
+
# There is no restriction between these two restrictions.
not $center :LiteralRestriction(
fieldGuid matches $left.fieldGuid,
@@ -52,14 +52,6 @@
eval( $center.compareValues( $right ) == -1 )
)
then
- Collection causes = new ArrayList();
- causes.add( $left );
- causes.add( $right );
-
- String message = "Restriction " + $left + " overlaps " + $right + ".";
-
- result.add(new VerifierMessage(
- Severity.NOTE, MessageType.OVERLAP,
- $subsumption, message, causes ) );
-
+ insert( new Overlap( $left, $right ) );
end
+
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Notes.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Notes.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Notes.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -16,11 +16,13 @@
import org.drools.verifier.report.components.Redundancy;
import org.drools.verifier.report.components.VerifierMessage;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.MessageType;
+import java.util.Map;
+import java.util.HashMap;
+
#
# Dependencies:
#
@@ -32,21 +34,26 @@
rule "Find redundant restrictions from pattern possibilities"
salience -100
when
- $r :Redundancy(
- items[0].causeType == CauseType.RESTRICTION
- )
+ $r :Redundancy()
$pp :SubPattern(
items contains $r.items[0],
items contains $r.items[1]
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $pp.getRuleGuid(), $pp.getRuleName());
+
Collection causes = new ArrayList();
causes.addAll( $r.getItems() );
result.add(new VerifierMessage(
- Severity.NOTE, MessageType.REDUNDANCY,
- $r, "Same restriction exists twice.", causes ) );
+ impactedRules,
+ Severity.NOTE,
+ MessageType.REDUNDANCY,
+ $r,
+ "Same restriction exists twice.",
+ causes ) );
end
#
@@ -58,20 +65,25 @@
rule "Find redundant pattern possibilities from rule possibilities"
salience -100
when
- $r :Redundancy(
- items[0].causeType == CauseType.SUB_PATTERN
- )
+ $r :Redundancy()
- SubRule(
+ $sr :SubRule(
items contains $r.items[0],
items contains $r.items[1]
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $sr.getRuleGuid(), $sr.getRuleName());
+
Collection causes = new ArrayList();
causes.addAll( $r.getItems() );
result.add(new VerifierMessage(
- Severity.NOTE, MessageType.REDUNDANCY,
- $r, "Two pattern possibilities with redundant restrictions exists twice in the same rule.", causes ) );
+ impactedRules,
+ Severity.NOTE,
+ MessageType.REDUNDANCY,
+ $r,
+ "Two pattern possibilities with redundant restrictions exists twice in the same rule.",
+ causes ) );
end
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Redundancy.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Redundancy.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Redundancy.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -10,7 +10,9 @@
#import org.drools.verifier.data.VerifierReport;
import org.drools.verifier.report.components.Redundancy;
import org.drools.verifier.report.components.Subsumption;
+import org.drools.verifier.data.VerifierReport;
+global VerifierReport result;
#
# If two objects are subsumptant to each others that makes them redundant.
@@ -25,7 +27,6 @@
$sub :Subsumption( )
Subsumption(
- guid != $sub.guid,
left == $sub.right,
right == $sub.left
)
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Warnings.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Warnings.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Warnings.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -16,15 +16,20 @@
import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.components.RuleComponent;
import org.drools.verifier.report.components.Redundancy;
+import org.drools.verifier.report.components.Equivalence;
import org.drools.verifier.report.components.Subsumption;
import org.drools.verifier.report.components.VerifierMessage;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.MessageType;
+import java.util.Map;
+import java.util.HashMap;
+
+
rule "Find redundant LHS"
@verifying_scopes(knowledge-package, decision-table)
when
@@ -35,7 +40,6 @@
guid != $left.guid
)
-
$leftSubRules : ArrayList()
from collect(
SubRule(
@@ -72,8 +76,16 @@
end
rule "Find equivalent Rules" extends "Find redundant LHS"
+ # This rule needs to fire after "Find redundant rules"
+ # or the not Reduncancy( ... ) does not check correctly.
+ salience -1
when
+ not Equivalence(
+ items contains $left,
+ items contains $right
+ )
+
# RHS should not be redundant
$leftConsequence : Consequence(
guid == $left.consequenceGuid,
@@ -87,14 +99,29 @@
items contains $leftConsequence,
items contains $rightConsequence
)
+
+ $causes : ArrayList()
+ from collect(
+ Subsumption(
+ left memberOf $rightSubRules,
+ right memberOf $leftSubRules
+ )
+ )
then
- Collection causes = new ArrayList();
- causes.add( $left );
- causes.add( $right );
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $leftConsequence.getRuleGuid(), $leftConsequence.getRuleName());
+ impactedRules.put( $rightConsequence.getRuleGuid(), $rightConsequence.getRuleName());
+ Equivalence equivalence = new Equivalence( $left, $right, $causes );
+ insert( equivalence );
+
result.add(new VerifierMessage(
- Severity.WARNING, MessageType.EQUIVALANCE,
- $left, "Rule is equivalent to rule " + $right.getRuleName() + ".", causes ) );
+ impactedRules,
+ Severity.WARNING,
+ MessageType.EQUIVALANCE,
+ $left,
+ "Rule is equivalent to rule " + $right.getRuleName() + ".",
+ equivalence ) );
end
@@ -113,8 +140,13 @@
#
rule "Find redundant rules" extends "Find redundant LHS"
when
-
- # RHS need to be redundant
+
+ not Redundancy(
+ items contains $left,
+ items contains $right
+ )
+
+ # RHS needs to be redundant
$leftConsequence : Consequence(
guid == $left.consequenceGuid,
consequenceType == $left.consequenceType
@@ -128,14 +160,35 @@
items contains $rightConsequence
)
+ $causes : ArrayList()
+ from collect(
+ Subsumption(
+ (
+ left memberOf $rightSubRules
+ &&
+ right memberOf $leftSubRules
+ ) || (
+ right memberOf $rightSubRules
+ &&
+ left memberOf $leftSubRules
+ )
+ )
+ )
then
- Collection causes = new ArrayList();
- causes.add( $left );
- causes.add( $right );
-
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $leftConsequence.getRuleGuid(), $leftConsequence.getRuleName());
+ impactedRules.put( $rightConsequence.getRuleGuid(), $rightConsequence.getRuleName());
+
+ Redundancy redundancy = new Redundancy( $left, $right, $causes );
+ insert( redundancy );
+
result.add(new VerifierMessage(
- Severity.WARNING, MessageType.REDUNDANCY,
- $left, "Rule is redundant to rule " + $right.getRuleName() + ".", causes ) );
+ impactedRules,
+ Severity.WARNING,
+ MessageType.REDUNDANCY,
+ $left,
+ "Rules " + $right.getRuleName() + " and.",
+ redundancy ) );
end
@@ -156,24 +209,37 @@
@verifying_scopes(knowledge-package, decision-table)
salience -100
when
- $subsumption:Subsumption(
- left.causeType == CauseType.SUB_RULE
+ $left :VerifierRule()
+ $right :VerifierRule(
+ guid != $left.guid
)
+ $subsumption :Subsumption(
+ left == $left,
+ right == $right
+ )
+
# No redundacy
not Subsumption(
- left.causeType == CauseType.SUB_RULE,
left == $subsumption.right,
right == $subsumption.left
)
then
+ Map<String,String> impactedRules = new HashMap<String,String>();
+ impactedRules.put( $left.getGuid(), $left.getRuleName());
+ impactedRules.put( $right.getGuid(), $right.getRuleName());
+
Collection causes = new ArrayList();
causes.add( $subsumption.getLeft() );
causes.add( $subsumption.getRight() );
result.add(new VerifierMessage(
- Severity.WARNING, MessageType.SUBSUMPTION,
- $subsumption, "Rules are subsumptant.", causes ) );
+ impactedRules,
+ Severity.WARNING,
+ MessageType.SUBSUMPTION,
+ $subsumption,
+ "Rules are subsumptant.",
+ causes ) );
end
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Consequences.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Consequences.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Consequences.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -4,9 +4,10 @@
import org.drools.verifier.components.TextConsequence;
import org.drools.verifier.report.components.Subsumption;
+import org.drools.verifier.data.VerifierReport;
+global VerifierReport result;
-
#
#
rule "Subsumptant consequences"
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Restrictions.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Restrictions.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Restrictions.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -7,7 +7,9 @@
import org.drools.verifier.components.LiteralRestriction;
import org.drools.verifier.report.components.Subsumption;
+import org.drools.verifier.data.VerifierReport;
+global VerifierReport result;
#
# Fires when two restrictions are subsumptant.
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/SubPatterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/SubPatterns.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/SubPatterns.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -9,12 +9,14 @@
import org.drools.verifier.components.Source;
import org.drools.verifier.report.components.Redundancy;
import org.drools.verifier.report.components.Subsumption;
-import org.drools.verifier.report.components.CauseType;
+import org.drools.verifier.data.VerifierReport;
+import java.util.ArrayList;
+
#declare any global variables here
+global VerifierReport result
-
#
# Fires when two pattern possibilities are subsumptant.
# Creates a Subsumption object.
@@ -40,9 +42,7 @@
patternForall == $subPattern1.patternForall
)
# Check if sources are equal or subsumptant
- $sourceSubsumption :Subsumption(
- left.causeType == CauseType.SOURCE
- )
+ $sourceSubsumption :Subsumption()
Source(
guid == $subPattern1.sourceGuid,
verifierComponentType == $subPattern1.sourceType,
@@ -64,12 +64,22 @@
right memberOf $subPattern2.items
)
)
-# not Subsumption(
-# left memberOf $subPattern1.items,
-# right not memberOf $subPattern2.items
-# )
+
+ $causes : ArrayList()
+ from collect(
+ Subsumption(
+ left memberOf $subPattern1.items,
+ right memberOf $subPattern2.items
+ )
+ )
then
- insert( new Subsumption( $subPattern1, $subPattern2 ) );
+ insert(
+ new Subsumption(
+ $subPattern1,
+ $subPattern2,
+ $causes
+ )
+ );
end
#
@@ -112,10 +122,20 @@
right memberOf $subPattern2.items
)
)
-# not Subsumption(
-# left memberOf $subPattern1.items,
-# right not memberOf $subPattern2.items
-# )
+
+ $causes : ArrayList()
+ from collect(
+ Subsumption(
+ left memberOf $subPattern1.items,
+ right memberOf $subPattern2.items
+ )
+ )
then
- insert( new Subsumption( $subPattern1, $subPattern2 ) );
+ insert(
+ new Subsumption(
+ $subPattern1,
+ $subPattern2,
+ $causes
+ )
+ );
end
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/SubRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/SubRules.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/SubRules.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -9,7 +9,6 @@
import org.drools.verifier.components.Consequence;
import org.drools.verifier.report.components.Redundancy;
import org.drools.verifier.report.components.Subsumption;
-import org.drools.verifier.report.components.CauseType;
#declare any global variables here
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/TestBase.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/TestBase.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/TestBase.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -13,6 +13,7 @@
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.StatelessSession;
+import org.drools.builder.KnowledgeBuilderError;
import org.drools.compiler.DrlParser;
import org.drools.compiler.PackageBuilder;
import org.drools.lang.descr.PackageDescr;
@@ -46,6 +47,13 @@
Package pkg = builder.getPackage();
+ if ( builder.hasErrors() ) {
+ for ( KnowledgeBuilderError error : builder.getErrors() ) {
+ System.out.println( error.getMessage() );
+ }
+ fail( "Builder has errors" );
+ }
+
assertTrue( "Package was null.",
pkg != null );
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -51,7 +51,7 @@
result.getBySeverity( Severity.ERROR ).size() );
assertEquals( 6,
result.getBySeverity( Severity.WARNING ).size() );
- assertEquals( 5,
+ assertEquals( 1,
result.getBySeverity( Severity.NOTE ).size() );
}
@@ -186,6 +186,12 @@
boolean works = verifier.fireAnalysis();
+ if ( !works ) {
+ for ( VerifierError error : verifier.getErrors() ) {
+ System.out.println( error.getMessage() );
+ }
+ fail( "Could not run verifier" );
+ }
assertTrue( works );
VerifierReport result = verifier.getResult();
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifyingScopeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifyingScopeTest.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifyingScopeTest.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -40,8 +40,14 @@
boolean works = verifier.fireAnalysis();
- assertTrue( works );
+ if ( !works ) {
+ for ( VerifierError error : verifier.getErrors() ) {
+ System.out.println( error.getMessage() );
+ }
+ fail( "Error when building in verifier" );
+ }
+
VerifierReport result = verifier.getResult();
assertNotNull( result );
assertEquals( 0,
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/equivalence/EquivalentRulesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/equivalence/EquivalentRulesTest.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/equivalence/EquivalentRulesTest.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -53,13 +53,13 @@
for ( VerifierMessageBase message : warnings ) {
// System.out.println( message );
if ( message.getMessageType().equals( MessageType.EQUIVALANCE ) ) {
- // System.out.println( message );
+// System.out.println( message );
counter++;
}
}
// Has at least one item.
- assertEquals( 2,
+ assertEquals( 1,
counter );
verifier.dispose();
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityBase.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityBase.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityBase.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -7,50 +7,52 @@
import java.util.Set;
import org.drools.verifier.TestBase;
+import org.drools.verifier.components.VerifierComponentType;
+import org.drools.verifier.data.VerifierComponent;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
import org.drools.verifier.report.components.Incompatibility;
public class IncompatibilityBase extends TestBase {
- public void testDummy() {
- // this is needed as eclipse will try to run this and produce a failure
- // if its not here.
- assertTrue(true);
- }
+ public void testDummy() {
+ // this is needed as eclipse will try to run this and produce a failure
+ // if its not here.
+ assertTrue( true );
+ }
- /**
- * Creates incompatibility map from Incompatibility objects, one rule may
- * have several incompatibility dependencies.
- *
- * @param iter
- * @return
- */
- protected Map<Cause, Set<Cause>> createIncompatibilityMap(CauseType type,
- Iterator<Object> iter) {
+ /**
+ * Creates incompatibility map from Incompatibility objects, one rule may
+ * have several incompatibility dependencies.
+ *
+ * @param iter
+ * @return
+ */
+ protected Map<Cause, Set<Cause>> createIncompatibilityMap(VerifierComponentType type,
+ Iterator<Object> iter) {
- Map<Cause, Set<Cause>> map = new HashMap<Cause, Set<Cause>>();
- while (iter.hasNext()) {
- Object o = (Object) iter.next();
- if (o instanceof Incompatibility) {
- Incompatibility r = (Incompatibility) o;
+ Map<Cause, Set<Cause>> map = new HashMap<Cause, Set<Cause>>();
+ while ( iter.hasNext() ) {
+ Object o = (Object) iter.next();
+ if ( o instanceof Incompatibility ) {
+ Incompatibility r = (Incompatibility) o;
- if (r.getLeft().getCauseType() == type) {
- Cause left = r.getLeft();
- Cause right = r.getRight();
+ if ( ((VerifierComponent) r.getLeft()).getVerifierComponentType().equals( type ) ) {
+ Cause left = r.getLeft();
+ Cause right = r.getRight();
- if (map.containsKey(left)) {
- Set<Cause> set = map.get(left);
- set.add(right);
- } else {
- Set<Cause> set = new HashSet<Cause>();
- set.add(right);
- map.put(left, set);
- }
- }
- }
- }
+ if ( map.containsKey( left ) ) {
+ Set<Cause> set = map.get( left );
+ set.add( right );
+ } else {
+ Set<Cause> set = new HashSet<Cause>();
+ set.add( right );
+ map.put( left,
+ set );
+ }
+ }
+ }
+ }
- return map;
- }
+ return map;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityPatternsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityPatternsTest.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityPatternsTest.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -10,92 +10,99 @@
import org.drools.base.RuleNameMatchesAgendaFilter;
import org.drools.verifier.TestBase;
import org.drools.verifier.components.LiteralRestriction;
+import org.drools.verifier.components.Restriction;
import org.drools.verifier.components.SubPattern;
-import org.drools.verifier.components.Restriction;
+import org.drools.verifier.components.VerifierComponentType;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
import org.drools.verifier.report.components.Incompatibility;
public class IncompatibilityPatternsTest extends IncompatibilityBase {
- public void testPatternsPossibilitiesIncompatibility() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Patterns.drl"));
+ public void testPatternsPossibilitiesIncompatibility() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Patterns.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Incompatible Patterns"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incompatible Patterns" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- /*
- * Working pair
- */
- SubPattern pp1 = new SubPattern();
- SubPattern pp2 = new SubPattern();
+ /*
+ * Working pair
+ */
+ SubPattern pp1 = new SubPattern();
+ SubPattern pp2 = new SubPattern();
- Restriction r1 = new LiteralRestriction();
- pp1.add(r1);
+ Restriction r1 = new LiteralRestriction();
+ pp1.add( r1 );
- Restriction r2 = new LiteralRestriction();
- pp2.add(r2);
+ Restriction r2 = new LiteralRestriction();
+ pp2.add( r2 );
- Restriction r3 = new LiteralRestriction();
- pp1.add(r3);
+ Restriction r3 = new LiteralRestriction();
+ pp1.add( r3 );
- Restriction r4 = new LiteralRestriction();
- pp2.add(r4);
+ Restriction r4 = new LiteralRestriction();
+ pp2.add( r4 );
- Incompatibility o1 = new Incompatibility(r1, r2);
- Incompatibility o2 = new Incompatibility(r3, r4);
+ Incompatibility o1 = new Incompatibility( r1,
+ r2 );
+ Incompatibility o2 = new Incompatibility( r3,
+ r4 );
- /*
- * Another working pair.
- */
- SubPattern pp3 = new SubPattern();
- SubPattern pp4 = new SubPattern();
+ /*
+ * Another working pair.
+ */
+ SubPattern pp3 = new SubPattern();
+ SubPattern pp4 = new SubPattern();
- Restriction r5 = new LiteralRestriction();
- pp3.add(r5);
+ Restriction r5 = new LiteralRestriction();
+ pp3.add( r5 );
- Restriction r6 = new LiteralRestriction();
- pp4.add(r6);
+ Restriction r6 = new LiteralRestriction();
+ pp4.add( r6 );
- Restriction r7 = new LiteralRestriction();
- pp3.add(r7);
+ Restriction r7 = new LiteralRestriction();
+ pp3.add( r7 );
- Restriction r8 = new LiteralRestriction();
- pp4.add(r8);
+ Restriction r8 = new LiteralRestriction();
+ pp4.add( r8 );
- Incompatibility o3 = new Incompatibility(r5, r6);
+ Incompatibility o3 = new Incompatibility( r5,
+ r6 );
- data.add(r1);
- data.add(r2);
- data.add(r3);
- data.add(r4);
- data.add(r5);
- data.add(r6);
- data.add(r7);
- data.add(r8);
- data.add(pp1);
- data.add(pp2);
- data.add(pp3);
- data.add(pp4);
- data.add(o1);
- data.add(o2);
- data.add(o3);
+ data.add( r1 );
+ data.add( r2 );
+ data.add( r3 );
+ data.add( r4 );
+ data.add( r5 );
+ data.add( r6 );
+ data.add( r7 );
+ data.add( r8 );
+ data.add( pp1 );
+ data.add( pp2 );
+ data.add( pp3 );
+ data.add( pp4 );
+ data.add( o1 );
+ data.add( o2 );
+ data.add( o3 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createIncompatibilityMap(
- CauseType.SUB_PATTERN, sessionResult.iterateObjects());
+ Map<Cause, Set<Cause>> map = createIncompatibilityMap( VerifierComponentType.SUB_PATTERN,
+ sessionResult.iterateObjects() );
- assertTrue((TestBase.causeMapContains(map, pp1, pp2) ^ TestBase
- .causeMapContains(map, pp2, pp1)));
- assertTrue((TestBase.causeMapContains(map, pp3, pp4) ^ TestBase
- .causeMapContains(map, pp4, pp3)));
+ assertTrue( (TestBase.causeMapContains( map,
+ pp1,
+ pp2 ) ^ TestBase.causeMapContains( map,
+ pp2,
+ pp1 )) );
+ assertTrue( (TestBase.causeMapContains( map,
+ pp3,
+ pp4 ) ^ TestBase.causeMapContains( map,
+ pp4,
+ pp3 )) );
- if (!map.isEmpty()) {
- fail("More opposites than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More opposites than was expected." );
+ }
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityRestrictionsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityRestrictionsTest.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityRestrictionsTest.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -15,7 +15,6 @@
import org.drools.verifier.components.VariableRestriction;
import org.drools.verifier.components.VerifierComponentType;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
public class IncompatibilityRestrictionsTest extends IncompatibilityBase {
@@ -63,7 +62,7 @@
StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createIncompatibilityMap( CauseType.RESTRICTION,
+ Map<Cause, Set<Cause>> map = createIncompatibilityMap( VerifierComponentType.RESTRICTION,
sessionResult.iterateObjects() );
assertTrue( (TestBase.causeMapContains( map,
@@ -121,7 +120,7 @@
StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createIncompatibilityMap( CauseType.RESTRICTION,
+ Map<Cause, Set<Cause>> map = createIncompatibilityMap( VerifierComponentType.RESTRICTION,
sessionResult.iterateObjects() );
assertTrue( (TestBase.causeMapContains( map,
@@ -179,7 +178,7 @@
StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createIncompatibilityMap( CauseType.RESTRICTION,
+ Map<Cause, Set<Cause>> map = createIncompatibilityMap( VerifierComponentType.RESTRICTION,
sessionResult.iterateObjects() );
assertTrue( (TestBase.causeMapContains( map,
@@ -245,7 +244,7 @@
StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createIncompatibilityMap( CauseType.RESTRICTION,
+ Map<Cause, Set<Cause>> map = createIncompatibilityMap( VerifierComponentType.RESTRICTION,
sessionResult.iterateObjects() );
assertTrue( (TestBase.causeMapContains( map,
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositePatternsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositePatternsTest.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositePatternsTest.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -10,90 +10,94 @@
import org.drools.base.RuleNameMatchesAgendaFilter;
import org.drools.verifier.TestBase;
import org.drools.verifier.components.LiteralRestriction;
+import org.drools.verifier.components.Restriction;
import org.drools.verifier.components.SubPattern;
-import org.drools.verifier.components.Restriction;
+import org.drools.verifier.components.VerifierComponentType;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
import org.drools.verifier.report.components.Opposites;
public class OppositePatternsTest extends OppositesBase {
- public void testPatternsPossibilitiesOpposite() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Patterns.drl"));
+ public void testPatternsPossibilitiesOpposite() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Patterns.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Opposite Patterns"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Opposite Patterns" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- /*
- * Working pair
- */
- SubPattern pp1 = new SubPattern();
- SubPattern pp2 = new SubPattern();
+ /*
+ * Working pair
+ */
+ SubPattern pp1 = new SubPattern();
+ SubPattern pp2 = new SubPattern();
- Restriction r1 = new LiteralRestriction();
- pp1.add(r1);
+ Restriction r1 = new LiteralRestriction();
+ pp1.add( r1 );
- Restriction r2 = new LiteralRestriction();
- pp2.add(r2);
+ Restriction r2 = new LiteralRestriction();
+ pp2.add( r2 );
- Restriction r3 = new LiteralRestriction();
- pp1.add(r3);
+ Restriction r3 = new LiteralRestriction();
+ pp1.add( r3 );
- Restriction r4 = new LiteralRestriction();
- pp2.add(r4);
+ Restriction r4 = new LiteralRestriction();
+ pp2.add( r4 );
- Opposites o1 = new Opposites(r1, r2);
- Opposites o2 = new Opposites(r3, r4);
+ Opposites o1 = new Opposites( r1,
+ r2 );
+ Opposites o2 = new Opposites( r3,
+ r4 );
- /*
- * Pair that doesn't work.
- */
- SubPattern pp3 = new SubPattern();
- SubPattern pp4 = new SubPattern();
+ /*
+ * Pair that doesn't work.
+ */
+ SubPattern pp3 = new SubPattern();
+ SubPattern pp4 = new SubPattern();
- Restriction r5 = new LiteralRestriction();
- pp3.add(r5);
+ Restriction r5 = new LiteralRestriction();
+ pp3.add( r5 );
- Restriction r6 = new LiteralRestriction();
- pp4.add(r6);
+ Restriction r6 = new LiteralRestriction();
+ pp4.add( r6 );
- Restriction r7 = new LiteralRestriction();
- pp3.add(r7);
+ Restriction r7 = new LiteralRestriction();
+ pp3.add( r7 );
- Restriction r8 = new LiteralRestriction();
- pp4.add(r8);
+ Restriction r8 = new LiteralRestriction();
+ pp4.add( r8 );
- Opposites o3 = new Opposites(r5, r6);
+ Opposites o3 = new Opposites( r5,
+ r6 );
- data.add(r1);
- data.add(r2);
- data.add(r3);
- data.add(r4);
- data.add(r5);
- data.add(r6);
- data.add(r7);
- data.add(r8);
- data.add(pp1);
- data.add(pp2);
- data.add(pp3);
- data.add(pp4);
- data.add(o1);
- data.add(o2);
- data.add(o3);
+ data.add( r1 );
+ data.add( r2 );
+ data.add( r3 );
+ data.add( r4 );
+ data.add( r5 );
+ data.add( r6 );
+ data.add( r7 );
+ data.add( r8 );
+ data.add( pp1 );
+ data.add( pp2 );
+ data.add( pp3 );
+ data.add( pp4 );
+ data.add( o1 );
+ data.add( o2 );
+ data.add( o3 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createOppositesMap(
- CauseType.SUB_PATTERN, sessionResult.iterateObjects());
+ Map<Cause, Set<Cause>> map = createOppositesMap( VerifierComponentType.SUB_PATTERN,
+ sessionResult.iterateObjects() );
- assertTrue((TestBase.causeMapContains(map, pp1, pp2) ^ TestBase
- .causeMapContains(map, pp2, pp1)));
+ assertTrue( (TestBase.causeMapContains( map,
+ pp1,
+ pp2 ) ^ TestBase.causeMapContains( map,
+ pp2,
+ pp1 )) );
- if (!map.isEmpty()) {
- fail("More opposites than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More opposites than was expected." );
+ }
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositeRestrictionsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositeRestrictionsTest.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositeRestrictionsTest.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -16,7 +16,6 @@
import org.drools.verifier.components.VariableRestriction;
import org.drools.verifier.components.VerifierComponentType;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
public class OppositeRestrictionsTest extends OppositesBase {
@@ -66,7 +65,7 @@
StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createOppositesMap( CauseType.RESTRICTION,
+ Map<Cause, Set<Cause>> map = createOppositesMap( VerifierComponentType.RESTRICTION,
sessionResult.iterateObjects() );
assertTrue( (TestBase.causeMapContains( map,
@@ -112,7 +111,7 @@
StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createOppositesMap( CauseType.RESTRICTION,
+ Map<Cause, Set<Cause>> map = createOppositesMap( VerifierComponentType.RESTRICTION,
sessionResult.iterateObjects() );
assertTrue( (TestBase.causeMapContains( map,
@@ -148,7 +147,7 @@
StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createOppositesMap( CauseType.RESTRICTION,
+ Map<Cause, Set<Cause>> map = createOppositesMap( VerifierComponentType.RESTRICTION,
sessionResult.iterateObjects() );
assertTrue( (TestBase.causeMapContains( map,
@@ -184,7 +183,7 @@
StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createOppositesMap( CauseType.RESTRICTION,
+ Map<Cause, Set<Cause>> map = createOppositesMap( VerifierComponentType.RESTRICTION,
sessionResult.iterateObjects() );
assertTrue( (TestBase.causeMapContains( map,
@@ -220,7 +219,7 @@
StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createOppositesMap( CauseType.RESTRICTION,
+ Map<Cause, Set<Cause>> map = createOppositesMap( VerifierComponentType.RESTRICTION,
sessionResult.iterateObjects() );
assertTrue( (TestBase.causeMapContains( map,
@@ -308,7 +307,7 @@
StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createOppositesMap( CauseType.RESTRICTION,
+ Map<Cause, Set<Cause>> map = createOppositesMap( VerifierComponentType.RESTRICTION,
sessionResult.iterateObjects() );
assertTrue( (TestBase.causeMapContains( map,
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositesBase.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositesBase.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositesBase.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -7,50 +7,52 @@
import java.util.Set;
import org.drools.verifier.TestBase;
+import org.drools.verifier.components.VerifierComponentType;
+import org.drools.verifier.data.VerifierComponent;
import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
import org.drools.verifier.report.components.Opposites;
public class OppositesBase extends TestBase {
- public void testDummy() {
- // this is needed as eclipse will try to run this and produce a failure
- // if its not here.
- assertTrue(true);
- }
+ public void testDummy() {
+ // this is needed as eclipse will try to run this and produce a failure
+ // if its not here.
+ assertTrue( true );
+ }
- /**
- * Creates opposites map from Opposites objects, one rule may have several
- * opposing dependencies.
- *
- * @param iter
- * @return
- */
- protected Map<Cause, Set<Cause>> createOppositesMap(CauseType type,
- Iterator<Object> iter) {
+ /**
+ * Creates opposites map from Opposites objects, one rule may have several
+ * opposing dependencies.
+ *
+ * @param iter
+ * @return
+ */
+ protected Map<Cause, Set<Cause>> createOppositesMap(VerifierComponentType type,
+ Iterator<Object> iter) {
- Map<Cause, Set<Cause>> map = new HashMap<Cause, Set<Cause>>();
- while (iter.hasNext()) {
- Object o = (Object) iter.next();
- if (o instanceof Opposites) {
- Opposites r = (Opposites) o;
+ Map<Cause, Set<Cause>> map = new HashMap<Cause, Set<Cause>>();
+ while ( iter.hasNext() ) {
+ Object o = (Object) iter.next();
+ if ( o instanceof Opposites ) {
+ Opposites r = (Opposites) o;
- if (r.getLeft().getCauseType() == type) {
- Cause left = r.getLeft();
- Cause right = r.getRight();
+ if ( ((VerifierComponent) r.getLeft()).getVerifierComponentType().equals( type ) ) {
+ Cause left = r.getLeft();
+ Cause right = r.getRight();
- if (map.containsKey(left)) {
- Set<Cause> set = map.get(left);
- set.add(right);
- } else {
- Set<Cause> set = new HashSet<Cause>();
- set.add(right);
- map.put(left, set);
- }
- }
- }
- }
+ if ( map.containsKey( left ) ) {
+ Set<Cause> set = map.get( left );
+ set.add( right );
+ } else {
+ Set<Cause> set = new HashSet<Cause>();
+ set.add( right );
+ map.put( left,
+ set );
+ }
+ }
+ }
+ }
- return map;
- }
+ return map;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/overlaps/OverlappingRestrictionsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/overlaps/OverlappingRestrictionsTest.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/overlaps/OverlappingRestrictionsTest.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,116 +1,44 @@
package org.drools.verifier.overlaps;
-import java.util.ArrayList;
import java.util.Collection;
-import java.util.Iterator;
-import org.drools.StatelessSession;
-import org.drools.base.RuleNameMatchesAgendaFilter;
-import org.drools.base.evaluators.Operator;
+import org.drools.builder.ResourceType;
+import org.drools.io.ResourceFactory;
+import org.drools.runtime.ClassObjectFilter;
import org.drools.verifier.TestBase;
-import org.drools.verifier.components.Field;
-import org.drools.verifier.components.LiteralRestriction;
-import org.drools.verifier.components.RuleComponent;
-import org.drools.verifier.data.VerifierReport;
-import org.drools.verifier.data.VerifierReportFactory;
-import org.drools.verifier.report.components.Severity;
-import org.drools.verifier.report.components.Subsumption;
-import org.drools.verifier.report.components.VerifierMessage;
-import org.drools.verifier.report.components.VerifierMessageBase;
+import org.drools.verifier.Verifier;
+import org.drools.verifier.builder.VerifierBuilder;
+import org.drools.verifier.builder.VerifierBuilderFactory;
+import org.drools.verifier.builder.VerifierImpl;
+import org.drools.verifier.report.components.Overlap;
public class OverlappingRestrictionsTest extends TestBase {
- public void testOverlap() throws Exception {
- StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Restrictions.drl" ) );
+ // TODO: Add this feature
+ public void testOverlap() {
+ VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
- session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Find overlapping restrictions" ) );
+ Verifier verifier = vBuilder.newVerifier();
- VerifierReport result = VerifierReportFactory.newVerifierReport();
+ verifier.addResourcesToVerify( ResourceFactory.newClassPathResource( "RestrictionsTest.drl",
+ getClass() ),
+ ResourceType.DRL );
- Collection<Object> data = new ArrayList<Object>();
+ assertFalse( verifier.hasErrors() );
- /*
- * There restrictions overlap
- */
- String ruleName1 = "Rule 1";
+ boolean noProblems = verifier.fireAnalysis();
+ assertTrue( noProblems );
- Field field1 = new Field();
+ Collection<Object> overlaps = ((VerifierImpl) verifier).getKnowledgeSession().getObjects( new ClassObjectFilter( Overlap.class ) );
- LiteralRestriction lr1 = new LiteralRestriction();
- lr1.setRuleName( ruleName1 );
- lr1.setFieldGuid( field1.getGuid() );
- lr1.setValue( "1.0" );
- lr1.setOperator( Operator.GREATER );
+// for ( Object object : overlaps ) {
+// System.out.println( object );
+// }
- LiteralRestriction lr2 = new LiteralRestriction();
- lr2.setRuleName( ruleName1 );
- lr2.setFieldGuid( field1.getGuid() );
- lr2.setValue( "2.0" );
- lr2.setOperator( Operator.GREATER );
+ assertEquals( 3,
+ overlaps.size() );
- Subsumption s1 = new Subsumption( lr1,
- lr2 );
+ verifier.dispose();
- /*
- * There restrictions do not overlap
- */
- String ruleName2 = "Rule 2";
-
- Field field2 = new Field();
-
- LiteralRestriction lr3 = new LiteralRestriction();
- lr3.setRuleName( ruleName2 );
- lr3.setFieldGuid( field2.getGuid() );
- lr3.setValue( "1.0" );
- lr3.setOperator( Operator.GREATER );
-
- LiteralRestriction lr4 = new LiteralRestriction();
- lr4.setRuleName( ruleName2 );
- lr4.setFieldGuid( field2.getGuid() );
- lr4.setValue( "2.0" );
- lr4.setOperator( Operator.GREATER );
-
- LiteralRestriction lr5 = new LiteralRestriction();
- lr5.setRuleName( ruleName2 );
- lr5.setFieldGuid( field2.getGuid() );
- lr5.setValue( "1.5" );
- lr5.setOperator( Operator.LESS );
-
- Subsumption s2 = new Subsumption( lr3,
- lr4 );
-
- data.add( lr1 );
- data.add( lr2 );
- data.add( lr3 );
- data.add( lr4 );
- data.add( lr5 );
- data.add( s1 );
- data.add( s2 );
-
- session.setGlobal( "result",
- result );
-
- session.executeWithResults( data );
-
- Iterator<VerifierMessageBase> iter = result.getBySeverity( Severity.NOTE ).iterator();
-
- Collection<String> ruleNames = new ArrayList<String>();
- while ( iter.hasNext() ) {
- Object o = (Object) iter.next();
- if ( o instanceof VerifierMessage ) {
- String name = ((VerifierMessage) o).getCauses().toArray( new RuleComponent[2] )[0].getRuleName();
-
- ruleNames.add( name );
- }
- }
-
- assertTrue( ruleNames.remove( ruleName1 ) );
- assertFalse( ruleNames.remove( ruleName2 ) );
-
- if ( !ruleNames.isEmpty() ) {
- for ( String string : ruleNames ) {
- fail( "Rule " + string + " caused an error." );
- }
- }
}
}
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/WarningsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/WarningsTest.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/WarningsTest.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -48,7 +48,7 @@
}
}
- assertEquals( 2,
+ assertEquals( 1,
counter );
verifier.dispose();
Added: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/components/CauseTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/components/CauseTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/components/CauseTest.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -0,0 +1,77 @@
+package org.drools.verifier.report.components;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import junit.framework.TestCase;
+
+import org.drools.builder.ResourceType;
+import org.drools.io.impl.ClassPathResource;
+import org.drools.verifier.Verifier;
+import org.drools.verifier.builder.VerifierBuilder;
+import org.drools.verifier.builder.VerifierBuilderFactory;
+import org.drools.verifier.data.VerifierReport;
+
+public class CauseTest extends TestCase {
+
+ public void testCauseTrace() throws Exception {
+
+ VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
+
+ // Check that the builder works.
+ assertFalse( vBuilder.hasErrors() );
+ assertEquals( 0,
+ vBuilder.getErrors().size() );
+
+ Verifier verifier = vBuilder.newVerifier();
+
+ verifier.addResourcesToVerify( new ClassPathResource( "Causes.drl",
+ getClass() ),
+ ResourceType.DRL );
+
+ assertFalse( verifier.hasErrors() );
+ assertEquals( 0,
+ verifier.getErrors().size() );
+
+ boolean works = verifier.fireAnalysis();
+
+ assertTrue( works );
+
+ VerifierReport result = verifier.getResult();
+ assertNotNull( result );
+ assertEquals( 0,
+ result.getBySeverity( Severity.ERROR ).size() );
+ Collection<VerifierMessageBase> warnings = result.getBySeverity( Severity.WARNING );
+ Collection<VerifierMessageBase> redundancyWarnings = new ArrayList<VerifierMessageBase>();
+
+ for ( VerifierMessageBase verifierMessageBase : warnings ) {
+ if ( verifierMessageBase.getMessageType().equals( MessageType.REDUNDANCY ) ) {
+ redundancyWarnings.add( verifierMessageBase );
+ }
+ }
+
+ assertEquals( 1,
+ redundancyWarnings.size() );
+
+ VerifierMessage message = (VerifierMessage) redundancyWarnings.toArray()[0];
+
+ assertEquals( 2,
+ message.getImpactedRules().size() );
+
+ assertTrue( message.getImpactedRules().values().contains( "Your First Rule" ) );
+ assertTrue( message.getImpactedRules().values().contains( "Your Second Rule" ) );
+
+ // TODO: Test causes
+ Cause[] causes = message.getCauses().toArray( new Cause[message.getCauses().size()] );
+
+ assertEquals( 1,
+ causes.length );
+ causes = causes[0].getCauses().toArray( new Cause[message.getCauses().size()] );
+ assertEquals( 2,
+ causes.length );
+
+ assertEquals( 0,
+ result.getBySeverity( Severity.NOTE ).size() );
+
+ }
+}
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantSubPatternsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantSubPatternsTest.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantSubPatternsTest.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -12,7 +12,8 @@
import org.drools.verifier.builder.VerifierBuilder;
import org.drools.verifier.builder.VerifierBuilderFactory;
import org.drools.verifier.builder.VerifierImpl;
-import org.drools.verifier.report.components.CauseType;
+import org.drools.verifier.components.VerifierComponentType;
+import org.drools.verifier.data.VerifierComponent;
import org.drools.verifier.report.components.Subsumption;
public class SubsumptantSubPatternsTest extends TestCase {
@@ -34,14 +35,18 @@
assertFalse( verifier.hasErrors() );
boolean noProblems = verifier.fireAnalysis();
- assertTrue( noProblems );
+ if ( !noProblems ) {
+ for ( VerifierError error : verifier.getErrors() ) {
+ System.out.println( error.getMessage() );
+ }
+ }
Collection<Object> subsumptionList = ((VerifierImpl) verifier).getKnowledgeSession().getObjects( new ClassObjectFilter( Subsumption.class ) );
int count = 0;
for ( Object object : subsumptionList ) {
// System.out.println( " * " + ((Subsumption) object) );
- if ( ((Subsumption) object).getLeft().getCauseType().equals( CauseType.SUB_PATTERN ) ) {
+ if ( ((VerifierComponent) ((Subsumption) object).getLeft()).getVerifierComponentType().equals( VerifierComponentType.SUB_PATTERN ) ) {
// System.out.println( " ** " + ((SubPattern) ((Subsumption) object).getLeft()).getItems() + " - " + ((SubPattern) ((Subsumption) object).getRight()).getItems() );
count++;
}
@@ -80,7 +85,7 @@
int count = 0;
for ( Object object : subsumptionList ) {
// System.out.println( " * " + ((Subsumption) object) );
- if ( ((Subsumption) object).getLeft().getCauseType().equals( CauseType.SUB_PATTERN ) ) {
+ if ( ((VerifierComponent) ((Subsumption) object).getLeft()).getVerifierComponentType().equals( VerifierComponentType.SUB_PATTERN ) ) {
count++;
}
}
@@ -118,7 +123,7 @@
int count = 0;
for ( Object object : subsumptionList ) {
// System.out.println( " * " + ((Subsumption) object) );
- if ( ((Subsumption) object).getLeft().getCauseType().equals( CauseType.SUB_PATTERN ) ) {
+ if ( ((VerifierComponent) ((Subsumption) object).getLeft()).getVerifierComponentType().equals( VerifierComponentType.SUB_PATTERN ) ) {
count++;
}
}
@@ -156,7 +161,7 @@
int count = 0;
for ( Object object : subsumptionList ) {
System.out.println( " * " + ((Subsumption) object) );
- if ( ((Subsumption) object).getLeft().getCauseType().equals( CauseType.SUB_PATTERN ) ) {
+ if ( ((VerifierComponent) ((Subsumption) object).getLeft()).getVerifierComponentType().equals( VerifierComponentType.SUB_PATTERN ) ) {
count++;
}
}
@@ -194,7 +199,7 @@
int count = 0;
for ( Object object : subsumptionList ) {
// System.out.println( " * " + ((Subsumption) object) );
- if ( ((Subsumption) object).getLeft().getCauseType().equals( CauseType.SUB_PATTERN ) ) {
+ if ( ((VerifierComponent) ((Subsumption) object).getLeft()).getVerifierComponentType().equals( VerifierComponentType.SUB_PATTERN ) ) {
count++;
}
}
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantSubRulesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantSubRulesTest.java 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantSubRulesTest.java 2010-03-15 11:32:39 UTC (rev 32091)
@@ -12,7 +12,8 @@
import org.drools.verifier.builder.VerifierBuilder;
import org.drools.verifier.builder.VerifierBuilderFactory;
import org.drools.verifier.builder.VerifierImpl;
-import org.drools.verifier.report.components.CauseType;
+import org.drools.verifier.components.VerifierComponentType;
+import org.drools.verifier.data.VerifierComponent;
import org.drools.verifier.report.components.Subsumption;
public class SubsumptantSubRulesTest extends TestCase {
@@ -41,7 +42,7 @@
int count = 0;
for ( Object object : subsumptionList ) {
// System.out.println( " * " + ((Subsumption) object) );
- if ( ((Subsumption) object).getLeft().getCauseType().equals( CauseType.SUB_RULE ) ) {
+ if ( ((VerifierComponent) ((Subsumption) object).getLeft()).getVerifierComponentType().equals( VerifierComponentType.SUB_RULE ) ) {
// System.out.println( " ** " + ((SubRule) ((Subsumption) object).getLeft()).getItems() + " - " + ((SubRule) ((Subsumption) object).getRight()).getItems() );
count++;
}
Modified: labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/FindPatterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/FindPatterns.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/FindPatterns.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -8,6 +8,8 @@
import org.drools.verifier.data.VerifierReport;
+import java.util.HashMap;
+
global VerifierReport result;
@@ -17,6 +19,7 @@
$p :Pattern( )
then
result.add( new VerifierMessage(
+ new HashMap<String,String>(),
Severity.NOTE,
MessageType.NOT_SPECIFIED,
$p,
Modified: labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/VerifyingScope.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/VerifyingScope.drl 2010-03-15 10:32:34 UTC (rev 32090)
+++ labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/VerifyingScope.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -1,8 +1,6 @@
#created on: 18.12.2009
package org.drools.verifier
-global VerifierReport result;
-
import java.util.ArrayList;
import org.drools.verifier.data.VerifierReport;
@@ -13,14 +11,22 @@
import org.drools.verifier.report.components.VerifierMessage;
import org.drools.verifier.report.components.MessageType;
+import java.util.HashMap;
+
+global VerifierReport result;
+
rule "Single"
@verifying_scopes(single-rule)
when
$a :VerifierRule()
then
result.add(new VerifierMessage(
- Severity.NOTE, MessageType.EQUIVALANCE,
- $a, "", new ArrayList() ) );
+ new HashMap<String,String>(),
+ Severity.NOTE,
+ MessageType.EQUIVALANCE,
+ $a,
+ "",
+ new ArrayList() ) );
end
rule "single or dtable"
@@ -29,8 +35,12 @@
$a :VerifierRule()
then
result.add(new VerifierMessage(
- Severity.NOTE, MessageType.EQUIVALANCE,
- $a, "", new ArrayList() ) );
+ new HashMap<String,String>(),
+ Severity.NOTE,
+ MessageType.EQUIVALANCE,
+ $a,
+ "",
+ new ArrayList() ) );
end
rule "no verifying scope set"
@@ -38,6 +48,10 @@
$a :VerifierRule()
then
result.add(new VerifierMessage(
- Severity.NOTE, MessageType.EQUIVALANCE,
- $a, "", new ArrayList() ) );
+ new HashMap<String,String>(),
+ Severity.NOTE,
+ MessageType.EQUIVALANCE,
+ $a,
+ "",
+ new ArrayList() ) );
end
Added: labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/overlaps/RestrictionsTest.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/overlaps/RestrictionsTest.drl (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/overlaps/RestrictionsTest.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -0,0 +1,45 @@
+#created on: 25-Feb-2010
+package org.drools.verifier.overlaps
+
+#list any import classes here.
+
+
+
+#declare any global variables here
+
+
+
+
+rule "Overlap I"
+
+ when
+ Person(
+ age > 10,
+ age > 1
+ )
+ then
+
+end
+
+rule "Overlap II"
+ when
+ Monkey( hasBanana == true )
+ Monkey( hasBanana == true )
+ then
+
+end
+/*
+rule "Overlap III A"
+ when
+ Player( position < 10 )
+ then
+
+end
+
+rule "Overlap III B"
+ when
+ Player( position == 1 )
+ then
+
+end
+*/
Added: labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/report/components/Causes.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/report/components/Causes.drl (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/report/components/Causes.drl 2010-03-15 11:32:39 UTC (rev 32091)
@@ -0,0 +1,27 @@
+#created on: 25-Feb-2010
+package org.drools.verifier.report.components
+
+#list any import classes here.
+
+
+
+#declare any global variables here
+
+
+
+
+rule "Your First Rule"
+ when
+ Person( name == "Toni" )
+ then
+ System.out.println( "*******************" );
+
+end
+
+rule "Your Second Rule"
+ when
+ Person( name == "Toni" )
+ then
+ System.out.println( "*******************" );
+
+end
More information about the jboss-svn-commits
mailing list