[jboss-svn-commits] JBL Code SVN: r7802 - in labs/jbossrules/trunk: . drools-analytics drools-analytics/src drools-analytics/src/main drools-analytics/src/main/java drools-analytics/src/main/java/org drools-analytics/src/main/java/org/drools drools-analytics/src/main/java/org/drools/analytics drools-analytics/src/main/resources
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Nov 23 16:08:25 EST 2006
Author: michael.neale at jboss.com
Date: 2006-11-23 16:08:17 -0500 (Thu, 23 Nov 2006)
New Revision: 7802
Added:
labs/jbossrules/trunk/drools-analytics/
labs/jbossrules/trunk/drools-analytics/.classpath
labs/jbossrules/trunk/drools-analytics/.project
labs/jbossrules/trunk/drools-analytics/src/
labs/jbossrules/trunk/drools-analytics/src/main/
labs/jbossrules/trunk/drools-analytics/src/main/java/
labs/jbossrules/trunk/drools-analytics/src/main/java/org/
labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/
labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/
labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/AnalysisResult.java
labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Constraint.java
labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Pattern.java
labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Rule.java
labs/jbossrules/trunk/drools-analytics/src/main/resources/
labs/jbossrules/trunk/drools-analytics/src/main/resources/StaticQualityAnalysis.drl
Log:
still experimental, but its a start
Added: labs/jbossrules/trunk/drools-analytics/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-analytics/.classpath 2006-11-23 17:16:57 UTC (rev 7801)
+++ labs/jbossrules/trunk/drools-analytics/.classpath 2006-11-23 21:08:17 UTC (rev 7802)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/test/java"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="DROOLS/JBoss Rules"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Property changes on: labs/jbossrules/trunk/drools-analytics/.classpath
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/trunk/drools-analytics/.project
===================================================================
--- labs/jbossrules/trunk/drools-analytics/.project 2006-11-23 17:16:57 UTC (rev 7801)
+++ labs/jbossrules/trunk/drools-analytics/.project 2006-11-23 21:08:17 UTC (rev 7802)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>drools-analytics</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.drools.ide.droolsbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Property changes on: labs/jbossrules/trunk/drools-analytics/.project
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/AnalysisResult.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/AnalysisResult.java 2006-11-23 17:16:57 UTC (rev 7801)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/AnalysisResult.java 2006-11-23 21:08:17 UTC (rev 7802)
@@ -0,0 +1,48 @@
+package org.drools.analytics;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.spi.KnowledgeHelper;
+
+/**
+ * This is a class which contains lists of warnings and errors to be reported to the user via a user interface or static report of
+ * some form.
+ *
+ * It uses the ReportItem class to contains rules/warnings as pertains to them. Display them or ignore them as you will.
+ *
+ * @author Michael Neale
+ *
+ */
+public class AnalysisResult implements Serializable {
+
+
+ private static final long serialVersionUID = -6207688526236713721L;
+ private List warnings = new ArrayList();
+ private List errors = new ArrayList();
+
+ public void addWarning(KnowledgeHelper k, String message) {
+ warnings.add( new ReportItem(k.getRule().getName(), message) );
+ }
+
+ public void addError(KnowledgeHelper k, String message) {
+ errors.add( new ReportItem(k.getRule().getName(), message) );
+ }
+
+ static class ReportItem implements Serializable {
+ private static final long serialVersionUID = 3674119457586457238L;
+ public String rule;
+ public String message;
+
+ public ReportItem(String rule, String message) {
+ this.rule = rule;
+ this.message = message;
+ }
+
+ public String toString() {
+ return rule + ": " + message;
+ }
+ }
+
+}
Property changes on: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/AnalysisResult.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Constraint.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Constraint.java 2006-11-23 17:16:57 UTC (rev 7801)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Constraint.java 2006-11-23 21:08:17 UTC (rev 7802)
@@ -0,0 +1,53 @@
+package org.drools.analytics;
+
+public class Constraint {
+
+ private String field;
+ private String operator;
+ private String value;
+ private String objectType;
+ private String ruleName;
+ private String parentCE = "rule";
+
+ public static String CE_OR;
+ public static String CE_NOT;
+ public static String CE_EXIST;
+
+ public String getParentCE() {
+ return parentCE;
+ }
+ public void setParentCE(String parentCE) {
+ this.parentCE = parentCE;
+ }
+ public String getObjectType() {
+ return objectType;
+ }
+ public void setObjectType(String objectType) {
+ this.objectType = objectType;
+ }
+ public String getRuleName() {
+ return ruleName;
+ }
+ public void setRuleName(String ruleName) {
+ this.ruleName = ruleName;
+ }
+ public String getField() {
+ return field;
+ }
+ public void setField(String field) {
+ this.field = field;
+ }
+ public String getOperator() {
+ return operator;
+ }
+ public void setOperator(String operator) {
+ this.operator = operator;
+ }
+ public String getValue() {
+ return value;
+ }
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+}
Property changes on: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Constraint.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Pattern.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Pattern.java 2006-11-23 17:16:57 UTC (rev 7801)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Pattern.java 2006-11-23 21:08:17 UTC (rev 7802)
@@ -0,0 +1,9 @@
+package org.drools.analytics;
+
+public class Pattern {
+
+ public String id;
+ public String objectType;
+ public Constraint[] constraints;
+
+}
Property changes on: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Pattern.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Rule.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Rule.java 2006-11-23 17:16:57 UTC (rev 7801)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Rule.java 2006-11-23 21:08:17 UTC (rev 7802)
@@ -0,0 +1,9 @@
+package org.drools.analytics;
+
+public class Rule {
+
+
+ public String name;
+ public Pattern[] patterns;
+ public String rhs;
+}
Property changes on: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Rule.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/trunk/drools-analytics/src/main/resources/StaticQualityAnalysis.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/StaticQualityAnalysis.drl 2006-11-23 17:16:57 UTC (rev 7801)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/StaticQualityAnalysis.drl 2006-11-23 21:08:17 UTC (rev 7802)
@@ -0,0 +1,106 @@
+ package drools.analytics
+
+import org.drools.analytics.*
+
+global AnalysisResult result
+
+rule "Less than"
+ when
+ constraint: Constraint( f:field, o:operator == "<", v:value, r:ruleName, ot:objectType )
+ not Constraint( field == f, objectType == ot, ruleName != r, value == v,
+ other:operator -> (other.equals(">=") || other.equals("==") ))
+ then
+ result.addWarning(drools, "You may be missing a greater or equal range of values: " + constraint);
+end
+
+rule "Less than or equal to"
+ when
+ constraint: Constraint( f:field, o:operator == "<=", v:value, r:ruleName, ot:objectType )
+ not Constraint( field == f, objectType == ot, ruleName != r, operator == ">", value == v )
+ then
+ result.addWarning(drools, "You may be missing a greater range of values for: " + constraint);
+end
+
+rule "Greater than"
+ when
+ constraint: Constraint( f:field, o:operator == ">", v:value, r:ruleName, ot:objectType )
+ not Constraint( field == f, objectType == ot, ruleName != r, value == v,
+ other:operator -> (other.equals("<=") || other.equals("==") ))
+ then
+ result.addWarning(drools, "You may be missing a lesser or equal range of values for: " + constraint);
+end
+
+
+rule "Greater than or equal to"
+ when
+ constraint: Constraint( f:field, o:operator == ">=", v:value, r:ruleName, ot:objectType )
+ not Constraint( field == f, objectType == ot, ruleName != r, operator == "<", value == v )
+ then
+ result.addWarning(drools, "You may be missing a lesser range of values for: " + constraint);
+end
+
+rule "Inequal - missing equality case"
+ when
+ constraint: Constraint( f:field, o:operator == "!=", v:value, r:ruleName, ot:objectType )
+ not Constraint( field == f, objectType == ot, value == v,
+ other: operator -> (other.equals("==") || other.equals("|=")) )
+ then
+ result.addWarning(drools, "You specified an inequality, but there is no equivalent equality: " + constraint);
+end
+
+rule "same field with conflicting constraints on the one Rule - impossible to satisfy"
+ when
+ constraint: Constraint( )
+ then
+end
+
+rule "Not node conflicting with top level CE - impossible to satisfy"
+ when
+
+ then
+
+end
+
+rule "Subsumption"
+ when
+ //need to check RHS for rule, to have the same action
+ //and when there is at least one Pattern in common
+ then
+
+end
+
+rule "Combination explosion risk"
+ when
+
+ then
+
+end
+
+rule "Major combination explosion danger"
+ when
+
+ then
+
+end
+
+rule "Infinite loop risk warning"
+ when
+ //RHS modifies a fact which LHS depends on, no "no loop"
+ then
+
+end
+
+rule "No action - possibly commented out"
+ when
+
+ then
+
+end
+
+rule "Less restrictive constraint first"
+ when
+ //if the first constraint is less restrictive then the next, suggest re-arrange
+ //works off the pattern
+ then
+
+end
Property changes on: labs/jbossrules/trunk/drools-analytics/src/main/resources/StaticQualityAnalysis.drl
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list