[jboss-svn-commits] JBL Code SVN: r15113 - in labs/jbossrules/trunk/experimental/drools-analytics: src/main/java/org/drools/analytics and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Sep 14 01:42:38 EDT 2007
Author: Rikkola
Date: 2007-09-14 01:42:37 -0400 (Fri, 14 Sep 2007)
New Revision: 15113
Modified:
labs/jbossrules/trunk/experimental/drools-analytics/.classpath
labs/jbossrules/trunk/experimental/drools-analytics/.project
labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java
labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/RuleLoader.java
labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/Solvers.java
labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsRule.java
labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Field.java
labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Pattern.java
labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/PatternPossibility.java
labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Restriction.java
labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/RulePossibility.java
labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/Cause.java
labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/Gap.java
labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/MissingNumberPattern.java
labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/Redundancy.java
labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/rangeChecks/Patterns.drl
labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Patterns.drl
labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Possibilities.drl
labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl
labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Rules.drl
Log:
Some component and redundancy fixes.
Modified: labs/jbossrules/trunk/experimental/drools-analytics/.classpath
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/.classpath 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/.classpath 2007-09-14 05:42:37 UTC (rev 15113)
@@ -1,21 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
- <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
- <classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
- <classpathentry kind="output" path="target/classes"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar" sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar" sourcepath="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/>
- <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mvel/mvel14/1.2rc6/mvel14-1.2rc6.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/drools/drools-decisiontables/4.0.2.SNAPSHOT/drools-decisiontables-4.0.2.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-decisiontables/4.0.2.SNAPSHOT/drools-decisiontables-4.0.2.SNAPSHOT-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/drools/drools-core/4.0.2.SNAPSHOT/drools-core-4.0.2.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-core/4.0.2.SNAPSHOT/drools-core-4.0.2.SNAPSHOT-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
- <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0.jar" sourcepath="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/drools/drools-compiler/4.0.2.SNAPSHOT/drools-compiler-4.0.2.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-compiler/4.0.2.SNAPSHOT/drools-compiler-4.0.2.SNAPSHOT-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.7/janino-2.5.7.jar"/>
-</classpath>
\ No newline at end of file
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry excluding="**/*.java" kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar" sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar" sourcepath="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel14/1.2rc6/mvel14-1.2rc6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/drools/drools-decisiontables/4.0.2.SNAPSHOT/drools-decisiontables-4.0.2.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-decisiontables/4.0.2.SNAPSHOT/drools-decisiontables-4.0.2.SNAPSHOT-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/drools/drools-core/4.0.2.SNAPSHOT/drools-core-4.0.2.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-core/4.0.2.SNAPSHOT/drools-core-4.0.2.SNAPSHOT-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0.jar" sourcepath="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/drools/drools-compiler/4.0.2.SNAPSHOT/drools-compiler-4.0.2.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-compiler/4.0.2.SNAPSHOT/drools-compiler-4.0.2.SNAPSHOT-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.7/janino-2.5.7.jar"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Modified: labs/jbossrules/trunk/experimental/drools-analytics/.project
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/.project 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/.project 2007-09-14 05:42:37 UTC (rev 15113)
@@ -1,13 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>drools-analytics</name>
- <comment>A rule production system</comment>
- <projects/>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
\ No newline at end of file
+ <name>drools-analytics</name>
+ <comment>A rule production system</comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java 2007-09-14 05:42:37 UTC (rev 15113)
@@ -99,7 +99,6 @@
Collection<Package> packages = RuleLoader.loadPackages();
for (Package pkg : packages) {
-
ruleBase.addPackage(pkg);
}
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/RuleLoader.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/RuleLoader.java 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/RuleLoader.java 2007-09-14 05:42:37 UTC (rev 15113)
@@ -52,17 +52,19 @@
.getResourceAsStream("rangeChecks/Patterns.drl")));
list.add(new InputStreamReader(RuleLoader.class
.getResourceAsStream("rangeChecks/Variables.drl")));
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("redundancy/Patterns.drl")));
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("redundancy/Possibilities.drl")));
-// list.add(new InputStreamReader(RuleLoader.class
-// .getResourceAsStream("redundancy/Restrictions.drl")));
-// list.add(new InputStreamReader(RuleLoader.class
-// .getResourceAsStream("redundancy/Rules.drl")));
- list.add(new InputStreamReader(RuleLoader.class
- .getResourceAsStream("reports/RangeCheckReports.drl")));
+ // list.add(new InputStreamReader(RuleLoader.class
+ // .getResourceAsStream("redundancy/Possibilities.drl")));
+ //
+ // list.add(new InputStreamReader(RuleLoader.class
+ // .getResourceAsStream("redundancy/Patterns.drl")));
+ // list.add(new InputStreamReader(RuleLoader.class
+ // .getResourceAsStream("redundancy/Restrictions.drl")));
+ // list.add(new InputStreamReader(RuleLoader.class
+ // .getResourceAsStream("redundancy/Rules.drl")));
+ // list.add(new InputStreamReader(RuleLoader.class
+ // .getResourceAsStream("reports/RangeCheckReports.drl")));
+
return list;
}
}
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/Solvers.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/Solvers.java 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/Solvers.java 2007-09-14 05:42:37 UTC (rev 15113)
@@ -117,6 +117,7 @@
PatternPossibility possibility = new PatternPossibility();
possibility.setRuleId(ruleSolver.getRule().getId());
+ possibility.setRuleName(ruleSolver.getRule().getRuleName());
possibility.setPatternId(patternSolver.getPattern().getId());
for (AnalyticsComponent descr : list) {
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsRule.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsRule.java 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsRule.java 2007-09-14 05:42:37 UTC (rev 15113)
@@ -25,6 +25,10 @@
return AnalyticsComponentType.RULE;
}
+ public CauseType getCauseType() {
+ return Cause.CauseType.RULE;
+ }
+
public String getRuleAgendaGroup() {
return ruleAgendaGroup;
}
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Field.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Field.java 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Field.java 2007-09-14 05:42:37 UTC (rev 15113)
@@ -30,6 +30,10 @@
return AnalyticsComponentType.FIELD;
}
+ public CauseType getCauseType() {
+ return Cause.CauseType.FIELD;
+ }
+
public String getName() {
return name;
}
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Pattern.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Pattern.java 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Pattern.java 2007-09-14 05:42:37 UTC (rev 15113)
@@ -14,9 +14,9 @@
private int ruleId;
private int classId;
- private AnalyticsComponentType sourceType;
- private int sourceId;
-
+ private AnalyticsComponentType sourceType = AnalyticsComponentType.NOTHING;
+ private int sourceId = -1;
+
private boolean isPatternNot = false;
private boolean isPatternExists = false;
private boolean isPatternForall = false;
@@ -30,6 +30,10 @@
return AnalyticsComponentType.PATTERN;
}
+ public CauseType getCauseType() {
+ return Cause.CauseType.PATTERN;
+ }
+
public boolean isPatternNot() {
return isPatternNot;
}
@@ -99,4 +103,9 @@
return clone;
}
+
+ @Override
+ public String toString() {
+ return "Pattern, id: " + id + " from rule '" + ruleName + "'";
+ }
}
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/PatternPossibility.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/PatternPossibility.java 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/PatternPossibility.java 2007-09-14 05:42:37 UTC (rev 15113)
@@ -31,6 +31,10 @@
return AnalyticsComponentType.PATTERN_POSSIBILITY;
}
+ public CauseType getCauseType() {
+ return Cause.CauseType.POSSIBILITY;
+ }
+
public Set<Cause> getItems() {
return items;
}
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Restriction.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Restriction.java 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/Restriction.java 2007-09-14 05:42:37 UTC (rev 15113)
@@ -1,6 +1,7 @@
package org.drools.analytics.components;
import org.drools.analytics.result.Cause;
+import org.drools.analytics.result.Cause.CauseType;
/**
*
@@ -31,6 +32,10 @@
return AnalyticsComponentType.RESTRICTION;
}
+ public CauseType getCauseType() {
+ return Cause.CauseType.RESTRICTION;
+ }
+
public abstract RestrictionType getRestrictionType();
public String getEvaluator() {
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/RulePossibility.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/RulePossibility.java 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/components/RulePossibility.java 2007-09-14 05:42:37 UTC (rev 15113)
@@ -31,6 +31,10 @@
return AnalyticsComponentType.RULE_POSSIBILITY;
}
+ public CauseType getCauseType() {
+ return Cause.CauseType.POSSIBILITY;
+ }
+
public Set<Cause> getItems() {
return items;
}
@@ -53,7 +57,7 @@
@Override
public String toString() {
- return "RulePossibility from rule: " + ruleName
- + ", amount of items:" + items.size();
+ return "RulePossibility from rule: " + ruleName + ", amount of items:"
+ + items.size();
}
}
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/Cause.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/Cause.java 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/Cause.java 2007-09-14 05:42:37 UTC (rev 15113)
@@ -5,8 +5,19 @@
* @author Toni Rikkola
*/
public interface Cause {
-
+ public enum CauseType {
+ RULE,
+ FIELD,
+ GAP,
+ PATTERN,
+ RESTRICTION,
+ POSSIBILITY,
+ RANGE_CHECK_CAUSE
+ }
+
public int getId();
public String getRuleName();
+
+ public CauseType getCauseType();
}
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/Gap.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/Gap.java 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/Gap.java 2007-09-14 05:42:37 UTC (rev 15113)
@@ -16,6 +16,11 @@
private RangeCheckCause cause;
private String firedRuleName;
+
+ public CauseType getCauseType() {
+ return Cause.CauseType.GAP;
+ }
+
public Gap(Field field, RangeCheckCause cause, String firedRuleName) {
this.field = field;
this.cause = cause;
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/MissingNumberPattern.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/MissingNumberPattern.java 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/MissingNumberPattern.java 2007-09-14 05:42:37 UTC (rev 15113)
@@ -1,5 +1,6 @@
package org.drools.analytics.result;
+
/**
*
* @author Toni Rikkola
@@ -14,6 +15,10 @@
private String evaluator;
private String value;
+ public CauseType getCauseType() {
+ return Cause.CauseType.RANGE_CHECK_CAUSE;
+ }
+
public MissingNumberPattern(int fieldId, String evaluator, String value) {
this.fieldId = fieldId;
this.evaluator = evaluator;
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/Redundancy.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/Redundancy.java 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/java/org/drools/analytics/result/Redundancy.java 2007-09-14 05:42:37 UTC (rev 15113)
@@ -11,20 +11,23 @@
*/
public class Redundancy {
- public enum Type {
+ public enum RedundancyType {
WEAK, STRONG
}
- private Type type = Type.WEAK; // By default the redundancy is weak.
+ private RedundancyType type = RedundancyType.WEAK; // By default the redundancy is weak.
+ private Cause.CauseType causeType; // left and right Cause are of the same type.
private Cause left;
private Cause right;
public Redundancy(Cause left, Cause right) {
+ this.causeType=left.getCauseType();
this.left = left;
this.right = right;
}
- public Redundancy(Type type, Cause left, Cause right) {
+ public Redundancy(RedundancyType type, Cause left, Cause right) {
+ this.causeType=left.getCauseType();
this.type = type;
this.left = left;
this.right = right;
@@ -46,11 +49,11 @@
this.right = right;
}
- public Type getType() {
+ public RedundancyType getType() {
return type;
}
- public void setType(Type type) {
+ public void setType(RedundancyType type) {
this.type = type;
}
@@ -58,4 +61,8 @@
public String toString() {
return "Redundacy between: (" + left + ") and (" + right + ").";
}
+
+ public Cause.CauseType getCauseType() {
+ return causeType;
+ }
}
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/rangeChecks/Patterns.drl
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/rangeChecks/Patterns.drl 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/rangeChecks/Patterns.drl 2007-09-14 05:42:37 UTC (rev 15113)
@@ -52,9 +52,9 @@
)
)
then
- List<Cause> list = new ArrayList<Cause>();
- list.add(
- new MissingNumberPattern( $f.getId(), "==", $validationResult.getValue().toString() ));
-
- result.add( new AnalysisWarning( $f.getRuleName(), $f + " is missing a number from pattern.", list ) );
+ List<Cause> list = new ArrayList<Cause>();
+ list.add(
+ new MissingNumberPattern( $f.getId(), "==", $validationResult.getValue().toString() ));
+
+ result.add( new AnalysisWarning( $f.getRuleName(), $f + " is missing a number from pattern.", list ) );
end
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Patterns.drl
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Patterns.drl 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Patterns.drl 2007-09-14 05:42:37 UTC (rev 15113)
@@ -23,35 +23,78 @@
patternForall == $left.patternForall
)
+ # Has possibilities, if the there is no possibilities,
+ # then the Redundancy type is STRONG.
+ exists PatternPossibility( patternId == $left.id )
+ exists PatternPossibility( patternId == $right.id )
+
# Check that there is not already a pair with these values.
not Redundancy(
left == $left,
right == $right
)
+ not Redundancy(
+ left == $right,
+ right == $left
+ )
then
- insert( new Redundancy( Redundancy.Type.WEAK, $left, $right ) );
+ insert( new Redundancy( Redundancy.RedundancyType.WEAK, $left, $right ) );
end
+#
+# Checks for redundant pattern specifications when the patterns have no possibilities.
+#
+rule "Find redundant Patterns without restrictions"
+ when
+ # Check that Patterns $left and $right have redundant fields.
+ $left :Pattern()
+ $right :Pattern(
+ id != $left.id,
+ classId == $left.classId,
+ # TODO: In some cases the source might be redundant with different sources.
+ sourceType == $left.sourceType,
+ sourceId == $left.sourceId,
+ patternNot == $left.patternNot,
+ patternExists == $left.patternExists,
+ patternForall == $left.patternForall
+ )
+
+ # Not possibilities
+ not PatternPossibility( patternId == $left.id )
+ not PatternPossibility( patternId == $right.id )
+
+ # Check that there is not already a pair with these values.
+ not Redundancy(
+ left == $left,
+ right == $right
+ )
+ not Redundancy(
+ left == $right,
+ right == $left
+ )
+ then
+ insert( new Redundancy( Redundancy.RedundancyType.STRONG, $left, $right ) );
+end
/*
#
# When two patterns and all theyr possibilities are redundant.
#
-rule "Find redundant pattern"
+rule "Find subsumption between patterns"
when
- $p1 :Pattern()
- $p2 :Pattern( id != $p1.id )
+ # $p1 :Pattern()
+ # $p2 :Pattern( id != $p1.id )
+ $patternRedundancy :Redundancy(
+ type == Redundancy.RedundancyType.WEAK,
+ causeType == Cause.CauseType.PATTERN
+ )
+
$set1 :HashSet()
from collect(
- PatternPossibility( patternId == $p1.id )
+ PartialRedundancy( patternId == $p1.id )
)
-
- $set2 :HashSet()
- from collect(
- PatternPossibility( patternId == $p2.id )
- )
# Check that sizes are the same.
eval( $set1.size() == $set2.size() )
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Possibilities.drl
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Possibilities.drl 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Possibilities.drl 2007-09-14 05:42:37 UTC (rev 15113)
@@ -3,39 +3,59 @@
import org.drools.analytics.components.*;
import org.drools.analytics.result.Redundancy;
+import org.drools.analytics.result.Redundancy.RedundancyType;
import org.drools.analytics.result.PartialRedundancy;
import org.drools.analytics.result.Subsumption;
+import org.drools.analytics.result.Cause;
+import org.drools.analytics.result.Cause.CauseType;
import java.util.ArrayList;
-
rule "Find part of redundant PatternPossibility combination"
when
- # Restriction Redundancy.
- $redundancy :Redundancy()
+ $patternRedundancy :Redundancy(
+ type == Redundancy.RedundancyType.WEAK,
+ causeType == Cause.CauseType.PATTERN
+ )
- # Check that patterns are redundant.
- $p1 :Pattern()
- $p2 :Pattern( id != $p1.id )
- Redundancy(
- left == $p1,
- right == $p2
+ $r1 :Restriction( eval( patternId == $patternRedundancy.getLeft().getId() ) )
+ $r2 :Restriction( eval( patternId == $patternRedundancy.getRight().getId() ) )
+
+ $restrictionRedundancy :Redundancy(
+ (
+ left == $r1
+ &&
+ right == $r2
+ ) || (
+ left == $r2
+ &&
+ right == $r1
+ )
)
# Find two PatternPossibilities.
$pp1 :PatternPossibility(
- patternId == $p1.id,
- items contains $redundancy.left
+ eval( patternId == $patternRedundancy.getLeft().getId() ),
+ items contains $r1
)
$pp2 :PatternPossibility(
- patternId == $p2.id,
- items contains $redundancy.right
+ eval( patternId == $patternRedundancy.getRight().getId() ),
+ items contains $r2
)
+
+ not PartialRedundancy(
+ left == $pp1,
+ right == $pp2
+ )
+ not PartialRedundancy(
+ left == $pp2,
+ right == $pp1
+ )
then
- insert( new PartialRedundancy( $pp1, $pp2, $redundancy ) );
+ insert( new PartialRedundancy( $pp1, $pp2, $restrictionRedundancy ) );
end
-
+/*
rule "Find part of redundant RulePossibility combination"
when
# PatternPossibility Redundancy.
@@ -58,11 +78,29 @@
ruleId == $r2.id,
items contains $redundancy.right
)
- # TODO: Not here.
+
+ not PartialRedundancy(
+ left == $rp1,
+ right == $rp2
+ )
then
insert( new PartialRedundancy( $rp1, $rp2, $redundancy ) );
end
+*/
+rule "new rule"
+ when
+ $pr :PartialRedundancy()
+ not PartialRedundancyCollection(
+ items contains $pr
+ )
+
+ ################################################
+ # XXX: Database!
+ ################################################
+ then
+ insert( new PartialRedundancyCollection( $pr ) );
+end
#
# Handles both RulePossibilities and PatternPossibilities.
@@ -70,7 +108,10 @@
rule "Find subsumptant Possibilities"
when
$p1 :Possibility()
- $p2 :Possibility( id != $p1.id )
+ $p2 :Possibility(
+ id != $p1.id,
+ amountOfItems >= $p1.amountOfItems
+ )
not Subsumption(
left == $p1,
@@ -85,22 +126,26 @@
)
)
+ # XXX: What if there is an earlier collection of these, so its only a == comparison.
+
# Collect all the partial redundancies.
- $list :ArrayList()
- from collect(
- PartialRedundancy(
- left == $p1,
- right == $p2
- )
- )
+ #$list :ArrayList()
+ # from collect(
+ # PartialRedundancy(
+ # left == $p1,
+ # right == $p2
+ # )
+ # )
# If there as much partial redundancies as there is items in $p1,
# then $p1 is subsumptant to $p2.
- eval( $list.size() == $p1.getAmountOfItems() )
+ #eval( $list.size() == $p1.getAmountOfItems() )
then
- insert( new Subsumption( $p1, $p2 ) );
+ System.out.println( "Find subsumptant Possibilities" );
+ #insert( new Subsumption( $p1, $p2 ) );
end
+/*
#
# If two possibilities are subsumptant to each others, then they are redundant.
# Since this tests only one possibility, the entire rule or pattern might not be redundant.
@@ -131,4 +176,5 @@
)
then
insert( new Redundancy( $p1, $p2 ) );
-end
\ No newline at end of file
+end
+*/
\ No newline at end of file
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl 2007-09-14 05:42:37 UTC (rev 15113)
@@ -47,6 +47,10 @@
left == $left,
right == $right
)
+ not Redundancy(
+ left == $right,
+ right == $left
+ )
# Check that these two variables point to the same object.
$v :Variable( id == $left.variableId )
@@ -56,7 +60,7 @@
objectId == $v.objectId
)
then
- insert( new Redundancy( Redundancy.Type.STRONG, $left, $right ) );
+ insert( new Redundancy( Redundancy.RedundancyType.STRONG, $left, $right ) );
end
/*
@@ -158,6 +162,10 @@
left == $left,
right == $right
)
+ not Redundancy(
+ left == $right,
+ right == $left
+ )
then
- insert( new Redundancy( Redundancy.Type.STRONG, $left, $right ) );
+ insert( new Redundancy( Redundancy.RedundancyType.STRONG, $left, $right ) );
end
Modified: labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Rules.drl
===================================================================
--- labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Rules.drl 2007-09-14 05:19:53 UTC (rev 15112)
+++ labs/jbossrules/trunk/experimental/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Rules.drl 2007-09-14 05:42:37 UTC (rev 15113)
@@ -25,7 +25,7 @@
right == $right
)
then
- insert( new Redundancy( Redundancy.Type.WEAK, $left, $right ) );
+ insert( new Redundancy( Redundancy.RedundancyType.WEAK, $left, $right ) );
end
/*
@@ -64,4 +64,5 @@
then
# Type is set to strong because all the rule possibilities are redundant.
insert( new Redundancy( Redundancy.Type.STRONG, $r1, $r2 ) );
-end
\ No newline at end of file
+end
+*/
\ No newline at end of file
More information about the jboss-svn-commits
mailing list