[jboss-svn-commits] JBL Code SVN: r20398 - in labs/jbossrules/trunk/drools-verifier/src: main/java/org/drools/verifier/components and 27 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jun 10 07:03:27 EDT 2008


Author: Rikkola
Date: 2008-06-10 07:03:26 -0400 (Tue, 10 Jun 2008)
New Revision: 20398

Added:
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Verifier.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierAccessorDescr.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierAccumulateDescr.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierClass.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierCollectDescr.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierComponent.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierComponentType.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/VerifierFieldAccessDescr.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFromDescr.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFunctionCallDescr.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierMethodAccessDescr.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/dao/VerifierData.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierDataMaps.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierResult.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierResultFactory.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierResultNormal.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/VerifierMessagesVisitor.java
   labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/
   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/alwaysTrue/
   labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incompatibility/Patterns.drl
   labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Patterns.drl
   labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Rules.drl
   labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/overlaps/
   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/rangeChecks/NumberPatterns.drl
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTestStandalone.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysFalse/
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysFalse/AlwaysFalsePatternsTest.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/opposites/
   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/
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/overlaps/OverlappingRestrictionsTest.java
Modified:
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/PackageDescrFlattener.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/RuleLoader.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/RuleSolver.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Solver.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Solvers.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/FieldClassLink.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/OperatorDescr.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/PatternPossibility.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/RulePackage.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/RulePossibility.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/Variable.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/ReportModeller.java
   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/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/PartialRedundancy.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/html/ComponentsReportModeller.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/java/org/drools/verifier/report/html/ReportModeller.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/UrlFactory.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/equivalence/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/incompatibility/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/rangeChecks/Clean.drl
   labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Dates.drl
   labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Doubles.drl
   labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Integers.drl
   labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Variables.drl
   labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Consequence.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/Restrictions.drl
   labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Rules.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/reports/RangeCheckReports.drl
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/ConsequenceTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/PatternSolverTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckCleanTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckDatesTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckDoublesTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckIntegersTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/SolversTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/SubsumptantPossibilitiesRuleTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/TestBase.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/incoherence/IncoherentPatternsTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentRestrictionsTest.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/IncompatibilityRestrictionsTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/missingEquality/MissingEqualityTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/optimisation/PatternOrderTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/optimisation/RestrictionOrderTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/NotesTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundancyTestBase.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantConsequencesTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantPossibilitiesTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantRestrictionsTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantRulesAndPatternsTest.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/SubsumptantPossibilitiesTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantRestrictionsTest.java
Log:
JBRULES-1555: Changing the analytics name to verifier
-Added some missing files

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/PackageDescrFlattener.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/PackageDescrFlattener.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/PackageDescrFlattener.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -31,19 +31,19 @@
 import org.drools.lang.descr.ReturnValueRestrictionDescr;
 import org.drools.lang.descr.RuleDescr;
 import org.drools.lang.descr.VariableRestrictionDescr;
-import org.drools.verifier.components.AnalyticsAccessorDescr;
-import org.drools.verifier.components.AnalyticsAccumulateDescr;
-import org.drools.verifier.components.AnalyticsClass;
-import org.drools.verifier.components.AnalyticsCollectDescr;
-import org.drools.verifier.components.AnalyticsComponent;
-import org.drools.verifier.components.AnalyticsComponentType;
-import org.drools.verifier.components.AnalyticsEvalDescr;
-import org.drools.verifier.components.AnalyticsFieldAccessDescr;
-import org.drools.verifier.components.AnalyticsFromDescr;
-import org.drools.verifier.components.AnalyticsFunctionCallDescr;
-import org.drools.verifier.components.AnalyticsMethodAccessDescr;
-import org.drools.verifier.components.AnalyticsPredicateDescr;
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierAccessorDescr;
+import org.drools.verifier.components.VerifierAccumulateDescr;
+import org.drools.verifier.components.VerifierClass;
+import org.drools.verifier.components.VerifierCollectDescr;
+import org.drools.verifier.components.VerifierComponent;
+import org.drools.verifier.components.VerifierComponentType;
+import org.drools.verifier.components.VerifierEvalDescr;
+import org.drools.verifier.components.VerifierFieldAccessDescr;
+import org.drools.verifier.components.VerifierFromDescr;
+import org.drools.verifier.components.VerifierFunctionCallDescr;
+import org.drools.verifier.components.VerifierMethodAccessDescr;
+import org.drools.verifier.components.VerifierPredicateDescr;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.Consequence;
 import org.drools.verifier.components.Constraint;
 import org.drools.verifier.components.Field;
@@ -58,7 +58,7 @@
 import org.drools.verifier.components.TextConsequence;
 import org.drools.verifier.components.Variable;
 import org.drools.verifier.components.VariableRestriction;
-import org.drools.verifier.dao.AnalyticsData;
+import org.drools.verifier.dao.VerifierData;
 
 /**
  * @author Toni Rikkola
@@ -68,25 +68,25 @@
 
 	private Solvers solvers = new Solvers();
 
-	private AnalyticsData data;
+	private VerifierData data;
 
 	private RulePackage currentPackage = null;
-	private AnalyticsRule currentRule = null;
+	private VerifierRule currentRule = null;
 	private Pattern currentPattern = null;
 	private Constraint currentConstraint = null;
-	private AnalyticsClass currentClass = null;
+	private VerifierClass currentClass = null;
 	private Field currentField = null;
 
 	/**
-	 * Adds packageDescr to given AnalyticsData object
+	 * Adds packageDescr to given VerifierData object
 	 * 
 	 * @param packageDescr
 	 *            PackageDescr that will be flattened.
 	 * @param data
-	 *            AnalyticsData where the flattened objects are added.
+	 *            VerifierData where the flattened objects are added.
 	 */
 	public void addPackageDescrToData(PackageDescr packageDescr,
-			AnalyticsData data) {
+			VerifierData data) {
 
 		this.data = data;
 
@@ -95,7 +95,7 @@
 		formPossibilities();
 	}
 
-	private void flatten(Collection<?> descrs, AnalyticsComponent parent) {
+	private void flatten(Collection<?> descrs, VerifierComponent parent) {
 
 		int orderNumber = 0;
 
@@ -143,8 +143,8 @@
 		}
 	}
 
-	private AnalyticsComponent flatten(PatternSourceDescr descr,
-			AnalyticsComponent parent) {
+	private VerifierComponent flatten(PatternSourceDescr descr,
+			VerifierComponent parent) {
 		if (descr instanceof AccumulateDescr) {
 			return flatten((AccumulateDescr) descr, parent);
 		} else if (descr instanceof CollectDescr) {
@@ -156,8 +156,8 @@
 		return null;
 	}
 
-	private AnalyticsComponent flatten(DeclarativeInvokerDescr descr,
-			AnalyticsComponent parent) {
+	private VerifierComponent flatten(DeclarativeInvokerDescr descr,
+			VerifierComponent parent) {
 		if (descr instanceof AccessorDescr) {
 			return flatten((AccessorDescr) descr, parent);
 		} else if (descr instanceof FieldAccessDescr) {
@@ -172,7 +172,7 @@
 	}
 
 	private void flatten(ConditionalElementDescr descr,
-			AnalyticsComponent parent, int orderNumber) {
+			VerifierComponent parent, int orderNumber) {
 		if (descr instanceof AndDescr) {
 			flatten((AndDescr) descr, parent, orderNumber);
 		} else if (descr instanceof CollectDescr) {
@@ -192,19 +192,19 @@
 		}
 	}
 
-	private void flatten(ForallDescr descr, AnalyticsComponent parent) {
+	private void flatten(ForallDescr descr, VerifierComponent parent) {
 		solvers.startForall();
 		flatten(descr.getDescrs(), parent);
 		solvers.endForall();
 	}
 
-	private void flatten(ExistsDescr descr, AnalyticsComponent parent) {
+	private void flatten(ExistsDescr descr, VerifierComponent parent) {
 		solvers.startExists();
 		flatten(descr.getDescrs(), parent);
 		solvers.endExists();
 	}
 
-	private void flatten(NotDescr descr, AnalyticsComponent parent) {
+	private void flatten(NotDescr descr, VerifierComponent parent) {
 		solvers.startNot();
 		flatten(descr.getDescrs(), parent);
 		solvers.endNot();
@@ -216,9 +216,9 @@
 	 * @param descr
 	 * @return
 	 */
-	private AnalyticsFunctionCallDescr flatten(FunctionCallDescr descr,
-			AnalyticsComponent parent, int orderNumber) {
-		AnalyticsFunctionCallDescr functionCall = new AnalyticsFunctionCallDescr();
+	private VerifierFunctionCallDescr flatten(FunctionCallDescr descr,
+			VerifierComponent parent, int orderNumber) {
+		VerifierFunctionCallDescr functionCall = new VerifierFunctionCallDescr();
 		functionCall.setName(descr.getName());
 		functionCall.setArguments(descr.getArguments());
 		functionCall.setOrderNumber(orderNumber);
@@ -233,10 +233,10 @@
 	 * @param descr
 	 * @return
 	 */
-	private AnalyticsPredicateDescr flatten(PredicateDescr descr,
-			AnalyticsComponent parent, int orderNumber) {
+	private VerifierPredicateDescr flatten(PredicateDescr descr,
+			VerifierComponent parent, int orderNumber) {
 
-		AnalyticsPredicateDescr predicate = new AnalyticsPredicateDescr();
+		VerifierPredicateDescr predicate = new VerifierPredicateDescr();
 		predicate.setRuleName(currentRule.getRuleName());
 		predicate.setRuleId(currentRule.getId());
 		predicate.setContent(descr.getContent().toString());
@@ -255,10 +255,10 @@
 	 * @param descr
 	 * @return
 	 */
-	private AnalyticsEvalDescr flatten(EvalDescr descr,
-			AnalyticsComponent parent, int orderNumber) {
+	private VerifierEvalDescr flatten(EvalDescr descr,
+			VerifierComponent parent, int orderNumber) {
 
-		AnalyticsEvalDescr eval = new AnalyticsEvalDescr();
+		VerifierEvalDescr eval = new VerifierEvalDescr();
 		eval.setRuleId(currentRule.getId());
 		eval.setRuleName(currentRule.getRuleName());
 		eval.setContent(descr.getContent().toString());
@@ -277,11 +277,11 @@
 	 * @param descr
 	 * @return
 	 */
-	private AnalyticsFromDescr flatten(FromDescr descr,
-			AnalyticsComponent parent) {
-		AnalyticsFromDescr from = new AnalyticsFromDescr();
+	private VerifierFromDescr flatten(FromDescr descr,
+			VerifierComponent parent) {
+		VerifierFromDescr from = new VerifierFromDescr();
 
-		AnalyticsComponent ds = flatten(descr.getDataSource(), from);
+		VerifierComponent ds = flatten(descr.getDataSource(), from);
 		from.setDataSourceId(ds.getId());
 		from.setDataSourceType(ds.getComponentType());
 		from.setParent(parent);
@@ -289,9 +289,9 @@
 		return from;
 	}
 
-	private AnalyticsAccumulateDescr flatten(AccumulateDescr descr,
-			AnalyticsComponent parent) {
-		AnalyticsAccumulateDescr accumulate = new AnalyticsAccumulateDescr();
+	private VerifierAccumulateDescr flatten(AccumulateDescr descr,
+			VerifierComponent parent) {
+		VerifierAccumulateDescr accumulate = new VerifierAccumulateDescr();
 
 		accumulate.setInputPatternId(flatten(descr.getInputPattern(),
 				accumulate, 0));
@@ -312,9 +312,9 @@
 		return accumulate;
 	}
 
-	private AnalyticsCollectDescr flatten(CollectDescr descr,
-			AnalyticsComponent parent) {
-		AnalyticsCollectDescr collect = new AnalyticsCollectDescr();
+	private VerifierCollectDescr flatten(CollectDescr descr,
+			VerifierComponent parent) {
+		VerifierCollectDescr collect = new VerifierCollectDescr();
 		collect.setClassMethodName(descr.getClassMethodName());
 		collect
 				.setInsidePatternId(flatten(descr.getInputPattern(), collect, 0));
@@ -323,9 +323,9 @@
 		return collect;
 	}
 
-	private AnalyticsAccessorDescr flatten(AccessorDescr descr,
-			AnalyticsComponent parent, int orderNumber) {
-		AnalyticsAccessorDescr accessor = new AnalyticsAccessorDescr();
+	private VerifierAccessorDescr flatten(AccessorDescr descr,
+			VerifierComponent parent, int orderNumber) {
+		VerifierAccessorDescr accessor = new VerifierAccessorDescr();
 		accessor.setOrderNumber(orderNumber);
 		accessor.setParent(parent);
 		// TODO: I wonder what this descr does.
@@ -337,9 +337,9 @@
 	 * 
 	 * @param descr
 	 */
-	private AnalyticsMethodAccessDescr flatten(MethodAccessDescr descr,
-			AnalyticsComponent parent, int orderNumber) {
-		AnalyticsMethodAccessDescr accessor = new AnalyticsMethodAccessDescr();
+	private VerifierMethodAccessDescr flatten(MethodAccessDescr descr,
+			VerifierComponent parent, int orderNumber) {
+		VerifierMethodAccessDescr accessor = new VerifierMethodAccessDescr();
 		accessor.setMethodName(descr.getMethodName());
 		accessor.setArguments(descr.getArguments());
 		accessor.setOrderNumber(orderNumber);
@@ -353,9 +353,9 @@
 	 * 
 	 * @param descr
 	 */
-	private AnalyticsFieldAccessDescr flatten(FieldAccessDescr descr,
-			AnalyticsComponent parent, int orderNumber) {
-		AnalyticsFieldAccessDescr accessor = new AnalyticsFieldAccessDescr();
+	private VerifierFieldAccessDescr flatten(FieldAccessDescr descr,
+			VerifierComponent parent, int orderNumber) {
+		VerifierFieldAccessDescr accessor = new VerifierFieldAccessDescr();
 		accessor.setFieldName(descr.getFieldName());
 		accessor.setArgument(descr.getArgument());
 		accessor.setOrderNumber(orderNumber);
@@ -379,9 +379,9 @@
 		flatten(descr.getRules(), rulePackage);
 	}
 
-	private void flatten(RuleDescr descr, AnalyticsComponent parent) {
+	private void flatten(RuleDescr descr, VerifierComponent parent) {
 
-		AnalyticsRule rule = new AnalyticsRule();
+		VerifierRule rule = new VerifierRule();
 		currentRule = rule;
 
 		rule.setRuleName(descr.getName());
@@ -406,9 +406,9 @@
 	 * 
 	 * @param o
 	 *            Consequence object.
-	 * @return Analytics object that implements the Consequence interface.
+	 * @return Verifier object that implements the Consequence interface.
 	 */
-	private Consequence flattenConsequence(AnalyticsComponent parent, Object o) {
+	private Consequence flattenConsequence(VerifierComponent parent, Object o) {
 
 		TextConsequence consequence = new TextConsequence();
 
@@ -446,7 +446,7 @@
 		return consequence;
 	}
 
-	private void flatten(OrDescr descr, AnalyticsComponent parent,
+	private void flatten(OrDescr descr, VerifierComponent parent,
 			int orderNumber) {
 		OperatorDescr operatorDescr = new OperatorDescr(OperatorDescr.Type.OR);
 		operatorDescr.setOrderNumber(orderNumber);
@@ -459,7 +459,7 @@
 		solvers.endOperator();
 	}
 
-	private void flatten(AndDescr descr, AnalyticsComponent parent,
+	private void flatten(AndDescr descr, VerifierComponent parent,
 			int orderNumber) {
 		OperatorDescr operatorDescr = new OperatorDescr(OperatorDescr.Type.AND);
 		operatorDescr.setOrderNumber(orderNumber);
@@ -472,13 +472,13 @@
 		solvers.endOperator();
 	}
 
-	private int flatten(PatternDescr descr, AnalyticsComponent parent,
+	private int flatten(PatternDescr descr, VerifierComponent parent,
 			int orderNumber) {
 
-		AnalyticsClass clazz = data.getClassByPackageAndName(descr
+		VerifierClass clazz = data.getClassByPackageAndName(descr
 				.getObjectType());
 		if (clazz == null) {
-			clazz = new AnalyticsClass();
+			clazz = new VerifierClass();
 			clazz.setName(descr.getObjectType());
 			data.add(clazz);
 		}
@@ -504,7 +504,7 @@
 			variable.setRuleName(currentRule.getRuleName());
 			variable.setName(descr.getIdentifier());
 
-			variable.setObjectType(AnalyticsComponentType.CLASS);
+			variable.setObjectType(VerifierComponentType.CLASS);
 			variable.setObjectId(clazz.getId());
 			variable.setObjectName(descr.getObjectType());
 
@@ -513,12 +513,12 @@
 
 		// flatten source.
 		if (descr.getSource() != null) {
-			AnalyticsComponent source = flatten(descr.getSource(), pattern);
+			VerifierComponent source = flatten(descr.getSource(), pattern);
 			pattern.setSourceId(source.getId());
 			pattern.setSourceType(source.getComponentType());
 		} else {
 			pattern.setSourceId(0);
-			pattern.setSourceType(AnalyticsComponentType.NOTHING);
+			pattern.setSourceType(VerifierComponentType.NOTHING);
 		}
 		solvers.startPatternSolver(pattern);
 		flatten(descr.getConstraint(), pattern, 0);
@@ -527,7 +527,7 @@
 		return pattern.getId();
 	}
 
-	private void flatten(FieldConstraintDescr descr, AnalyticsComponent parent,
+	private void flatten(FieldConstraintDescr descr, VerifierComponent parent,
 			int orderNumber) {
 
 		Field field = data.getFieldByClassAndFieldName(currentClass.getName(),
@@ -558,7 +558,7 @@
 	}
 
 	private void flatten(RestrictionConnectiveDescr descr,
-			AnalyticsComponent parent, int orderNumber) {
+			VerifierComponent parent, int orderNumber) {
 		// TODO: check.
 		flatten(descr.getRestrictions(), parent);
 	}
@@ -568,7 +568,7 @@
 	 * 
 	 * @param descr
 	 */
-	private void flatten(FieldBindingDescr descr, AnalyticsComponent parent,
+	private void flatten(FieldBindingDescr descr, VerifierComponent parent,
 			int orderNumber) {
 
 		Variable variable = new Variable();
@@ -578,7 +578,7 @@
 		variable.setOrderNumber(orderNumber);
 		variable.setParent(parent);
 
-		variable.setObjectType(AnalyticsComponentType.FIELD);
+		variable.setObjectType(VerifierComponentType.FIELD);
 
 		data.add(variable);
 	}
@@ -592,7 +592,7 @@
 	 * @param descr
 	 */
 	private void flatten(VariableRestrictionDescr descr,
-			AnalyticsComponent parent, int orderNumber) {
+			VerifierComponent parent, int orderNumber) {
 
 		Variable variable = data.getVariableByRuleAndVariableName(currentRule
 				.getRuleName(), descr.getIdentifier());
@@ -623,7 +623,7 @@
 	 * @param descr
 	 */
 	private void flatten(ReturnValueRestrictionDescr descr,
-			AnalyticsComponent parent, int orderNumber) {
+			VerifierComponent parent, int orderNumber) {
 
 		ReturnValueRestriction restriction = new ReturnValueRestriction();
 
@@ -652,7 +652,7 @@
 	 * @param descr
 	 */
 	private void flatten(LiteralRestrictionDescr descr,
-			AnalyticsComponent parent, int orderNumber) {
+			VerifierComponent parent, int orderNumber) {
 
 		LiteralRestriction restriction = new LiteralRestriction();
 
@@ -682,7 +682,7 @@
 	 * @param descr
 	 */
 	private void flatten(QualifiedIdentifierRestrictionDescr descr,
-			AnalyticsComponent parent, int orderNumber) {
+			VerifierComponent parent, int orderNumber) {
 
 		String text = descr.getText();
 		Variable variable = data.getVariableByRuleAndVariableName(currentRule
@@ -706,7 +706,7 @@
 		// Set field value, if it is unset.
 		currentField.setFieldType(Field.FieldType.VARIABLE);
 
-		variable.setObjectType(AnalyticsComponentType.FIELD);
+		variable.setObjectType(VerifierComponentType.FIELD);
 
 		data.add(restriction);
 		solvers.addRestriction(restriction);

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/RuleLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/RuleLoader.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/RuleLoader.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -29,7 +29,7 @@
 				// Range checks
 				"rangeChecks/Dates.drl", "rangeChecks/Doubles.drl",
 				"rangeChecks/Integers.drl",
-				"rangeChecks/Patterns.drl",
+				"rangeChecks/NumberPatterns.drl",
 				"rangeChecks/Variables.drl",
 				"rangeChecks/Clean.drl",
 				// Redundancy

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/RuleSolver.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/RuleSolver.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/RuleSolver.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -1,6 +1,6 @@
 package org.drools.verifier;
 
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.OperatorDescr;
 
 /**
@@ -10,14 +10,14 @@
  */
 class RuleSolver extends Solver {
 
-	private AnalyticsRule rule;
+	private VerifierRule rule;
 
-	public RuleSolver(AnalyticsRule rule) {
+	public RuleSolver(VerifierRule rule) {
 		super(OperatorDescr.Type.OR);
-		this.rule = (AnalyticsRule) rule;
+		this.rule = (VerifierRule) rule;
 	}
 
-	public AnalyticsRule getRule() {
+	public VerifierRule getRule() {
 		return rule;
 	}
 }

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Solver.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Solver.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Solver.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -5,7 +5,7 @@
 import java.util.List;
 import java.util.Set;
 
-import org.drools.verifier.components.AnalyticsComponent;
+import org.drools.verifier.components.VerifierComponent;
 import org.drools.verifier.components.OperatorDescr;
 
 
@@ -17,7 +17,7 @@
  */
 class Solver {
 
-	private List<Set<AnalyticsComponent>> possibilityLists = new ArrayList<Set<AnalyticsComponent>>();
+	private List<Set<VerifierComponent>> possibilityLists = new ArrayList<Set<VerifierComponent>>();
 	private Solver subSolver = null;
 	private boolean isChildExists = false;
 	private boolean isChildForall = false;
@@ -29,7 +29,7 @@
 		this.type = type;
 	}
 
-	public void add(AnalyticsComponent descr) {
+	public void add(VerifierComponent descr) {
 		if (subSolver != null) {
 			subSolver.add(descr);
 		} else if (descr instanceof OperatorDescr) {
@@ -38,13 +38,13 @@
 		} else {
 			if (type == OperatorDescr.Type.AND) {
 				if (possibilityLists.isEmpty()) {
-					possibilityLists.add(new HashSet<AnalyticsComponent>());
+					possibilityLists.add(new HashSet<VerifierComponent>());
 				}
-				for (Set<AnalyticsComponent> set : possibilityLists) {
+				for (Set<VerifierComponent> set : possibilityLists) {
 					set.add(descr);
 				}
 			} else if (type == OperatorDescr.Type.OR) {
-				Set<AnalyticsComponent> set = new HashSet<AnalyticsComponent>();
+				Set<VerifierComponent> set = new HashSet<VerifierComponent>();
 				set.add(descr);
 				possibilityLists.add(set);
 			}
@@ -59,17 +59,17 @@
 		if (subSolver != null && subSolver.subSolver == null) {
 			if (type == OperatorDescr.Type.AND) {
 				if (possibilityLists.isEmpty()) {
-					possibilityLists.add(new HashSet<AnalyticsComponent>());
+					possibilityLists.add(new HashSet<VerifierComponent>());
 				}
 
-				List<Set<AnalyticsComponent>> newPossibilities = new ArrayList<Set<AnalyticsComponent>>();
+				List<Set<VerifierComponent>> newPossibilities = new ArrayList<Set<VerifierComponent>>();
 
-				List<Set<AnalyticsComponent>> sets = subSolver
+				List<Set<VerifierComponent>> sets = subSolver
 						.getPossibilityLists();
-				for (Set<AnalyticsComponent> possibilityList : possibilityLists) {
+				for (Set<VerifierComponent> possibilityList : possibilityLists) {
 
-					for (Set<AnalyticsComponent> set : sets) {
-						Set<AnalyticsComponent> newSet = new HashSet<AnalyticsComponent>();
+					for (Set<VerifierComponent> set : sets) {
+						Set<VerifierComponent> newSet = new HashSet<VerifierComponent>();
 						newSet.addAll(possibilityList);
 						newSet.addAll(set);
 						newPossibilities.add(newSet);
@@ -140,7 +140,7 @@
 		}
 	}
 
-	public List<Set<AnalyticsComponent>> getPossibilityLists() {
+	public List<Set<VerifierComponent>> getPossibilityLists() {
 		return possibilityLists;
 	}
 }

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Solvers.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Solvers.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Solvers.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -4,8 +4,8 @@
 import java.util.List;
 import java.util.Set;
 
-import org.drools.verifier.components.AnalyticsComponent;
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierComponent;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.OperatorDescr;
 import org.drools.verifier.components.Pattern;
 import org.drools.verifier.components.PatternPossibility;
@@ -24,7 +24,7 @@
 	private List<PatternPossibility> patternPossibilities = new ArrayList<PatternPossibility>();
 	private List<RulePossibility> rulePossibilities = new ArrayList<RulePossibility>();
 
-	public void startRuleSolver(AnalyticsRule rule) {
+	public void startRuleSolver(VerifierRule rule) {
 		ruleSolver = new RuleSolver(rule);
 	}
 
@@ -113,7 +113,7 @@
 	}
 
 	private void createPatternPossibilities() {
-		for (Set<AnalyticsComponent> list : patternSolver.getPossibilityLists()) {
+		for (Set<VerifierComponent> list : patternSolver.getPossibilityLists()) {
 			PatternPossibility possibility = new PatternPossibility();
 
 			possibility.setRuleId(ruleSolver.getRule().getId());
@@ -121,7 +121,7 @@
 			possibility.setRuleId(ruleSolver.getRule().getId());
 			possibility.setPatternId(patternSolver.getPattern().getId());
 
-			for (AnalyticsComponent descr : list) {
+			for (VerifierComponent descr : list) {
 				possibility.add((Restriction) descr);
 			}
 
@@ -131,14 +131,14 @@
 	}
 
 	private void createRulePossibilities() {
-		for (Set<AnalyticsComponent> list : ruleSolver.getPossibilityLists()) {
+		for (Set<VerifierComponent> list : ruleSolver.getPossibilityLists()) {
 			RulePossibility possibility = new RulePossibility();
 
 			possibility.setRuleId(ruleSolver.getRule().getId());
 			possibility.setRuleName(ruleSolver.getRule().getRuleName());
 			possibility.setRuleId(ruleSolver.getRule().getId());
 
-			for (AnalyticsComponent descr : list) {
+			for (VerifierComponent descr : list) {
 				PatternPossibility patternPossibility = (PatternPossibility) descr;
 				possibility.add(patternPossibility);
 			}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Verifier.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Verifier.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Verifier.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,132 @@
+package org.drools.verifier;
+
+import java.util.Collection;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.WorkingMemory;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.rule.Package;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.report.ReportModeller;
+import org.drools.verifier.report.html.ComponentsReportModeller;
+
+/**
+ * This is the main user class for verifier.
+ * This will use rules to validate rules, caching the "knowledge base" of verifier rules.
+ *
+ * @author Toni Rikkola
+ */
+public class Verifier {
+
+	static RuleBase verifierKnowledgeBase;
+
+
+	private VerifierResult result = VerifierResultFactory
+			.createVerifierResult();
+
+	public void addPackageDescr(PackageDescr descr) {
+		try {
+
+			PackageDescrFlattener ruleFlattener = new PackageDescrFlattener();
+
+			ruleFlattener.addPackageDescrToData(descr, result
+					.getVerifierData());
+
+		} catch (Throwable t) {
+			t.printStackTrace();
+		}
+	}
+
+
+	/**
+	 * As the analyzer uses rules itself, this will reload the knowledge base.
+	 * @throws Exception
+	 */
+	public synchronized void reloadAnalysisKnowledgeBase() throws Exception {
+		verifierKnowledgeBase = createRuleBase();
+	}
+
+	/**
+	 * This will run the verifier.
+	 */
+	public void fireAnalysis() {
+		try {
+
+			if (this.verifierKnowledgeBase == null) {
+				synchronized (this.getClass()) {
+					verifierKnowledgeBase = createRuleBase();
+				}
+			}
+
+			WorkingMemory workingMemory = verifierKnowledgeBase.newStatefulSession();
+
+			Collection<? extends Object> c = result.getVerifierData().getAll();
+
+			for (Object o : c) {
+				workingMemory.insert(o);
+			}
+
+			// Object that returns the results.
+			workingMemory.setGlobal("result", result);
+			workingMemory.fireAllRules();
+
+		} catch (Throwable t) {
+			t.printStackTrace();
+		}
+	}
+
+	/**
+	 * Returns the verifier results as plain text.
+	 *
+	 * @return Analysis results as plain text.
+	 */
+	public String getResultAsPlainText() {
+		return ReportModeller.writePlainText(result);
+	}
+
+	/**
+	 * Returns the verifier results as XML.
+	 *
+	 * @return Analysis results as XML
+	 */
+	public String getResultAsXML() {
+		return ReportModeller.writeXML(result);
+	}
+
+	/**
+	 * Returns the verifier results as HTML.
+	 *
+	 * @return Analysis results as HTML
+	 */
+	public void writeComponentsHTML(String path) {
+		ComponentsReportModeller.writeHTML(path, result);
+	}
+
+	/**
+	 * Returns the verifier results as <code>AnalysisResult</code> object.
+	 *
+	 * @return Analysis result
+	 */
+	public VerifierResult getResult() {
+		return result;
+	}
+
+	private static RuleBase createRuleBase() throws Exception {
+
+		RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+
+		Collection<Package> packages = RuleLoader.loadPackages();
+		for (Package pkg : packages) {
+			try {
+				ruleBase.addPackage(pkg);
+			} catch (Exception e) {
+				throw new Exception("Adding package " + pkg.getName()
+						+ " caused an error.", e);
+			}
+		}
+
+		return ruleBase;
+	}
+}

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Constraint.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -7,7 +7,7 @@
  *
  * @author Toni Rikkola
  */
-public class Constraint extends AnalyticsComponent implements Cause {
+public class Constraint extends VerifierComponent implements Cause {
 
 	private static int index = 0;
 
@@ -23,8 +23,8 @@
 	}
 
 	@Override
-	public AnalyticsComponentType getComponentType() {
-		return AnalyticsComponentType.CONSTRAINT;
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.CONSTRAINT;
 	}
 
 	public CauseType getCauseType() {

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Field.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -7,7 +7,7 @@
  *
  * @author Toni Rikkola
  */
-public class Field extends AnalyticsComponent implements Cause {
+public class Field extends VerifierComponent implements Cause {
 
 	public static class FieldType {
 		public static final FieldType BOOLEAN = new FieldType("boolean");
@@ -44,8 +44,8 @@
 	}
 
 	@Override
-	public AnalyticsComponentType getComponentType() {
-		return AnalyticsComponentType.FIELD;
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.FIELD;
 	}
 
 	public CauseType getCauseType() {

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/FieldClassLink.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/FieldClassLink.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/FieldClassLink.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -4,7 +4,7 @@
  * 
  * @author Toni Rikkola
  */
-public class FieldClassLink extends AnalyticsComponent {
+public class FieldClassLink extends VerifierComponent {
 
 	private static int index = 0;
 
@@ -16,8 +16,8 @@
 	}
 
 	@Override
-	public AnalyticsComponentType getComponentType() {
-		return AnalyticsComponentType.FIELD_CLASS_LINK;
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.FIELD_CLASS_LINK;
 	}
 
 	public int getClassId() {

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/OperatorDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/OperatorDescr.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/OperatorDescr.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -6,7 +6,7 @@
  * 
  * @author Toni Rikkola
  */
-public class OperatorDescr extends AnalyticsComponent implements Serializable {
+public class OperatorDescr extends VerifierComponent implements Serializable {
 	private static final long serialVersionUID = 8393994152436331910L;
 
 	private static int index = 0;
@@ -34,8 +34,8 @@
 	}
 
 	@Override
-	public AnalyticsComponentType getComponentType() {
-		return AnalyticsComponentType.OPERATOR;
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.OPERATOR;
 	}
 
 	public Type getType() {

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Pattern.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -7,7 +7,7 @@
  *
  * @author Toni Rikkola
  */
-public class Pattern extends AnalyticsComponent implements Cause {
+public class Pattern extends VerifierComponent implements Cause {
 
 	private static final long serialVersionUID = 5852308145251025423L;
 
@@ -16,7 +16,7 @@
 	private int ruleId;
 	private int classId;
 	private String name;
-	private AnalyticsComponentType sourceType = AnalyticsComponentType.NOTHING;
+	private VerifierComponentType sourceType = VerifierComponentType.NOTHING;
 	private int sourceId = -1;
 
 	private boolean isPatternNot = false;
@@ -28,8 +28,8 @@
 	}
 
 	@Override
-	public AnalyticsComponentType getComponentType() {
-		return AnalyticsComponentType.PATTERN;
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.PATTERN;
 	}
 
 	public CauseType getCauseType() {
@@ -84,11 +84,11 @@
 		this.sourceId = sourceId;
 	}
 
-	public AnalyticsComponentType getSourceType() {
+	public VerifierComponentType getSourceType() {
 		return sourceType;
 	}
 
-	public void setSourceType(AnalyticsComponentType sourceType) {
+	public void setSourceType(VerifierComponentType sourceType) {
 		this.sourceType = sourceType;
 	}
 

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/PatternPossibility.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/PatternPossibility.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/PatternPossibility.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -13,7 +13,7 @@
  *
  * @author Toni Rikkola
  */
-public class PatternPossibility extends AnalyticsComponent implements
+public class PatternPossibility extends VerifierComponent implements
 		Possibility {
 	private static final long serialVersionUID = 8871361928380977116L;
 
@@ -28,8 +28,8 @@
 	}
 
 	@Override
-	public AnalyticsComponentType getComponentType() {
-		return AnalyticsComponentType.PATTERN_POSSIBILITY;
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.PATTERN_POSSIBILITY;
 	}
 
 	public CauseType getCauseType() {

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Restriction.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -8,7 +8,7 @@
  *
  * @author Toni Rikkola
  */
-public abstract class Restriction extends AnalyticsComponent implements Cause {
+public abstract class Restriction extends VerifierComponent implements Cause {
 
 	public static class RestrictionType {
 		public static final RestrictionType LITERAL = new RestrictionType(0);
@@ -41,8 +41,8 @@
 	}
 
 	@Override
-	public AnalyticsComponentType getComponentType() {
-		return AnalyticsComponentType.RESTRICTION;
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.RESTRICTION;
 	}
 
 	public CauseType getCauseType() {

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/RulePackage.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/RulePackage.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/RulePackage.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -7,21 +7,21 @@
  * 
  * @author Toni Rikkola
  */
-public class RulePackage extends AnalyticsComponent {
+public class RulePackage extends VerifierComponent {
 
 	private static int index = 0;
 
 	private int offset = 0;
 	private String name;
-	private Set<AnalyticsRule> rules = new HashSet<AnalyticsRule>();
+	private Set<VerifierRule> rules = new HashSet<VerifierRule>();
 
 	public RulePackage() {
 		super(index++);
 	}
 
 	@Override
-	public AnalyticsComponentType getComponentType() {
-		return AnalyticsComponentType.RULE_PACKAGE;
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.RULE_PACKAGE;
 	}
 	
 	public int getOffset(){ 
@@ -37,11 +37,11 @@
 		this.name = name;
 	}
 
-	public Set<AnalyticsRule> getRules() {
+	public Set<VerifierRule> getRules() {
 		return rules;
 	}
 
-	public void setRules(Set<AnalyticsRule> rules) {
+	public void setRules(Set<VerifierRule> rules) {
 		this.rules = rules;
 	}
 }

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/RulePossibility.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/RulePossibility.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/RulePossibility.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -14,7 +14,7 @@
  *
  * @author Toni Rikkola
  */
-public class RulePossibility extends AnalyticsComponent implements
+public class RulePossibility extends VerifierComponent implements
 		Serializable, Possibility {
 	private static final long serialVersionUID = 8871361928380977116L;
 
@@ -28,8 +28,8 @@
 	}
 
 	@Override
-	public AnalyticsComponentType getComponentType() {
-		return AnalyticsComponentType.RULE_POSSIBILITY;
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.RULE_POSSIBILITY;
 	}
 
 	public CauseType getCauseType() {

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/TextConsequence.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -2,7 +2,7 @@
 
 import org.drools.verifier.report.components.CauseType;
 
-public class TextConsequence extends AnalyticsComponent implements Consequence {
+public class TextConsequence extends VerifierComponent implements Consequence {
 
 	private static int index = 0;
 	private String text;
@@ -16,8 +16,8 @@
 	}
 
 	@Override
-	public AnalyticsComponentType getComponentType() {
-		return AnalyticsComponentType.CONSEQUENCE;
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.CONSEQUENCE;
 	}
 
 	public CauseType getCauseType() {

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Variable.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Variable.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Variable.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -4,12 +4,12 @@
  * 
  * @author Toni Rikkola
  */
-public class Variable extends AnalyticsComponent {
+public class Variable extends VerifierComponent {
 
 	private static int index;
 
 	private int ruleId;
-	private AnalyticsComponentType objectType;
+	private VerifierComponentType objectType;
 	private int objectId;
 	private String objectName;
 	private String name;
@@ -19,8 +19,8 @@
 	}
 
 	@Override
-	public AnalyticsComponentType getComponentType() {
-		return AnalyticsComponentType.VARIABLE;
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.VARIABLE;
 	}
 
 	public int getRuleId() {
@@ -39,13 +39,13 @@
 		this.objectId = variableId;
 	}
 
-	public AnalyticsComponentType getObjectType() {
+	public VerifierComponentType getObjectType() {
 		return objectType;
 	}
 
-	public void setObjectType(AnalyticsComponentType type) {
-		// AnalyticsComponentType.CLASS dominates AnalyticsComponentType.FIELD.
-		if (objectType == null || objectType != AnalyticsComponentType.CLASS) {
+	public void setObjectType(VerifierComponentType type) {
+		// VerifierComponentType.CLASS dominates VerifierComponentType.FIELD.
+		if (objectType == null || objectType != VerifierComponentType.CLASS) {
 			this.objectType = type;
 		}
 	}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierAccessorDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierAccessorDescr.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierAccessorDescr.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,19 @@
+package org.drools.verifier.components;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+public class VerifierAccessorDescr extends VerifierComponent {
+
+	private static int index = 0;
+
+	public VerifierAccessorDescr() {
+		super(index++);
+	}
+
+	@Override
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.ACCESSOR;
+	}
+}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierAccumulateDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierAccumulateDescr.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierAccumulateDescr.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,111 @@
+package org.drools.verifier.components;
+
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+public class VerifierAccumulateDescr extends VerifierComponent {
+
+	private static int index = 0;
+
+	private int inputPatternId;
+	private String initCode;
+	private String actionCode;
+	private String reverseCode;
+	private String resultCode;
+	private String[] declarations;
+	private String className;
+	private boolean externalFunction = false;
+	private String functionIdentifier;
+	private String expression;
+
+	public VerifierAccumulateDescr() {
+		super(index++);
+	}
+
+	@Override
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.ACCUMULATE;
+	}
+
+	public String getActionCode() {
+		return actionCode;
+	}
+
+	public void setActionCode(String actionCode) {
+		this.actionCode = actionCode;
+	}
+
+	public String getClassName() {
+		return className;
+	}
+
+	public void setClassName(String className) {
+		this.className = className;
+	}
+
+	public String[] getDeclarations() {
+		return declarations;
+	}
+
+	public void setDeclarations(String[] declarations) {
+		this.declarations = declarations;
+	}
+
+	public String getExpression() {
+		return expression;
+	}
+
+	public void setExpression(String expression) {
+		this.expression = expression;
+	}
+
+	public boolean isExternalFunction() {
+		return externalFunction;
+	}
+
+	public void setExternalFunction(boolean externalFunction) {
+		this.externalFunction = externalFunction;
+	}
+
+	public String getFunctionIdentifier() {
+		return functionIdentifier;
+	}
+
+	public void setFunctionIdentifier(String functionIdentifier) {
+		this.functionIdentifier = functionIdentifier;
+	}
+
+	public String getInitCode() {
+		return initCode;
+	}
+
+	public void setInitCode(String initCode) {
+		this.initCode = initCode;
+	}
+
+	public int getInputPatternId() {
+		return inputPatternId;
+	}
+
+	public void setInputPatternId(int inputPatternId) {
+		this.inputPatternId = inputPatternId;
+	}
+
+	public String getResultCode() {
+		return resultCode;
+	}
+
+	public void setResultCode(String resultCode) {
+		this.resultCode = resultCode;
+	}
+
+	public String getReverseCode() {
+		return reverseCode;
+	}
+
+	public void setReverseCode(String reverseCode) {
+		this.reverseCode = reverseCode;
+	}
+}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierClass.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierClass.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierClass.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,50 @@
+package org.drools.verifier.components;
+
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author Toni Rikkola
+ * 
+ */
+public class VerifierClass implements Serializable {
+	private static final long serialVersionUID = -783733402566313623L;
+
+	private static int index = 0;
+
+	private int id = index++;
+	private int offset =0;
+	
+	private String name;
+
+	private Set<Field> fields = new HashSet<Field>();
+
+	public String getName() {
+		return name;
+	}
+	
+	public int getOffset(){ 
+	    return offset + id % 2;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public int getId() {
+		return id;
+	}
+
+	public void setId(int id) {
+		this.id = id;
+	}
+
+	public Set<Field> getFields() {
+		return fields;
+	}
+
+	public void setFields(Set<Field> fields) {
+		this.fields = fields;
+	}
+}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierCollectDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierCollectDescr.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierCollectDescr.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,38 @@
+package org.drools.verifier.components;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+public class VerifierCollectDescr extends VerifierComponent {
+
+	private static int index = 0;
+
+	private int insidePatternId;
+	private String classMethodName;
+
+	@Override
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.COLLECT;
+	}
+
+	public int getInsidePatternId() {
+		return insidePatternId;
+	}
+
+	public void setInsidePatternId(int insidePatternId) {
+		this.insidePatternId = insidePatternId;
+	}
+
+	public String getClassMethodName() {
+		return classMethodName;
+	}
+
+	public void setClassMethodName(String classMethodName) {
+		this.classMethodName = classMethodName;
+	}
+
+	public VerifierCollectDescr() {
+		super(index++);
+	}
+}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierComponent.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierComponent.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierComponent.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,68 @@
+package org.drools.verifier.components;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+public abstract class VerifierComponent implements
+		Comparable<VerifierComponent> {
+
+	protected String ruleName;
+	protected int ruleId;
+	protected int id;
+
+	protected VerifierComponent parent;
+	
+	// Order number of this instance under parent.
+	protected int orderNumber = 0; 
+
+	public abstract VerifierComponentType getComponentType();
+
+	public int compareTo(VerifierComponent o) {
+		if (id == o.getId()) {
+			return 0;
+		}
+
+		return (id > o.getId() ? 1 : -1);
+	}
+
+	public VerifierComponent(int id) {
+		this.id = id;
+	}
+
+	public int getId() {
+		return id;
+	}
+
+	public String getRuleName() {
+		return ruleName;
+	}
+
+	public void setRuleName(String ruleName) {
+		this.ruleName = ruleName;
+	}
+
+	public VerifierComponent getParent() {
+		return parent;
+	}
+
+	public void setParent(VerifierComponent parent) {
+		this.parent = parent;
+	}
+
+	public int getOrderNumber() {
+		return orderNumber;
+	}
+
+	public void setOrderNumber(int orderNumber) {
+		this.orderNumber = orderNumber;
+	}
+
+	public int getRuleId() {
+		return ruleId;
+	}
+
+	public void setRuleId(int ruleId) {
+		this.ruleId = ruleId;
+	}
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierComponentType.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierComponentType.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierComponentType.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,37 @@
+package org.drools.verifier.components;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+public class VerifierComponentType{
+	public static final VerifierComponentType NOTHING = new VerifierComponentType(0);
+	public static final VerifierComponentType CLASS = new VerifierComponentType(1);
+	public static final VerifierComponentType FIELD = new VerifierComponentType(2);
+	public static final VerifierComponentType RULE = new VerifierComponentType(3);
+	public static final VerifierComponentType CONSTRAINT = new VerifierComponentType(4);
+	public static final VerifierComponentType VARIABLE = new VerifierComponentType(5);
+	public static final VerifierComponentType PATTERN = new VerifierComponentType(6);
+	public static final VerifierComponentType PATTERN_POSSIBILITY = new VerifierComponentType(7);
+	public static final VerifierComponentType RULE_POSSIBILITY = new VerifierComponentType(8);
+	public static final VerifierComponentType RESTRICTION =new VerifierComponentType(9);
+	public static final VerifierComponentType OPERATOR = new VerifierComponentType(10);
+	public static final VerifierComponentType FIELD_CLASS_LINK = new VerifierComponentType(11);
+	public static final VerifierComponentType COLLECT = new VerifierComponentType(12);
+	public static final VerifierComponentType ACCUMULATE = new VerifierComponentType(13);
+	public static final VerifierComponentType FROM = new VerifierComponentType(14);
+	public static final VerifierComponentType EVAL = new VerifierComponentType(15);
+	public static final VerifierComponentType PREDICATE = new VerifierComponentType(16);
+	public static final VerifierComponentType METHOD_ACCESSOR = new VerifierComponentType(17);
+	public static final VerifierComponentType FIELD_ACCESSOR = new VerifierComponentType(18);
+	public static final VerifierComponentType FUNCTION_CALL = new VerifierComponentType(19);
+	public static final VerifierComponentType ACCESSOR = new VerifierComponentType(20);
+	public static final VerifierComponentType RULE_PACKAGE = new VerifierComponentType(21);
+	public static final VerifierComponentType CONSEQUENCE = new VerifierComponentType(22);
+
+	private final int index;
+
+	private VerifierComponentType(int i) {
+		index = i;
+	}
+}

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierEvalDescr.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,50 @@
+package org.drools.verifier.components;
+
+import org.drools.verifier.report.components.Cause;
+import org.drools.verifier.report.components.CauseType;
+
+/**
+ *
+ * @author Toni Rikkola
+ */
+public class VerifierEvalDescr extends VerifierComponent implements Cause {
+
+	private static int index = 0;
+
+	private String content;
+	private String classMethodName;
+
+	public VerifierEvalDescr() {
+		super(index++);
+	}
+
+	@Override
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.EVAL;
+	}
+
+	public CauseType getCauseType() {
+		return CauseType.EVAL;
+	}
+
+	public String getClassMethodName() {
+		return classMethodName;
+	}
+
+	public void setClassMethodName(String classMethodName) {
+		this.classMethodName = classMethodName;
+	}
+
+	public String getContent() {
+		return content;
+	}
+
+	public void setContent(String content) {
+		this.content = content;
+	}
+
+	@Override
+	public String toString() {
+		return "Eval, content: " + content;
+	}
+}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFieldAccessDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFieldAccessDescr.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFieldAccessDescr.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,38 @@
+package org.drools.verifier.components;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+public class VerifierFieldAccessDescr extends VerifierComponent {
+
+	private static int index = 0;
+
+	private String fieldName;
+	private String argument;
+
+	public VerifierFieldAccessDescr() {
+		super(index++);
+	}
+
+	@Override
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.FIELD_ACCESSOR;
+	}
+
+	public String getArgument() {
+		return argument;
+	}
+
+	public void setArgument(String argument) {
+		this.argument = argument;
+	}
+
+	public String getFieldName() {
+		return fieldName;
+	}
+
+	public void setFieldName(String fieldName) {
+		this.fieldName = fieldName;
+	}
+}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFromDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFromDescr.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFromDescr.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,38 @@
+package org.drools.verifier.components;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+public class VerifierFromDescr extends VerifierComponent {
+
+	private static int index = 0;
+
+	private VerifierComponentType dataSourceType;
+	private int dataSourceId;
+
+	public VerifierFromDescr() {
+		super(index++);
+	}
+
+	@Override
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.FROM;
+	}
+
+	public int getDataSourceId() {
+		return dataSourceId;
+	}
+
+	public void setDataSourceId(int dataSourceId) {
+		this.dataSourceId = dataSourceId;
+	}
+
+	public VerifierComponentType getDataSourceType() {
+		return dataSourceType;
+	}
+
+	public void setDataSourceType(VerifierComponentType dataSourceType) {
+		this.dataSourceType = dataSourceType;
+	}
+}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFunctionCallDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFunctionCallDescr.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFunctionCallDescr.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,38 @@
+package org.drools.verifier.components;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+public class VerifierFunctionCallDescr extends VerifierComponent {
+
+	private static int index = 0;
+
+	private String name;
+	private String arguments;
+
+	public VerifierFunctionCallDescr() {
+		super(index++);
+	}
+
+	@Override
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.FUNCTION_CALL;
+	}
+
+	public String getArguments() {
+		return arguments;
+	}
+
+	public void setArguments(String arguments) {
+		this.arguments = arguments;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierMethodAccessDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierMethodAccessDescr.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierMethodAccessDescr.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,38 @@
+package org.drools.verifier.components;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+public class VerifierMethodAccessDescr extends VerifierComponent {
+
+	private static int index = 0;
+
+	private String methodName;
+	private String arguments;
+
+	public VerifierMethodAccessDescr() {
+		super(index++);
+	}
+
+	@Override
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.METHOD_ACCESSOR;
+	}
+
+	public String getArguments() {
+		return arguments;
+	}
+
+	public void setArguments(String arguments) {
+		this.arguments = arguments;
+	}
+
+	public String getMethodName() {
+		return methodName;
+	}
+
+	public void setMethodName(String methodName) {
+		this.methodName = methodName;
+	}
+}

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierPredicateDescr.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,51 @@
+package org.drools.verifier.components;
+
+import org.drools.verifier.report.components.Cause;
+import org.drools.verifier.report.components.CauseType;
+
+/**
+ *
+ * @author Toni Rikkola
+ */
+public class VerifierPredicateDescr extends VerifierComponent implements
+		Cause {
+
+	private static int index = 0;
+
+	private String content;
+	private String classMethodName;
+
+	public VerifierPredicateDescr() {
+		super(index++);
+	}
+
+	@Override
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.PREDICATE;
+	}
+
+	public CauseType getCauseType() {
+		return CauseType.PREDICATE;
+	}
+
+	public String getClassMethodName() {
+		return classMethodName;
+	}
+
+	public void setClassMethodName(String classMethodName) {
+		this.classMethodName = classMethodName;
+	}
+
+	public String getContent() {
+		return content;
+	}
+
+	public void setContent(String content) {
+		this.content = content;
+	}
+
+	@Override
+	public String toString() {
+		return "Predicate id: " + id + " content: " + content;
+	}
+}

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierRule.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,79 @@
+package org.drools.verifier.components;
+
+import org.drools.verifier.report.components.Cause;
+import org.drools.verifier.report.components.CauseType;
+
+/**
+ *
+ * @author Toni Rikkola
+ */
+public class VerifierRule extends VerifierComponent implements Cause {
+
+	private static int index = 0;
+
+	private String ruleSalience;
+	private String ruleAgendaGroup;
+	private Consequence consequence;
+	private int lineNumber;
+
+	private int packageId;
+
+	public VerifierRule() {
+		super(index++);
+		ruleId = index;
+	}
+
+	@Override
+	public VerifierComponentType getComponentType() {
+		return VerifierComponentType.RULE;
+	}
+
+	public CauseType getCauseType() {
+		return CauseType.RULE;
+	}
+
+	public String getRuleAgendaGroup() {
+		return ruleAgendaGroup;
+	}
+
+	public void setRuleAgendaGroup(String agendaGroup) {
+		this.ruleAgendaGroup = agendaGroup;
+	}
+
+	public String getRuleSalience() {
+		return ruleSalience;
+	}
+
+	public void setRuleSalience(String salience) {
+		this.ruleSalience = salience;
+	}
+
+	public Consequence getConsequence() {
+		return consequence;
+	}
+
+	public void setConsequence(Consequence consequence) {
+		this.consequence = consequence;
+	}
+
+	public int getLineNumber() {
+		return lineNumber;
+	}
+
+	public void setLineNumber(int lineNumber) {
+		this.lineNumber = lineNumber;
+	}
+
+	@Override
+	public String toString() {
+		return "Rule '" + ruleName + "'";
+	}
+
+	public int getPackageId() {
+		return packageId;
+	}
+
+	public void setPackageId(int packageId) {
+		this.packageId = packageId;
+	}
+}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierData.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierData.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierData.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,89 @@
+package org.drools.verifier.dao;
+
+import java.util.Collection;
+
+import org.drools.verifier.components.VerifierClass;
+import org.drools.verifier.components.VerifierEvalDescr;
+import org.drools.verifier.components.VerifierPredicateDescr;
+import org.drools.verifier.components.VerifierRule;
+import org.drools.verifier.components.Consequence;
+import org.drools.verifier.components.Constraint;
+import org.drools.verifier.components.Field;
+import org.drools.verifier.components.FieldClassLink;
+import org.drools.verifier.components.OperatorDescr;
+import org.drools.verifier.components.Pattern;
+import org.drools.verifier.components.PatternPossibility;
+import org.drools.verifier.components.Restriction;
+import org.drools.verifier.components.RulePackage;
+import org.drools.verifier.components.RulePossibility;
+import org.drools.verifier.components.Variable;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+public interface VerifierData {
+
+	public void add(Consequence consequence);
+
+	public void add(VerifierClass clazz);
+
+	public void add(Field field);
+
+	public void add(Variable variable);
+
+	public void add(VerifierRule rule);
+
+	public void add(Pattern pattern);
+
+	public void add(Constraint constraint);
+
+	public void add(Restriction restriction);
+
+	public void add(FieldClassLink link);
+
+	public void add(PatternPossibility possibility);
+
+	public void add(RulePossibility possibility);
+
+	public void add(RulePackage rulePackage);
+
+	public VerifierClass getClassByPackageAndName(String name);
+
+	public VerifierClass getClassById(int id);
+
+	public Field getFieldByClassAndFieldName(String className, String fieldName);
+
+	public Variable getVariableByRuleAndVariableName(String ruleName,
+			String variableName);
+
+	public Collection<? extends Object> getAll();
+
+	public FieldClassLink getFieldClassLink(int id, int id2);
+
+	public Collection<VerifierRule> getAllRules();
+
+	public Collection<VerifierClass> getClassesByRuleName(String ruleName);
+
+	public Collection<VerifierClass> getAllClasses();
+
+	public Collection<RulePackage> getAllRulePackages();
+
+	public Collection<Field> getFieldsByClassId(int id);
+
+	public Collection<VerifierRule> getRulesByClassId(int id);
+
+	public Collection<Field> getAllFields();
+
+	public Collection<VerifierRule> getRulesByFieldId(int id);
+
+	public RulePackage getRulePackageByName(String name);
+
+	public Collection<Restriction> getRestrictionsByFieldId(int id);
+
+	public void add(OperatorDescr operatorDescr);
+
+	public void add(VerifierEvalDescr eval);
+
+	public void add(VerifierPredicateDescr predicate);
+}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierDataMaps.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierDataMaps.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierDataMaps.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,241 @@
+package org.drools.verifier.dao;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+import org.drools.verifier.components.VerifierClass;
+import org.drools.verifier.components.VerifierEvalDescr;
+import org.drools.verifier.components.VerifierPredicateDescr;
+import org.drools.verifier.components.VerifierRule;
+import org.drools.verifier.components.Consequence;
+import org.drools.verifier.components.Constraint;
+import org.drools.verifier.components.Field;
+import org.drools.verifier.components.FieldClassLink;
+import org.drools.verifier.components.OperatorDescr;
+import org.drools.verifier.components.Pattern;
+import org.drools.verifier.components.PatternPossibility;
+import org.drools.verifier.components.Restriction;
+import org.drools.verifier.components.RulePackage;
+import org.drools.verifier.components.RulePossibility;
+import org.drools.verifier.components.Variable;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+class VerifierDataMaps implements VerifierData {
+
+	private Map<Integer, RulePackage> packagesById = new TreeMap<Integer, RulePackage>();
+	private Map<String, RulePackage> packagesByName = new TreeMap<String, RulePackage>();
+
+	private Map<Integer, VerifierClass> classesById = new TreeMap<Integer, VerifierClass>();
+	private Map<String, VerifierClass> classesByName = new TreeMap<String, VerifierClass>();
+	private Map<String, Field> fieldsByClassAndFieldName = new TreeMap<String, Field>();
+	private Map<Integer, Field> fieldsById = new TreeMap<Integer, Field>();
+	private DataTree<Integer, Field> fieldsByClassId = new DataTree<Integer, Field>();
+	private Map<String, FieldClassLink> fieldClassLinkByIds = new TreeMap<String, FieldClassLink>();
+
+	private Map<Integer, VerifierRule> rulesById = new TreeMap<Integer, VerifierRule>();
+	private Map<Integer, Pattern> patternsById = new TreeMap<Integer, Pattern>();
+	private DataTree<Integer, Pattern> patternsByClassId = new DataTree<Integer, Pattern>();
+	private DataTree<String, Pattern> patternsByRuleName = new DataTree<String, Pattern>();
+	private Map<Integer, Constraint> constraintsById = new TreeMap<Integer, Constraint>();
+	private Map<Integer, Restriction> restrictionsById = new TreeMap<Integer, Restriction>();
+	private DataTree<Integer, Restriction> restrictionsByFieldId = new DataTree<Integer, Restriction>();
+	private Map<Integer, OperatorDescr> operatorsById = new TreeMap<Integer, OperatorDescr>();
+	private Map<Integer, VerifierEvalDescr> evalsById = new TreeMap<Integer, VerifierEvalDescr>();
+	private Map<Integer, VerifierPredicateDescr> predicatesById = new TreeMap<Integer, VerifierPredicateDescr>();
+	private Map<Integer, Consequence> consiquencesById = new TreeMap<Integer, Consequence>();
+
+	private Map<String, Variable> variablesByRuleAndVariableName = new TreeMap<String, Variable>();
+
+	private Map<Integer, PatternPossibility> patternPossibilitiesById = new TreeMap<Integer, PatternPossibility>();
+	private Map<Integer, RulePossibility> rulePossibilitiesById = new TreeMap<Integer, RulePossibility>();
+
+	public void add(VerifierClass clazz) {
+		classesById.put(Integer.valueOf(clazz.getId()), clazz);
+		classesByName.put(clazz.getName(), clazz);
+	}
+
+	public void add(Field field) {
+		VerifierClass clazz = classesById.get(Integer.valueOf(field
+				.getClassId()));
+		fieldsByClassAndFieldName.put(clazz.getName() + "." + field.getName(),
+				field);
+
+		fieldsById.put(field.getId(), field);
+
+		fieldsByClassId.put(field.getClassId(), field);
+	}
+
+	public void add(Variable variable) {
+		variablesByRuleAndVariableName.put(variable.getRuleName() + "."
+				+ variable.getName(), variable);
+	}
+
+	public void add(VerifierRule rule) {
+		rulesById.put(Integer.valueOf(rule.getId()), rule);
+	}
+
+	public void add(Pattern pattern) {
+		patternsById.put(Integer.valueOf(pattern.getId()), pattern);
+
+		patternsByClassId.put(pattern.getClassId(), pattern);
+		patternsByRuleName.put(pattern.getRuleName(), pattern);
+	}
+
+	public void add(Constraint constraint) {
+		constraintsById.put(Integer.valueOf(constraint.getId()), constraint);
+	}
+
+	public void add(Restriction restriction) {
+		restrictionsById.put(restriction.getId(), restriction);
+
+		restrictionsByFieldId.put(restriction.getFieldId(), restriction);
+	}
+
+	public void add(FieldClassLink link) {
+		fieldClassLinkByIds.put(link.getFieldId() + "." + link.getClassId(),
+				link);
+	}
+
+	public VerifierClass getClassByPackageAndName(String name) {
+		return classesByName.get(name);
+	}
+
+	public Field getFieldByClassAndFieldName(String className, String fieldName) {
+		return fieldsByClassAndFieldName.get(className + "." + fieldName);
+	}
+
+	public Variable getVariableByRuleAndVariableName(String ruleName,
+			String variableName) {
+		return variablesByRuleAndVariableName
+				.get(ruleName + "." + variableName);
+	}
+
+	public FieldClassLink getFieldClassLink(int id, int id2) {
+		return fieldClassLinkByIds.get(id + "." + id2);
+	}
+
+	public Collection<VerifierRule> getAllRules() {
+		return rulesById.values();
+	}
+
+	public void add(PatternPossibility possibility) {
+		patternPossibilitiesById.put(possibility.getId(), possibility);
+	}
+
+	public void add(RulePossibility possibility) {
+		rulePossibilitiesById.put(possibility.getId(), possibility);
+	}
+
+	public Collection<VerifierClass> getClassesByRuleName(String ruleName) {
+		Set<VerifierClass> set = new HashSet<VerifierClass>();
+
+		for (Pattern pattern : patternsByRuleName.getBranch(ruleName)) {
+			VerifierClass clazz = getClassById(pattern.getClassId());
+			set.add(clazz);
+		}
+
+		return set;
+	}
+
+	public VerifierClass getClassById(int id) {
+		return classesById.get(id);
+	}
+
+	public Collection<? extends Object> getAll() {
+		List<Object> objects = new ArrayList<Object>();
+
+		objects.addAll(packagesById.values());
+
+		objects.addAll(rulesById.values());
+		objects.addAll(patternsById.values());
+		objects.addAll(constraintsById.values());
+		objects.addAll(restrictionsById.values());
+		objects.addAll(operatorsById.values());
+		objects.addAll(evalsById.values());
+		objects.addAll(predicatesById.values());
+		objects.addAll(consiquencesById.values());
+
+		objects.addAll(patternPossibilitiesById.values());
+		objects.addAll(rulePossibilitiesById.values());
+
+		objects.addAll(classesByName.values());
+		objects.addAll(fieldsByClassAndFieldName.values());
+		objects.addAll(variablesByRuleAndVariableName.values());
+
+		return objects;
+	}
+
+	public Collection<VerifierClass> getAllClasses() {
+		return classesById.values();
+	}
+
+	public Collection<Field> getFieldsByClassId(int id) {
+		return fieldsByClassId.getBranch(id);
+	}
+
+	public Collection<VerifierRule> getRulesByClassId(int id) {
+		Set<VerifierRule> rules = new HashSet<VerifierRule>();
+
+		for (Pattern pattern : patternsByClassId.getBranch(id)) {
+			rules.add(rulesById.get(pattern.getRuleId()));
+		}
+
+		return rules;
+	}
+
+	public Collection<Field> getAllFields() {
+		return fieldsById.values();
+	}
+
+	public Collection<VerifierRule> getRulesByFieldId(int id) {
+
+		Set<VerifierRule> rules = new HashSet<VerifierRule>();
+
+		for (Restriction restriction : restrictionsByFieldId.getBranch(id)) {
+			rules.add(rulesById.get(restriction.getRuleId()));
+		}
+
+		return rules;
+	}
+
+	public Collection<RulePackage> getAllRulePackages() {
+		return packagesById.values();
+	}
+
+	public void add(RulePackage rulePackage) {
+		packagesById.put(rulePackage.getId(), rulePackage);
+		packagesByName.put(rulePackage.getName(), rulePackage);
+	}
+
+	public RulePackage getRulePackageByName(String name) {
+		return packagesByName.get(name);
+	}
+
+	public Collection<Restriction> getRestrictionsByFieldId(int id) {
+		return restrictionsByFieldId.getBranch(id);
+	}
+
+	public void add(OperatorDescr operatorDescr) {
+		operatorsById.put(operatorDescr.getId(), operatorDescr);
+	}
+
+	public void add(VerifierEvalDescr eval) {
+		evalsById.put(eval.getId(), eval);
+	}
+
+	public void add(VerifierPredicateDescr predicate) {
+		predicatesById.put(predicate.getId(), predicate);
+	}
+
+	public void add(Consequence consequence) {
+		consiquencesById.put(consequence.getId(), consequence);
+	}
+}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierResult.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierResult.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierResult.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,42 @@
+package org.drools.verifier.dao;
+
+import java.util.Collection;
+
+import org.drools.verifier.report.components.VerifierMessageBase;
+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.Severity;
+
+/**
+ *
+ * @author Toni Rikkola
+ */
+public interface VerifierResult {
+
+	public void add(Gap gap);
+
+	public void remove(Gap gap);
+
+	public void add(MissingNumberPattern missingNumberPattern);
+
+	public VerifierData getVerifierData();
+
+	public Collection<RangeCheckCause> getRangeCheckCauses();
+
+	public Collection<RangeCheckCause> getRangeCheckCausesByFieldId(int id);
+
+	public Collection<Gap> getGapsByFieldId(int fieldId);
+
+	public void add(VerifierMessageBase note);
+
+	/**
+	 * Return all the items that have given severity value.
+	 *
+	 * @param severity
+	 *            Severity level of item.
+	 * @return Collection of items or an empty list if none was found.
+	 */
+	public Collection<VerifierMessageBase> getBySeverity(Severity severity);
+
+}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierResultFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierResultFactory.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierResultFactory.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,9 @@
+package org.drools.verifier.dao;
+
+public class VerifierResultFactory {
+
+	public static VerifierResult createVerifierResult() {
+
+		return new VerifierResultNormal();
+	}
+}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierResultNormal.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierResultNormal.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/VerifierResultNormal.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,98 @@
+package org.drools.verifier.dao;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.drools.verifier.report.components.VerifierMessageBase;
+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.Severity;
+
+/**
+ *
+ * @author Toni Rikkola
+ */
+class VerifierResultNormal implements VerifierResult {
+	private static final long serialVersionUID = -6207688526236713721L;
+
+	private Map<Integer, Gap> gapsById = new TreeMap<Integer, Gap>();
+	private DataTree<Integer, Gap> gapsByFieldId = new DataTree<Integer, Gap>();
+	private Map<Integer, MissingNumberPattern> missingNumberPatternsById = new TreeMap<Integer, MissingNumberPattern>();
+	private DataTree<Integer, MissingNumberPattern> missingNumberPatternsByFieldId = new DataTree<Integer, MissingNumberPattern>();
+
+	private List<VerifierMessageBase> messages = new ArrayList<VerifierMessageBase>();
+	private DataTree<Severity, VerifierMessageBase> messagesBySeverity = new DataTree<Severity, VerifierMessageBase>();
+
+	private VerifierData data = new VerifierDataMaps();
+
+	public void add(VerifierMessageBase message) {
+		messages.add(message);
+		messagesBySeverity.put(message.getSeverity(), message);
+	}
+
+	public Collection<VerifierMessageBase> getBySeverity(
+			Severity severity) {
+		Collection<VerifierMessageBase> result = messagesBySeverity
+				.getBranch(severity);
+
+		if (result == null) {
+			return Collections.emptyList();
+		} else {
+			return result;
+		}
+	}
+
+	public void add(Gap gap) {
+		gapsById.put(gap.getId(), gap);
+
+		// Put by field id.
+		gapsByFieldId.put(gap.getField().getId(), gap);
+	}
+
+	public void remove(Gap gap) {
+		gapsById.remove(gap.getId());
+
+		gapsByFieldId.remove(gap.getField().getId(), gap);
+	}
+
+	public Collection<Gap> getGapsByFieldId(int fieldId) {
+		return gapsByFieldId.getBranch(fieldId);
+	}
+
+	public Collection<RangeCheckCause> getRangeCheckCauses() {
+		Collection<RangeCheckCause> result = new ArrayList<RangeCheckCause>();
+
+		result.addAll(gapsById.values());
+		result.addAll(missingNumberPatternsById.values());
+
+		return result;
+	}
+
+	public void add(MissingNumberPattern missingNumberPattern) {
+		missingNumberPatternsById.put(missingNumberPattern.getId(),
+				missingNumberPattern);
+
+		// Put by field id.
+		missingNumberPatternsByFieldId.put(missingNumberPattern.getField()
+				.getId(), missingNumberPattern);
+	}
+
+	public Collection<RangeCheckCause> getRangeCheckCausesByFieldId(int id) {
+		Collection<RangeCheckCause> result = new ArrayList<RangeCheckCause>();
+
+		result.addAll(gapsByFieldId.getBranch(id));
+
+		result.addAll(missingNumberPatternsByFieldId.getBranch(id));
+
+		return result;
+	}
+
+	public VerifierData getVerifierData() {
+		return data;
+	}
+}

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/ReportModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/ReportModeller.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/ReportModeller.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -3,9 +3,9 @@
 import java.util.Collection;
 
 import org.drools.verifier.components.LiteralRestriction;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.report.components.AnalyticsMessage;
-import org.drools.verifier.report.components.AnalyticsMessageBase;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.report.components.VerifierMessageBase;
 import org.drools.verifier.report.components.Gap;
 import org.drools.verifier.report.components.MissingNumberPattern;
 import org.drools.verifier.report.components.Severity;
@@ -18,11 +18,11 @@
  */
 public class ReportModeller {
 
-	public static String writeXML(AnalyticsResult result) {
+	public static String writeXML(VerifierResult result) {
 		XStream xstream = new XStream();
 
-		xstream.alias("result", AnalyticsResult.class);
-		xstream.alias("message", AnalyticsMessage.class);
+		xstream.alias("result", VerifierResult.class);
+		xstream.alias("message", VerifierMessage.class);
 
 		xstream.alias("Gap", Gap.class);
 		xstream.alias("MissingNumber", MissingNumberPattern.class);
@@ -34,13 +34,13 @@
 		return "<?xml version=\"1.0\"?>\n" + xstream.toXML(result);
 	}
 
-	public static String writePlainText(AnalyticsResult result) {
+	public static String writePlainText(VerifierResult result) {
 
 		StringBuffer str = new StringBuffer();
 
 		for (Severity severity : Severity
 				.values()) {
-			Collection<AnalyticsMessageBase> messages = result
+			Collection<VerifierMessageBase> messages = result
 					.getBySeverity(severity);
 
 			str.append("************* ");
@@ -49,7 +49,7 @@
 
 			str.append(messages.size());
 			str.append(" ******************\n");
-			for (AnalyticsMessageBase message : messages) {
+			for (VerifierMessageBase message : messages) {
 				str.append(message);
 				str.append("\n");
 			}

Modified: 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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/CauseType.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -16,8 +16,8 @@
 	public static final CauseType CONSTRAINT = new CauseType(11);
 	public static final CauseType CONSEQUENCE = new CauseType(12);
 	public static final CauseType SUBSUMPTION = new CauseType(13);
-	public static final CauseType OPPOSITES = new CauseType(14);
-	public static final CauseType OPPOSITE = new CauseType(15);
+	public static final CauseType OPPOSITE = new CauseType(14);
+	public static final CauseType INCOMPATIBLE = new CauseType(15);
 
 	public final int index;
 

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Gap.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -5,13 +5,13 @@
 import org.drools.verifier.components.LiteralRestriction;
 
 /**
- *
+ * 
  * @author Toni Rikkola
  */
 public class Gap extends MissingRange implements RangeCheckCause,
 		Comparable<MissingRange> {
 
-	private LiteralRestriction restriction;
+	private final LiteralRestriction restriction;
 
 	public int compareTo(MissingRange another) {
 		return super.compareTo(another);
@@ -22,7 +22,7 @@
 	}
 
 	/**
-	 *
+	 * 
 	 * @param field
 	 *            Field from where the value is missing.
 	 * @param evaluator
@@ -31,8 +31,8 @@
 	 *            The restriction that the gap begins from.
 	 */
 	public Gap(Field field, Operator operator, LiteralRestriction restriction) {
-		this.field = field;
-		this.operator = operator;
+		super(field, operator);
+
 		this.restriction = restriction;
 	}
 
@@ -44,10 +44,6 @@
 		return restriction;
 	}
 
-	public void setRestriction(LiteralRestriction restriction) {
-		this.restriction = restriction;
-	}
-
 	public String getValueAsString() {
 		return restriction.getValueAsString();
 	}

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Incompatibility.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -2,7 +2,9 @@
 
 /**
  * 
- * Two causes are opposites.
+ * Two causes are incompatible.
+ * <p>
+ * For example: Restrictions (a > b) and (a == b)
  * 
  * @author Toni Rikkola
  */
@@ -10,10 +12,10 @@
 
 	private static int index = 0;
 
-	private int id = index++;
+	private final int id = index++;
 
-	private Cause left;
-	private Cause right;
+	private final Cause left;
+	private final Cause right;
 
 	public Incompatibility(Cause left, Cause right) {
 		this.left = left;
@@ -25,28 +27,19 @@
 	}
 
 	public CauseType getCauseType() {
-		return CauseType.OPPOSITES;
+		return CauseType.INCOMPATIBLE;
 	}
 
 	public Cause getLeft() {
 		return left;
 	}
 
-	public void setLeft(Cause left) {
-		this.left = left;
-	}
-
 	public Cause getRight() {
 		return right;
 	}
 
-	public void setRight(Cause right) {
-		this.right = right;
-	}
-
 	@Override
 	public String toString() {
-		return "(" + getLeft() + ") and (" + getRight()
-				+ ") are opposites.";
+		return "(" + getLeft() + ") and (" + getRight() + ") are incompatible.";
 	}
 }

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/MissingNumberPattern.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -8,15 +8,15 @@
 import org.drools.verifier.components.Field;
 
 /**
- *
+ * 
  * @author Toni Rikkola
  */
 public class MissingNumberPattern extends MissingRange implements
 		RangeCheckCause, Comparable<MissingRange> {
 
-	private Field.FieldType valueType;
+	private final Field.FieldType valueType;
 
-	private String value;
+	private final String value;
 
 	public int compareTo(MissingRange another) {
 		return super.compareTo(another);
@@ -28,8 +28,8 @@
 
 	public MissingNumberPattern(Field field, Operator operator,
 			Field.FieldType valueType, String value) {
-		this.field = field;
-		this.operator = operator;
+		super(field, operator);
+
 		this.valueType = valueType;
 		this.value = value;
 	}
@@ -72,10 +72,6 @@
 		return valueType;
 	}
 
-	public void setValueType(Field.FieldType valueType) {
-		this.valueType = valueType;
-	}
-
 	@Override
 	public String toString() {
 		return "Missing restriction " + operator + " " + value;

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/MissingRange.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -6,12 +6,15 @@
 public abstract class MissingRange implements Comparable<MissingRange> {
 
 	private static int index = 0;
-	protected int id = index++;
+	protected final int id = index++;
 
-	protected Field field;
-	protected Operator operator;
+	protected final Field field;
+	protected final Operator operator;
 
-	private String firedRuleName;
+	public MissingRange(Field field, Operator operator) {
+		this.field = field;
+		this.operator = operator;
+	}
 
 	/**
 	 * Takes the given operator e, and returns a reversed version of it.
@@ -57,19 +60,7 @@
 		return field;
 	}
 
-	public void setField(Field field) {
-		this.field = field;
-	}
-
 	public Operator getOperator() {
 		return operator;
 	}
-
-	public String getFiredRuleName() {
-		return firedRuleName;
-	}
-
-	public void setFiredRuleName(String firedRuleName) {
-		this.firedRuleName = firedRuleName;
-	}
 }

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Opposites.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -1,5 +1,13 @@
 package org.drools.verifier.report.components;
 
+/**
+ * 
+ * Two causes are opposites.
+ * <p>
+ * For example: Restrictions (a > b) and (a <= b)
+ * 
+ * @author Toni Rikkola
+ */
 public class Opposites extends Incompatibility implements Cause {
 
 	public Opposites(Cause left, Cause right) {

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/PartialRedundancy.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/PartialRedundancy.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/PartialRedundancy.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -8,9 +8,9 @@
  */
 public class PartialRedundancy {
 
-	private Cause left;
-	private Cause right;
-	private Redundancy redundancy;
+	private final Cause left;
+	private final Cause right;
+	private final Redundancy redundancy;
 
 	/**
 	 * 
@@ -31,23 +31,12 @@
 		return left;
 	}
 
-	public void setLeft(Cause left) {
-		this.left = left;
-	}
-
 	public Redundancy getRedundancy() {
 		return redundancy;
 	}
 
-	public void setRedundancy(Redundancy redundancy) {
-		this.redundancy = redundancy;
-	}
-
 	public Cause getRight() {
 		return right;
 	}
 
-	public void setRight(Cause right) {
-		this.right = right;
-	}
 }

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Redundancy.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -4,17 +4,18 @@
  * Presents a redundancy between two Causes. The link between them can be WEAK
  * or STRONG.
  * 
- * WEAK redundancy is for example two AnalyticsRules, but not theyr's rule
+ * WEAK redundancy is for example two VerifierRules, but not theyr's rule
  * possibilities. STRONG redundancy includes possibilities.
  * 
  * @author Toni Rikkola
  */
 public class Redundancy extends Subsumption implements Cause {
 	// By default the redundancy is weak.
-	private RedundancyType type = RedundancyType.WEAK;
+	private final RedundancyType type;
 
 	public Redundancy(Cause left, Cause right) {
 		super(left, right);
+		type = RedundancyType.WEAK;
 	}
 
 	public Redundancy(RedundancyType type, Cause left, Cause right) {
@@ -30,10 +31,6 @@
 		return type;
 	}
 
-	public void setType(RedundancyType type) {
-		this.type = type;
-	}
-
 	@Override
 	public String toString() {
 		return "Redundancy between: (" + getLeft() + ") and (" + getRight()

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Subsumption.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -8,10 +8,10 @@
 
 	private static int index = 0;
 
-	private int id = index++;
+	private final int id = index++;
 
-	private Cause left;
-	private Cause right;
+	private final Cause left;
+	private final Cause right;
 
 	public Subsumption(Cause left, Cause right) {
 		this.left = left;
@@ -30,18 +30,10 @@
 		return left;
 	}
 
-	public void setLeft(Cause left) {
-		this.left = left;
-	}
-
 	public Cause getRight() {
 		return right;
 	}
 
-	public void setRight(Cause right) {
-		this.right = right;
-	}
-
 	@Override
 	public String toString() {
 		return "Subsumption between: (" + getLeft() + ") and (" + getRight()

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessage.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,59 @@
+package org.drools.verifier.report.components;
+
+import java.util.Collection;
+import java.util.Collections;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+public class VerifierMessage extends VerifierMessageBase {
+	private static final long serialVersionUID = 9190003495068712452L;
+
+	protected final Collection<Cause> causes;
+
+	public VerifierMessage(Severity severity, MessageType messageType,
+			Cause faulty, String message, Collection<Cause> causes) {
+		super(severity, messageType, faulty, message);
+
+		this.causes = causes;
+	}
+
+	public VerifierMessage(Severity severity, MessageType messageType,
+			Cause faulty, String message) {
+		super(severity, messageType, faulty, message);
+
+		this.causes = Collections.emptyList();
+	}
+
+	public Collection<Cause> getCauses() {
+		return causes;
+	}
+
+	@Override
+	public String toString() {
+		StringBuffer str = new StringBuffer(severity.getSingular());
+
+		str.append(" id = ");
+		str.append(id);
+		str.append(":\n");
+
+		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();
+	}
+}

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierMessageBase.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,81 @@
+package org.drools.verifier.report.components;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+abstract public class VerifierMessageBase implements Serializable,
+		Comparable<VerifierMessageBase> {
+	private static final long serialVersionUID = 9190003495068712452L;
+
+	private static int index = 0;
+
+	protected final Severity severity;
+	protected final MessageType messageType;
+
+	protected final int id = index++;
+	protected final Cause faulty;
+	protected final String message;
+
+	public int compareTo(VerifierMessageBase o) {
+		if (id == o.getId()) {
+			return 0;
+		}
+
+		return (id > o.getId() ? 1 : -1);
+	}
+
+	protected VerifierMessageBase(Severity severity, MessageType messageType,
+			Cause faulty, String message) {
+		this.severity = severity;
+		this.messageType = messageType;
+		this.faulty = faulty;
+		this.message = message;
+	}
+
+	public int getId() {
+		return id;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public Cause getFaulty() {
+		return faulty;
+	}
+
+	public MessageType getMessageType() {
+		return messageType;
+	}
+
+	public Severity getSeverity() {
+		return severity;
+	}
+
+	@Override
+	public String toString() {
+		StringBuffer str = new StringBuffer(severity.singular);
+
+		str.append(" id = ");
+		str.append(id);
+		str.append(":\n");
+
+		if (faulty != null) {
+			str.append("faulty : ");
+			str.append(faulty);
+			str.append(", ");
+		}
+
+		str.append(message);
+
+		str.append("\t]");
+
+		return str.toString();
+	}
+
+	public abstract Collection<? extends Cause> getCauses();
+}

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/VerifierRangeCheckMessage.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,24 @@
+package org.drools.verifier.report.components;
+
+import java.util.Collection;
+
+public class VerifierRangeCheckMessage extends VerifierMessageBase {
+	private static final long serialVersionUID = -2403507929285633672L;
+
+	private Collection<RangeCheckCause> causes;
+
+	public VerifierRangeCheckMessage(Severity severity, Cause faulty,
+			String message, Collection<RangeCheckCause> causes) {
+		super(severity, MessageType.RANGE_CHECK, faulty, message);
+
+		this.causes = causes;
+	}
+
+	public Collection<RangeCheckCause> getCauses() {
+		return causes;
+	}
+
+	public void setCauses(Collection<RangeCheckCause> reasons) {
+		this.causes = reasons;
+	}
+}

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ComponentsReportModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ComponentsReportModeller.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ComponentsReportModeller.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -3,18 +3,18 @@
 import java.io.File;
 import java.io.IOException;
 
-import org.drools.verifier.components.AnalyticsClass;
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierClass;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.Field;
-import org.drools.verifier.dao.AnalyticsData;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.report.components.AnalyticsMessage;
+import org.drools.verifier.dao.VerifierData;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.report.components.VerifierMessage;
 import org.drools.verifier.report.components.Severity;
 
 public class ComponentsReportModeller extends ReportModeller {
 
-	public static void writeHTML(String path, AnalyticsResult result) {
-		AnalyticsData data = result.getAnalyticsData();
+	public static void writeHTML(String path, VerifierResult result) {
+		VerifierData data = result.getVerifierData();
 
 		// Source folder
 		File sourceFolder = new File(path + UrlFactory.SOURCE_FOLDER);
@@ -39,7 +39,7 @@
 				+ UrlFactory.RULE_FOLDER;
 		File rulesFolder = new File(ruleFolder);
 		rulesFolder.mkdir();
-		for (AnalyticsRule rule : data.getAllRules()) {
+		for (VerifierRule rule : data.getAllRules()) {
 			writeToFile(ruleFolder + File.separator + rule.getId() + ".htm",
 					formPage(UrlFactory.PREVIOUS_FOLDER,
 							ComponentsReportVisitor.visitRule(
@@ -51,7 +51,7 @@
 				+ File.separator + UrlFactory.OBJECT_TYPE_FOLDER;
 		File objectTypesFolder = new File(objectTypeFolder);
 		objectTypesFolder.mkdir();
-		for (AnalyticsClass objectType : data.getAllClasses()) {
+		for (VerifierClass objectType : data.getAllClasses()) {
 			writeToFile(objectTypeFolder + File.separator + objectType.getId()
 					+ ".htm", formPage(UrlFactory.PREVIOUS_FOLDER,
 					ComponentsReportVisitor.visitObjectType(
@@ -70,7 +70,7 @@
 									UrlFactory.PREVIOUS_FOLDER, field, result)));
 		}
 
-		// Analytics messages
+		// Verifier messages
 		writeMessages(path, result);
 
 		// css files
@@ -96,21 +96,21 @@
 		}
 	}
 
-	private static void writeMessages(String path, AnalyticsResult result) {
-		AnalyticsData data = result.getAnalyticsData();
+	private static void writeMessages(String path, VerifierResult result) {
+		VerifierData data = result.getVerifierData();
 
-		String errors = AnalyticsMessagesVisitor
-				.visitAnalyticsMessagesCollection(
+		String errors = VerifierMessagesVisitor
+				.visitVerifierMessagesCollection(
 						Severity.ERROR.getTuple(),
 						result.getBySeverity(Severity.ERROR),
 						data);
-		String warnings = AnalyticsMessagesVisitor
-				.visitAnalyticsMessagesCollection(
+		String warnings = VerifierMessagesVisitor
+				.visitVerifierMessagesCollection(
 						Severity.WARNING.getTuple(),
 						result.getBySeverity(Severity.WARNING),
 						data);
-		String notes = AnalyticsMessagesVisitor
-				.visitAnalyticsMessagesCollection(
+		String notes = VerifierMessagesVisitor
+				.visitVerifierMessagesCollection(
 						Severity.NOTE.getTuple(), result
 								.getBySeverity(Severity.NOTE),
 						data);

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ComponentsReportVisitor.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -4,13 +4,13 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.drools.verifier.components.AnalyticsClass;
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierClass;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.Field;
 import org.drools.verifier.components.Restriction;
 import org.drools.verifier.components.RulePackage;
-import org.drools.verifier.dao.AnalyticsData;
-import org.drools.verifier.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierData;
+import org.drools.verifier.dao.VerifierResult;
 import org.drools.verifier.report.components.RangeCheckCause;
 import org.mvel.templates.TemplateRuntime;
 
@@ -36,7 +36,7 @@
 	}
 
 	public static String visitObjectTypeCollection(String sourceFolder,
-			Collection<AnalyticsClass> objectTypes) {
+			Collection<VerifierClass> objectTypes) {
 		Map<String, Object> map = new HashMap<String, Object>();
 		map.put("sourceFolder", sourceFolder);
 		map.put("objectTypeFolder", sourceFolder + "/"
@@ -49,9 +49,9 @@
 		return String.valueOf(TemplateRuntime.eval(myTemplate, map));
 	}
 
-	public static String visitRule(String sourceFolder, AnalyticsRule rule,
-			AnalyticsData data) {
-		Collection<AnalyticsClass> objectTypes = data.getClassesByRuleName(rule
+	public static String visitRule(String sourceFolder, VerifierRule rule,
+			VerifierData data) {
+		Collection<VerifierClass> objectTypes = data.getClassesByRuleName(rule
 				.getRuleName());
 
 		Map<String, Object> map = new HashMap<String, Object>();
@@ -67,8 +67,8 @@
 	}
 
 	public static String visitObjectType(String sourceFolder,
-			AnalyticsClass objectType, AnalyticsData data) {
-		Collection<AnalyticsRule> rules = data.getRulesByClassId(objectType
+			VerifierClass objectType, VerifierData data) {
+		Collection<VerifierRule> rules = data.getRulesByClassId(objectType
 				.getId());
 
 		Map<String, Object> map = new HashMap<String, Object>();
@@ -85,10 +85,10 @@
 	}
 
 	public static String visitField(String sourceFolder, Field field,
-			AnalyticsResult result) {
-		AnalyticsData data = result.getAnalyticsData();
-		AnalyticsClass objectType = data.getClassById(field.getClassId());
-		Collection<AnalyticsRule> rules = data.getRulesByFieldId(field.getId());
+			VerifierResult result) {
+		VerifierData data = result.getVerifierData();
+		VerifierClass objectType = data.getClassById(field.getClassId());
+		Collection<VerifierRule> rules = data.getRulesByFieldId(field.getId());
 
 		Map<String, Object> map = new HashMap<String, Object>();
 		map.put("sourceFolder", sourceFolder);

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/MissingRangesReportVisitor.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -10,9 +10,9 @@
 import org.drools.verifier.components.Field;
 import org.drools.verifier.components.LiteralRestriction;
 import org.drools.verifier.components.Restriction;
-import org.drools.verifier.dao.AnalyticsData;
+import org.drools.verifier.dao.VerifierData;
 import org.drools.verifier.dao.DataTree;
-import org.drools.verifier.report.components.AnalyticsRangeCheckMessage;
+import org.drools.verifier.report.components.VerifierRangeCheckMessage;
 import org.drools.verifier.report.components.RangeCheckCause;
 import org.mvel.templates.TemplateRuntime;
 
@@ -121,7 +121,7 @@
 	}
 
 	public static String visitRangeCheckMessage(String sourceFolder,
-			AnalyticsRangeCheckMessage message, AnalyticsData data) {
+			VerifierRangeCheckMessage message, VerifierData data) {
 		Collection<Restriction> restrictions = data
 				.getRestrictionsByFieldId(message.getFaulty().getId());
 		Field field = (Field) message.getFaulty();

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ReportModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ReportModeller.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ReportModeller.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -18,7 +18,7 @@
 
 	protected static String formPage(String sourceFolder, String content) {
 		Map<String, Object> map = new HashMap<String, Object>();
-		String myTemplate = AnalyticsMessagesVisitor.readFile("frame.htm");
+		String myTemplate = VerifierMessagesVisitor.readFile("frame.htm");
 
 		map.put("cssStyle", ReportVisitor.createStyleTag(sourceFolder + "/"
 				+ UrlFactory.CSS_FOLDER + "/" + UrlFactory.CSS_BASIC));

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/UrlFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/UrlFactory.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/UrlFactory.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -1,6 +1,6 @@
 package org.drools.verifier.report.html;
 
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierRule;
 
 /**
  * 
@@ -35,8 +35,8 @@
 	 *         be created.
 	 */
 	public static String getUrl(Object o) {
-		if (o instanceof AnalyticsRule) {
-			AnalyticsRule rule = (AnalyticsRule) o;
+		if (o instanceof VerifierRule) {
+			VerifierRule rule = (VerifierRule) o;
 			return getRuleUrl(UrlFactory.RULE_FOLDER, rule.getId(), rule
 					.getRuleName());
 		}

Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/VerifierMessagesVisitor.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/VerifierMessagesVisitor.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/VerifierMessagesVisitor.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,81 @@
+package org.drools.verifier.report.html;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.verifier.dao.VerifierData;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.report.components.VerifierMessageBase;
+import org.drools.verifier.report.components.VerifierRangeCheckMessage;
+import org.drools.verifier.report.components.Cause;
+import org.mvel.templates.TemplateRuntime;
+
+/**
+ * 
+ * @author Toni Rikkola
+ */
+class VerifierMessagesVisitor extends ReportVisitor {
+
+	private static String VERIFIER_MESSAGES_TEMPLATE = "verifierMessages.htm";
+	private static String VERIFIER_MESSAGE_TEMPLATE = "verifierMessage.htm";
+
+	public static String NOTES = "Notes";
+	public static String WARNINGS = "Warnings";
+	public static String ERRORS = "Errors";
+
+	public static String visitVerifierMessagesCollection(String title,
+			Collection<VerifierMessageBase> messages, VerifierData data) {
+		Map<String, Object> map = new HashMap<String, Object>();
+		Collection<String> messageTemplates = new ArrayList<String>();
+		String myTemplate = readFile(VERIFIER_MESSAGES_TEMPLATE);
+
+		for (VerifierMessageBase message : messages) {
+			messageTemplates.add(visitVerifierMessage(message, data));
+		}
+
+		map.put("title", title);
+		map.put("messages", messageTemplates);
+
+		return String.valueOf(TemplateRuntime.eval(myTemplate, map));
+	}
+
+	public static String visitVerifierMessage(VerifierMessageBase message,
+			VerifierData data) {
+		if (message instanceof VerifierRangeCheckMessage) {
+			return visitVerifierMessage((VerifierRangeCheckMessage) message,
+					data);
+		} else if (message instanceof VerifierMessage) {
+			return visitVerifierMessage((VerifierMessage) message);
+		}
+
+		return null;
+	}
+
+	public static String visitVerifierMessage(
+			VerifierRangeCheckMessage message, VerifierData data) {
+
+		return MissingRangesReportVisitor.visitRangeCheckMessage(
+				UrlFactory.THIS_FOLDER, message, data);
+	}
+
+	public static String visitVerifierMessage(VerifierMessage message) {
+
+		Map<String, Object> map = new HashMap<String, Object>();
+		Collection<String> causeUrls = new ArrayList<String>();
+		String myTemplate = readFile(VERIFIER_MESSAGE_TEMPLATE);
+
+		// Solve the url's to causes if there is any.
+		for (Cause cause : message.getCauses()) {
+			causeUrls.add(UrlFactory.getUrl(cause));
+		}
+
+		map.put("title", message.getSeverity());
+		map.put("reason", message.getFaulty());
+		map.put("message", message.getMessage());
+		map.put("causes", causeUrls);
+
+		return String.valueOf(TemplateRuntime.eval(myTemplate, map));
+	}
+}

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/Consequence.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -2,15 +2,15 @@
 package org.drools.verifier.consequence
 
 #list any import classes here.
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.TextConsequence;
-import org.drools.verifier.report.components.AnalyticsMessage;
-import org.drools.verifier.dao.AnalyticsResult;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.dao.VerifierResult;
 import org.drools.verifier.report.components.Severity;
 import org.drools.verifier.report.components.MessageType;
 
 #declare any global variables here
-global AnalyticsResult result;
+global VerifierResult result;
 
 
 rule "No action - possibly commented out"
@@ -19,11 +19,11 @@
 			( text == null || text matches "" )
 		)
 
-		$r :AnalyticsRule(
+		$r :VerifierRule(
 			id == $c.ruleId
 		)
 	then
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.WARNING,
 								MessageType.MISSING_COMPONENT,
 								$r,

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Patterns.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,51 @@
+#
+# created on: 5.6.2008
+#
+# Rules in this package look for patterns and rules that can never be satisfied.
+#
+#
+package org.drools.verifier.alwaysFalse
+#list any import classes here.
+import org.drools.verifier.components.Pattern;
+import org.drools.verifier.components.PatternPossibility;
+
+import org.drools.verifier.report.components.Severity;
+import org.drools.verifier.report.components.MessageType;
+import org.drools.verifier.report.components.Incompatibility;
+import org.drools.verifier.report.components.VerifierMessage;
+
+import org.drools.verifier.dao.VerifierResult;
+
+#declare any global variables here
+global VerifierResult result;
+
+#
+# Finds patterns that are always false.
+#
+# Example:
+#		Pattern( a == b && a != b )
+#
+rule "Pattern that is always false"
+	when
+		$p :Pattern()
+		
+		# All the pattern possibilities for pattern need to be in conflict
+		forall( 
+			$pp :PatternPossibility(
+				patternId == $p.id
+			)
+			
+			Incompatibility( 
+				left memberOf $pp.items,
+				right memberOf $pp.items
+			)
+		)
+	then 
+		# Report an error
+		result.add( new VerifierMessage(
+								Severity.ERROR,
+								MessageType.MISSING_COMPONENT,
+								$p,
+								$p + " can never be satisfied." ) );
+		System.out.println( "jee" );
+end

Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/equivalence/Rules.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/equivalence/Rules.drl	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/equivalence/Rules.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -1,7 +1,7 @@
 #created on: 7.9.2007
 package org.drools.verifier.equivalency.rules
 
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.report.components.Redundancy;
 import org.drools.verifier.report.components.RedundancyType;
 
@@ -13,9 +13,9 @@
 #
 rule "Find equivalent Rules"
 	when
-		# Check that AnalyticsRule $left and $right have redundant fields.
-		$left :AnalyticsRule()
-		$right :AnalyticsRule( 
+		# Check that VerifierRule $left and $right have redundant fields.
+		$left :VerifierRule()
+		$right :VerifierRule( 
 			id != $left.id, 
 			ruleAgendaGroup == $left.ruleAgendaGroup
 		)

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incoherence/Patterns.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -2,7 +2,7 @@
 package org.drools.verifier.incoherence
 
 #list any import classes here.
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.LiteralRestriction;
 import org.drools.verifier.components.PatternPossibility;
 import org.drools.verifier.components.RulePossibility;
@@ -10,11 +10,11 @@
 import org.drools.verifier.components.VariableRestriction;
 import org.drools.verifier.report.components.Cause;
 import org.drools.verifier.report.components.MissingRange;
-import org.drools.verifier.report.components.AnalyticsMessage;
+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.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierResult;
 
 import java.util.Collection;
 import java.util.ArrayList;
@@ -22,7 +22,7 @@
 import org.drools.base.evaluators.Operator;
 
 #declare any global variables here
-global AnalyticsResult result;
+global VerifierResult result;
 
 #
 # If two Patterns are in conflict.
@@ -38,7 +38,7 @@
 		$r1 :LiteralRestriction(
 			patternIsNot == true
 		)
-
+	
 		$r2 :LiteralRestriction(
 			ruleId == $r1.ruleId,
 			patternIsNot == false,
@@ -72,7 +72,7 @@
 			id == $r2.patternId
 		)
 
-		$r :AnalyticsRule(
+		$r :VerifierRule(
 			id == $rp.ruleId
 		)
 	then
@@ -80,7 +80,7 @@
 		list.add( $p1 );
 		list.add( $p2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.WARNING,
 								MessageType.INCOHERENCE,
 								$r,
@@ -138,7 +138,7 @@
 			id == $r2.patternId
 		)
 
-		$r :AnalyticsRule(
+		$r :VerifierRule(
 			id == $rp.ruleId
 		)
 	then
@@ -146,7 +146,7 @@
 		list.add( $p1 );
 		list.add( $p2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.WARNING,
 								MessageType.INCOHERENCE,
 								$r,
@@ -203,7 +203,7 @@
 			id == $r2.patternId
 		)
 
-		$r :AnalyticsRule(
+		$r :VerifierRule(
 			id == $rp.ruleId
 		)
 	then
@@ -211,7 +211,7 @@
 		list.add( $p1 );
 		list.add( $p2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.WARNING,
 								MessageType.INCOHERENCE,
 								$r,
@@ -268,7 +268,7 @@
 			id == $r2.patternId
 		)
 
-		$r :AnalyticsRule(
+		$r :VerifierRule(
 			id == $rp.ruleId
 		)
 	then
@@ -276,7 +276,7 @@
 		list.add( $p1 );
 		list.add( $p2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.WARNING,
 								MessageType.INCOHERENCE,
 								$r,
@@ -334,7 +334,7 @@
 			id == $r2.patternId
 		)
 
-		$r :AnalyticsRule(
+		$r :VerifierRule(
 			id == $rp.ruleId
 		)
 then
@@ -342,7 +342,7 @@
 		list.add( $p1 );
 		list.add( $p2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.WARNING,
 								MessageType.INCOHERENCE,
 								$r,
@@ -400,7 +400,7 @@
 			id == $r2.patternId
 		)
 
-		$r :AnalyticsRule(
+		$r :VerifierRule(
 			id == $rp.ruleId
 		)
 then
@@ -408,7 +408,7 @@
 		list.add( $p1 );
 		list.add( $p2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.WARNING,
 								MessageType.INCOHERENCE,
 								$r,
@@ -465,7 +465,7 @@
 			id == $r2.patternId
 		)
 
-		$r :AnalyticsRule(
+		$r :VerifierRule(
 			id == $rp.ruleId
 		)
 then
@@ -473,7 +473,7 @@
 		list.add( $p1 );
 		list.add( $p2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.WARNING,
 								MessageType.INCOHERENCE,
 								$r,
@@ -531,7 +531,7 @@
 			id == $r2.patternId
 		)
 
-		$r :AnalyticsRule(
+		$r :VerifierRule(
 			id == $rp.ruleId
 		)
 then
@@ -539,7 +539,7 @@
 		list.add( $p1 );
 		list.add( $p2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incoherence/Restrictions.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -8,10 +8,10 @@
 import org.drools.verifier.components.VariableRestriction;
 import org.drools.verifier.report.components.Cause;
 import org.drools.verifier.report.components.MissingRange;
-import org.drools.verifier.report.components.AnalyticsMessage;
+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.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierResult;
 
 import java.util.Collection;
 import java.util.ArrayList;
@@ -19,7 +19,7 @@
 import org.drools.base.evaluators.Operator;
 
 #declare any global variables here
-global AnalyticsResult result;
+global VerifierResult result;
 
 #
 # If two LiteralRestrictions are in conflict.
@@ -60,7 +60,7 @@
 		list.add( $r1 );
 		list.add( $r2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.ERROR,
 								MessageType.INCOHERENCE,
 								$p,
@@ -106,7 +106,7 @@
 		list.add( $r1 );
 		list.add( $r2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.ERROR,
 								MessageType.INCOHERENCE,
 								$p,
@@ -152,7 +152,7 @@
 		list.add( $r1 );
 		list.add( $r2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.ERROR,
 								MessageType.INCOHERENCE,
 								$p,
@@ -198,7 +198,7 @@
 		list.add( $r1 );
 		list.add( $r2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.ERROR,
 								MessageType.INCOHERENCE,
 								$p,
@@ -244,7 +244,7 @@
 		list.add( $r1 );
 		list.add( $r2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.ERROR,
 								MessageType.INCOHERENCE,
 								$p,
@@ -291,7 +291,7 @@
 		list.add( $r1 );
 		list.add( $r2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.ERROR,
 								MessageType.INCOHERENCE,
 								$p,
@@ -335,7 +335,7 @@
 		list.add( $r1 );
 		list.add( $r2 );
 
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.ERROR,
 								MessageType.INCOHERENCE,
 								$p,

Added: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incompatibility/Patterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incompatibility/Patterns.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incompatibility/Patterns.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,40 @@
+#created on: 2.6.2008
+package org.drools.verifier.incompatibility
+
+#list any import classes here.
+import org.drools.verifier.components.Restriction;
+import org.drools.verifier.components.PatternPossibility;
+
+import org.drools.verifier.report.components.Incompatibility;
+
+import org.drools.verifier.dao.VerifierResult;
+
+#declare any global variables here
+global VerifierResult result;
+
+#
+# Pattern possibilities are incompatible if any of the restrictions are incompatible.
+#
+# Depandencies: None
+# Example: 
+#		Pattern( a < b )
+#		Pattern( a > b )
+#
+rule "Incompatible Patterns"
+	when
+		$incompatibility :Incompatibility()
+		
+		$pp1 :PatternPossibility(
+			items contains $incompatibility.left
+		)
+		
+		$pp2 :PatternPossibility(
+			items contains $incompatibility.right
+		)
+		
+		# Check that these facts do not already exist
+		not Incompatibility( left == $pp1, right == $pp2)
+		not Incompatibility( left == $pp2, right == $pp1)	
+	then 
+		insert( new Incompatibility( $pp1, $pp2 ));
+end
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incompatibility/Restrictions.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incompatibility/Restrictions.drl	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incompatibility/Restrictions.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -3,28 +3,20 @@
 
 #list any import classes here.
 import org.drools.verifier.components.LiteralRestriction;
-import org.drools.verifier.components.Field.FieldType;
-import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.MissingRange;
-import org.drools.verifier.report.components.AnalyticsMessage;
-import org.drools.verifier.report.components.Severity;
-import org.drools.verifier.report.components.MessageType;
+import org.drools.verifier.components.VariableRestriction;
+
 import org.drools.verifier.report.components.Incompatibility;
-import org.drools.verifier.dao.AnalyticsResult;
 
 import org.drools.base.evaluators.Operator;
 
-#declare any global variables here
-global AnalyticsResult result;
 
 #
 # If two LiteralRestrictions are in conflict.
 #
-# Type: Error
 # Depandencies: None
 # Example: IncorencePattern( a < 1 && a == 10 )
 #
-rule "Incoherent LiteralRestrictions with ranges in pattern possibility, impossible equality less or equal"
+rule "Incompatible LiteralRestrictions with ranges in pattern possibility, impossible equality less or equal"
 	when
 		$r1 :LiteralRestriction(
 			operator == Operator.EQUAL
@@ -40,38 +32,17 @@
 		)
 
 		eval( $r1.compareValues( $r2 ) == 1 )
-
-		# There is a problem if both of these are in the same PatternPossibility.
-		$pp :PatternPossibility(
-			 items contains $r1,
-			 items contains $r2
-		)
-
-		$p :Pattern( id == $pp.patternId )
 	then
-		Collection list = new ArrayList();
-		list.add( $r1 );
-		list.add( $r2 );
-
-		result.add( new AnalyticsMessage(
-								Severity.ERROR,
-								MessageType.INCOHERENCE,
-								$p,
-								"Restriction " + $r1 + " and " + $r2 +
-								"are in conflict. Because of this, pattern that contains them can never be satisfied.",
-								list
-								) );
+		insert( new Incompatibility( $r1, $r2 ) );
 end
 
-/*
 #
 # If two LiteralRestrictions are in conflict.
 #
-# Type: Error
 # Depandencies: None
 # Example: IncorencePattern( a > 10 && a == 1 )
 #
-rule "Incoherent LiteralRestrictions with ranges in pattern possibility, impossible equality greater"
+rule "Incompatible LiteralRestrictions with ranges in pattern possibility, impossible equality greater"
 	when
 		$r1 :LiteralRestriction(
 			( operator == Operator.GREATER || == Operator.GREATER_OR_EQUAL )
@@ -87,37 +58,17 @@
 		)
 
 		eval( $r1.compareValues( $r2 ) == 1 )
-
-		# There is a problem if both of these are in the same PatternPossibility.
-		$pp :PatternPossibility(
-			 items contains $r1,
-			 items contains $r2
-		)
-
-		$p :Pattern( id == $pp.patternId )
 	then
-		Collection list = new ArrayList();
-		list.add( $r1 );
-		list.add( $r2 );
-
-		result.add( new AnalyticsMessage(
-								Severity.ERROR,
-								MessageType.INCOHERENCE,
-								$p,
-								"Restriction " + $r1 + " and " + $r2 +
-								"are in conflict. Because of this, pattern that contains them can never be satisfied.",
-								list
-								) );
+		insert( new Incompatibility( $r1, $r2 ) );
 end
 
 #
 # If two LiteralRestrictions are in conflict.
 #
-# Type: Error
 # Depandencies: None
 # Example: IncorencePattern( a < "12-Dec-2007", a > "12-Dec-2007" )
 #
-rule "Incoherent LiteralRestrictions with ranges in pattern possibility, impossible range"
+rule "Incompatible LiteralRestrictions with ranges in pattern possibility, impossible range"
 	when
 		$r1 :LiteralRestriction(
 			operator == Operator.LESS
@@ -133,83 +84,16 @@
 		)
 
 		eval( $r1.compareValues( $r2 ) == 0 )
-
-		# There is a problem if both of these are in the same PatternPossibility.
-		$pp :PatternPossibility(
-			 items contains $r1,
-			 items contains $r2
-		)
-
-		$p :Pattern( id == $pp.patternId )
 	then
-		Collection list = new ArrayList();
-		list.add( $r1 );
-		list.add( $r2 );
-
-		result.add( new AnalyticsMessage(
-								Severity.ERROR,
-								MessageType.INCOHERENCE,
-								$p,
-								"Restriction " + $r1 + " and " + $r2 +
-								"are in conflict. Because of this, pattern that contains them can never be satisfied.",
-								list
-								) );
+		insert( new Incompatibility( $r1, $r2 ) );
 end
 
 #
 # If two VariableRestrictions are in conflict.
 #
-# Type: Error
 # Depandencies: None
-# Example: IncorencePattern( a contains $o, a not contains $o )
+# Example: Pattern( a > $var, a < $var )
 #
-rule "Incoherent VariableRestrictions in pattern possibility"
-	when
-		$r1 :VariableRestriction(
-			# Not >= and <=, because ( a <=, a >= ) works.
-			# And not < or > because they are handled in a separete rule.
-			( operator != Operator.GREATER_OR_EQUAL || != Operator.LESS_OR_EQUAL || != Operator.LESS || != Operator.GREATER )
-		)
-
-		$r2 :VariableRestriction(
-			patternId == $r1.patternId,
-			fieldId == $r1.fieldId,
-			id != $r1.id,
-			variable.objectId == $r1.variable.objectId,
-			variable.objectType == $r1.variable.objectType,
-			# Operator needs to be reversed to what the other one has.
-			eval( operator == MissingRange.getReversedOperator( $r1.getOperator() ))
-		)
-
-		# There is a problem if both of these are in the same PatternPossibility.
-		$pp :PatternPossibility(
-			 items contains $r1,
-			 items contains $r2
-		)
-
-		$p :Pattern( id == $pp.patternId )
-	then
-		Collection list = new ArrayList();
-		list.add( $r1 );
-		list.add( $r2 );
-
-		result.add( new AnalyticsMessage(
-								Severity.ERROR,
-								MessageType.INCOHERENCE,
-								$p,
-								"Restriction " + $r1 + " and " + $r2 +
-								"are in conflict. Because of this, pattern that contains them can never be satisfied.",
-								list
-								) );
-end
-
-#
-# If two VariableRestrictions are in conflict.
-#
-# Type: Error
-# Depandencies: None
-# Example: IncorencePattern( a > $var, a < $var )
-#
 rule "Incoherent VariableRestrictions in pattern possibility, impossible range"
 	when
 		$r1 :VariableRestriction(
@@ -224,26 +108,6 @@
 			variable.objectType == $r1.variable.objectType,
 			id != $r1.id
 		)
-
-		# There is a problem if both of these are in the same PatternPossibility.
-		$pp :PatternPossibility(
-			 items contains $r1,
-			 items contains $r2
-		)
-
-		$p :Pattern( id == $pp.patternId )
 	then
-		Collection list = new ArrayList();
-		list.add( $r1 );
-		list.add( $r2 );
-
-		result.add( new AnalyticsMessage(
-								Severity.ERROR,
-								MessageType.INCOHERENCE,
-								$p,
-								"Restriction " + $r1 + " and " + $r2 +
-								"are in conflict. Because of this, pattern that contains them can never be satisfied.",
-								list
-								) );
+		insert( new Incompatibility( $r1, $r2 ) );
 end
-*/
\ No newline at end of file

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/missingEquality/MissingEquality.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -9,15 +9,15 @@
 import org.drools.verifier.components.VariableRestriction;
 import org.drools.verifier.components.LiteralRestriction;
 import org.drools.verifier.report.components.MissingRange;
-import org.drools.verifier.report.components.AnalyticsMessage;
+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.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierResult;
 
 
 
 #declare any global variables here
-global AnalyticsResult result;
+global VerifierResult result;
 
 #
 # Informs that there are inequalities, but not equality being catered for.
@@ -82,7 +82,7 @@
 				)
 		)
 	then
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.WARNING,
 								MessageType.MISSING_EQUALITY,
 								$r,
@@ -212,7 +212,7 @@
 				)
 		)
 	then
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.WARNING,
 								MessageType.MISSING_EQUALITY,
 								$r,

Added: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Patterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Patterns.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Patterns.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,76 @@
+#created on: 2.6.2008
+package org.drools.verifier.opposites
+
+#list any import classes here.
+import org.drools.verifier.components.Restriction;
+import org.drools.verifier.components.PatternPossibility;
+
+import org.drools.verifier.report.components.Opposites;
+
+import org.drools.verifier.dao.VerifierResult;
+
+#declare any global variables here
+global VerifierResult result;
+
+
+#
+# Pattern possibilities are opposites if all of the restrictions are opposites.
+#
+# Depandencies: None
+# Dependencies:
+#
+#	Needs at least one of the following packages or rules to fire:
+# 		package org.drools.verifier.opposites;
+#			rule "Opposite LiteralRestrictions"
+#			rule "Opposite LiteralRestrictions with ranges, greater or equal - less"
+#			rule "Opposite LiteralRestrictions with ranges, greater - less or equal"
+#			rule "Opposite LiteralRestrictions with ranges, less - greater for ints and dates"
+#			rule "Opposite LiteralRestrictions with ranges, less or equal - greater or equal for ints and dates"
+#
+# Example: 
+#			Pattern( a < b) 
+#			Pattern( a >= b )
+#
+rule "Opposite Patterns"
+	when
+		$opposites :Opposites()
+		
+		$pp1 :PatternPossibility(
+			items contains $opposites.left
+		)
+		
+		$pp2 :PatternPossibility(
+			items contains $opposites.right
+		)
+		
+		# Check that these facts do not already exist
+		not Opposites( left == $pp1, right == $pp2 )
+		not Opposites( left == $pp2, right == $pp1 )
+		
+		# Check if all the restrictions in $pp1 have an opposite in $pp2.
+		forall (
+			$r1 :Restriction(
+					this memberOf $pp1.items
+			)
+			
+			Opposites( 
+					left == $r1,
+					right memberOf $pp2.items
+			)
+		)
+
+		# Check if all the restrictions in $pp2 have an opposite in $pp1.
+		forall (
+			$r1 :Restriction(
+					this memberOf $pp2.items
+			)
+			
+			Opposites( 
+					right == $r1,
+					left memberOf $pp1.items
+			)
+		)
+	then 
+		# These two pattern possibilities are opposite.
+		insert( new Opposites( $pp1, $pp2 ));
+end
\ No newline at end of file

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Restrictions.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -3,19 +3,23 @@
 
 #list any import classes here.
 import org.drools.verifier.components.LiteralRestriction;
+import org.drools.verifier.components.VariableRestriction;
 import org.drools.verifier.components.Field.FieldType;
+
 import org.drools.verifier.report.components.Cause;
 import org.drools.verifier.report.components.MissingRange;
-import org.drools.verifier.report.components.AnalyticsMessage;
+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;
-import org.drools.verifier.dao.AnalyticsResult;
+import org.drools.verifier.report.components.MissingRange;
 
+import org.drools.verifier.dao.VerifierResult;
+
 import org.drools.base.evaluators.Operator;
 
 #declare any global variables here
-global AnalyticsResult result;
+global VerifierResult result;
 
 #
 # If two LiteralRestrictions are in conflict.
@@ -197,3 +201,35 @@
 		insert( new Opposites( $left, $right ));
 end
 
+#
+# If two VariableRestrictions are in conflict.
+#
+# Depandencies: None
+# Example: Pattern( a contains $o, a not contains $o )
+#
+rule "Opposite VariableRestrictions in pattern possibility"
+	when
+		$r1 :VariableRestriction()
+
+		$r2 :VariableRestriction(
+			patternId == $r1.patternId,
+			fieldId == $r1.fieldId,
+			id != $r1.id,
+			variable.objectId == $r1.variable.objectId,
+			variable.objectType == $r1.variable.objectType,
+			# Operator needs to be reverse to what the other one has.
+			eval( operator == MissingRange.getReversedOperator( $r1.getOperator() ))
+		)
+		
+		# Check that there is not already a pair with these values.
+		not Opposites( 
+			left == $r1, 
+			right == $r2 
+		)
+		not Opposites( 
+			right == $r1, 
+			left == $r2 
+		)
+	then
+		insert( new Opposites( $r1, $r2 ) );
+end

Added: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Rules.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Rules.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Rules.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,20 @@
+#created on: 3.6.2008
+package org.drools.verifier.opposites
+
+#list any import classes here.
+
+
+
+#declare any global variables here
+
+
+
+
+rule "Your First Rule"
+	
+	when
+		#conditions
+	then 
+		#actions
+		
+end

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/PatternOrder.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -6,19 +6,19 @@
 import java.util.ArrayList;
 
 import org.drools.verifier.components.Pattern;
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.OperatorDescr;
-import org.drools.verifier.components.AnalyticsEvalDescr;
-import org.drools.verifier.components.AnalyticsComponent;
-import org.drools.verifier.components.AnalyticsComponentType;
-import org.drools.verifier.report.components.AnalyticsMessage;
+import org.drools.verifier.components.VerifierEvalDescr;
+import org.drools.verifier.components.VerifierComponent;
+import org.drools.verifier.components.VerifierComponentType;
+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.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierResult;
 
 
 #declare any global variables here
-global AnalyticsResult result;
+global VerifierResult result;
 
 
 
@@ -28,31 +28,33 @@
 #
 # Type: Note
 # Dependencies: None
-# Example: eval(function( $something )) Pattern()
+# Example: 
+#		eval(function( $something )) 
+#		Pattern()
 #
 rule "Optimise evals inside pattern"
 	when
 		$operator :OperatorDescr()
 
-		$eval :AnalyticsEvalDescr(
+		$eval :VerifierEvalDescr(
 			parent == $operator
 		)
 
-		# Any other AnalyticsComponent that is not predicate or operator
-		$other :AnalyticsComponent(
+		# Any other VerifierComponent that is not predicate or operator
+		$other :VerifierComponent(
 			parent == $operator,
 			orderNumber > $eval.orderNumber,
-			( componentType != AnalyticsComponentType.OPERATOR && != AnalyticsComponentType.EVAL )
+			( componentType != VerifierComponentType.OPERATOR && != VerifierComponentType.EVAL )
 		)
 
-		$rule :AnalyticsRule(
+		$rule :VerifierRule(
 			id == $eval.ruleId
 		)
 	then
 		Collection list = new ArrayList();
 		list.add( $eval );
 		list.add( $other );
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/RestrictionOrder.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -10,18 +10,18 @@
 
 import org.drools.verifier.components.Restriction;
 import org.drools.verifier.components.Pattern;
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.OperatorDescr;
-import org.drools.verifier.components.AnalyticsPredicateDescr;
-import org.drools.verifier.components.AnalyticsComponent;
-import org.drools.verifier.components.AnalyticsComponentType;
-import org.drools.verifier.report.components.AnalyticsMessage;
+import org.drools.verifier.components.VerifierPredicateDescr;
+import org.drools.verifier.components.VerifierComponent;
+import org.drools.verifier.components.VerifierComponentType;
+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.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierResult;
 
 #declare any global variables here
-global AnalyticsResult result;
+global VerifierResult result;
 
 
 # Informs that rule would be more effective if the less expensive
@@ -116,7 +116,7 @@
 		Collection list = new ArrayList();
 		list.add( $r1 );
 		list.add( $r2 );
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.NOTE,
 								MessageType.OPTIMISATION,
 								$pattern,
@@ -176,7 +176,7 @@
 		Collection list = new ArrayList();
 		list.add( $r1 );
 		list.add( $r2 );
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.NOTE,
 								MessageType.OPTIMISATION,
 								$pattern,
@@ -188,7 +188,7 @@
 								list ) );
 end
 
-# AnalyticsPredicateDescr should be last.
+# VerifierPredicateDescr should be last.
 #
 # Type: Note
 # Dependencies: None
@@ -198,25 +198,25 @@
 	when
 		$operator :OperatorDescr()
 
-		$predicate :AnalyticsPredicateDescr(
+		$predicate :VerifierPredicateDescr(
 			parent == $operator
 		)
 
-		# Any other AnalyticsComponent that is not predicate or operator
-		$other :AnalyticsComponent(
+		# Any other VerifierComponent that is not predicate or operator
+		$other :VerifierComponent(
 			parent == $operator,
 			orderNumber > $predicate.orderNumber,
-			( componentType != AnalyticsComponentType.OPERATOR && != AnalyticsComponentType.PREDICATE )
+			( componentType != VerifierComponentType.OPERATOR && != VerifierComponentType.PREDICATE )
 		)
 
-		$rule :AnalyticsRule(
+		$rule :VerifierRule(
 			id == $predicate.ruleId
 		)
 	then
 		Collection list = new ArrayList();
 		list.add( $predicate );
 		list.add( $other );
-		result.add( new AnalyticsMessage(
+		result.add( new VerifierMessage(
 								Severity.NOTE,
 								MessageType.OPTIMISATION,
 								$rule,

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/overlaps/Restrictions.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,66 @@
+#created on: 2.2.2008
+package org.drools.verifier.overlaps.restrictions
+
+#list any import classes here.
+import java.util.Collection;
+import java.util.ArrayList;
+
+import org.drools.verifier.dao.VerifierResult;
+
+import org.drools.verifier.components.LiteralRestriction;
+import org.drools.verifier.components.Field.FieldType;
+
+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;
+
+#declare any global variables here
+global VerifierResult result;
+
+#
+# Fires when two restrictions are overlapping.
+# Reports these restrictions as overlapping.
+#
+# Depandencies: Needs at least one rule.
+#
+#		package org.drools.verifier.subsumption.patterns
+#			rule "Find subsumptant restrictions, greater than"
+#			rule "Find subsumptant restrictions, less than"
+#
+# Example 1: Pattern1( a > 10 ) and Pattern1( a > 100 )
+#
+rule "Find overlapping restrictions"
+	when
+		# There is subsumption between two restrictions
+		$subsumption :Subsumption(
+			left.causeType == CauseType.RESTRICTION,
+			$leftId :left.id,
+			$rightId :right.id
+		)
+		
+		$left :LiteralRestriction(
+			id == $leftId
+		)
+		$right :LiteralRestriction(
+			id == $rightId
+		)
+		# There is no restriction between these two restrictions.
+		not	$center :LiteralRestriction(
+				fieldId == $left.fieldId,
+				eval( $center.compareValues( $left ) == 1 ),
+				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 ) );
+
+end

Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Clean.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Clean.drl	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Clean.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -7,10 +7,10 @@
 import org.drools.verifier.report.components.Gap;  
 import org.drools.verifier.report.components.MissingNumberPattern;
 
-import org.drools.verifier.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierResult;
 
 #declare any global variables here
-global AnalyticsResult result;
+global VerifierResult result;
 
 #
 # Merges existing gaps from working memory. Cleans out the data for actual reporting.
@@ -61,7 +61,6 @@
 											Operator.EQUAL, 
 											$g1.getField().getFieldType(), 
 											$g1.getValueAsString() );
-		mnp.setFiredRuleName( drools.getRule().getName() );
 		result.add( mnp );
 		insert( mnp );
 end

Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Dates.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Dates.drl	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Dates.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -5,17 +5,17 @@
 import org.drools.base.evaluators.Operator;
 
 import org.drools.verifier.components.*;
-import org.drools.verifier.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierResult;
 import org.drools.verifier.report.components.Gap;
 
 import java.util.Date;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
 
-import org.drools.verifier.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierResult;
 
 #declare any global variables here
-global AnalyticsResult result;
+global VerifierResult result;
 
 function boolean checkDates(Date d1, Date d2, boolean up) {
 		Calendar c1 = new GregorianCalendar();
@@ -28,10 +28,6 @@
 		return ( 0 == c1.compareTo( c2 ) );
 }
 
-function String hello(String name) {
-    return "Hello "+name+"!";
-}
-
 # If all ranges are not checked for a field.
 # 
 # Type: Warning
@@ -59,8 +55,6 @@
 	then
 		Gap gap = new Gap( $f, Operator.LESS_OR_EQUAL, $r );
 		
-		gap.setFiredRuleName( drools.getRule().getName() );
-		
 		result.add( gap );
 		insert( gap );
 end
@@ -92,8 +86,6 @@
 	then
 		Gap gap = new Gap( $f, Operator.GREATER_OR_EQUAL, $r );
 		
-		gap.setFiredRuleName( drools.getRule().getName() );
-		
 		result.add( gap );
 		insert( gap );
 end
@@ -134,8 +126,6 @@
 	then
 		Gap gap =  new Gap( $f, Operator.GREATER, $r );
 		
-		gap.setFiredRuleName( drools.getRule().getName() );
-		
 		result.add( gap );
 		insert( gap );
 end
@@ -176,8 +166,6 @@
 	then
 		Gap gap =  new Gap( $f, Operator.LESS, $r );
 		
-		gap.setFiredRuleName( drools.getRule().getName() );
-		
 		result.add( gap );
 		insert( gap );
 end

Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Doubles.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Doubles.drl	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Doubles.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -5,13 +5,12 @@
 import org.drools.base.evaluators.Operator;
 
 import org.drools.verifier.components.*;
-import org.drools.verifier.dao.AnalyticsResult;
 import org.drools.verifier.report.components.Gap;
 
-import org.drools.verifier.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierResult;
 
 #declare any global variables here
-global AnalyticsResult result;
+global VerifierResult result;
 
 
 # If all ranges are not checked for a field.
@@ -41,8 +40,6 @@
 	then
 		Gap gap = new Gap( $f, Operator.LESS_OR_EQUAL, $r );
 		
-		gap.setFiredRuleName( drools.getRule().getName() );
-		
 		result.add( gap );
 		insert( gap );
 end
@@ -74,8 +71,6 @@
 	then
 		Gap gap = new Gap( $f, Operator.GREATER_OR_EQUAL, $r );
 		
-		gap.setFiredRuleName( drools.getRule().getName() );
-		
 		result.add( gap );
 		insert( gap );
 end
@@ -108,8 +103,6 @@
 	then
 		Gap gap =  new Gap( $f, Operator.GREATER, $r );
 		
-		gap.setFiredRuleName( drools.getRule().getName() );
-		
 		result.add( gap );
 		insert( gap );
 end
@@ -142,8 +135,6 @@
 	then
 		Gap gap =  new Gap( $f, Operator.LESS, $r );
 		
-		gap.setFiredRuleName( drools.getRule().getName() );
-		
 		result.add( gap );
 		insert( gap );
 end

Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Integers.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Integers.drl	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Integers.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -7,16 +7,16 @@
 import org.drools.verifier.components.*;
 import org.drools.verifier.report.components.Gap;
 
-import org.drools.verifier.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierResult;
 
-global AnalyticsResult result;
+global VerifierResult result;
 
 # If all ranges are not checked for a field.
 # 
 # Type: Warning
 # Depandencies: None
 # Example: in "Rule 1" Foo( bar > 42 ) 
-#						and in Foo( <= 42 || == 42 ) is missing.
+#						and Foo( <= 42 || == 42 ) is missing.
 #
 rule "Range check for integers, if smaller than or equal is missing"
 	when
@@ -38,8 +38,6 @@
 	then
 		Gap gap = new Gap( $f, Operator.LESS_OR_EQUAL, $r );
 		
-		gap.setFiredRuleName( drools.getRule().getName() );
-		
 		result.add( gap );
 		insert( gap );
 end
@@ -71,8 +69,6 @@
 	then
 		Gap gap = new Gap( $f, Operator.GREATER_OR_EQUAL, $r );
 		
-		gap.setFiredRuleName( drools.getRule().getName() );
-		
 		result.add( gap );
 		insert( gap );
 end
@@ -113,8 +109,6 @@
 	then
 		Gap gap =  new Gap( $f, Operator.GREATER, $r );
 		
-		gap.setFiredRuleName( drools.getRule().getName() );
-		
 		result.add( gap );
 		insert( gap );
 end
@@ -155,8 +149,6 @@
 	then
 		Gap gap =  new Gap( $f, Operator.LESS, $r );
 		
-		gap.setFiredRuleName( drools.getRule().getName() );
-		
 		result.add( gap );
 		insert( gap );
 end

Added: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/NumberPatterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/NumberPatterns.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/NumberPatterns.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,100 @@
+#created on: 7.6.2007
+package org.drools.verifier.rangeChecks.patterns;
+
+#list any import classes here.
+import org.drools.base.evaluators.Operator;
+
+import org.drools.verifier.components.*;
+import org.drools.verifier.report.components.MissingNumberPattern;
+import org.drools.verifier.report.components.Cause;
+import org.drools.verifier.FindMissingNumber;
+
+import org.drools.verifier.dao.VerifierResult;
+
+import java.util.ArrayList;
+import java.util.List;
+
+#declare any global variables here
+global VerifierResult result;
+
+#
+# If all pattern ranges are not checked for a field.
+# 
+# Type: Warning
+# Depandencies: None
+# Example: in "Rule 1" Foo( bar == 10 ) and in "Rule 2" Foo( bar == 20 ) and in "Rule 3" Foo( bar == 40 )
+# 					then Foo( bar == 30 ) is missing.
+rule "Range check for number patterns"
+	when
+		$f :Field(
+			( fieldType == Field.FieldType.INT || == Field.FieldType.DOUBLE )
+		)
+		(
+			# Where pattern is false.
+			$list :ArrayList( size > FindMissingNumber.MIN_NUMBER_OF_RESTRICTIONS )
+				from collect(
+					LiteralRestriction( 
+						fieldId == $f.id, 
+						patternIsNot == false, 
+						operator == Operator.EQUAL
+					)
+				)
+		) or (
+			# Where pattern is true.
+			$list :ArrayList( size > FindMissingNumber.MIN_NUMBER_OF_RESTRICTIONS )
+				from collect(
+					LiteralRestriction( 
+						fieldId == $f.id, 
+						patternIsNot == true, 
+						operator == Operator.EQUAL
+					)
+				)
+		)
+	then
+		Number number = FindMissingNumber.testForPattern( $list );
+		if( number != null ){
+			MissingNumberPattern mnp = new MissingNumberPattern( $f, Operator.EQUAL, $f.getFieldType(), number.toString() );
+			result.add( mnp );
+		}
+end
+
+#
+# If all pattern ranges are not checked for a field.
+# 
+# Type: Warning
+# Depandencies: None
+# Example: in "Rule 1" Foo( bar == 10 ) and in "Rule 2" Foo( bar == 20 ) and in "Rule 3" Foo( bar == 40 )
+# 					then Foo( bar == 30 ) is missing.
+rule "Range check for number patterns, !="
+	when
+		$f :Field( 
+			( fieldType == Field.FieldType.INT || == Field.FieldType.DOUBLE ) 
+		)
+		(
+			# Where pattern is false.
+			$list :ArrayList( size > FindMissingNumber.MIN_NUMBER_OF_RESTRICTIONS )
+				from collect(
+					LiteralRestriction( 
+						fieldId == $f.id, 
+						patternIsNot == false, 
+						operator == Operator.NOT_EQUAL
+					)
+				)
+		) or (
+			# Where pattern is false.
+			$list :ArrayList( size > FindMissingNumber.MIN_NUMBER_OF_RESTRICTIONS )
+				from collect(
+					LiteralRestriction( 
+						fieldId == $f.id, 
+						patternIsNot == true, 
+						operator == Operator.NOT_EQUAL
+					)
+				)
+		)
+	then
+		Number number = FindMissingNumber.testForPattern( $list );
+		if( number != null ){
+			MissingNumberPattern mnp = new MissingNumberPattern( $f, Operator.NOT_EQUAL, $f.getFieldType(), number.toString() );
+			result.add( mnp );
+		}
+end

Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Variables.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Variables.drl	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Variables.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -2,7 +2,7 @@
 
 #list any import classes here.
 import org.drools.verifier.components.*;
-import org.drools.verifier.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierResult;
 import org.drools.verifier.report.components.Gap;
 
 import java.util.ArrayList;
@@ -11,7 +11,7 @@
 import java.util.Locale;
 
 #declare any global variables here
-global AnalyticsResult result
+global VerifierResult result
 
 /*
 # If all ranges are not checked for a field.
@@ -69,13 +69,12 @@
 														variableId == $v2.id,
 														patternIsNot == $r.patternIsNot )
 		)
-		$rule :AnalyticsRule( id == $r.ruleId )
+		$rule :VerifierRule( id == $r.ruleId )
 	then
 		Gap gap = new Gap();
 		gap.setCause($f);
 		gap.setRuleName($rule.getRuleName());
 		gap.setEvaluator($r.getEvaluator());
-		gap.setFiredRuleName(drools.getRule().getName());
 		gap.setValue("variable");
 		insert( gap );
 end 

Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Consequence.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Consequence.drl	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Consequence.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -15,7 +15,7 @@
 #
 rule "Find redundant TextConsequences"
 	when
-		# Check that AnalyticsRule $left and $right have redundant fields.
+		# Check that VerifierRule $left and $right have redundant fields.
 		$left :TextConsequence()
 		$right :TextConsequence(
 			id != $left.id,

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Notes.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -2,7 +2,7 @@
 package org.drools.verifier.redundancy
 
 #list any import classes here.
-global AnalyticsResult result;
+global VerifierResult result;
 
 
 
@@ -12,9 +12,9 @@
 
 import org.drools.verifier.components.PatternPossibility;
 import org.drools.verifier.components.RulePossibility;
-import org.drools.verifier.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierResult;
 import org.drools.verifier.report.components.Redundancy;
-import org.drools.verifier.report.components.AnalyticsMessage;
+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;
@@ -45,7 +45,7 @@
 		causes.add( $r.getLeft() );
 		causes.add( $r.getRight() );
 
-		result.add(new AnalyticsMessage(
+		result.add(new VerifierMessage(
 						Severity.NOTE, MessageType.REDUNDANCY,
 						$r, "Same restriction exists twice.", causes ) );
 end
@@ -72,7 +72,7 @@
 		causes.add( $r.getLeft() );
 		causes.add( $r.getRight() );
 
-		result.add(new AnalyticsMessage(
+		result.add(new VerifierMessage(
 						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/Restrictions.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Restrictions.drl	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Restrictions.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -89,12 +89,12 @@
 				)
 				and
 					$v :Variable(
-						objectType == AnalyticsComponentType.FIELD,
+						objectType == VerifierComponentType.FIELD,
 						objectId == $left.id
 					)
 				and
 					Variable(
-						objectType == AnalyticsComponentType.FIELD,
+						objectType == VerifierComponentType.FIELD,
 						objectId == $right.id,
 						objectName == $v.objectName,
 						name == $v.name

Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Rules.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Rules.drl	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Rules.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -1,7 +1,7 @@
 #created on: 7.9.2007
 package org.drools.verifier.redundancy.rules
 
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.report.components.Redundancy;
 import org.drools.verifier.report.components.RedundancyType;
 
@@ -16,9 +16,9 @@
 #
 rule "Find redundant Rules, strong redundancy"
 	when
-		# Check that AnalyticsRule $left and $right have redundant fields.
-		$left :AnalyticsRule()
-		$right :AnalyticsRule(
+		# Check that VerifierRule $left and $right have redundant fields.
+		$left :VerifierRule()
+		$right :VerifierRule(
 			id != $left.id,
 			ruleAgendaGroup == $left.ruleAgendaGroup
 		)

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Warnings.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -2,7 +2,7 @@
 package org.drools.verifier.redundancy
 
 #list any import classes here.
-global AnalyticsResult result;
+global VerifierResult result;
 
 
 
@@ -11,10 +11,10 @@
 import java.util.ArrayList;
 
 import org.drools.verifier.components.RulePossibility;
-import org.drools.verifier.dao.AnalyticsResult;
+import org.drools.verifier.dao.VerifierResult;
 import org.drools.verifier.report.components.Redundancy;
 import org.drools.verifier.report.components.RedundancyType;
-import org.drools.verifier.report.components.AnalyticsMessage;
+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;
@@ -74,7 +74,7 @@
 			message = "Rules are redundant.";
 		}
 
-		result.add(new AnalyticsMessage(
+		result.add(new VerifierMessage(
 						Severity.WARNING, MessageType.REDUNDANCY,
 						$rulePossibilityRedundancy, message, causes ) );
 end
@@ -126,7 +126,7 @@
 		causes.add( $rulePossibilityRedundancy.getLeft() );
 		causes.add( $rulePossibilityRedundancy.getRight() );
 
-		result.add(new AnalyticsMessage(
+		result.add(new VerifierMessage(
 						Severity.WARNING, MessageType.REDUNDANCY,
 						$rulePossibilityRedundancy, "Rules are subsumptant.", causes ) );
 end

Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/reports/RangeCheckReports.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/reports/RangeCheckReports.drl	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/reports/RangeCheckReports.drl	2008-06-10 11:03:26 UTC (rev 20398)
@@ -3,8 +3,8 @@
 
 #list any import classes here.
 import org.drools.verifier.components.Field;
-import org.drools.verifier.report.components.AnalyticsRangeCheckMessage;
-import org.drools.verifier.dao.AnalyticsResult;
+import org.drools.verifier.report.components.VerifierRangeCheckMessage;
+import org.drools.verifier.dao.VerifierResult;
 import org.drools.verifier.report.components.MissingRange;
 import org.drools.verifier.report.components.Severity;
 import org.drools.verifier.report.components.MessageType;
@@ -12,7 +12,7 @@
 import java.util.ArrayList;
 
 #declare any global variables here
-global AnalyticsResult result
+global VerifierResult result
 
 
 #
@@ -58,7 +58,7 @@
 				MissingRange( field == $f )
 			)
 	then
-		result.add( new AnalyticsRangeCheckMessage(
+		result.add( new VerifierRangeCheckMessage(
 								Severity.WARNING, $f,
 								$f + " has one or more gaps.", $list ) );
 end
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/ConsequenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/ConsequenceTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/ConsequenceTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -7,11 +7,11 @@
 
 import org.drools.StatelessSession;
 import org.drools.base.RuleNameMatchesAgendaFilter;
-import org.drools.verifier.components.AnalyticsRule;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
-import org.drools.verifier.report.components.AnalyticsMessage;
-import org.drools.verifier.report.components.AnalyticsMessageBase;
+import org.drools.verifier.components.VerifierRule;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.report.components.VerifierMessageBase;
 import org.drools.verifier.report.components.Severity;
 
 /**
@@ -28,24 +28,24 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"No action - possibly commented out"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("ConsequenceTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.WARNING).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				AnalyticsRule rule = (AnalyticsRule) ((AnalyticsMessage) o)
+			if (o instanceof VerifierMessage) {
+				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
 						.getFaulty();
 				rulesThatHadErrors.add(rule.getRuleName());
 			}

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/PatternSolverTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/PatternSolverTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/PatternSolverTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -4,7 +4,7 @@
 import java.util.Set;
 
 import org.drools.verifier.PatternSolver;
-import org.drools.verifier.components.AnalyticsComponent;
+import org.drools.verifier.components.VerifierComponent;
 import org.drools.verifier.components.LiteralRestriction;
 import org.drools.verifier.components.OperatorDescr;
 import org.drools.verifier.components.Pattern;
@@ -42,7 +42,7 @@
 		solver.add(literalRestriction2);
 		solver.end();
 
-		List<Set<AnalyticsComponent>> list = solver.getPossibilityLists();
+		List<Set<VerifierComponent>> list = solver.getPossibilityLists();
 		assertEquals(1, list.size());
 		assertEquals(2, list.get(0).size());
 	}
@@ -73,7 +73,7 @@
 		solver.add(literalRestriction2);
 		solver.end();
 
-		List<Set<AnalyticsComponent>> list = solver.getPossibilityLists();
+		List<Set<VerifierComponent>> list = solver.getPossibilityLists();
 		assertEquals(2, list.size());
 		assertEquals(1, list.get(0).size());
 		assertEquals(1, list.get(1).size());
@@ -112,7 +112,7 @@
 		solver.end();
 		solver.end();
 
-		List<Set<AnalyticsComponent>> list = solver.getPossibilityLists();
+		List<Set<VerifierComponent>> list = solver.getPossibilityLists();
 		assertEquals(2, list.size());
 
 		assertEquals(1, list.get(0).size());
@@ -156,7 +156,7 @@
 		solver.end();
 		solver.end();
 
-		List<Set<AnalyticsComponent>> list = solver.getPossibilityLists();
+		List<Set<VerifierComponent>> list = solver.getPossibilityLists();
 		assertEquals(2, list.size());
 
 		assertEquals(2, list.get(0).size());
@@ -210,7 +210,7 @@
 		solver.end();
 		solver.end();
 
-		List<Set<AnalyticsComponent>> list = solver.getPossibilityLists();
+		List<Set<VerifierComponent>> list = solver.getPossibilityLists();
 		assertEquals(4, list.size());
 
 		assertEquals(2, list.get(0).size());
@@ -268,7 +268,7 @@
 		solver.end();
 		solver.end();
 
-		List<Set<AnalyticsComponent>> list = solver.getPossibilityLists();
+		List<Set<VerifierComponent>> list = solver.getPossibilityLists();
 		assertEquals(2, list.size());
 
 		assertEquals(2, list.get(0).size());
@@ -320,7 +320,7 @@
 		solver.end();
 		solver.end();
 
-		List<Set<AnalyticsComponent>> list = solver.getPossibilityLists();
+		List<Set<VerifierComponent>> list = solver.getPossibilityLists();
 		assertEquals(3, list.size());
 
 		assertEquals(2, list.get(0).size());
@@ -374,7 +374,7 @@
 		solver.add(literalRestriction5);
 		solver.end();
 
-		List<Set<AnalyticsComponent>> list = solver.getPossibilityLists();
+		List<Set<VerifierComponent>> list = solver.getPossibilityLists();
 		assertEquals(2, list.size());
 
 		assertEquals(4, list.get(0).size());

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckCleanTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckCleanTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckCleanTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -10,11 +10,11 @@
 import org.drools.StatelessSessionResult;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 import org.drools.base.evaluators.Operator;
-import org.drools.verifier.components.AnalyticsComponent;
+import org.drools.verifier.components.VerifierComponent;
 import org.drools.verifier.components.Field;
 import org.drools.verifier.components.LiteralRestriction;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
 import org.drools.verifier.report.components.Gap;
 
 /**
@@ -24,573 +24,568 @@
  */
 public class RangeCheckCleanTest extends TestBase {
 
-	public void testUselessIntegerGapsLesser() throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("rangeChecks/Clean.drl"));
-
-		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-				"Remove useless integer gaps lesser or lesser and equal"));
-
-		Collection<Object> testData = new ArrayList<Object>();
-
-		Field f = new Field();
-		testData.add(f);
-
-		// > 10 covered
-		LiteralRestriction lower = new LiteralRestriction();
-		lower.setRuleName("> 10 covered");
-		lower.setFieldId(f.getId());
-		lower.setOperator(Operator.GREATER);
-		lower.setValue("10");
-		testData.add(lower);
-
-		// == 50 covered
-		LiteralRestriction r1 = new LiteralRestriction();
-		r1.setRuleName("== 50 covered");
-		r1.setFieldId(f.getId());
-		r1.setOperator(Operator.EQUAL);
-		r1.setValue("50");
-		testData.add(r1);
-
-		// > 50 gap
-		Gap g1 = new Gap(f, Operator.GREATER, r1);
-		g1.setFiredRuleName("above");
-		testData.add(g1);
-
-		// < 50 gap
-		Gap g2 = new Gap(f, Operator.LESS, r1);
-		g2.setFiredRuleName("below");
-		testData.add(g2);
-
-		// > 70 covered
-		LiteralRestriction r2 = new LiteralRestriction();
-		r2.setRuleName("> 70 covered");
-		r2.setFieldId(f.getId());
-		r2.setOperator(Operator.GREATER);
-		r2.setValue("70");
-		testData.add(r2);
-
-		// <= 70 gap
-		Gap g3 = new Gap(f, Operator.LESS_OR_EQUAL, r2);
-		g3.setFiredRuleName("70gap");
-		testData.add(g3);
-
-		// < 100 covered
-		LiteralRestriction higher = new LiteralRestriction();
-		higher.setRuleName("< 100 covered");
-		higher.setFieldId(f.getId());
-		higher.setOperator(Operator.LESS);
-		higher.setValue("100");
-		testData.add(higher);
-
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
-		session.setGlobal("result", result);
-
-		StatelessSessionResult sessionResult = session
-				.executeWithResults(testData);
-
-		Iterator<Object> iter = sessionResult.iterateObjects();
-
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof Field) {
-				// Do nothing
-			} else if (o instanceof Gap) {
-				rulesThatHadErrors.add(((Gap) o).getFiredRuleName());
-			} else if (o instanceof AnalyticsComponent) {
-				rulesThatHadErrors.add(((AnalyticsComponent) o).getRuleName());
-			}
-			// System.out.println(o);
-		}
-
-		assertTrue(rulesThatHadErrors.remove("> 10 covered"));
-		assertTrue(rulesThatHadErrors.remove("== 50 covered"));
-		assertTrue(rulesThatHadErrors.remove("> 70 covered"));
-		assertTrue(rulesThatHadErrors.remove("< 100 covered"));
-		assertFalse(rulesThatHadErrors.contains("below"));
-		assertFalse(rulesThatHadErrors.contains("above"));
-		assertFalse(rulesThatHadErrors.contains("70gap"));
-
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
-
-	public void testUselessIntegerGapsGreater() throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("rangeChecks/Clean.drl"));
-
-		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-				"Remove useless integer gaps greater or greater and equal"));
-
-		Collection<Object> testData = new ArrayList<Object>();
-
-		Field f = new Field();
-		testData.add(f);
-
-		// > 10 covered
-		LiteralRestriction lower = new LiteralRestriction();
-		lower.setRuleName("> 10 covered");
-		lower.setFieldId(f.getId());
-		lower.setOperator(Operator.GREATER);
-		lower.setValue("10");
-		testData.add(lower);
-
-		// == 50 covered
-		LiteralRestriction r1 = new LiteralRestriction();
-		r1.setRuleName("== 50 covered");
-		r1.setFieldId(f.getId());
-		r1.setOperator(Operator.EQUAL);
-		r1.setValue("50");
-		testData.add(r1);
-
-		// > 50 gap
-		Gap g1 = new Gap(f, Operator.GREATER, r1);
-		g1.setFiredRuleName("above");
-		testData.add(g1);
-
-		// < 50 gap
-		Gap g2 = new Gap(f, Operator.LESS, r1);
-		g2.setFiredRuleName("below");
-		testData.add(g2);
-
-		// < 70 covered
-		LiteralRestriction r2 = new LiteralRestriction();
-		r2.setRuleName("< 70 covered");
-		r2.setFieldId(f.getId());
-		r2.setOperator(Operator.LESS);
-		r2.setValue("70");
-		testData.add(r2);
-
-		// >= 70 gap
-		Gap g3 = new Gap(f, Operator.GREATER_OR_EQUAL, r2);
-		g3.setFiredRuleName("70gap");
-		testData.add(g3);
-
-		// < 100 covered
-		LiteralRestriction higher = new LiteralRestriction();
-		higher.setRuleName("< 100 covered");
-		higher.setFieldId(f.getId());
-		higher.setOperator(Operator.LESS);
-		higher.setValue("100");
-		testData.add(higher);
-
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
-		session.setGlobal("result", result);
-
-		StatelessSessionResult sessionResult = session
-				.executeWithResults(testData);
-
-		Iterator<Object> iter = sessionResult.iterateObjects();
-
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof Field) {
-				// Do nothing
-			} else if (o instanceof Gap) {
-				rulesThatHadErrors.add(((Gap) o).getFiredRuleName());
-			} else if (o instanceof AnalyticsComponent) {
-				rulesThatHadErrors.add(((AnalyticsComponent) o).getRuleName());
-			}
-			// System.out.println(o);
-		}
-
-		assertTrue(rulesThatHadErrors.remove("> 10 covered"));
-		assertTrue(rulesThatHadErrors.remove("== 50 covered"));
-		assertTrue(rulesThatHadErrors.remove("< 70 covered"));
-		assertTrue(rulesThatHadErrors.remove("< 100 covered"));
-		assertFalse(rulesThatHadErrors.contains("below"));
-		assertFalse(rulesThatHadErrors.contains("above"));
-		assertFalse(rulesThatHadErrors.contains("70gap"));
-
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
-
-	public void testUselessDoubleGapsLesser() throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("rangeChecks/Clean.drl"));
-
-		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-				"Remove useless double gaps lesser or lesser and equal"));
-
-		Collection<Object> testData = new ArrayList<Object>();
-
-		Field f = new Field();
-		testData.add(f);
-
-		// > 10.0 covered
-		LiteralRestriction lower = new LiteralRestriction();
-		lower.setRuleName("> 10.0 covered");
-		lower.setFieldId(f.getId());
-		lower.setOperator(Operator.GREATER);
-		lower.setValue("10.0");
-		testData.add(lower);
-
-		// == 50.0 covered
-		LiteralRestriction r1 = new LiteralRestriction();
-		r1.setRuleName("== 50.0 covered");
-		r1.setFieldId(f.getId());
-		r1.setOperator(Operator.EQUAL);
-		r1.setValue("50.0");
-		testData.add(r1);
-
-		// > 50.0 gap
-		Gap g1 = new Gap(f, Operator.GREATER, r1);
-		g1.setFiredRuleName("above");
-		testData.add(g1);
-
-		// < 50.0 gap
-		Gap g2 = new Gap(f, Operator.LESS, r1);
-		g2.setFiredRuleName("below");
-		testData.add(g2);
-
-		// > 70.0 covered
-		LiteralRestriction r2 = new LiteralRestriction();
-		r2.setRuleName("> 70.0 covered");
-		r2.setFieldId(f.getId());
-		r2.setOperator(Operator.GREATER);
-		r2.setValue("70.0");
-		testData.add(r2);
-
-		// <= 70.0 gap
-		Gap g3 = new Gap(f, Operator.LESS_OR_EQUAL, r2);
-		g3.setFiredRuleName("70gap");
-		testData.add(g3);
-
-		// < 100.0 covered
-		LiteralRestriction higher = new LiteralRestriction();
-		higher.setRuleName("< 100.0 covered");
-		higher.setFieldId(f.getId());
-		higher.setOperator(Operator.LESS);
-		higher.setValue("100.0");
-		testData.add(higher);
-
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
-		session.setGlobal("result", result);
-
-		StatelessSessionResult sessionResult = session
-				.executeWithResults(testData);
-
-		Iterator<Object> iter = sessionResult.iterateObjects();
-
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof Field) {
-				// Do nothing
-			} else if (o instanceof Gap) {
-				rulesThatHadErrors.add(((Gap) o).getFiredRuleName());
-			} else if (o instanceof AnalyticsComponent) {
-				rulesThatHadErrors.add(((AnalyticsComponent) o).getRuleName());
-			}
-			// System.out.println(o);
-		}
-
-		assertTrue(rulesThatHadErrors.remove("> 10.0 covered"));
-		assertTrue(rulesThatHadErrors.remove("== 50.0 covered"));
-		assertTrue(rulesThatHadErrors.remove("> 70.0 covered"));
-		assertTrue(rulesThatHadErrors.remove("< 100.0 covered"));
-		assertFalse(rulesThatHadErrors.contains("below"));
-		assertFalse(rulesThatHadErrors.contains("above"));
-		assertFalse(rulesThatHadErrors.contains("70gap"));
-
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
-
-	public void testUselessDoubleGapsGreater() throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("rangeChecks/Clean.drl"));
-
-		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-				"Remove useless double gaps greater or greater and equal"));
-
-		Collection<Object> testData = new ArrayList<Object>();
-
-		Field f = new Field();
-		testData.add(f);
-
-		// > 10.0 covered
-		LiteralRestriction lower = new LiteralRestriction();
-		lower.setRuleName("> 10.0 covered");
-		lower.setFieldId(f.getId());
-		lower.setOperator(Operator.GREATER);
-		lower.setValue("10.0");
-		testData.add(lower);
-
-		// == 50.0 covered
-		LiteralRestriction r1 = new LiteralRestriction();
-		r1.setRuleName("== 50.0 covered");
-		r1.setFieldId(f.getId());
-		r1.setOperator(Operator.EQUAL);
-		r1.setValue("50.0");
-		testData.add(r1);
-
-		// > 50.0 gap
-		Gap g1 = new Gap(f, Operator.GREATER, r1);
-		g1.setFiredRuleName("above");
-		testData.add(g1);
-
-		// < 50.0 gap
-		Gap g2 = new Gap(f, Operator.LESS, r1);
-		g2.setFiredRuleName("below");
-		testData.add(g2);
-
-		// < 70.0 covered
-		LiteralRestriction r2 = new LiteralRestriction();
-		r2.setRuleName("< 70.0 covered");
-		r2.setFieldId(f.getId());
-		r2.setOperator(Operator.LESS);
-		r2.setValue("70.0");
-		testData.add(r2);
-
-		// >= 70.0 gap
-		Gap g3 = new Gap(f, Operator.GREATER_OR_EQUAL, r2);
-		g3.setFiredRuleName("70gap");
-		testData.add(g3);
-
-		// < 100.0 covered
-		LiteralRestriction higher = new LiteralRestriction();
-		higher.setRuleName("< 100.0 covered");
-		higher.setFieldId(f.getId());
-		higher.setOperator(Operator.LESS);
-		higher.setValue("100.0");
-		testData.add(higher);
-
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
-		session.setGlobal("result", result);
-
-		StatelessSessionResult sessionResult = session
-				.executeWithResults(testData);
-
-		Iterator<Object> iter = sessionResult.iterateObjects();
-
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof Field) {
-				// Do nothing
-			} else if (o instanceof Gap) {
-				rulesThatHadErrors.add(((Gap) o).getFiredRuleName());
-			} else if (o instanceof AnalyticsComponent) {
-				rulesThatHadErrors.add(((AnalyticsComponent) o).getRuleName());
-			}
-			// System.out.println(o);
-		}
-
-		assertTrue(rulesThatHadErrors.remove("> 10.0 covered"));
-		assertTrue(rulesThatHadErrors.remove("== 50.0 covered"));
-		assertTrue(rulesThatHadErrors.remove("< 70.0 covered"));
-		assertTrue(rulesThatHadErrors.remove("< 100.0 covered"));
-		assertFalse(rulesThatHadErrors.contains("below"));
-		assertFalse(rulesThatHadErrors.contains("above"));
-		assertFalse(rulesThatHadErrors.contains("70gap"));
-
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
-
-	public void testUselessDateGapsLesser() throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("rangeChecks/Clean.drl"));
-
-		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-				"Remove useless date gaps lesser or lesser and equal"));
-
-		Collection<Object> testData = new ArrayList<Object>();
-
-		Field f = new Field();
-		testData.add(f);
-
-		// > "01-Oct-2007" covered
-		LiteralRestriction lower = new LiteralRestriction();
-		lower.setRuleName("> 01-Oct-2007 covered");
-		lower.setFieldId(f.getId());
-		lower.setOperator(Operator.GREATER);
-		lower.setValue("01-Oct-2007");
-		testData.add(lower);
-
-		// == "10-Oct-2007" covered
-		LiteralRestriction r1 = new LiteralRestriction();
-		r1.setRuleName("== 10-Oct-2007 covered");
-		r1.setFieldId(f.getId());
-		r1.setOperator(Operator.EQUAL);
-		r1.setValue("10-Oct-2007");
-		testData.add(r1);
-
-		// > "10-Oct-2007" gap
-		Gap g1 = new Gap(f, Operator.GREATER, r1);
-		g1.setFiredRuleName("above");
-		testData.add(g1);
-
-		// < "10-Oct-2007" gap
-		Gap g2 = new Gap(f, Operator.LESS, r1);
-		g2.setFiredRuleName("below");
-		testData.add(g2);
-
-		// > "15-Oct-2007" covered
-		LiteralRestriction r2 = new LiteralRestriction();
-		r2.setRuleName("> 15-Oct-2007 covered");
-		r2.setFieldId(f.getId());
-		r2.setOperator(Operator.GREATER);
-		r2.setValue("15-Oct-2007");
-		testData.add(r2);
-
-		// <= "15-Oct-2007" gap
-		Gap g3 = new Gap(f, Operator.LESS_OR_EQUAL, r2);
-		g3.setFiredRuleName("15-Oct-2007gap");
-		testData.add(g3);
-
-		// < "20-Oct-2007" covered
-		LiteralRestriction higher = new LiteralRestriction();
-		higher.setRuleName("< 20-Oct-2007 covered");
-		higher.setFieldId(f.getId());
-		higher.setOperator(Operator.LESS);
-		higher.setValue("20-Oct-2007");
-		testData.add(higher);
-
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
-		session.setGlobal("result", result);
-
-		StatelessSessionResult sessionResult = session
-				.executeWithResults(testData);
-
-		Iterator<Object> iter = sessionResult.iterateObjects();
-
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof Field) {
-				// Do nothing
-			} else if (o instanceof Gap) {
-				rulesThatHadErrors.add(((Gap) o).getFiredRuleName());
-			} else if (o instanceof AnalyticsComponent) {
-				rulesThatHadErrors.add(((AnalyticsComponent) o).getRuleName());
-			}
-			// System.out.println(o);
-		}
-
-		assertTrue(rulesThatHadErrors.remove("> 01-Oct-2007 covered"));
-		assertTrue(rulesThatHadErrors.remove("== 10-Oct-2007 covered"));
-		assertTrue(rulesThatHadErrors.remove("> 15-Oct-2007 covered"));
-		assertTrue(rulesThatHadErrors.remove("< 20-Oct-2007 covered"));
-		assertFalse(rulesThatHadErrors.contains("below"));
-		assertFalse(rulesThatHadErrors.contains("above"));
-		assertFalse(rulesThatHadErrors.contains("15-Oct-2007gap"));
-
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
-
-	public void testUselessDateGapsGreater() throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("rangeChecks/Clean.drl"));
-
-		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-				"Remove useless date gaps greater or greater and equal"));
-
-		Collection<Object> testData = new ArrayList<Object>();
-
-		Field f = new Field();
-		testData.add(f);
-
-		// > "01-Oct-2007" covered
-		LiteralRestriction lower = new LiteralRestriction();
-		lower.setRuleName("> 01-Oct-2007 covered");
-		lower.setFieldId(f.getId());
-		lower.setOperator(Operator.GREATER);
-		lower.setValue("01-Oct-2007");
-		testData.add(lower);
-
-		// == "10-Oct-2007" covered
-		LiteralRestriction r1 = new LiteralRestriction();
-		r1.setRuleName("== 10-Oct-2007 covered");
-		r1.setFieldId(f.getId());
-		r1.setOperator(Operator.EQUAL);
-		r1.setValue("10-Oct-2007");
-		testData.add(r1);
-
-		// > "10-Oct-2007" gap
-		Gap g1 = new Gap(f, Operator.GREATER, r1);
-		g1.setFiredRuleName("above");
-		testData.add(g1);
-
-		// < "10-Oct-2007" gap
-		Gap g2 = new Gap(f, Operator.LESS, r1);
-		g2.setFiredRuleName("below");
-		testData.add(g2);
-
-		// < "15-Oct-2007" covered
-		LiteralRestriction r2 = new LiteralRestriction();
-		r2.setRuleName("< 15-Oct-2007 covered");
-		r2.setFieldId(f.getId());
-		r2.setOperator(Operator.LESS);
-		r2.setValue("15-Oct-2007");
-		testData.add(r2);
-
-		// >= "15-Oct-2007" gap
-		Gap g3 = new Gap(f, Operator.GREATER_OR_EQUAL, r2);
-		g3.setFiredRuleName("15-Oct-2007gap");
-		testData.add(g3);
-
-		// < "20-Oct-2007" covered
-		LiteralRestriction higher = new LiteralRestriction();
-		higher.setRuleName("< 20-Oct-2007 covered");
-		higher.setFieldId(f.getId());
-		higher.setOperator(Operator.LESS);
-		higher.setValue("20-Oct-2007");
-		testData.add(higher);
-
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
-		session.setGlobal("result", result);
-
-		StatelessSessionResult sessionResult = session
-				.executeWithResults(testData);
-
-		Iterator<Object> iter = sessionResult.iterateObjects();
-
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof Field) {
-				// Do nothing
-			} else if (o instanceof Gap) {
-				rulesThatHadErrors.add(((Gap) o).getFiredRuleName());
-			} else if (o instanceof AnalyticsComponent) {
-				rulesThatHadErrors.add(((AnalyticsComponent) o).getRuleName());
-			}
-			// System.out.println(o);
-		}
-
-		assertTrue(rulesThatHadErrors.remove("> 01-Oct-2007 covered"));
-		assertTrue(rulesThatHadErrors.remove("== 10-Oct-2007 covered"));
-		assertTrue(rulesThatHadErrors.remove("< 15-Oct-2007 covered"));
-		assertTrue(rulesThatHadErrors.remove("< 20-Oct-2007 covered"));
-		assertFalse(rulesThatHadErrors.contains("below"));
-		assertFalse(rulesThatHadErrors.contains("above"));
-		assertFalse(rulesThatHadErrors.contains("15-Oct-2007gap"));
-
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
+//	public void testUselessIntegerGapsLesser() throws Exception {
+//		StatelessSession session = getStatelessSession(this.getClass()
+//				.getResourceAsStream("rangeChecks/Clean.drl"));
+//
+//		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+//				"Remove useless integer gaps lesser or lesser and equal"));
+//
+//		Collection<Object> testData = new ArrayList<Object>();
+//
+//		Field f = new Field();
+//		testData.add(f);
+//
+//		// > 10 covered
+//		LiteralRestriction lower = new LiteralRestriction();
+//		lower.setRuleName("> 10 covered");
+//		lower.setFieldId(f.getId());
+//		lower.setOperator(Operator.GREATER);
+//		lower.setValue("10");
+//		testData.add(lower);
+//
+//		// == 50 covered
+//		LiteralRestriction r1 = new LiteralRestriction();
+//		r1.setRuleName("== 50 covered");
+//		r1.setFieldId(f.getId());
+//		r1.setOperator(Operator.EQUAL);
+//		r1.setValue("50");
+//		testData.add(r1);
+//
+//		// > 50 gap
+//		Gap g1 = new Gap(f, Operator.GREATER, r1);
+//		// g1.setFiredRuleName("above");
+//		testData.add(g1);
+//
+//		// < 50 gap
+//		Gap g2 = new Gap(f, Operator.LESS, r1);
+//		// g2.setFiredRuleName("below");
+//		testData.add(g2);
+//
+//		// > 70 covered
+//		LiteralRestriction r2 = new LiteralRestriction();
+//		r2.setRuleName("> 70 covered");
+//		r2.setFieldId(f.getId());
+//		r2.setOperator(Operator.GREATER);
+//		r2.setValue("70");
+//		testData.add(r2);
+//
+//		// <= 70 gap
+//		Gap g3 = new Gap(f, Operator.LESS_OR_EQUAL, r2);
+//		// g3.setFiredRuleName("70gap");
+//		testData.add(g3);
+//
+//		// < 100 covered
+//		LiteralRestriction higher = new LiteralRestriction();
+//		higher.setRuleName("< 100 covered");
+//		higher.setFieldId(f.getId());
+//		higher.setOperator(Operator.LESS);
+//		higher.setValue("100");
+//		testData.add(higher);
+//
+//		VerifierResult result = VerifierResultFactory.createVerifierResult();
+//		session.setGlobal("result", result);
+//
+//		StatelessSessionResult sessionResult = session
+//				.executeWithResults(testData);
+//
+//		Iterator<Object> iter = sessionResult.iterateObjects();
+//
+//		Set<Object> rulesThatHadErrors = new HashSet<Object>();
+//		while (iter.hasNext()) {
+//			Object o = (Object) iter.next();
+//			if (o instanceof Gap || o instanceof VerifierComponent) {
+//				rulesThatHadErrors.add(o);
+//			}
+//		}
+//
+//		assertTrue(rulesThatHadErrors.remove("> 10 covered"));
+//		assertTrue(rulesThatHadErrors.remove("== 50 covered"));
+//		assertTrue(rulesThatHadErrors.remove("> 70 covered"));
+//		assertTrue(rulesThatHadErrors.remove("< 100 covered"));
+//		assertFalse(rulesThatHadErrors.contains("below"));
+//		assertFalse(rulesThatHadErrors.contains("above"));
+//		assertFalse(rulesThatHadErrors.contains("70gap"));
+//
+//		if (!rulesThatHadErrors.isEmpty()) {
+//			for (String string : rulesThatHadErrors) {
+//				fail("Rule " + string + " caused an error.");
+//			}
+//		}
+//	}
+//
+//	public void testUselessIntegerGapsGreater() throws Exception {
+//		StatelessSession session = getStatelessSession(this.getClass()
+//				.getResourceAsStream("rangeChecks/Clean.drl"));
+//
+//		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+//				"Remove useless integer gaps greater or greater and equal"));
+//
+//		Collection<Object> testData = new ArrayList<Object>();
+//
+//		Field f = new Field();
+//		testData.add(f);
+//
+//		// > 10 covered
+//		LiteralRestriction lower = new LiteralRestriction();
+//		lower.setRuleName("> 10 covered");
+//		lower.setFieldId(f.getId());
+//		lower.setOperator(Operator.GREATER);
+//		lower.setValue("10");
+//		testData.add(lower);
+//
+//		// == 50 covered
+//		LiteralRestriction r1 = new LiteralRestriction();
+//		r1.setRuleName("== 50 covered");
+//		r1.setFieldId(f.getId());
+//		r1.setOperator(Operator.EQUAL);
+//		r1.setValue("50");
+//		testData.add(r1);
+//
+//		// > 50 gap
+//		Gap g1 = new Gap(f, Operator.GREATER, r1);
+//		g1.setFiredRuleName("above");
+//		testData.add(g1);
+//
+//		// < 50 gap
+//		Gap g2 = new Gap(f, Operator.LESS, r1);
+//		g2.setFiredRuleName("below");
+//		testData.add(g2);
+//
+//		// < 70 covered
+//		LiteralRestriction r2 = new LiteralRestriction();
+//		r2.setRuleName("< 70 covered");
+//		r2.setFieldId(f.getId());
+//		r2.setOperator(Operator.LESS);
+//		r2.setValue("70");
+//		testData.add(r2);
+//
+//		// >= 70 gap
+//		Gap g3 = new Gap(f, Operator.GREATER_OR_EQUAL, r2);
+//		g3.setFiredRuleName("70gap");
+//		testData.add(g3);
+//
+//		// < 100 covered
+//		LiteralRestriction higher = new LiteralRestriction();
+//		higher.setRuleName("< 100 covered");
+//		higher.setFieldId(f.getId());
+//		higher.setOperator(Operator.LESS);
+//		higher.setValue("100");
+//		testData.add(higher);
+//
+//		VerifierResult result = VerifierResultFactory.createVerifierResult();
+//		session.setGlobal("result", result);
+//
+//		StatelessSessionResult sessionResult = session
+//				.executeWithResults(testData);
+//
+//		Iterator<Object> iter = sessionResult.iterateObjects();
+//
+//		Set<String> rulesThatHadErrors = new HashSet<String>();
+//		while (iter.hasNext()) {
+//			Object o = (Object) iter.next();
+//			if (o instanceof Field) {
+//				// Do nothing
+//			} else if (o instanceof Gap) {
+//				rulesThatHadErrors.add(((Gap) o).getFiredRuleName());
+//			} else if (o instanceof VerifierComponent) {
+//				rulesThatHadErrors.add(((VerifierComponent) o).getRuleName());
+//			}
+//			// System.out.println(o);
+//		}
+//
+//		assertTrue(rulesThatHadErrors.remove("> 10 covered"));
+//		assertTrue(rulesThatHadErrors.remove("== 50 covered"));
+//		assertTrue(rulesThatHadErrors.remove("< 70 covered"));
+//		assertTrue(rulesThatHadErrors.remove("< 100 covered"));
+//		assertFalse(rulesThatHadErrors.contains("below"));
+//		assertFalse(rulesThatHadErrors.contains("above"));
+//		assertFalse(rulesThatHadErrors.contains("70gap"));
+//
+//		if (!rulesThatHadErrors.isEmpty()) {
+//			for (String string : rulesThatHadErrors) {
+//				fail("Rule " + string + " caused an error.");
+//			}
+//		}
+//	}
+//
+//	public void testUselessDoubleGapsLesser() throws Exception {
+//		StatelessSession session = getStatelessSession(this.getClass()
+//				.getResourceAsStream("rangeChecks/Clean.drl"));
+//
+//		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+//				"Remove useless double gaps lesser or lesser and equal"));
+//
+//		Collection<Object> testData = new ArrayList<Object>();
+//
+//		Field f = new Field();
+//		testData.add(f);
+//
+//		// > 10.0 covered
+//		LiteralRestriction lower = new LiteralRestriction();
+//		lower.setRuleName("> 10.0 covered");
+//		lower.setFieldId(f.getId());
+//		lower.setOperator(Operator.GREATER);
+//		lower.setValue("10.0");
+//		testData.add(lower);
+//
+//		// == 50.0 covered
+//		LiteralRestriction r1 = new LiteralRestriction();
+//		r1.setRuleName("== 50.0 covered");
+//		r1.setFieldId(f.getId());
+//		r1.setOperator(Operator.EQUAL);
+//		r1.setValue("50.0");
+//		testData.add(r1);
+//
+//		// > 50.0 gap
+//		Gap g1 = new Gap(f, Operator.GREATER, r1);
+//		g1.setFiredRuleName("above");
+//		testData.add(g1);
+//
+//		// < 50.0 gap
+//		Gap g2 = new Gap(f, Operator.LESS, r1);
+//		g2.setFiredRuleName("below");
+//		testData.add(g2);
+//
+//		// > 70.0 covered
+//		LiteralRestriction r2 = new LiteralRestriction();
+//		r2.setRuleName("> 70.0 covered");
+//		r2.setFieldId(f.getId());
+//		r2.setOperator(Operator.GREATER);
+//		r2.setValue("70.0");
+//		testData.add(r2);
+//
+//		// <= 70.0 gap
+//		Gap g3 = new Gap(f, Operator.LESS_OR_EQUAL, r2);
+//		g3.setFiredRuleName("70gap");
+//		testData.add(g3);
+//
+//		// < 100.0 covered
+//		LiteralRestriction higher = new LiteralRestriction();
+//		higher.setRuleName("< 100.0 covered");
+//		higher.setFieldId(f.getId());
+//		higher.setOperator(Operator.LESS);
+//		higher.setValue("100.0");
+//		testData.add(higher);
+//
+//		VerifierResult result = VerifierResultFactory.createVerifierResult();
+//		session.setGlobal("result", result);
+//
+//		StatelessSessionResult sessionResult = session
+//				.executeWithResults(testData);
+//
+//		Iterator<Object> iter = sessionResult.iterateObjects();
+//
+//		Set<String> rulesThatHadErrors = new HashSet<String>();
+//		while (iter.hasNext()) {
+//			Object o = (Object) iter.next();
+//			if (o instanceof Field) {
+//				// Do nothing
+//			} else if (o instanceof Gap) {
+//				rulesThatHadErrors.add(((Gap) o).getFiredRuleName());
+//			} else if (o instanceof VerifierComponent) {
+//				rulesThatHadErrors.add(((VerifierComponent) o).getRuleName());
+//			}
+//			// System.out.println(o);
+//		}
+//
+//		assertTrue(rulesThatHadErrors.remove("> 10.0 covered"));
+//		assertTrue(rulesThatHadErrors.remove("== 50.0 covered"));
+//		assertTrue(rulesThatHadErrors.remove("> 70.0 covered"));
+//		assertTrue(rulesThatHadErrors.remove("< 100.0 covered"));
+//		assertFalse(rulesThatHadErrors.contains("below"));
+//		assertFalse(rulesThatHadErrors.contains("above"));
+//		assertFalse(rulesThatHadErrors.contains("70gap"));
+//
+//		if (!rulesThatHadErrors.isEmpty()) {
+//			for (String string : rulesThatHadErrors) {
+//				fail("Rule " + string + " caused an error.");
+//			}
+//		}
+//	}
+//
+//	public void testUselessDoubleGapsGreater() throws Exception {
+//		StatelessSession session = getStatelessSession(this.getClass()
+//				.getResourceAsStream("rangeChecks/Clean.drl"));
+//
+//		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+//				"Remove useless double gaps greater or greater and equal"));
+//
+//		Collection<Object> testData = new ArrayList<Object>();
+//
+//		Field f = new Field();
+//		testData.add(f);
+//
+//		// > 10.0 covered
+//		LiteralRestriction lower = new LiteralRestriction();
+//		lower.setRuleName("> 10.0 covered");
+//		lower.setFieldId(f.getId());
+//		lower.setOperator(Operator.GREATER);
+//		lower.setValue("10.0");
+//		testData.add(lower);
+//
+//		// == 50.0 covered
+//		LiteralRestriction r1 = new LiteralRestriction();
+//		r1.setRuleName("== 50.0 covered");
+//		r1.setFieldId(f.getId());
+//		r1.setOperator(Operator.EQUAL);
+//		r1.setValue("50.0");
+//		testData.add(r1);
+//
+//		// > 50.0 gap
+//		Gap g1 = new Gap(f, Operator.GREATER, r1);
+//		// g1.setFiredRuleName("above");
+//		testData.add(g1);
+//
+//		// < 50.0 gap
+//		Gap g2 = new Gap(f, Operator.LESS, r1);
+//		// g2.setFiredRuleName("below");
+//		testData.add(g2);
+//
+//		// < 70.0 covered
+//		LiteralRestriction r2 = new LiteralRestriction();
+//		r2.setRuleName("< 70.0 covered");
+//		r2.setFieldId(f.getId());
+//		r2.setOperator(Operator.LESS);
+//		r2.setValue("70.0");
+//		testData.add(r2);
+//
+//		// >= 70.0 gap
+//		Gap g3 = new Gap(f, Operator.GREATER_OR_EQUAL, r2);
+//		// g3.setFiredRuleName("70gap");
+//		testData.add(g3);
+//
+//		// < 100.0 covered
+//		LiteralRestriction higher = new LiteralRestriction();
+//		higher.setRuleName("< 100.0 covered");
+//		higher.setFieldId(f.getId());
+//		higher.setOperator(Operator.LESS);
+//		higher.setValue("100.0");
+//		testData.add(higher);
+//
+//		VerifierResult result = VerifierResultFactory.createVerifierResult();
+//		session.setGlobal("result", result);
+//
+//		StatelessSessionResult sessionResult = session
+//				.executeWithResults(testData);
+//
+//		Iterator<Object> iter = sessionResult.iterateObjects();
+//
+//		Set<String> rulesThatHadErrors = new HashSet<String>();
+//		while (iter.hasNext()) {
+//			Object o = (Object) iter.next();
+//			if (o instanceof Field) {
+//				// Do nothing
+//			} else if (o instanceof Gap) {
+//				rulesThatHadErrors.add(((Gap) o).getFiredRuleName());
+//			} else if (o instanceof VerifierComponent) {
+//				rulesThatHadErrors.add(((VerifierComponent) o).getRuleName());
+//			}
+//			// System.out.println(o);
+//		}
+//
+//		assertTrue(rulesThatHadErrors.remove("> 10.0 covered"));
+//		assertTrue(rulesThatHadErrors.remove("== 50.0 covered"));
+//		assertTrue(rulesThatHadErrors.remove("< 70.0 covered"));
+//		assertTrue(rulesThatHadErrors.remove("< 100.0 covered"));
+//		assertFalse(rulesThatHadErrors.contains("below"));
+//		assertFalse(rulesThatHadErrors.contains("above"));
+//		assertFalse(rulesThatHadErrors.contains("70gap"));
+//
+//		if (!rulesThatHadErrors.isEmpty()) {
+//			for (String string : rulesThatHadErrors) {
+//				fail("Rule " + string + " caused an error.");
+//			}
+//		}
+//	}
+//
+//	public void testUselessDateGapsLesser() throws Exception {
+//		StatelessSession session = getStatelessSession(this.getClass()
+//				.getResourceAsStream("rangeChecks/Clean.drl"));
+//
+//		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+//				"Remove useless date gaps lesser or lesser and equal"));
+//
+//		Collection<Object> testData = new ArrayList<Object>();
+//
+//		Field f = new Field();
+//		testData.add(f);
+//
+//		// > "01-Oct-2007" covered
+//		LiteralRestriction lower = new LiteralRestriction();
+//		lower.setRuleName("> 01-Oct-2007 covered");
+//		lower.setFieldId(f.getId());
+//		lower.setOperator(Operator.GREATER);
+//		lower.setValue("01-Oct-2007");
+//		testData.add(lower);
+//
+//		// == "10-Oct-2007" covered
+//		LiteralRestriction r1 = new LiteralRestriction();
+//		r1.setRuleName("== 10-Oct-2007 covered");
+//		r1.setFieldId(f.getId());
+//		r1.setOperator(Operator.EQUAL);
+//		r1.setValue("10-Oct-2007");
+//		testData.add(r1);
+//
+//		// > "10-Oct-2007" gap
+//		Gap g1 = new Gap(f, Operator.GREATER, r1);
+//		g1.setFiredRuleName("above");
+//		testData.add(g1);
+//
+//		// < "10-Oct-2007" gap
+//		Gap g2 = new Gap(f, Operator.LESS, r1);
+//		g2.setFiredRuleName("below");
+//		testData.add(g2);
+//
+//		// > "15-Oct-2007" covered
+//		LiteralRestriction r2 = new LiteralRestriction();
+//		r2.setRuleName("> 15-Oct-2007 covered");
+//		r2.setFieldId(f.getId());
+//		r2.setOperator(Operator.GREATER);
+//		r2.setValue("15-Oct-2007");
+//		testData.add(r2);
+//
+//		// <= "15-Oct-2007" gap
+//		Gap g3 = new Gap(f, Operator.LESS_OR_EQUAL, r2);
+//		g3.setFiredRuleName("15-Oct-2007gap");
+//		testData.add(g3);
+//
+//		// < "20-Oct-2007" covered
+//		LiteralRestriction higher = new LiteralRestriction();
+//		higher.setRuleName("< 20-Oct-2007 covered");
+//		higher.setFieldId(f.getId());
+//		higher.setOperator(Operator.LESS);
+//		higher.setValue("20-Oct-2007");
+//		testData.add(higher);
+//
+//		VerifierResult result = VerifierResultFactory.createVerifierResult();
+//		session.setGlobal("result", result);
+//
+//		StatelessSessionResult sessionResult = session
+//				.executeWithResults(testData);
+//
+//		Iterator<Object> iter = sessionResult.iterateObjects();
+//
+//		Set<String> rulesThatHadErrors = new HashSet<String>();
+//		while (iter.hasNext()) {
+//			Object o = (Object) iter.next();
+//			if (o instanceof Field) {
+//				// Do nothing
+//			} else if (o instanceof Gap) {
+//				rulesThatHadErrors.add(((Gap) o).getFiredRuleName());
+//			} else if (o instanceof VerifierComponent) {
+//				rulesThatHadErrors.add(((VerifierComponent) o).getRuleName());
+//			}
+//			// System.out.println(o);
+//		}
+//
+//		assertTrue(rulesThatHadErrors.remove("> 01-Oct-2007 covered"));
+//		assertTrue(rulesThatHadErrors.remove("== 10-Oct-2007 covered"));
+//		assertTrue(rulesThatHadErrors.remove("> 15-Oct-2007 covered"));
+//		assertTrue(rulesThatHadErrors.remove("< 20-Oct-2007 covered"));
+//		assertFalse(rulesThatHadErrors.contains("below"));
+//		assertFalse(rulesThatHadErrors.contains("above"));
+//		assertFalse(rulesThatHadErrors.contains("15-Oct-2007gap"));
+//
+//		if (!rulesThatHadErrors.isEmpty()) {
+//			for (String string : rulesThatHadErrors) {
+//				fail("Rule " + string + " caused an error.");
+//			}
+//		}
+//	}
+//
+//	public void testUselessDateGapsGreater() throws Exception {
+//		StatelessSession session = getStatelessSession(this.getClass()
+//				.getResourceAsStream("rangeChecks/Clean.drl"));
+//
+//		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+//				"Remove useless date gaps greater or greater and equal"));
+//
+//		Collection<Object> testData = new ArrayList<Object>();
+//
+//		Field f = new Field();
+//		testData.add(f);
+//
+//		// > "01-Oct-2007" covered
+//		LiteralRestriction lower = new LiteralRestriction();
+//		lower.setRuleName("> 01-Oct-2007 covered");
+//		lower.setFieldId(f.getId());
+//		lower.setOperator(Operator.GREATER);
+//		lower.setValue("01-Oct-2007");
+//		testData.add(lower);
+//
+//		// == "10-Oct-2007" covered
+//		LiteralRestriction r1 = new LiteralRestriction();
+//		r1.setRuleName("== 10-Oct-2007 covered");
+//		r1.setFieldId(f.getId());
+//		r1.setOperator(Operator.EQUAL);
+//		r1.setValue("10-Oct-2007");
+//		testData.add(r1);
+//
+//		// > "10-Oct-2007" gap
+//		Gap g1 = new Gap(f, Operator.GREATER, r1);
+//		g1.setFiredRuleName("above");
+//		testData.add(g1);
+//
+//		// < "10-Oct-2007" gap
+//		Gap g2 = new Gap(f, Operator.LESS, r1);
+//		g2.setFiredRuleName("below");
+//		testData.add(g2);
+//
+//		// < "15-Oct-2007" covered
+//		LiteralRestriction r2 = new LiteralRestriction();
+//		r2.setRuleName("< 15-Oct-2007 covered");
+//		r2.setFieldId(f.getId());
+//		r2.setOperator(Operator.LESS);
+//		r2.setValue("15-Oct-2007");
+//		testData.add(r2);
+//
+//		// >= "15-Oct-2007" gap
+//		Gap g3 = new Gap(f, Operator.GREATER_OR_EQUAL, r2);
+//		g3.setFiredRuleName("15-Oct-2007gap");
+//		testData.add(g3);
+//
+//		// < "20-Oct-2007" covered
+//		LiteralRestriction higher = new LiteralRestriction();
+//		higher.setRuleName("< 20-Oct-2007 covered");
+//		higher.setFieldId(f.getId());
+//		higher.setOperator(Operator.LESS);
+//		higher.setValue("20-Oct-2007");
+//		testData.add(higher);
+//
+//		VerifierResult result = VerifierResultFactory.createVerifierResult();
+//		session.setGlobal("result", result);
+//
+//		StatelessSessionResult sessionResult = session
+//				.executeWithResults(testData);
+//
+//		Iterator<Object> iter = sessionResult.iterateObjects();
+//
+//		Set<String> rulesThatHadErrors = new HashSet<String>();
+//		while (iter.hasNext()) {
+//			Object o = (Object) iter.next();
+//			if (o instanceof Field) {
+//				// Do nothing
+//			} else if (o instanceof Gap) {
+//				rulesThatHadErrors.add(((Gap) o).getFiredRuleName());
+//			} else if (o instanceof VerifierComponent) {
+//				rulesThatHadErrors.add(((VerifierComponent) o).getRuleName());
+//			}
+//			// System.out.println(o);
+//		}
+//
+//		assertTrue(rulesThatHadErrors.remove("> 01-Oct-2007 covered"));
+//		assertTrue(rulesThatHadErrors.remove("== 10-Oct-2007 covered"));
+//		assertTrue(rulesThatHadErrors.remove("< 15-Oct-2007 covered"));
+//		assertTrue(rulesThatHadErrors.remove("< 20-Oct-2007 covered"));
+//		assertFalse(rulesThatHadErrors.contains("below"));
+//		assertFalse(rulesThatHadErrors.contains("above"));
+//		assertFalse(rulesThatHadErrors.contains("15-Oct-2007gap"));
+//
+//		if (!rulesThatHadErrors.isEmpty()) {
+//			for (String string : rulesThatHadErrors) {
+//				fail("Rule " + string + " caused an error.");
+//			}
+//		}
+//	}
 }

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckDatesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckDatesTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckDatesTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -8,8 +8,8 @@
 import org.drools.StatelessSession;
 import org.drools.StatelessSessionResult;
 import org.drools.base.RuleNameMatchesAgendaFilter;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
 import org.drools.verifier.report.components.Gap;
 
 /**
@@ -30,10 +30,10 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for dates, if smaller than or equal is missing"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingRangesForDates.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
@@ -68,10 +68,10 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for dates, if greater than or equal is missing"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingRangesForDates.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
@@ -106,10 +106,10 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for dates, equal and greater than"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingRangesForDates.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
@@ -145,10 +145,10 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for dates, equal and smaller than"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingRangesForDates.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckDoublesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckDoublesTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckDoublesTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -8,8 +8,8 @@
 import org.drools.StatelessSession;
 import org.drools.StatelessSessionResult;
 import org.drools.base.RuleNameMatchesAgendaFilter;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
 import org.drools.verifier.report.components.Gap;
 
 /**
@@ -27,10 +27,10 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Range check for doubles, if smaller than or equal is missing"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingRangesForDoubles.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
@@ -66,10 +66,10 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Range check for doubles, if greater than or equal is missing"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingRangesForDoubles.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
@@ -104,10 +104,10 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for doubles, equal and greater than"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingRangesForDoubles.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
@@ -144,10 +144,10 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for doubles, equal and smaller than"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingRangesForDoubles.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckIntegersTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckIntegersTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckIntegersTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -8,8 +8,8 @@
 import org.drools.StatelessSession;
 import org.drools.StatelessSessionResult;
 import org.drools.base.RuleNameMatchesAgendaFilter;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
 import org.drools.verifier.report.components.Gap;
 
 /**
@@ -27,10 +27,10 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Range check for integers, if smaller than or equal is missing"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingRangesForInts.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
@@ -66,10 +66,10 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Range check for integers, if greater than or equal is missing"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingRangesForInts.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
@@ -104,10 +104,10 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for integers, equal and greater than"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingRangesForInts.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
@@ -143,10 +143,10 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for integers, equal and smaller than"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingRangesForInts.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/SolversTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/SolversTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/SolversTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -5,7 +5,7 @@
 import java.util.Set;
 
 import org.drools.verifier.Solvers;
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.LiteralRestriction;
 import org.drools.verifier.components.OperatorDescr;
 import org.drools.verifier.components.Pattern;
@@ -36,7 +36,7 @@
 	 * r3 && r4
 	 */
 	public void testNotAnd() {
-		AnalyticsRule rule = new AnalyticsRule();
+		VerifierRule rule = new VerifierRule();
 		Pattern pattern = new Pattern();
 
 		Restriction r = new LiteralRestriction();
@@ -108,7 +108,7 @@
 	 * descr && descr2
 	 */
 	public void testBasicAnd() {
-		AnalyticsRule rule = new AnalyticsRule();
+		VerifierRule rule = new VerifierRule();
 		Pattern pattern = new Pattern();
 
 		Restriction r = new LiteralRestriction();

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/SubsumptantPossibilitiesRuleTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/SubsumptantPossibilitiesRuleTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/SubsumptantPossibilitiesRuleTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -11,7 +11,7 @@
 import org.drools.StatelessSession;
 import org.drools.StatelessSessionResult;
 import org.drools.base.RuleNameMatchesAgendaFilter;
-import org.drools.verifier.components.AnalyticsComponent;
+import org.drools.verifier.components.VerifierComponent;
 import org.drools.verifier.components.LiteralRestriction;
 import org.drools.verifier.components.PatternPossibility;
 import org.drools.verifier.components.RulePossibility;
@@ -213,8 +213,8 @@
 			Object o = (Object) iter.next();
 			if (o instanceof Subsumption) {
 				Subsumption s = (Subsumption) o;
-				AnalyticsComponent left = (AnalyticsComponent) s.getLeft();
-				AnalyticsComponent right = (AnalyticsComponent) s.getRight();
+				VerifierComponent left = (VerifierComponent) s.getLeft();
+				VerifierComponent right = (VerifierComponent) s.getRight();
 
 				if (map.containsKey(left.getRuleName())) {
 					Set<String> set = map.get(left.getRuleName());

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/TestBase.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -17,7 +17,7 @@
 import org.drools.lang.descr.PackageDescr;
 import org.drools.rule.Package;
 import org.drools.verifier.PackageDescrFlattener;
-import org.drools.verifier.dao.AnalyticsData;
+import org.drools.verifier.dao.VerifierData;
 import org.drools.verifier.report.components.Cause;
 
 /**
@@ -100,7 +100,7 @@
 	}
 
 	public Collection<? extends Object> getTestData(InputStream stream,
-			AnalyticsData data) throws Exception {
+			VerifierData data) throws Exception {
 		Reader drlReader = new InputStreamReader(stream);
 		PackageDescr descr = new DrlParser().parse(drlReader);
 

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,78 @@
+package org.drools.verifier;
+
+import java.io.InputStreamReader;
+
+import junit.framework.TestCase;
+
+import org.drools.RuleBase;
+import org.drools.compiler.DrlParser;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.verifier.Verifier;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.report.components.Severity;
+
+public class VerifierTest extends TestCase {
+
+	public void testAnalyzer() throws Exception {
+		Verifier anal = new Verifier();
+
+		DrlParser p = new DrlParser();
+		InputStreamReader reader = new InputStreamReader(this.getClass().getResourceAsStream("Misc3.drl"));
+		PackageDescr pkg = p.parse(reader);
+		assertFalse(p.hasErrors());
+
+		anal.addPackageDescr(pkg);
+		anal.fireAnalysis();
+
+		VerifierResult result = anal.getResult();
+		assertNotNull(result);
+		assertEquals(0, result.getBySeverity(Severity.ERROR).size());
+		assertEquals(10, result.getBySeverity(Severity.WARNING).size());
+		assertEquals(1, result.getBySeverity(Severity.NOTE).size());
+
+
+		//check it again
+		anal = new Verifier();
+
+		p = new DrlParser();
+		reader = new InputStreamReader(this.getClass().getResourceAsStream("Misc3.drl"));
+		pkg = p.parse(reader);
+		assertFalse(p.hasErrors());
+
+		anal.addPackageDescr(pkg);
+		anal.fireAnalysis();
+
+		result = anal.getResult();
+		assertNotNull(result);
+		assertEquals(0, result.getBySeverity(Severity.ERROR).size());
+		assertEquals(10, result.getBySeverity(Severity.WARNING).size());
+		assertEquals(1, result.getBySeverity(Severity.NOTE).size());
+
+
+
+
+	}
+
+	public void testCacheKnowledgeBase() throws Exception {
+		Verifier anal = new Verifier();
+		DrlParser p = new DrlParser();
+		InputStreamReader reader = new InputStreamReader(this.getClass().getResourceAsStream("Misc3.drl"));
+		PackageDescr pkg = p.parse(reader);
+		assertFalse(p.hasErrors());
+
+		anal.addPackageDescr(pkg);
+		anal.fireAnalysis();
+
+		RuleBase original = Verifier.verifierKnowledgeBase;
+
+		Verifier anal2 = new Verifier();
+
+		assertSame(original, Verifier.verifierKnowledgeBase);
+
+		anal2.reloadAnalysisKnowledgeBase();
+		assertNotSame(original, Verifier.verifierKnowledgeBase);
+
+
+	}
+
+}

Added: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTestStandalone.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTestStandalone.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTestStandalone.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,148 @@
+package org.drools.verifier;
+
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.drools.compiler.DrlParser;
+import org.drools.compiler.Dialect.AnalysisResult;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.verifier.Verifier;
+import org.drools.verifier.components.VerifierClass;
+import org.drools.verifier.components.VerifierRule;
+import org.drools.verifier.components.Field;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.report.components.VerifierMessageBase;
+import org.drools.verifier.report.components.VerifierRangeCheckMessage;
+import org.drools.verifier.report.components.Cause;
+import org.drools.verifier.report.components.Severity;
+
+/**
+ * This is a sample file to launch a rule package from a rule source file.
+ */
+class VerifierTestStandalone {
+
+	public static final void main(String[] args) {
+		try {
+
+			Collection<String> fileNames = new ArrayList<String>();
+
+			// Test data
+			// fileNames.add("MissingRangesForDates.drl");
+			// fileNames.add("MissingRangesForDoubles.drl");
+			// fileNames.add("MissingRangesForInts.drl");
+			// fileNames.add("MissingRangesForVariables.drl");
+			// fileNames.add("Misc.drl");
+			// fileNames.add("Misc2.drl");
+			fileNames.add("Misc3.drl");
+			// fileNames.add("ConsequenceTest.drl");
+			// fileNames.add("optimisation/OptimisationRestrictionOrderTest.drl");
+			// fileNames.add("optimisation/OptimisationPatternOrderTest.drl");
+
+			DrlParser parser = new DrlParser();
+			Verifier a = new Verifier();
+
+			for (String s : fileNames) {
+				PackageDescr descr = parser.parse(new InputStreamReader(
+						Verifier.class.getResourceAsStream(s)));
+				a.addPackageDescr(descr);
+			}
+
+			a.fireAnalysis();
+			// System.out.print(a.getResultAsPlainText());
+			// System.out.print(a.getResultAsXML());
+			// a.writeComponentsHTML("/stash/");
+			// a.writeComponentsHTML("/Users/michaelneale/foo.html");
+			a.writeComponentsHTML("c:/");
+
+			VerifierResult result = a.getResult();
+			Collection<VerifierMessageBase> msgs = result
+					.getBySeverity(Severity.ERROR);
+
+			for (Iterator iterator = msgs.iterator(); iterator.hasNext();) {
+				VerifierMessageBase msg = (VerifierMessageBase) iterator
+						.next();
+				System.out.println("ERR: " + msg.getMessage());
+			}
+
+			msgs = result.getBySeverity(Severity.WARNING);
+			for (Iterator iterator = msgs.iterator(); iterator.hasNext();) {
+				VerifierMessageBase msg = (VerifierMessageBase) iterator
+						.next();
+				System.out.println("WARN (" + msg.getClass().getSimpleName()
+						+ "): " + msg.getMessage());
+				System.out.println("\t FAULT: ["
+						+ msg.getClass().getSimpleName() + "] "
+						+ msg.getFaulty());
+				if (msg instanceof VerifierMessage) {
+					System.out.println("\t CAUSES (message):");
+					VerifierMessage amsg = (VerifierMessage) msg;
+					for (Iterator iterator2 = amsg.getCauses().iterator(); iterator2
+							.hasNext();) {
+						Cause c = (Cause) iterator2.next();
+						System.out.println("\t\t ["
+								+ c.getClass().getSimpleName() + "]" + c);
+
+					}
+
+				} else if (msg instanceof VerifierRangeCheckMessage) {
+					System.out.println("\t CAUSES (range):");
+					VerifierRangeCheckMessage amsg = (VerifierRangeCheckMessage) msg;
+					for (Iterator iterator2 = amsg.getCauses().iterator(); iterator2
+							.hasNext();) {
+						Cause c = (Cause) iterator2.next();
+						System.out.println("\t\t" + c);
+
+					}
+
+				}
+			}
+
+			msgs = result.getBySeverity(Severity.NOTE);
+			for (Iterator iterator = msgs.iterator(); iterator.hasNext();) {
+				VerifierMessageBase msg = (VerifierMessageBase) iterator
+						.next();
+				System.out.println("NOTE: " + msg.getMessage());
+				System.out.println("\t" + msg.getFaulty());
+			}
+
+			Collection<VerifierClass> classes = result.getVerifierData()
+					.getAllClasses();
+			for (Iterator iterator = classes.iterator(); iterator.hasNext();) {
+				VerifierClass c = (VerifierClass) iterator.next();
+
+				Collection<VerifierRule> cr = result.getVerifierData()
+						.getRulesByClassId(c.getId());
+				System.err.println("Class rules:" + cr);
+				Set<Field> flds = c.getFields();
+				for (Iterator iterator2 = flds.iterator(); iterator2.hasNext();) {
+					Field f = (Field) iterator2.next();
+					cr = result.getVerifierData().getRulesByFieldId(f.getId());
+					System.err.println("Field rules: " + cr);
+
+				}
+			}
+
+			// System.err.println(a.getResultAsPlainText());
+			// System.out.println(result.toString());
+		} catch (Throwable t) {
+			t.printStackTrace();
+		}
+	}
+
+	private static void writeToFile(String fileName, String text) {
+		try {
+			FileWriter fstream = new FileWriter(fileName);
+			BufferedWriter out = new BufferedWriter(fstream);
+			out.write(text);
+			out.close();
+		} catch (Exception e) {
+			System.err.println(e.getMessage());
+		}
+	}
+}

Added: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysFalse/AlwaysFalsePatternsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysFalse/AlwaysFalsePatternsTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysFalse/AlwaysFalsePatternsTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,95 @@
+package org.drools.verifier.alwaysFalse;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.drools.StatelessSession;
+import org.drools.StatelessSessionResult;
+import org.drools.base.RuleNameMatchesAgendaFilter;
+import org.drools.verifier.TestBase;
+import org.drools.verifier.components.LiteralRestriction;
+import org.drools.verifier.components.Pattern;
+import org.drools.verifier.components.PatternPossibility;
+import org.drools.verifier.components.Restriction;
+import org.drools.verifier.components.VariableRestriction;
+import org.drools.verifier.components.VerifierComponent;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.report.components.Incompatibility;
+import org.drools.verifier.report.components.Severity;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.report.components.VerifierMessageBase;
+
+/**
+ * 
+ * @author Toni Rikkola
+ * 
+ */
+public class AlwaysFalsePatternsTest extends TestBase {
+
+//	public void testPatternsAlwaysFalse() throws Exception {
+//		StatelessSession session = getStatelessSession(this.getClass()
+//				.getResourceAsStream("Patterns.drl"));
+//
+//		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+//				"Pattern that is always false"));
+//
+//		VerifierResult result = VerifierResultFactory.createVerifierResult();
+//		Collection<Object> data = new ArrayList<Object>();
+//
+//		session.setGlobal("result", result);
+//
+//		final String ruleName1 = "rule 1";
+//		Pattern pattern = new Pattern();
+//
+//		Restriction r1 = new LiteralRestriction();
+//		Restriction r2 = new LiteralRestriction();
+//		Incompatibility i1 = new Incompatibility(r1, r2);
+//		PatternPossibility pp1 = new PatternPossibility();
+//		pp1.add(r1);
+//		pp1.add(r2);
+//
+//		Restriction r3 = new VariableRestriction();
+//		Restriction r4 = new VariableRestriction();
+//		Incompatibility i2 = new Incompatibility(r1, r2);
+//		PatternPossibility pp2 = new PatternPossibility();
+//		pp2.add(r1);
+//		pp2.add(r2);
+//
+//		data.add(pattern);
+//		data.add(r1);
+//		data.add(r2);
+//		data.add(r3);
+//		data.add(r4);
+//		data.add(i1);
+//		data.add(i2);
+//		data.add(pp1);
+//		data.add(pp2);
+//
+//		StatelessSessionResult sessionResult = 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 VerifierComponent[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.");
+//			}
+//		}
+//	}
+}
\ No newline at end of file

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/equivalence/EquivalentRulesTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -9,9 +9,9 @@
 import org.drools.StatelessSessionResult;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 import org.drools.verifier.TestBase;
-import org.drools.verifier.components.AnalyticsRule;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
+import org.drools.verifier.components.VerifierRule;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
 import org.drools.verifier.redundancy.RedundancyTestBase;
 import org.drools.verifier.report.components.Redundancy;
 
@@ -29,9 +29,9 @@
 		String ruleName1 = "Rule 1";
 		String ruleName2 = "Rule 2";
 
-		AnalyticsRule rule1 = new AnalyticsRule();
+		VerifierRule rule1 = new VerifierRule();
 		rule1.setRuleName(ruleName1);
-		AnalyticsRule rule2 = new AnalyticsRule();
+		VerifierRule rule2 = new VerifierRule();
 		rule2.setRuleName(ruleName2);
 
 		Redundancy r1 = new Redundancy(rule1, rule2);
@@ -40,7 +40,7 @@
 		data.add(rule2);
 		data.add(r1);
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session.executeWithResults(data);

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentPatternsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentPatternsTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentPatternsTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -8,17 +8,17 @@
 import org.drools.StatelessSession;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 import org.drools.verifier.TestBase;
-import org.drools.verifier.components.AnalyticsRule;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
-import org.drools.verifier.report.components.AnalyticsMessage;
-import org.drools.verifier.report.components.AnalyticsMessageBase;
+import org.drools.verifier.components.VerifierRule;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.report.components.VerifierMessageBase;
 import org.drools.verifier.report.components.Severity;
 
 /**
- *
+ * 
  * @author Toni Rikkola
- *
+ * 
  */
 public class IncoherentPatternsTest extends TestBase {
 
@@ -29,23 +29,23 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Incoherent Patterns in rule possibility"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("PatternsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.WARNING).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				AnalyticsRule rule = (AnalyticsRule) ((AnalyticsMessage) o)
+			if (o instanceof VerifierMessage) {
+				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
 						.getFaulty();
 				rulesThatHadErrors.add(rule.getRuleName());
 			}
@@ -70,23 +70,23 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Incoherent Patterns in rule possibility, variables"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("PatternsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.WARNING).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				AnalyticsRule rule = (AnalyticsRule) ((AnalyticsMessage) o)
+			if (o instanceof VerifierMessage) {
+				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
 						.getFaulty();
 				rulesThatHadErrors.add(rule.getRuleName());
 			}
@@ -113,23 +113,23 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent Patterns in rule possibility, ranges when not conflicts with lesser value"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("PatternsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.WARNING).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				AnalyticsRule rule = (AnalyticsRule) ((AnalyticsMessage) o)
+			if (o instanceof VerifierMessage) {
+				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
 						.getFaulty();
 				rulesThatHadErrors.add(rule.getRuleName());
 			}
@@ -154,23 +154,23 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent Patterns in rule possibility, ranges when not conflicts with greater value"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("PatternsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.WARNING).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				AnalyticsRule rule = (AnalyticsRule) ((AnalyticsMessage) o)
+			if (o instanceof VerifierMessage) {
+				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
 						.getFaulty();
 				rulesThatHadErrors.add(rule.getRuleName());
 			}
@@ -195,23 +195,23 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent Patterns in rule possibility, ranges when not conflicts with equal or unequal value"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("PatternsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.WARNING).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				AnalyticsRule rule = (AnalyticsRule) ((AnalyticsMessage) o)
+			if (o instanceof VerifierMessage) {
+				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
 						.getFaulty();
 				rulesThatHadErrors.add(rule.getRuleName());
 			}
@@ -236,23 +236,23 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent Patterns in rule possibility, ranges when not conflicts with equal or unequal variables"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("PatternsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.WARNING).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				AnalyticsRule rule = (AnalyticsRule) ((AnalyticsMessage) o)
+			if (o instanceof VerifierMessage) {
+				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
 						.getFaulty();
 				rulesThatHadErrors.add(rule.getRuleName());
 			}
@@ -276,23 +276,23 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent Patterns in rule possibility, ranges when not conflicts with equal value"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("PatternsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.WARNING).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				AnalyticsRule rule = (AnalyticsRule) ((AnalyticsMessage) o)
+			if (o instanceof VerifierMessage) {
+				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
 						.getFaulty();
 				rulesThatHadErrors.add(rule.getRuleName());
 			}
@@ -316,23 +316,23 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent Patterns in rule possibility, ranges when not conflicts with equal variable"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("PatternsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.WARNING).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				AnalyticsRule rule = (AnalyticsRule) ((AnalyticsMessage) o)
+			if (o instanceof VerifierMessage) {
+				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
 						.getFaulty();
 				rulesThatHadErrors.add(rule.getRuleName());
 			}

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentRestrictionsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentRestrictionsTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentRestrictionsTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -9,10 +9,10 @@
 import org.drools.base.RuleNameMatchesAgendaFilter;
 import org.drools.verifier.TestBase;
 import org.drools.verifier.components.Pattern;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
-import org.drools.verifier.report.components.AnalyticsMessage;
-import org.drools.verifier.report.components.AnalyticsMessageBase;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.report.components.VerifierMessageBase;
 import org.drools.verifier.report.components.Severity;
 
 /**
@@ -30,23 +30,23 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Incoherent LiteralRestrictions in pattern possibility"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("RestrictionsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.ERROR).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				Pattern pattern = (Pattern) ((AnalyticsMessage) o).getFaulty();
+			if (o instanceof VerifierMessage) {
+				Pattern pattern = (Pattern) ((VerifierMessage) o).getFaulty();
 				rulesThatHadErrors.add(pattern.getRuleName());
 			}
 		}
@@ -70,23 +70,23 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent LiteralRestrictions with ranges in pattern possibility, impossible ranges"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("RestrictionsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.ERROR).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				Pattern pattern = (Pattern) ((AnalyticsMessage) o).getFaulty();
+			if (o instanceof VerifierMessage) {
+				Pattern pattern = (Pattern) ((VerifierMessage) o).getFaulty();
 				rulesThatHadErrors.add(pattern.getRuleName());
 			}
 		}
@@ -109,23 +109,23 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent LiteralRestrictions with ranges in pattern possibility, impossible equality less or equal"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("RestrictionsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.ERROR).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				Pattern pattern = (Pattern) ((AnalyticsMessage) o).getFaulty();
+			if (o instanceof VerifierMessage) {
+				Pattern pattern = (Pattern) ((VerifierMessage) o).getFaulty();
 				rulesThatHadErrors.add(pattern.getRuleName());
 			}
 		}
@@ -149,23 +149,23 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent LiteralRestrictions with ranges in pattern possibility, impossible equality greater"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("RestrictionsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.ERROR).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				Pattern pattern = (Pattern) ((AnalyticsMessage) o).getFaulty();
+			if (o instanceof VerifierMessage) {
+				Pattern pattern = (Pattern) ((VerifierMessage) o).getFaulty();
 				rulesThatHadErrors.add(pattern.getRuleName());
 			}
 		}
@@ -188,23 +188,23 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent LiteralRestrictions with ranges in pattern possibility, impossible range"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("RestrictionsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.ERROR).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				Pattern pattern = (Pattern) ((AnalyticsMessage) o).getFaulty();
+			if (o instanceof VerifierMessage) {
+				Pattern pattern = (Pattern) ((VerifierMessage) o).getFaulty();
 				rulesThatHadErrors.add(pattern.getRuleName());
 			}
 		}
@@ -226,23 +226,23 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Incoherent VariableRestrictions in pattern possibility"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("RestrictionsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.ERROR).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				Pattern pattern = (Pattern) ((AnalyticsMessage) o).getFaulty();
+			if (o instanceof VerifierMessage) {
+				Pattern pattern = (Pattern) ((VerifierMessage) o).getFaulty();
 				rulesThatHadErrors.add(pattern.getRuleName());
 			}
 		}
@@ -267,23 +267,23 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent VariableRestrictions in pattern possibility, impossible range"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("RestrictionsTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.ERROR).iterator();
 
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				Pattern pattern = (Pattern) ((AnalyticsMessage) o).getFaulty();
+			if (o instanceof VerifierMessage) {
+				Pattern pattern = (Pattern) ((VerifierMessage) o).getFaulty();
 				rulesThatHadErrors.add(pattern.getRuleName());
 			}
 		}

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityBase.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -20,13 +20,13 @@
 	}
 
 	/**
-	 * Creates redundancy map from Redundancy objects, one rule may have several
-	 * redundancy dependencies.
+	 * Creates incompatibility map from Incompatibility objects, one rule may
+	 * have several incompatibility dependencies.
 	 * 
 	 * @param iter
 	 * @return
 	 */
-	protected Map<Cause, Set<Cause>> createOppositesMap(CauseType type,
+	protected Map<Cause, Set<Cause>> createIncompatibilityMap(CauseType type,
 			Iterator<Object> iter) {
 
 		Map<Cause, Set<Cause>> map = new HashMap<Cause, Set<Cause>>();

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityPatternsTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,101 @@
+package org.drools.verifier.incompatibility;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import org.drools.StatelessSession;
+import org.drools.StatelessSessionResult;
+import org.drools.base.RuleNameMatchesAgendaFilter;
+import org.drools.verifier.TestBase;
+import org.drools.verifier.components.LiteralRestriction;
+import org.drools.verifier.components.PatternPossibility;
+import org.drools.verifier.components.Restriction;
+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"));
+
+		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+				"Incompatible Patterns"));
+
+		Collection<Object> data = new ArrayList<Object>();
+
+		/*
+		 * Working pair
+		 */
+		PatternPossibility pp1 = new PatternPossibility();
+		PatternPossibility pp2 = new PatternPossibility();
+
+		Restriction r1 = new LiteralRestriction();
+		pp1.add(r1);
+
+		Restriction r2 = new LiteralRestriction();
+		pp2.add(r2);
+
+		Restriction r3 = new LiteralRestriction();
+		pp1.add(r3);
+
+		Restriction r4 = new LiteralRestriction();
+		pp2.add(r4);
+
+		Incompatibility o1 = new Incompatibility(r1, r2);
+		Incompatibility o2 = new Incompatibility(r3, r4);
+
+		/*
+		 * Another working pair.
+		 */
+		PatternPossibility pp3 = new PatternPossibility();
+		PatternPossibility pp4 = new PatternPossibility();
+
+		Restriction r5 = new LiteralRestriction();
+		pp3.add(r5);
+
+		Restriction r6 = new LiteralRestriction();
+		pp4.add(r6);
+
+		Restriction r7 = new LiteralRestriction();
+		pp3.add(r7);
+
+		Restriction r8 = new LiteralRestriction();
+		pp4.add(r8);
+
+		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);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<Cause, Set<Cause>> map = createIncompatibilityMap(
+				CauseType.PATTERN_POSSIBILITY, sessionResult.iterateObjects());
+
+		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.");
+		}
+	}
+}

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityRestrictionsTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -1,6 +1,265 @@
 package org.drools.verifier.incompatibility;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
 
+import org.drools.StatelessSession;
+import org.drools.StatelessSessionResult;
+import org.drools.base.RuleNameMatchesAgendaFilter;
+import org.drools.base.evaluators.Operator;
+import org.drools.verifier.TestBase;
+import org.drools.verifier.components.LiteralRestriction;
+import org.drools.verifier.components.Variable;
+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 {
 
+	public void testLiteralRestrictionsIncompatibilityLessOrEqual()
+			throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Restrictions.drl"));
+
+		session
+				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+						"Incompatible LiteralRestrictions with ranges in pattern possibility, impossible equality less or equal"));
+
+		Collection<Object> data = new ArrayList<Object>();
+
+		/*
+		 * Working pair
+		 */
+		LiteralRestriction r1 = new LiteralRestriction();
+		r1.setOperator(Operator.EQUAL);
+		r1.setPatternId(0);
+		r1.setFieldId(0);
+		r1.setValue("10");
+
+		LiteralRestriction r2 = new LiteralRestriction();
+		r2.setOperator(Operator.LESS);
+		r2.setPatternId(0);
+		r2.setFieldId(0);
+		r2.setValue("1");
+
+		/*
+		 * Pair that doesn't work.
+		 */
+		LiteralRestriction r3 = new LiteralRestriction();
+		r3.setOperator(Operator.GREATER_OR_EQUAL);
+		r3.setPatternId(1);
+		r3.setFieldId(1);
+		r3.setValue("1");
+
+		LiteralRestriction r4 = new LiteralRestriction();
+		r4.setOperator(Operator.EQUAL);
+		r4.setPatternId(1);
+		r4.setFieldId(1);
+		r4.setValue("10");
+
+		data.add(r1);
+		data.add(r2);
+		data.add(r3);
+		data.add(r4);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<Cause, Set<Cause>> map = createIncompatibilityMap(CauseType.RESTRICTION,
+				sessionResult.iterateObjects());
+
+		assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
+				.causeMapContains(map, r2, r1)));
+
+		if (!map.isEmpty()) {
+			fail("More incompatibilities than was expected.");
+		}
+	}
+
+	public void testLiteralRestrictionsIncompatibilityGreater()
+			throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Restrictions.drl"));
+
+		session
+				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+						"Incompatible LiteralRestrictions with ranges in pattern possibility, impossible equality greater"));
+
+		Collection<Object> data = new ArrayList<Object>();
+
+		/*
+		 * Working pair
+		 */
+		LiteralRestriction r1 = new LiteralRestriction();
+		r1.setOperator(Operator.GREATER);
+		r1.setPatternId(0);
+		r1.setFieldId(0);
+		r1.setValue("10");
+
+		LiteralRestriction r2 = new LiteralRestriction();
+		r2.setOperator(Operator.EQUAL);
+		r2.setPatternId(0);
+		r2.setFieldId(0);
+		r2.setValue("1");
+
+		/*
+		 * Pair that doesn't work.
+		 */
+		LiteralRestriction r3 = new LiteralRestriction();
+		r3.setOperator(Operator.GREATER_OR_EQUAL);
+		r3.setPatternId(1);
+		r3.setFieldId(1);
+		r3.setValue("1");
+
+		LiteralRestriction r4 = new LiteralRestriction();
+		r4.setOperator(Operator.EQUAL);
+		r4.setPatternId(1);
+		r4.setFieldId(1);
+		r4.setValue("10");
+
+		data.add(r1);
+		data.add(r2);
+		data.add(r3);
+		data.add(r4);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<Cause, Set<Cause>> map = createIncompatibilityMap(CauseType.RESTRICTION,
+				sessionResult.iterateObjects());
+
+		assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
+				.causeMapContains(map, r2, r1)));
+
+		if (!map.isEmpty()) {
+			fail("More incompatibilities than was expected.");
+		}
+	}
+
+	public void testLiteralRestrictionsIncompatibilityImpossibleRange()
+			throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Restrictions.drl"));
+
+		session
+				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+						"Incompatible LiteralRestrictions with ranges in pattern possibility, impossible range"));
+
+		Collection<Object> data = new ArrayList<Object>();
+
+		/*
+		 * Working pair
+		 */
+		LiteralRestriction r1 = new LiteralRestriction();
+		r1.setOperator(Operator.GREATER);
+		r1.setPatternId(0);
+		r1.setFieldId(0);
+		r1.setValue("10");
+
+		LiteralRestriction r2 = new LiteralRestriction();
+		r2.setOperator(Operator.LESS);
+		r2.setPatternId(0);
+		r2.setFieldId(0);
+		r2.setValue("10");
+
+		/*
+		 * Pair that doesn't work.
+		 */
+		LiteralRestriction r3 = new LiteralRestriction();
+		r3.setOperator(Operator.GREATER_OR_EQUAL);
+		r3.setPatternId(1);
+		r3.setFieldId(1);
+		r3.setValue("1");
+
+		LiteralRestriction r4 = new LiteralRestriction();
+		r4.setOperator(Operator.EQUAL);
+		r4.setPatternId(1);
+		r4.setFieldId(1);
+		r4.setValue("10");
+
+		data.add(r1);
+		data.add(r2);
+		data.add(r3);
+		data.add(r4);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<Cause, Set<Cause>> map = createIncompatibilityMap(CauseType.RESTRICTION,
+				sessionResult.iterateObjects());
+
+		assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
+				.causeMapContains(map, r2, r1)));
+
+		if (!map.isEmpty()) {
+			fail("More incompatibilities than was expected.");
+		}
+	}
+
+	public void testVariableRestrictionsIncompatibilityImpossibleRange()
+			throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Restrictions.drl"));
+
+		session
+				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+						"Incoherent VariableRestrictions in pattern possibility, impossible range"));
+
+		Collection<Object> data = new ArrayList<Object>();
+
+		/*
+		 * Working pair
+		 */
+		Variable variable1 = new Variable();
+		variable1.setObjectId(0);
+		variable1.setObjectType(VerifierComponentType.FIELD);
+
+		VariableRestriction r1 = new VariableRestriction();
+		r1.setOperator(Operator.GREATER);
+		r1.setPatternId(0);
+		r1.setFieldId(0);
+		r1.setVariable(variable1);
+
+		VariableRestriction r2 = new VariableRestriction();
+		r2.setOperator(Operator.LESS);
+		r2.setPatternId(0);
+		r2.setFieldId(0);
+		r2.setVariable(variable1);
+
+		/*
+		 * Pair that doesn't work.
+		 */
+		Variable variable2 = new Variable();
+		variable2.setObjectId(1);
+		variable2.setObjectType(VerifierComponentType.FIELD);
+
+		VariableRestriction r3 = new VariableRestriction();
+		r3.setOperator(Operator.GREATER_OR_EQUAL);
+		r3.setPatternId(1);
+		r3.setFieldId(1);
+		r3.setVariable(variable2);
+
+		VariableRestriction r4 = new VariableRestriction();
+		r4.setOperator(Operator.EQUAL);
+		r4.setPatternId(1);
+		r4.setFieldId(1);
+		r4.setVariable(variable2);
+
+		data.add(r1);
+		data.add(r2);
+		data.add(r3);
+		data.add(r4);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<Cause, Set<Cause>> map = createIncompatibilityMap(CauseType.RESTRICTION,
+				sessionResult.iterateObjects());
+
+		assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
+				.causeMapContains(map, r2, r1)));
+
+		if (!map.isEmpty()) {
+			fail("More incompatibilities than was expected.");
+		}
+	}
 }

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/missingEquality/MissingEqualityTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/missingEquality/MissingEqualityTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/missingEquality/MissingEqualityTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -9,10 +9,10 @@
 import org.drools.verifier.TestBase;
 import org.drools.verifier.components.LiteralRestriction;
 import org.drools.verifier.components.VariableRestriction;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
-import org.drools.verifier.report.components.AnalyticsMessage;
-import org.drools.verifier.report.components.AnalyticsMessageBase;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.report.components.VerifierMessageBase;
 import org.drools.verifier.report.components.Cause;
 import org.drools.verifier.report.components.Severity;
 
@@ -25,23 +25,23 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Missing restriction in LiteralRestrictions"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingEqualityTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.WARNING).iterator();
 
 		Collection<String> ruleNames = new ArrayList<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				Cause cause = ((AnalyticsMessage) o).getFaulty();
+			if (o instanceof VerifierMessage) {
+				Cause cause = ((VerifierMessage) o).getFaulty();
 				String name = ((LiteralRestriction) cause).getRuleName();
 
 				ruleNames.add(name);
@@ -65,23 +65,23 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Missing restriction in VariableRestrictions"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("MissingEqualityTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.WARNING).iterator();
 
 		Collection<String> ruleNames = new ArrayList<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				Cause cause = ((AnalyticsMessage) o).getFaulty();
+			if (o instanceof VerifierMessage) {
+				Cause cause = ((VerifierMessage) o).getFaulty();
 				String name = ((VariableRestriction) cause).getRuleName();
 
 				ruleNames.add(name);

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositePatternsTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,99 @@
+package org.drools.verifier.opposites;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import org.drools.StatelessSession;
+import org.drools.StatelessSessionResult;
+import org.drools.base.RuleNameMatchesAgendaFilter;
+import org.drools.verifier.TestBase;
+import org.drools.verifier.components.LiteralRestriction;
+import org.drools.verifier.components.PatternPossibility;
+import org.drools.verifier.components.Restriction;
+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"));
+
+		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+				"Opposite Patterns"));
+
+		Collection<Object> data = new ArrayList<Object>();
+
+		/*
+		 * Working pair
+		 */
+		PatternPossibility pp1 = new PatternPossibility();
+		PatternPossibility pp2 = new PatternPossibility();
+
+		Restriction r1 = new LiteralRestriction();
+		pp1.add(r1);
+
+		Restriction r2 = new LiteralRestriction();
+		pp2.add(r2);
+
+		Restriction r3 = new LiteralRestriction();
+		pp1.add(r3);
+
+		Restriction r4 = new LiteralRestriction();
+		pp2.add(r4);
+
+		Opposites o1 = new Opposites(r1, r2);
+		Opposites o2 = new Opposites(r3, r4);
+
+		/*
+		 * Pair that doesn't work.
+		 */
+		PatternPossibility pp3 = new PatternPossibility();
+		PatternPossibility pp4 = new PatternPossibility();
+
+		Restriction r5 = new LiteralRestriction();
+		pp3.add(r5);
+
+		Restriction r6 = new LiteralRestriction();
+		pp4.add(r6);
+
+		Restriction r7 = new LiteralRestriction();
+		pp3.add(r7);
+
+		Restriction r8 = new LiteralRestriction();
+		pp4.add(r8);
+
+		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);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<Cause, Set<Cause>> map = createOppositesMap(
+				CauseType.PATTERN_POSSIBILITY, sessionResult.iterateObjects());
+
+		assertTrue((TestBase.causeMapContains(map, pp1, pp2) ^ TestBase
+				.causeMapContains(map, pp2, pp1)));
+
+		if (!map.isEmpty()) {
+			fail("More opposites than was expected.");
+		}
+	}
+}

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositeRestrictionsTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,320 @@
+package org.drools.verifier.opposites;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import org.drools.StatelessSession;
+import org.drools.StatelessSessionResult;
+import org.drools.base.RuleNameMatchesAgendaFilter;
+import org.drools.base.evaluators.MatchesEvaluatorsDefinition;
+import org.drools.base.evaluators.Operator;
+import org.drools.verifier.TestBase;
+import org.drools.verifier.components.LiteralRestriction;
+import org.drools.verifier.components.Variable;
+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 {
+
+	public void testLiteralRestrictionOpposite() throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Restrictions.drl"));
+
+		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+				"Opposite LiteralRestrictions"));
+
+		Collection<Object> data = new ArrayList<Object>();
+
+		LiteralRestriction r1 = new LiteralRestriction();
+		r1.setFieldId(0);
+		r1.setOperator(Operator.EQUAL);
+		r1.setValue("1");
+
+		LiteralRestriction r2 = new LiteralRestriction();
+		r2.setFieldId(0);
+		r2.setOperator(Operator.NOT_EQUAL);
+		r2.setValue("1");
+
+		LiteralRestriction r3 = new LiteralRestriction();
+		r3.setFieldId(0);
+		r3.setOperator(Operator.EQUAL);
+		r3.setValue("1.0");
+
+		LiteralRestriction r4 = new LiteralRestriction();
+		r4.setFieldId(0);
+		r4.setOperator(Operator.NOT_EQUAL);
+		r4.setValue("1.0");
+
+		LiteralRestriction r5 = new LiteralRestriction();
+		r5.setFieldId(0);
+		r5.setOperator(MatchesEvaluatorsDefinition.MATCHES);
+		r5.setValue("foo");
+
+		LiteralRestriction r6 = new LiteralRestriction();
+		r6.setFieldId(0);
+		r6.setOperator(MatchesEvaluatorsDefinition.NOT_MATCHES);
+		r6.setValue("foo");
+
+		data.add(r1);
+		data.add(r2);
+		data.add(r3);
+		data.add(r4);
+		data.add(r5);
+		data.add(r6);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<Cause, Set<Cause>> map = createOppositesMap(CauseType.RESTRICTION,
+				sessionResult.iterateObjects());
+
+		assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
+				.causeMapContains(map, r2, r1)));
+		assertTrue((TestBase.causeMapContains(map, r3, r4) ^ TestBase
+				.causeMapContains(map, r4, r3)));
+		assertTrue((TestBase.causeMapContains(map, r5, r6) ^ TestBase
+				.causeMapContains(map, r6, r5)));
+
+		if (!map.isEmpty()) {
+			fail("More opposites than was expected.");
+		}
+	}
+
+	public void testLiteralRestrictionOppositeWithRangesGreaterOrEqualAndLess()
+			throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Restrictions.drl"));
+
+		session
+				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+						"Opposite LiteralRestrictions with ranges, greater or equal - less"));
+
+		Collection<Object> data = new ArrayList<Object>();
+
+		LiteralRestriction r1 = new LiteralRestriction();
+		r1.setFieldId(0);
+		r1.setOperator(Operator.GREATER_OR_EQUAL);
+		r1.setValue("1");
+
+		LiteralRestriction r2 = new LiteralRestriction();
+		r2.setFieldId(0);
+		r2.setOperator(Operator.LESS);
+		r2.setValue("1");
+
+		data.add(r1);
+		data.add(r2);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<Cause, Set<Cause>> map = createOppositesMap(CauseType.RESTRICTION,
+				sessionResult.iterateObjects());
+
+		assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
+				.causeMapContains(map, r2, r1)));
+
+		if (!map.isEmpty()) {
+			fail("More opposites than was expected.");
+		}
+	}
+
+	public void testLiteralRestrictionOppositeWithRangesGreaterAndLessOrEqual()
+			throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Restrictions.drl"));
+
+		session
+				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+						"Opposite LiteralRestrictions with ranges, greater - less or equal"));
+
+		Collection<Object> data = new ArrayList<Object>();
+
+		LiteralRestriction r1 = new LiteralRestriction();
+		r1.setFieldId(0);
+		r1.setOperator(Operator.GREATER);
+		r1.setValue("1");
+
+		LiteralRestriction r2 = new LiteralRestriction();
+		r2.setFieldId(0);
+		r2.setOperator(Operator.LESS_OR_EQUAL);
+		r2.setValue("1");
+
+		data.add(r1);
+		data.add(r2);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<Cause, Set<Cause>> map = createOppositesMap(CauseType.RESTRICTION,
+				sessionResult.iterateObjects());
+
+		assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
+				.causeMapContains(map, r2, r1)));
+
+		if (!map.isEmpty()) {
+			fail("More opposites than was expected.");
+		}
+	}
+
+	public void testLiteralRestrictionOppositeWithRangesLessAndGreaterForIntsAndDates()
+			throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Restrictions.drl"));
+
+		session
+				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+						"Opposite LiteralRestrictions with ranges, less - greater for ints and dates"));
+
+		Collection<Object> data = new ArrayList<Object>();
+
+		LiteralRestriction r1 = new LiteralRestriction();
+		r1.setFieldId(0);
+		r1.setOperator(Operator.GREATER);
+		r1.setValue("0");
+
+		LiteralRestriction r2 = new LiteralRestriction();
+		r2.setFieldId(0);
+		r2.setOperator(Operator.LESS);
+		r2.setValue("1");
+
+		data.add(r1);
+		data.add(r2);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<Cause, Set<Cause>> map = createOppositesMap(CauseType.RESTRICTION,
+				sessionResult.iterateObjects());
+
+		assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
+				.causeMapContains(map, r2, r1)));
+
+		if (!map.isEmpty()) {
+			fail("More opposites than was expected.");
+		}
+	}
+
+	public void testLiteralRestrictionOppositeWithRangesLessOrEqualAndGreaterOrEqualForIntsAndDates()
+			throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Restrictions.drl"));
+
+		session
+				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+						"Opposite LiteralRestrictions with ranges, less or equal - greater or equal for ints and dates"));
+
+		Collection<Object> data = new ArrayList<Object>();
+
+		LiteralRestriction r1 = new LiteralRestriction();
+		r1.setFieldId(0);
+		r1.setOperator(Operator.GREATER_OR_EQUAL);
+		r1.setValue("1");
+
+		LiteralRestriction r2 = new LiteralRestriction();
+		r2.setFieldId(0);
+		r2.setOperator(Operator.LESS_OR_EQUAL);
+		r2.setValue("0");
+
+		data.add(r1);
+		data.add(r2);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<Cause, Set<Cause>> map = createOppositesMap(CauseType.RESTRICTION,
+				sessionResult.iterateObjects());
+
+		assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
+				.causeMapContains(map, r2, r1)));
+
+		if (!map.isEmpty()) {
+			fail("More opposites than was expected.");
+		}
+	}
+
+	public void testVariableRestrictionOpposite() throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Restrictions.drl"));
+
+		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+				"Opposite VariableRestrictions in pattern possibility"));
+
+		Collection<Object> data = new ArrayList<Object>();
+
+		/*
+		 * Working pair
+		 */
+		Variable variable1 = new Variable();
+		variable1.setObjectId(1);
+		variable1.setObjectType(VerifierComponentType.FIELD);
+
+		VariableRestriction r1 = new VariableRestriction();
+		r1.setPatternId(0);
+		r1.setFieldId(0);
+		r1.setOperator(Operator.GREATER_OR_EQUAL);
+		r1.setVariable(variable1);
+
+		VariableRestriction r2 = new VariableRestriction();
+		r1.setPatternId(0);
+		r2.setFieldId(0);
+		r2.setOperator(Operator.LESS);
+		r2.setVariable(variable1);
+
+		String containsOperator = "contains";
+
+		Variable variable2 = new Variable();
+		variable2.setObjectId(2);
+		variable2.setObjectType(VerifierComponentType.FIELD);
+
+		VariableRestriction r3 = new VariableRestriction();
+		r3.setPatternId(1);
+		r3.setFieldId(1);
+		r3.setOperator(Operator.determineOperator(containsOperator, false));
+		r3.setVariable(variable2);
+
+		VariableRestriction r4 = new VariableRestriction();
+		r4.setPatternId(1);
+		r4.setFieldId(1);
+		r4.setOperator(Operator.determineOperator(containsOperator, true));
+		r4.setVariable(variable2);
+
+		/*
+		 * Pair that doesn't work.
+		 */
+		Variable variable3 = new Variable();
+		variable3.setObjectId(3);
+		variable3.setObjectType(VerifierComponentType.FIELD);
+
+		VariableRestriction r5 = new VariableRestriction();
+		r5.setPatternId(2);
+		r5.setFieldId(1);
+		r5.setOperator(Operator.GREATER_OR_EQUAL);
+		r5.setVariable(variable3);
+
+		VariableRestriction r6 = new VariableRestriction();
+		r6.setPatternId(2);
+		r6.setFieldId(1);
+		r6.setOperator(Operator.EQUAL);
+		r6.setVariable(variable3);
+
+		data.add(r1);
+		data.add(r2);
+		data.add(r3);
+		data.add(r4);
+		data.add(r5);
+		data.add(r6);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<Cause, Set<Cause>> map = createOppositesMap(CauseType.RESTRICTION,
+				sessionResult.iterateObjects());
+
+		assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
+				.causeMapContains(map, r2, r1)));
+		assertTrue((TestBase.causeMapContains(map, r3, r4) ^ TestBase
+				.causeMapContains(map, r4, r3)));
+
+		if (!map.isEmpty()) {
+			fail("More opposites than was expected.");
+		}
+	}
+}

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositesBase.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,56 @@
+package org.drools.verifier.opposites;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import org.drools.verifier.TestBase;
+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);
+	}
+
+	/**
+	 * 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) {
+
+		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 (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;
+	}
+}

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/optimisation/PatternOrderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/optimisation/PatternOrderTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/optimisation/PatternOrderTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -7,11 +7,11 @@
 import org.drools.StatelessSession;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 import org.drools.verifier.TestBase;
-import org.drools.verifier.components.AnalyticsComponent;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
-import org.drools.verifier.report.components.AnalyticsMessage;
-import org.drools.verifier.report.components.AnalyticsMessageBase;
+import org.drools.verifier.components.VerifierComponent;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.report.components.VerifierMessageBase;
 import org.drools.verifier.report.components.Severity;
 
 public class PatternOrderTest extends TestBase {
@@ -23,24 +23,24 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Optimise evals inside pattern"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("OptimisationPatternOrderTest.drl"),
-				result.getAnalyticsData());
+				result.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		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 AnalyticsMessage) {
-				String name = ((AnalyticsMessage) o).getCauses().toArray(
-						new AnalyticsComponent[2])[0].getRuleName();
+			if (o instanceof VerifierMessage) {
+				String name = ((VerifierMessage) o).getCauses().toArray(
+						new VerifierComponent[2])[0].getRuleName();
 
 				ruleNames.add(name);
 			}

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/optimisation/RestrictionOrderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/optimisation/RestrictionOrderTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/optimisation/RestrictionOrderTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -10,15 +10,15 @@
 import org.drools.base.RuleNameMatchesAgendaFilter;
 import org.drools.base.evaluators.Operator;
 import org.drools.verifier.TestBase;
-import org.drools.verifier.components.AnalyticsComponent;
+import org.drools.verifier.components.VerifierComponent;
 import org.drools.verifier.components.LiteralRestriction;
 import org.drools.verifier.components.OperatorDescr;
 import org.drools.verifier.components.Pattern;
 import org.drools.verifier.components.Restriction;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
-import org.drools.verifier.report.components.AnalyticsMessage;
-import org.drools.verifier.report.components.AnalyticsMessageBase;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.report.components.VerifierMessageBase;
 import org.drools.verifier.report.components.Cause;
 import org.drools.verifier.report.components.Severity;
 
@@ -31,23 +31,23 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Optimise restrictions inside operator"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("OptimisationRestrictionOrderTest.drl"),
-				result.getAnalyticsData());
+				result.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		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 AnalyticsMessage) {
-				String name = ((AnalyticsMessage) o).getCauses().toArray(
+			if (o instanceof VerifierMessage) {
+				String name = ((VerifierMessage) o).getCauses().toArray(
 						new Restriction[2])[0].getRuleName();
 
 				ruleNames.add(name);
@@ -130,21 +130,21 @@
 		r6.setOrderNumber(3);
 		testData.add(r6);
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		Iterator<VerifierMessageBase> iter = result.getBySeverity(
 				Severity.NOTE).iterator();
 
 		Map<Cause, Cause> pairs = new HashMap<Cause, Cause>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
-			if (o instanceof AnalyticsMessage) {
-				Cause left = ((AnalyticsMessage) o).getCauses().toArray(
+			if (o instanceof VerifierMessage) {
+				Cause left = ((VerifierMessage) o).getCauses().toArray(
 						new Cause[2])[0];
-				Cause right = ((AnalyticsMessage) o).getCauses().toArray(
+				Cause right = ((VerifierMessage) o).getCauses().toArray(
 						new Cause[2])[1];
 
 				pairs.put(left, right);
@@ -170,24 +170,24 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Optimise predicates inside operator"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
 				.getResourceAsStream("OptimisationRestrictionOrderTest.drl"),
-				result.getAnalyticsData());
+				result.getVerifierData());
 
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
 
-		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
+		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 AnalyticsMessage) {
-				String name = ((AnalyticsMessage) o).getCauses().toArray(
-						new AnalyticsComponent[2])[0].getRuleName();
+			if (o instanceof VerifierMessage) {
+				String name = ((VerifierMessage) o).getCauses().toArray(
+						new VerifierComponent[2])[0].getRuleName();
 
 				ruleNames.add(name);
 			}

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/overlaps/OverlappingRestrictionsTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -0,0 +1,117 @@
+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.verifier.TestBase;
+import org.drools.verifier.components.VerifierComponent;
+import org.drools.verifier.components.Field;
+import org.drools.verifier.components.LiteralRestriction;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.report.components.VerifierMessageBase;
+import org.drools.verifier.report.components.Severity;
+import org.drools.verifier.report.components.Subsumption;
+
+public class OverlappingRestrictionsTest extends TestBase {
+
+	public void testOverlap() throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Restrictions.drl"));
+
+		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+				"Find overlapping restrictions"));
+
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
+
+		Collection<Object> data = new ArrayList<Object>();
+
+		/*
+		 * There restrictions overlap
+		 */
+		String ruleName1 = "Rule 1";
+
+		Field field1 = new Field();
+
+		LiteralRestriction lr1 = new LiteralRestriction();
+		lr1.setRuleName(ruleName1);
+		lr1.setFieldId(field1.getId());
+		lr1.setValue("1.0");
+		lr1.setOperator(Operator.GREATER);
+
+		LiteralRestriction lr2 = new LiteralRestriction();
+		lr2.setRuleName(ruleName1);
+		lr2.setFieldId(field1.getId());
+		lr2.setValue("2.0");
+		lr2.setOperator(Operator.GREATER);
+
+		Subsumption s1 = new Subsumption(lr1, lr2);
+
+		/*
+		 * There restrictions do not overlap
+		 */
+		String ruleName2 = "Rule 2";
+
+		Field field2 = new Field();
+
+		LiteralRestriction lr3 = new LiteralRestriction();
+		lr3.setRuleName(ruleName2);
+		lr3.setFieldId(field2.getId());
+		lr3.setValue("1.0");
+		lr3.setOperator(Operator.GREATER);
+
+		LiteralRestriction lr4 = new LiteralRestriction();
+		lr4.setRuleName(ruleName2);
+		lr4.setFieldId(field2.getId());
+		lr4.setValue("2.0");
+		lr4.setOperator(Operator.GREATER);
+
+		LiteralRestriction lr5 = new LiteralRestriction();
+		lr5.setRuleName(ruleName2);
+		lr5.setFieldId(field2.getId());
+		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 VerifierComponent[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/NotesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/NotesTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/NotesTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -9,10 +9,10 @@
 import org.drools.verifier.components.LiteralRestriction;
 import org.drools.verifier.components.PatternPossibility;
 import org.drools.verifier.components.RulePossibility;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
-import org.drools.verifier.report.components.AnalyticsMessage;
-import org.drools.verifier.report.components.AnalyticsMessageBase;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.report.components.VerifierMessageBase;
 import org.drools.verifier.report.components.Redundancy;
 import org.drools.verifier.report.components.RedundancyType;
 import org.drools.verifier.report.components.Severity;
@@ -44,18 +44,18 @@
 		objects.add(redundancy);
 		objects.add(possibility);
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(objects);
 
-		Collection<AnalyticsMessageBase> notes = result
+		Collection<VerifierMessageBase> notes = result
 				.getBySeverity(Severity.NOTE);
 
 		// Has at least one item.
 		assertEquals(1, notes.size());
 
-		AnalyticsMessageBase note = notes.iterator().next();
+		VerifierMessageBase note = notes.iterator().next();
 		assertTrue(note.getFaulty().equals(redundancy));
 	}
 
@@ -85,18 +85,18 @@
 		objects.add(redundancy);
 		objects.add(possibility);
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(objects);
 
-		Collection<AnalyticsMessageBase> notes = result
+		Collection<VerifierMessageBase> notes = result
 				.getBySeverity(Severity.NOTE);
 
 		// Has at least one item.
 		assertEquals(1, notes.size());
 
-		AnalyticsMessageBase note = notes.iterator().next();
+		VerifierMessageBase note = notes.iterator().next();
 		assertTrue(note.getFaulty().equals(redundancy));
 	}
 }

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundancyTestBase.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundancyTestBase.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundancyTestBase.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -7,7 +7,7 @@
 import java.util.Set;
 
 import org.drools.verifier.TestBase;
-import org.drools.verifier.components.AnalyticsComponent;
+import org.drools.verifier.components.VerifierComponent;
 import org.drools.verifier.report.components.Cause;
 import org.drools.verifier.report.components.CauseType;
 import org.drools.verifier.report.components.Redundancy;
@@ -33,8 +33,8 @@
 			Object o = (Object) iter.next();
 			if (o instanceof Redundancy) {
 				Redundancy r = (Redundancy) o;
-				AnalyticsComponent left = (AnalyticsComponent) r.getLeft();
-				AnalyticsComponent right = (AnalyticsComponent) r.getRight();
+				VerifierComponent left = (VerifierComponent) r.getLeft();
+				VerifierComponent right = (VerifierComponent) r.getRight();
 
 				if (map.containsKey(left.getRuleName())) {
 					Set<String> set = map.get(left.getRuleName());

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantConsequencesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantConsequencesTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantConsequencesTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -8,8 +8,8 @@
 import org.drools.StatelessSessionResult;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 import org.drools.verifier.TestBase;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
 
 public class RedundantConsequencesTest extends RedundancyTestBase {
 
@@ -20,10 +20,10 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find redundant TextConsequences"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> data = getTestData(this.getClass()
 				.getResourceAsStream("ConsequenceRedundancyTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantPossibilitiesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantPossibilitiesTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantPossibilitiesTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -9,13 +9,13 @@
 import org.drools.StatelessSessionResult;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 import org.drools.verifier.TestBase;
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.LiteralRestriction;
 import org.drools.verifier.components.Pattern;
 import org.drools.verifier.components.PatternPossibility;
 import org.drools.verifier.components.RulePossibility;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
 import org.drools.verifier.report.components.Cause;
 import org.drools.verifier.report.components.CauseType;
 import org.drools.verifier.report.components.Redundancy;
@@ -32,7 +32,7 @@
 
 		Collection<Object> data = new ArrayList<Object>();
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		String ruleName1 = "Rule 1";
@@ -92,7 +92,7 @@
 
 		Collection<Object> data = new ArrayList<Object>();
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		/*
@@ -101,9 +101,9 @@
 		String ruleName1 = "Rule 1";
 		String ruleName2 = "Rule 2";
 
-		AnalyticsRule r1 = new AnalyticsRule();
+		VerifierRule r1 = new VerifierRule();
 		r1.setRuleName(ruleName1);
-		AnalyticsRule r2 = new AnalyticsRule();
+		VerifierRule r2 = new VerifierRule();
 		r2.setRuleName(ruleName2);
 
 		PatternPossibility pp1 = new PatternPossibility();
@@ -140,9 +140,9 @@
 		String ruleName3 = "Rule 3";
 		String ruleName4 = "Rule 4";
 
-		AnalyticsRule r3 = new AnalyticsRule();
+		VerifierRule r3 = new VerifierRule();
 		r3.setRuleName(ruleName3);
-		AnalyticsRule r4 = new AnalyticsRule();
+		VerifierRule r4 = new VerifierRule();
 		r4.setRuleName(ruleName4);
 
 		PatternPossibility pp3 = new PatternPossibility();

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantRestrictionsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantRestrictionsTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantRestrictionsTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -8,22 +8,22 @@
 import org.drools.StatelessSessionResult;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 import org.drools.verifier.TestBase;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
 
 public class RedundantRestrictionsTest extends RedundancyTestBase {
 
-	public void testAnalyticsLiteralRestrictionRedundancy() throws Exception {
+	public void testVerifierLiteralRestrictionRedundancy() throws Exception {
 		StatelessSession session = getStatelessSession(this.getClass()
 				.getResourceAsStream("Restrictions.drl"));
 
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find redundant LiteralRestriction"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> data = getTestData(this.getClass()
 				.getResourceAsStream("RedundancyLiteralRestrictionTest.drl"),
-				result.getAnalyticsData());
+				result.getVerifierData());
 
 		session.setGlobal("result", result);
 
@@ -50,17 +50,17 @@
 		}
 	}
 
-	public void testAnalyticsVariableRestrictionRedundancy() throws Exception {
+	public void testVerifierVariableRestrictionRedundancy() throws Exception {
 		StatelessSession session = getStatelessSession(this.getClass()
 				.getResourceAsStream("Restrictions.drl"));
 
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find redundant VariableRestriction"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> data = getTestData(this.getClass()
 				.getResourceAsStream("SubsumptionVariableRestrictionTest.drl"),
-				result.getAnalyticsData());
+				result.getVerifierData());
 
 		session.setGlobal("result", result);
 

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantRulesAndPatternsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantRulesAndPatternsTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantRulesAndPatternsTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -9,10 +9,10 @@
 import org.drools.StatelessSessionResult;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 import org.drools.verifier.TestBase;
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.TextConsequence;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
 import org.drools.verifier.report.components.Redundancy;
 
 public class RedundantRulesAndPatternsTest extends RedundancyTestBase {
@@ -29,9 +29,9 @@
 		String ruleName1 = "Rule 1";
 		String ruleName2 = "Rule 2";
 
-		AnalyticsRule rule1 = new AnalyticsRule();
+		VerifierRule rule1 = new VerifierRule();
 		rule1.setRuleName(ruleName1);
-		AnalyticsRule rule2 = new AnalyticsRule();
+		VerifierRule rule2 = new VerifierRule();
 		rule2.setRuleName(ruleName2);
 
 		TextConsequence c1 = new TextConsequence();
@@ -49,7 +49,7 @@
 		data.add(r1);
 		data.add(r2);
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session.executeWithResults(data);
@@ -72,10 +72,10 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find redundant Patterns with restrictions"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> data = getTestData(this.getClass()
 				.getResourceAsStream("PatternRedundancyTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 
@@ -121,10 +121,10 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find redundant Patterns without restrictions"));
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		Collection<? extends Object> data = getTestData(this.getClass()
 				.getResourceAsStream("PatternRedundancyTest.drl"), result
-				.getAnalyticsData());
+				.getVerifierData());
 
 		session.setGlobal("result", result);
 

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	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/WarningsTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -6,12 +6,12 @@
 import org.drools.StatelessSession;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 import org.drools.verifier.TestBase;
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.RulePossibility;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
-import org.drools.verifier.report.components.AnalyticsMessage;
-import org.drools.verifier.report.components.AnalyticsMessageBase;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.report.components.VerifierMessage;
+import org.drools.verifier.report.components.VerifierMessageBase;
 import org.drools.verifier.report.components.Redundancy;
 import org.drools.verifier.report.components.RedundancyType;
 import org.drools.verifier.report.components.Severity;
@@ -27,8 +27,8 @@
 
 		Collection<Object> objects = new ArrayList<Object>();
 
-		AnalyticsRule rule1 = new AnalyticsRule();
-		AnalyticsRule rule2 = new AnalyticsRule();
+		VerifierRule rule1 = new VerifierRule();
+		VerifierRule rule2 = new VerifierRule();
 
 		Redundancy ruleRedundancy = new Redundancy(
 				RedundancyType.STRONG, rule1, rule2);
@@ -53,18 +53,18 @@
 		objects.add(rulePossibilityRedundancy1);
 		objects.add(rulePossibilityRedundancy2);
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(objects);
 
-		Collection<AnalyticsMessageBase> notes = result
+		Collection<VerifierMessageBase> notes = result
 				.getBySeverity(Severity.WARNING);
 
 		// Has at least one item.
 		assertEquals(1, notes.size());
 
-		AnalyticsMessageBase warning = notes.iterator().next();
+		VerifierMessageBase warning = notes.iterator().next();
 		assertTrue(warning.getFaulty().equals(rulePossibilityRedundancy1));
 	}
 
@@ -77,8 +77,8 @@
 
 		Collection<Object> objects = new ArrayList<Object>();
 
-		AnalyticsRule rule1 = new AnalyticsRule();
-		AnalyticsRule rule2 = new AnalyticsRule();
+		VerifierRule rule1 = new VerifierRule();
+		VerifierRule rule2 = new VerifierRule();
 
 		Redundancy ruleRedundancy = new Redundancy(
 				RedundancyType.STRONG, rule1, rule2);
@@ -99,18 +99,18 @@
 		objects.add(rp2);
 		objects.add(rulePossibilityRedundancy1);
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(objects);
 
-		Collection<AnalyticsMessageBase> notes = result
+		Collection<VerifierMessageBase> notes = result
 				.getBySeverity(Severity.WARNING);
 
 		// Has at least one item.
 		assertEquals(1, notes.size());
 
-		AnalyticsMessageBase warning = notes.iterator().next();
+		VerifierMessageBase warning = notes.iterator().next();
 		assertTrue(warning.getFaulty().equals(rulePossibilityRedundancy1));
 	}
 }

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantPossibilitiesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantPossibilitiesTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantPossibilitiesTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -9,13 +9,13 @@
 import org.drools.StatelessSessionResult;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 import org.drools.verifier.TestBase;
-import org.drools.verifier.components.AnalyticsRule;
+import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.components.LiteralRestriction;
 import org.drools.verifier.components.Pattern;
 import org.drools.verifier.components.PatternPossibility;
 import org.drools.verifier.components.RulePossibility;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
 import org.drools.verifier.report.components.Cause;
 import org.drools.verifier.report.components.Redundancy;
 import org.drools.verifier.report.components.RedundancyType;
@@ -32,7 +32,7 @@
 
 		Collection<Object> data = new ArrayList<Object>();
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		/*
@@ -101,7 +101,7 @@
 
 		Collection<Object> data = new ArrayList<Object>();
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		/*
@@ -172,7 +172,7 @@
 
 		Collection<Object> data = new ArrayList<Object>();
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		/*
@@ -181,9 +181,9 @@
 		String ruleName1 = "Rule 1";
 		String ruleName2 = "Rule 2";
 
-		AnalyticsRule r1 = new AnalyticsRule();
+		VerifierRule r1 = new VerifierRule();
 		r1.setRuleName(ruleName1);
-		AnalyticsRule r2 = new AnalyticsRule();
+		VerifierRule r2 = new VerifierRule();
 		r2.setRuleName(ruleName2);
 
 		PatternPossibility pp1 = new PatternPossibility();
@@ -241,7 +241,7 @@
 
 		Collection<Object> data = new ArrayList<Object>();
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		/*
@@ -250,9 +250,9 @@
 		String ruleName1 = "Rule 1";
 		String ruleName2 = "Rule 2";
 
-		AnalyticsRule r1 = new AnalyticsRule();
+		VerifierRule r1 = new VerifierRule();
 		r1.setRuleName(ruleName1);
-		AnalyticsRule r2 = new AnalyticsRule();
+		VerifierRule r2 = new VerifierRule();
 		r2.setRuleName(ruleName2);
 
 		PatternPossibility pp1 = new PatternPossibility();

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantRestrictionsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantRestrictionsTest.java	2008-06-10 09:51:27 UTC (rev 20397)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantRestrictionsTest.java	2008-06-10 11:03:26 UTC (rev 20398)
@@ -12,8 +12,8 @@
 import org.drools.verifier.TestBase;
 import org.drools.verifier.components.Field;
 import org.drools.verifier.components.LiteralRestriction;
-import org.drools.verifier.dao.AnalyticsResult;
-import org.drools.verifier.dao.AnalyticsResultFactory;
+import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.dao.VerifierResultFactory;
 import org.drools.verifier.report.components.Cause;
 
 public class SubsumptantRestrictionsTest extends SubsumptionTestBase {
@@ -27,7 +27,7 @@
 
 		Collection<Object> data = new ArrayList<Object>();
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		/*
@@ -108,7 +108,7 @@
 
 		Collection<Object> data = new ArrayList<Object>();
 
-		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+		VerifierResult result = VerifierResultFactory.createVerifierResult();
 		session.setGlobal("result", result);
 
 		/*




More information about the jboss-svn-commits mailing list