[jboss-svn-commits] JBL Code SVN: r29799 - in labs/jbossrules/trunk: drools-guvnor/src/main/java/org/drools/guvnor/server/util and 42 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Oct 24 14:25:54 EDT 2009
Author: Rikkola
Date: 2009-10-24 14:25:51 -0400 (Sat, 24 Oct 2009)
New Revision: 29799
Added:
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/DefaultVerifierConfiguration.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierConfiguration.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierConfigurationImpl.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierConfigurationOptions.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierError.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilder.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderConfiguration.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderConfigurationImpl.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderError.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderErrors.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderFactory.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderImpl.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ChildComponent.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/PackageComponent.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/PatternComponent.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ReturnValueFieldDescr.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/RuleComponent.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubPattern.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubRule.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/DataTree.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierComponent.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierData.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierDataMaps.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReport.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReportFactory.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReportImpl.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/FindMissingNumber.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/PackageDescrVisitor.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/RuleLoader.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/UnknownDescriptionException.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerfierReportConfigurationOptions.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportConfiguration.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportConfigurationImpl.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportWriter.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportWriterFactory.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/HTMLReportWriter.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/PatternSolver.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/RuleSolver.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/Solver.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/Solvers.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/data/
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/data/VerifierDataMapsTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/misc/
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/misc/FindMissingNumberTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/misc/PackageDescrVisitorTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/VerifierReportBuilderTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/solver/
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/solver/PatternSolverTest.java
labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/FindPatterns.drl
Removed:
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/FindMissingNumber.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/PackageDescrFlattener.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/PatternSolver.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/UnknownDescriptionException.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/ReturValueFieldDescr.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/VerifierComponent.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/dao/
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ComponentsReportModeller.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/FindMissingNumberTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/PatternSolverTest.java
Modified:
labs/jbossrules/trunk/drools-ant/src/main/java/org/drools/contrib/DroolsVerifierAntTask.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java
labs/jbossrules/trunk/drools-verifier/pom.xml
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/Consequence.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Constraint.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/EnumField.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/EnumRestriction.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/FieldObjectTypeLink.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/InlineEvalDescr.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/LiteralRestriction.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ObjectType.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/Possibility.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/QualifiedIdentifierRestriction.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/ReturnValueRestriction.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/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/components/VariableRestriction.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/VerifierCollectDescr.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/report/ReportModeller.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/AlwaysTrue.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Cause.java
labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Incompatibility.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/Subsumption.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/java/org/drools/verifier/report/html/VerifierMessagesVisitor.java
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/Consequence.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Patterns.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Rules.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Patterns.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Rules.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/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/Patterns.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/Patterns.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Restrictions.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/PatternOrder.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/RestrictionOrder.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/overlaps/Restrictions.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/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/NumberPatterns.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/Patterns.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Possibilities.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/report/html/field.htm
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/missingRange.htm
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/objectType.htm
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/objectTypes.htm
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/packages.htm
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/rule.htm
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/subsumption/Possibilities.drl
labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Restrictions.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/PatternSolverDRLTest.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/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/AlwaysFalseTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysTrue/AlwaysTruePatternTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysTrue/AlwaysTrueRuleTest.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/IncompatibilityPatternsTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityRestrictionsTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/missingEquality/MissingEqualityTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositePatternsTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositeRestrictionsTest.java
labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/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/overlaps/OverlappingRestrictionsTest.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-2305 : Update the verifier to act more like the drools-api JBRULES-2306 : Allow the user to add custom resources that verifies the rules -Big refactoring, also did a small change to the way that the verfier components are related to each others. -Changed RulePossibilty and PatternPossibility to SubRule and SubPattern that better describe them
Modified: labs/jbossrules/trunk/drools-ant/src/main/java/org/drools/contrib/DroolsVerifierAntTask.java
===================================================================
--- labs/jbossrules/trunk/drools-ant/src/main/java/org/drools/contrib/DroolsVerifierAntTask.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-ant/src/main/java/org/drools/contrib/DroolsVerifierAntTask.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,17 +1,22 @@
package org.drools.contrib;
import java.io.File;
-import java.io.InputStreamReader;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.taskdefs.MatchingTask;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Reference;
+import org.drools.builder.ResourceType;
+import org.drools.compiler.DroolsParserException;
+import org.drools.io.ResourceFactory;
import org.drools.verifier.Verifier;
-import org.drools.compiler.DrlParser;
-import org.drools.compiler.DroolsParserException;
-import org.drools.lang.descr.PackageDescr;
+import org.drools.verifier.builder.VerifierBuilderFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.report.VerifierReportWriter;
+import org.drools.verifier.report.VerifierReportWriterFactory;
public class DroolsVerifierAntTask extends MatchingTask {
@@ -93,10 +98,11 @@
}
try {
-
+
// create a specialized classloader
- Verifier droolsanalyzer = new Verifier();
+ Verifier droolsanalyzer = VerifierBuilderFactory
+ .newVerifierBuilder().newVerifier();
// get the list of files to be added to the rulebase
String[] fileNames = getFileList();
@@ -104,29 +110,40 @@
for (int i = 0; i < fileNames.length; i++) {
compileAndAnalyzeFile(droolsanalyzer, fileNames[i]);
}
-
+
droolsanalyzer.fireAnalysis();
- droolsanalyzer.writeComponentsHTML(toFile.getAbsolutePath() + "/");
-
- System.out.println("Writing verifier report to " + toFile.getAbsolutePath() + "/report");
-
+
+ VerifierReport result = droolsanalyzer.getResult();
+
+ VerifierReportWriter vReportWriter = VerifierReportWriterFactory
+ .newHTMLReportWriter();
+
+ String path = toFile.getAbsolutePath() + File.separatorChar
+ + "report.zip";
+
+ OutputStream out = new FileOutputStream(path);
+
+ vReportWriter.writeReport(out, result);
+
+ System.out.println("Writing verifier report to " + path);
+
} catch (Exception e) {
throw new BuildException("RuleBaseTask failed: " + e.getMessage(),
e);
}
}
- private void compileAndAnalyzeFile(Verifier droolsanalyzer, String filename) throws DroolsParserException {
-
- // Verifier just works with drl files
- if ( !filename.endsWith(DroolsVerifierAntTask.DRLFILEEXTENSION) ) {
+
+ private void compileAndAnalyzeFile(Verifier droolsVerifier, String filename)
+ throws DroolsParserException {
+
+ // Verifier just works with drl files
+ if (!filename.endsWith(DroolsVerifierAntTask.DRLFILEEXTENSION)) {
throw new UnsupportedOperationException();
}
-
- PackageDescr descr = new DrlParser()
- .parse(new InputStreamReader(Verifier.class
- .getResourceAsStream(filename)));
-
- droolsanalyzer.addPackageDescr(descr);
+
+ droolsVerifier.addResourcesToVerify(ResourceFactory
+ .newClassPathResource(filename, Verifier.class),
+ ResourceType.DRL);
}
/**
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,5 +1,6 @@
package org.drools.guvnor.server.util;
+import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -7,6 +8,7 @@
import java.util.Map;
import java.util.Set;
+import org.drools.builder.ResourceType;
import org.drools.compiler.DrlParser;
import org.drools.compiler.DroolsParserException;
import org.drools.guvnor.client.rpc.AnalysisFactUsage;
@@ -14,13 +16,16 @@
import org.drools.guvnor.client.rpc.AnalysisReport;
import org.drools.guvnor.client.rpc.AnalysisReportLine;
import org.drools.guvnor.client.rpc.DetailedSerializableException;
+import org.drools.io.ResourceFactory;
import org.drools.lang.descr.PackageDescr;
import org.drools.verifier.Verifier;
+import org.drools.verifier.builder.VerifierBuilderFactory;
import org.drools.verifier.components.Field;
import org.drools.verifier.components.ObjectType;
+import org.drools.verifier.components.VerifierComponentType;
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierData;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierData;
+import org.drools.verifier.data.VerifierReport;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.VerifierMessageBase;
@@ -36,10 +41,11 @@
"Unable to verify rules due to syntax errors in the rules.",
"Please correct syntax errors - build the package before trying the verifier again.");
}
- Verifier a = new Verifier();
- a.addPackageDescr(pkg);
+ Verifier a = VerifierBuilderFactory.newVerifierBuilder().newVerifier();
+ a.addResourcesToVerify(ResourceFactory
+ .newReaderResource(new StringReader(drl)), ResourceType.DRL);
a.fireAnalysis();
- VerifierResult res = a.getResult();
+ VerifierReport res = a.getResult();
AnalysisReport report = new AnalysisReport();
report.errors = doLines(res.getBySeverity(Severity.ERROR));
@@ -54,7 +60,8 @@
Map<String, String> interned = new HashMap<String, String>();
List<AnalysisFactUsage> factUsage = new ArrayList<AnalysisFactUsage>();
- Collection<ObjectType> objectTypes = verifierData.getAllObjectTypes();
+ Collection<ObjectType> objectTypes = verifierData
+ .getAll(VerifierComponentType.OBJECT_TYPE);
for (ObjectType c : objectTypes) {
AnalysisFactUsage fact = new AnalysisFactUsage();
fact.name = c.getName();
@@ -63,7 +70,8 @@
for (Field f : flds) {
AnalysisFieldUsage fu = new AnalysisFieldUsage();
fu.name = f.getName();
- Collection<VerifierRule> cr = verifierData.getRulesByFieldId(f.getId());
+ Collection<VerifierRule> cr = verifierData.getRulesByFieldId(f
+ .getGuid());
List<String> ruleNames = new ArrayList<String>();
for (VerifierRule verifierRule : cr) {
ruleNames.add(intern(verifierRule.getRuleName(), interned));
Modified: labs/jbossrules/trunk/drools-verifier/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-verifier/pom.xml 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/pom.xml 2009-10-24 18:25:51 UTC (rev 29799)
@@ -35,6 +35,11 @@
<dependency>
<groupId>org.drools</groupId>
+ <artifactId>drools-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
</dependency>
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/DefaultVerifierConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/DefaultVerifierConfiguration.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/DefaultVerifierConfiguration.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,11 @@
+package org.drools.verifier;
+
+import org.drools.verifier.misc.RuleLoader;
+
+public class DefaultVerifierConfiguration extends VerifierConfigurationImpl {
+
+ public DefaultVerifierConfiguration() {
+ verifyingResources.putAll( RuleLoader.basicRulesForFullKnowledgeBase() );
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/FindMissingNumber.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/FindMissingNumber.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/FindMissingNumber.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,160 +0,0 @@
-package org.drools.verifier;
-
-import java.math.BigDecimal;
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.drools.verifier.components.Field;
-import org.drools.verifier.components.LiteralRestriction;
-
-public class FindMissingNumber {
-
- public static final int MIN_NUMBER_OF_RESTRICTIONS = 4;
-
- /**
- * Test if the values in constraints are in pattern.
- *
- * @param restrictions
- * @return false if can't find a pattern or constraints list is null or size
- * of the list is under 3.
- */
- public static Number testForPattern(
- Collection<LiteralRestriction> restrictions) {
-
- if (restrictions == null
- || restrictions.size() < MIN_NUMBER_OF_RESTRICTIONS) {
- return null;
- }
-
- BigDecimal[] numbers = new BigDecimal[restrictions.size()];
-
- int index = 0;
- for (LiteralRestriction restriction : restrictions) {
- if (restriction.getValueType() == Field.FieldType.DOUBLE) {
- numbers[index++] = BigDecimal.valueOf(restriction
- .getDoubleValue());
- } else if (restriction.getValueType() == Field.FieldType.INT) {
- numbers[index++] = BigDecimal
- .valueOf(restriction.getIntValue());
- }
- }
-
- Arrays.sort(numbers);
-
- Number missingNumber = findSumPattern(numbers);
- if (missingNumber != null) {
- return missingNumber;
- } else {
- missingNumber = findMultiplicationPattern(numbers);
- if (missingNumber != null) {
- return missingNumber;
- }
- }
-
- return null;
- }
-
- /**
- * Looks for sum pattern, on each step x is added or removed. -x is the same
- * as +(-x) so this works for both.
- *
- * @param numbers
- * @return true if pattern is found.
- */
- protected static Number findSumPattern(BigDecimal[] numbers) {
- if (numbers == null || numbers.length < MIN_NUMBER_OF_RESTRICTIONS) {
- return null;
- }
- BigDecimal gap = null;
- Number missingNumber = null;
-
- BigDecimal a = numbers[0];
- BigDecimal b = numbers[1];
- BigDecimal c = numbers[2];
- BigDecimal d = numbers[3];
-
- // Uses first four numbers to check if there is a pattern and to
- // calculate the gap between them. One missing value is allowed.
- if (b.subtract(a).equals(c.subtract(b))) {
- gap = b.subtract(a);
- } else if (c.subtract(b).equals(d.subtract(c))) {
- gap = c.subtract(b);
- } else if (b.subtract(a).equals(d.subtract(c))) {
- gap = b.subtract(a);
- } else {
- // No pattern found.
- return null;
- }
-
- for (int i = 0; i < (numbers.length - 1); i++) {
- BigDecimal first = numbers[i];
- BigDecimal second = numbers[i + 1];
-
- if (missingNumber == null && !second.subtract(first).equals(gap)) {
- missingNumber = second.subtract(gap);
- } else if (!second.subtract(first).equals(gap)
- && missingNumber != null) {
- // Happends if there is no pattern found, or more than 1
- // missing number.
- return null;
- }
- }
-
- return missingNumber;
- }
-
- /**
- * Looks for multiplication pattern, on each step x multiplied or divided.
- * *x is the same as *(1/x) so this works for both.
- *
- * @param numbers
- * @return true if pattern is found.
- */
- protected static Number findMultiplicationPattern(BigDecimal[] numbers) {
- if (numbers == null || numbers.length < MIN_NUMBER_OF_RESTRICTIONS) {
- return null;
- }
- try {
-
- BigDecimal gap = null;
- Number missingNumber = null;
-
- BigDecimal a = numbers[0];
- BigDecimal b = numbers[1];
- BigDecimal c = numbers[2];
- BigDecimal d = numbers[3];
-
- // Uses first four numbers to check if there is a pattern and to
- // calculate the gap between them. One missing value is allowed.
- if (b.divide(a).equals(c.divide(b))) {
- gap = b.divide(a);
- } else if (c.divide(b).equals(d.divide(c))) {
- gap = c.divide(b);
- } else if (b.divide(a).equals(d.divide(c))) {
- gap = b.divide(a);
- } else {
- // No pattern found.
- return null;
- }
-
- BigDecimal first = null;
- BigDecimal second = null;
- for (int i = 0; i < (numbers.length - 1); i++) {
- first = numbers[i];
- second = numbers[i + 1];
-
- if (missingNumber == null && !second.divide(first).equals(gap)) {
- missingNumber = first.multiply(gap);
- } else if (!second.divide(first).equals(gap)
- && missingNumber != null) {
- // Happends if there is no pattern found, or more than 1
- // missing number.
- return null;
- }
- }
- return missingNumber;
- } catch (Exception e) {
- return null;
- }
- }
-}
Deleted: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/PackageDescrFlattener.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,808 +0,0 @@
-package org.drools.verifier;
-
-import java.util.Collection;
-
-import org.drools.base.evaluators.Operator;
-import org.drools.lang.descr.AccessorDescr;
-import org.drools.lang.descr.AccumulateDescr;
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.BaseDescr;
-import org.drools.lang.descr.CollectDescr;
-import org.drools.lang.descr.ConditionalElementDescr;
-import org.drools.lang.descr.DeclarativeInvokerDescr;
-import org.drools.lang.descr.EvalDescr;
-import org.drools.lang.descr.ExistsDescr;
-import org.drools.lang.descr.FieldAccessDescr;
-import org.drools.lang.descr.FieldBindingDescr;
-import org.drools.lang.descr.FieldConstraintDescr;
-import org.drools.lang.descr.ForallDescr;
-import org.drools.lang.descr.FromDescr;
-import org.drools.lang.descr.FunctionCallDescr;
-import org.drools.lang.descr.LiteralRestrictionDescr;
-import org.drools.lang.descr.MethodAccessDescr;
-import org.drools.lang.descr.NotDescr;
-import org.drools.lang.descr.OrDescr;
-import org.drools.lang.descr.PackageDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.drools.lang.descr.PatternSourceDescr;
-import org.drools.lang.descr.PredicateDescr;
-import org.drools.lang.descr.QualifiedIdentifierRestrictionDescr;
-import org.drools.lang.descr.RestrictionConnectiveDescr;
-import org.drools.lang.descr.ReturnValueRestrictionDescr;
-import org.drools.lang.descr.RuleDescr;
-import org.drools.lang.descr.VariableRestrictionDescr;
-import org.drools.verifier.components.Consequence;
-import org.drools.verifier.components.Constraint;
-import org.drools.verifier.components.EnumField;
-import org.drools.verifier.components.EnumRestriction;
-import org.drools.verifier.components.Field;
-import org.drools.verifier.components.LiteralRestriction;
-import org.drools.verifier.components.ObjectType;
-import org.drools.verifier.components.OperatorDescr;
-import org.drools.verifier.components.Pattern;
-import org.drools.verifier.components.PatternPossibility;
-import org.drools.verifier.components.QualifiedIdentifierRestriction;
-import org.drools.verifier.components.ReturnValueRestriction;
-import org.drools.verifier.components.RulePackage;
-import org.drools.verifier.components.RulePossibility;
-import org.drools.verifier.components.TextConsequence;
-import org.drools.verifier.components.Variable;
-import org.drools.verifier.components.VariableRestriction;
-import org.drools.verifier.components.VerifierAccessorDescr;
-import org.drools.verifier.components.VerifierAccumulateDescr;
-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.dao.VerifierData;
-
-/**
- * @author Toni Rikkola
- *
- */
-class PackageDescrFlattener {
-
- private Solvers solvers = new Solvers();
-
- private VerifierData data;
-
- private RulePackage currentPackage = null;
- private VerifierRule currentRule = null;
- private Pattern currentPattern = null;
- private Constraint currentConstraint = null;
- private ObjectType currentObjectType = null;
- private Field currentField = null;
-
- /**
- * Adds packageDescr to given VerifierData object
- *
- * @param packageDescr
- * PackageDescr that will be flattened.
- * @param data
- * VerifierData where the flattened objects are added.
- * @throws UnknownDescriptionException
- */
- public void addPackageDescrToData(PackageDescr packageDescr,
- VerifierData data) throws UnknownDescriptionException {
-
- this.data = data;
-
- flatten(packageDescr);
-
- formPossibilities();
- }
-
- private void flatten(Collection<?> descrs, VerifierComponent parent)
- throws UnknownDescriptionException {
-
- int orderNumber = 0;
-
- for (Object o : descrs) {
- BaseDescr descr = (BaseDescr) o;
- if (descr instanceof PackageDescr) {
- flatten((PackageDescr) descr);
- } else if (descr instanceof RuleDescr) {
- flatten((RuleDescr) descr, parent);
- } else if (descr instanceof PatternDescr) {
- flatten((PatternDescr) descr, parent, orderNumber);
- } else if (descr instanceof VariableRestrictionDescr) {
- flatten((VariableRestrictionDescr) descr, parent, orderNumber);
- } else if (descr instanceof FieldBindingDescr) {
- flatten((FieldBindingDescr) descr, parent, orderNumber);
- } else if (descr instanceof FieldConstraintDescr) {
- flatten((FieldConstraintDescr) descr, parent, orderNumber);
- } else if (descr instanceof RestrictionConnectiveDescr) {
- flatten((RestrictionConnectiveDescr) descr, parent, orderNumber);
- } else if (descr instanceof LiteralRestrictionDescr) {
- flatten((LiteralRestrictionDescr) descr, parent, orderNumber);
- } else if (descr instanceof ReturnValueRestrictionDescr) {
- flatten((ReturnValueRestrictionDescr) descr, parent,
- orderNumber);
- } else if (descr instanceof QualifiedIdentifierRestrictionDescr) {
- flatten((QualifiedIdentifierRestrictionDescr) descr, parent,
- orderNumber);
- } else if (descr instanceof FunctionCallDescr) {
- flatten((FunctionCallDescr) descr, parent, orderNumber);
- } else if (descr instanceof PredicateDescr) {
- flatten((PredicateDescr) descr, parent, orderNumber);
- } else if (descr instanceof AccessorDescr) {
- flatten((AccessorDescr) descr, parent, orderNumber);
- } else if (descr instanceof MethodAccessDescr) {
- flatten((MethodAccessDescr) descr, parent, orderNumber);
- } else if (descr instanceof FieldAccessDescr) {
- flatten((FieldAccessDescr) descr, parent, orderNumber);
- } else if (descr instanceof PatternSourceDescr) {
- flatten((PatternSourceDescr) descr, parent);
- } else if (descr instanceof ConditionalElementDescr) {
- flatten((ConditionalElementDescr) descr, parent, orderNumber);
- }
-
- orderNumber++;
- }
- }
-
- private VerifierComponent flatten(PatternSourceDescr descr,
- VerifierComponent parent) throws UnknownDescriptionException {
- if (descr instanceof AccumulateDescr) {
- return flatten((AccumulateDescr) descr, parent);
- } else if (descr instanceof CollectDescr) {
- return flatten((CollectDescr) descr, parent);
- } else if (descr instanceof FromDescr) {
- return flatten((FromDescr) descr, parent);
- } else {
- throw new UnknownDescriptionException(descr);
- }
- }
-
- private VerifierComponent flatten(DeclarativeInvokerDescr descr,
- VerifierComponent parent) throws UnknownDescriptionException {
- if (descr instanceof AccessorDescr) {
- return flatten((AccessorDescr) descr, parent);
- } else if (descr instanceof FieldAccessDescr) {
- return flatten((FieldAccessDescr) descr, parent);
- } else if (descr instanceof FunctionCallDescr) {
- return flatten((FunctionCallDescr) descr, parent);
- } else if (descr instanceof MethodAccessDescr) {
- return flatten((MethodAccessDescr) descr, parent);
- } else {
- throw new UnknownDescriptionException(descr);
- }
- }
-
- private void flatten(ConditionalElementDescr descr,
- VerifierComponent parent, int orderNumber)
- throws UnknownDescriptionException {
-
- if (descr instanceof AndDescr) {
- flatten((AndDescr) descr, parent, orderNumber);
- } else if (descr instanceof CollectDescr) {
- flatten((CollectDescr) descr, parent, orderNumber);
- } else if (descr instanceof EvalDescr) {
- flatten((EvalDescr) descr, parent, orderNumber);
- } else if (descr instanceof ExistsDescr) {
- flatten((ExistsDescr) descr, parent);
- } else if (descr instanceof ForallDescr) {
- flatten((ForallDescr) descr, parent);
- } else if (descr instanceof FromDescr) {
- flatten((FromDescr) descr, parent);
- } else if (descr instanceof NotDescr) {
- flatten((NotDescr) descr, parent);
- } else if (descr instanceof OrDescr) {
- flatten((OrDescr) descr, parent, orderNumber);
- }
- }
-
- private void flatten(ForallDescr descr, VerifierComponent parent)
- throws UnknownDescriptionException {
- solvers.startForall();
- flatten(descr.getDescrs(), parent);
- solvers.endForall();
- }
-
- private void flatten(ExistsDescr descr, VerifierComponent parent)
- throws UnknownDescriptionException {
- solvers.startExists();
- flatten(descr.getDescrs(), parent);
- solvers.endExists();
- }
-
- private void flatten(NotDescr descr, VerifierComponent parent)
- throws UnknownDescriptionException {
- solvers.startNot();
- flatten(descr.getDescrs(), parent);
- solvers.endNot();
- }
-
- /**
- * End leaf
- *
- * @param descr
- * @return
- */
- private VerifierFunctionCallDescr flatten(FunctionCallDescr descr,
- VerifierComponent parent, int orderNumber) {
- VerifierFunctionCallDescr functionCall = new VerifierFunctionCallDescr();
- functionCall.setName(descr.getName());
- functionCall.setArguments(descr.getArguments());
- functionCall.setOrderNumber(orderNumber);
- functionCall.setParent(parent);
-
- return functionCall;
- }
-
- /**
- * End leaf
- *
- * @param descr
- * @return
- */
- private VerifierPredicateDescr flatten(PredicateDescr descr,
- VerifierComponent parent, int orderNumber) {
-
- VerifierPredicateDescr predicate = new VerifierPredicateDescr();
- predicate.setRuleName(currentRule.getRuleName());
- predicate.setRuleId(currentRule.getId());
- predicate.setContent(descr.getContent().toString());
- predicate.setClassMethodName(descr.getClassMethodName());
- predicate.setOrderNumber(orderNumber);
- predicate.setParent(parent);
-
- data.add(predicate);
-
- return predicate;
- }
-
- /**
- * End leaf
- *
- * @param descr
- * @return
- */
- private VerifierEvalDescr flatten(EvalDescr descr,
- VerifierComponent parent, int orderNumber) {
-
- VerifierEvalDescr eval = new VerifierEvalDescr();
- eval.setRuleId(currentRule.getId());
- eval.setRuleName(currentRule.getRuleName());
- eval.setContent(descr.getContent().toString());
- eval.setClassMethodName(descr.getClassMethodName());
- eval.setOrderNumber(orderNumber);
- eval.setParent(parent);
-
- data.add(eval);
-
- return eval;
- }
-
- /**
- * End leaf
- *
- * @param descr
- * @return
- * @throws UnknownDescriptionException
- */
- private VerifierFromDescr flatten(FromDescr descr, VerifierComponent parent)
- throws UnknownDescriptionException {
- VerifierFromDescr from = new VerifierFromDescr();
-
- VerifierComponent ds = flatten(descr.getDataSource(), from);
- from.setDataSourceId(ds.getId());
- from.setDataSourceType(ds.getComponentType());
- from.setParent(parent);
-
- return from;
- }
-
- private VerifierAccumulateDescr flatten(AccumulateDescr descr,
- VerifierComponent parent) throws UnknownDescriptionException {
- VerifierAccumulateDescr accumulate = new VerifierAccumulateDescr();
-
- accumulate.setInputPatternId(flatten(descr.getInputPattern(),
- accumulate, 0));
- accumulate.setInitCode(descr.getInitCode());
- accumulate.setActionCode(descr.getActionCode());
- accumulate.setReverseCode(descr.getReverseCode());
- accumulate.setResultCode(descr.getResultCode());
-
- // XXX: Array seems to be always null.
- // accumulate.setDeclarations(descr.getDeclarations());
-
- accumulate.setClassName(descr.getClassName());
- accumulate.setExternalFunction(descr.isExternalFunction());
- accumulate.setFunctionIdentifier(descr.getFunctionIdentifier());
- accumulate.setExpression(descr.getExpression());
- accumulate.setParent(parent);
-
- return accumulate;
- }
-
- private VerifierCollectDescr flatten(CollectDescr descr,
- VerifierComponent parent) throws UnknownDescriptionException {
- VerifierCollectDescr collect = new VerifierCollectDescr();
- collect.setClassMethodName(descr.getClassMethodName());
- collect
- .setInsidePatternId(flatten(descr.getInputPattern(), collect, 0));
- collect.setParent(parent);
-
- return collect;
- }
-
- 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.
- return accessor;
- }
-
- /**
- * End leaf
- *
- * @param descr
- */
- private VerifierMethodAccessDescr flatten(MethodAccessDescr descr,
- VerifierComponent parent, int orderNumber) {
- VerifierMethodAccessDescr accessor = new VerifierMethodAccessDescr();
- accessor.setMethodName(descr.getMethodName());
- accessor.setArguments(descr.getArguments());
- accessor.setOrderNumber(orderNumber);
- accessor.setParent(parent);
-
- return accessor;
- }
-
- /**
- * End leaf
- *
- * @param descr
- */
- private VerifierFieldAccessDescr flatten(FieldAccessDescr descr,
- VerifierComponent parent, int orderNumber) {
- VerifierFieldAccessDescr accessor = new VerifierFieldAccessDescr();
- accessor.setFieldName(descr.getFieldName());
- accessor.setArgument(descr.getArgument());
- accessor.setOrderNumber(orderNumber);
- accessor.setParent(parent);
-
- return accessor;
- }
-
- private void flatten(PackageDescr descr) throws UnknownDescriptionException {
- RulePackage rulePackage = data.getRulePackageByName(descr.getName());
-
- if (rulePackage == null) {
- rulePackage = new RulePackage();
-
- rulePackage.setName(descr.getName());
- data.add(rulePackage);
- }
-
- currentPackage = rulePackage;
-
- flatten(descr.getRules(), rulePackage);
- }
-
- private void flatten(RuleDescr descr, VerifierComponent parent)
- throws UnknownDescriptionException {
-
- VerifierRule rule = new VerifierRule();
- currentRule = rule;
-
- rule.setRuleName(descr.getName());
- rule.setRuleSalience(descr.getSalience());
- rule.setConsequence(flattenConsequence(rule, descr.getConsequence()));
- rule.setLineNumber(descr.getLine());
- rule.setPackageId(currentPackage.getId());
- rule.setParent(parent);
-
- data.add(rule);
-
- currentPackage.getRules().add(rule);
-
- solvers.startRuleSolver(rule);
- flatten(descr.getLhs(), rule, 0);
- solvers.endRuleSolver();
- }
-
- /**
- * Creates verifier object from rule consequence. Currently only supports
- * text based consequences.
- *
- * @param o
- * Consequence object.
- * @return Verifier object that implements the Consequence interface.
- */
- private Consequence flattenConsequence(VerifierComponent parent, Object o) {
-
- TextConsequence consequence = new TextConsequence();
-
- String text = o.toString();
-
- /*
- * Strip all comments out of the code.
- */
- StringBuffer buffer = new StringBuffer(text);
- int commentIndex = buffer.indexOf("//");
-
- while (commentIndex != -1) {
- buffer = buffer.delete(commentIndex, buffer.indexOf("\n",
- commentIndex));
- commentIndex = buffer.indexOf("//");
- }
-
- text = buffer.toString();
-
- /*
- * Strip all useless characters out of the code.
- */
- text = text.replaceAll("\n", "");
- text = text.replaceAll("\r", "");
- text = text.replaceAll("\t", "");
- text = text.replaceAll(" ", "");
-
- consequence.setText(text);
- consequence.setRuleId(currentRule.getId());
- consequence.setRuleName(currentRule.getRuleName());
- consequence.setParent(parent);
-
- data.add(consequence);
-
- return consequence;
- }
-
- private void flatten(OrDescr descr, VerifierComponent parent,
- int orderNumber) throws UnknownDescriptionException {
- OperatorDescr operatorDescr = new OperatorDescr(OperatorDescr.Type.OR);
- operatorDescr.setOrderNumber(orderNumber);
- operatorDescr.setParent(parent);
-
- data.add(operatorDescr);
-
- solvers.startOperator(OperatorDescr.Type.OR);
- flatten(descr.getDescrs(), operatorDescr);
- solvers.endOperator();
- }
-
- private void flatten(AndDescr descr, VerifierComponent parent,
- int orderNumber) throws UnknownDescriptionException {
- OperatorDescr operatorDescr = new OperatorDescr(OperatorDescr.Type.AND);
- operatorDescr.setOrderNumber(orderNumber);
- operatorDescr.setParent(parent);
-
- data.add(operatorDescr);
-
- solvers.startOperator(OperatorDescr.Type.AND);
- flatten(descr.getDescrs(), operatorDescr);
- solvers.endOperator();
- }
-
- private int flatten(PatternDescr descr, VerifierComponent parent,
- int orderNumber) throws UnknownDescriptionException {
-
- ObjectType objectType = findOrCreateNewObjectType(descr.getObjectType());
- currentObjectType = objectType;
-
- Pattern pattern = new Pattern();
- pattern.setRuleId(currentRule.getId());
- pattern.setRuleName(currentRule.getRuleName());
- pattern.setClassId(objectType.getId());
- pattern.setName(objectType.getName());
- pattern.setPatternNot(solvers.getRuleSolver().isChildNot());
- pattern.setPatternExists(solvers.getRuleSolver().isExists());
- pattern.setPatternForall(solvers.getRuleSolver().isForall());
- pattern.setOrderNumber(orderNumber);
- pattern.setParent(parent);
-
- data.add(pattern);
- currentPattern = pattern;
-
- if (descr.getIdentifier() != null) {
- Variable variable = new Variable();
- variable.setRuleId(currentRule.getId());
- variable.setRuleName(currentRule.getRuleName());
- variable.setName(descr.getIdentifier());
-
- variable.setObjectType(VerifierComponentType.CLASS);
- variable.setObjectId(objectType.getId());
- variable.setObjectName(descr.getObjectType());
-
- data.add(variable);
- }
-
- // flatten source.
- if (descr.getSource() != null) {
- VerifierComponent source = flatten(descr.getSource(), pattern);
- pattern.setSourceId(source.getId());
- pattern.setSourceType(source.getComponentType());
- } else {
- pattern.setSourceId(0);
- pattern.setSourceType(VerifierComponentType.NOTHING);
- }
- solvers.startPatternSolver(pattern);
- flatten(descr.getConstraint(), pattern, 0);
- solvers.endPatternSolver();
-
- return pattern.getId();
- }
-
- private void flatten(FieldConstraintDescr descr, VerifierComponent parent,
- int orderNumber) throws UnknownDescriptionException {
-
- Field field = data.getFieldByObjectTypeAndFieldName(currentObjectType
- .getName(), descr.getFieldName());
- if (field == null) {
- field = createField(descr.getFieldName(),
- currentObjectType.getId(), currentObjectType.getName());
- data.add(field);
- }
- currentField = field;
-
- Constraint constraint = new Constraint();
-
- constraint.setRuleId(currentRule.getId());
- constraint.setFieldId(currentField.getId());
- constraint.setFieldName(currentField.getName());
- constraint.setPatternId(currentPattern.getId());
- constraint.setPatternIsNot(currentPattern.isPatternNot());
- constraint.setFieldId(field.getId());
- constraint.setOrderNumber(orderNumber);
- constraint.setParent(parent);
-
- data.add(constraint);
-
- currentConstraint = constraint;
-
- flatten(descr.getRestriction(), constraint, 0);
- }
-
- private void flatten(RestrictionConnectiveDescr descr,
- VerifierComponent parent, int orderNumber)
- throws UnknownDescriptionException {
-
- if (descr.getConnective() == RestrictionConnectiveDescr.AND) {
-
- solvers.startOperator(OperatorDescr.Type.AND);
- flatten(descr.getRestrictions(), parent);
- solvers.endOperator();
-
- } else if (descr.getConnective() == RestrictionConnectiveDescr.OR) {
-
- solvers.startOperator(OperatorDescr.Type.OR);
- flatten(descr.getRestrictions(), parent);
- solvers.endOperator();
-
- } else {
- throw new UnknownDescriptionException(descr);
- }
- }
-
- /**
- * End
- *
- * @param descr
- */
- private void flatten(FieldBindingDescr descr, VerifierComponent parent,
- int orderNumber) {
-
- Variable variable = new Variable();
- variable.setRuleId(currentRule.getId());
- variable.setRuleName(currentRule.getRuleName());
- variable.setName(descr.getIdentifier());
- variable.setOrderNumber(orderNumber);
- variable.setParent(parent);
-
- variable.setObjectType(VerifierComponentType.FIELD);
-
- data.add(variable);
- }
-
- /**
- * End
- *
- * Foo( bar == $bar )<br>
- * $bar is a VariableRestrictionDescr
- *
- * @param descr
- */
- private void flatten(VariableRestrictionDescr descr,
- VerifierComponent parent, int orderNumber) {
-
- Variable variable = data.getVariableByRuleAndVariableName(currentRule
- .getRuleName(), descr.getIdentifier());
- VariableRestriction restriction = new VariableRestriction();
-
- restriction.setRuleId(currentRule.getId());
- restriction.setRuleName(currentRule.getRuleName());
- restriction.setPatternId(currentPattern.getId());
- restriction.setPatternIsNot(currentPattern.isPatternNot());
- restriction.setConstraintId(currentConstraint.getId());
- restriction.setFieldId(currentConstraint.getFieldId());
- restriction.setOperator(Operator.determineOperator(
- descr.getEvaluator(), descr.isNegated()));
- restriction.setVariable(variable);
- restriction.setOrderNumber(orderNumber);
- restriction.setParent(parent);
-
- // Set field value, if it is unset.
- currentField.setFieldType(Field.FieldType.VARIABLE);
-
- data.add(restriction);
- solvers.addRestriction(restriction);
- }
-
- /**
- * End
- *
- * @param descr
- */
- private void flatten(ReturnValueRestrictionDescr descr,
- VerifierComponent parent, int orderNumber) {
-
- ReturnValueRestriction restriction = new ReturnValueRestriction();
-
- restriction.setRuleId(currentRule.getId());
- restriction.setRuleName(currentRule.getRuleName());
- restriction.setPatternId(currentPattern.getId());
- restriction.setPatternIsNot(currentPattern.isPatternNot());
- restriction.setConstraintId(currentConstraint.getId());
- restriction.setFieldId(currentConstraint.getFieldId());
- restriction.setOperator(Operator.determineOperator(
- descr.getEvaluator(), descr.isNegated()));
- restriction.setClassMethodName(descr.getClassMethodName());
- restriction.setContent(descr.getContent());
- restriction.setDeclarations(descr.getDeclarations());
- restriction.setOrderNumber(orderNumber);
- restriction.setParent(parent);
-
- data.add(restriction);
- solvers.addRestriction(restriction);
-
- }
-
- /**
- * End
- *
- * @param descr
- */
- private void flatten(LiteralRestrictionDescr descr,
- VerifierComponent parent, int orderNumber) {
-
- LiteralRestriction restriction = new LiteralRestriction();
-
- restriction.setRuleId(currentRule.getId());
- restriction.setRuleName(currentRule.getRuleName());
- restriction.setRuleId(currentRule.getId());
- restriction.setPatternId(currentPattern.getId());
- restriction.setPatternIsNot(currentPattern.isPatternNot());
- restriction.setConstraintId(currentConstraint.getId());
- restriction.setFieldId(currentConstraint.getFieldId());
- restriction.setOperator(Operator.determineOperator(
- descr.getEvaluator(), descr.isNegated()));
- restriction.setValue(descr.getText());
- restriction.setOrderNumber(orderNumber);
- restriction.setParent(parent);
-
- // Set field value, if it is unset.
- currentField.setFieldType(restriction.getValueType());
-
- data.add(restriction);
- solvers.addRestriction(restriction);
- }
-
- /**
- * End
- *
- * @param descr
- */
- private void flatten(QualifiedIdentifierRestrictionDescr descr,
- VerifierComponent parent, int orderNumber) {
-
- String text = descr.getText();
-
- String base = text.substring(0, text.indexOf("."));
- String fieldName = text.substring(text.indexOf("."));
-
- Variable variable = data.getVariableByRuleAndVariableName(currentRule
- .getRuleName(), base);
-
- if (variable != null) {
-
- QualifiedIdentifierRestriction restriction = new QualifiedIdentifierRestriction();
-
- restriction.setRuleId(currentRule.getId());
- restriction.setPatternId(currentPattern.getId());
- restriction.setPatternIsNot(currentPattern.isPatternNot());
- restriction.setConstraintId(currentConstraint.getId());
- restriction.setFieldId(currentConstraint.getFieldId());
- restriction.setOperator(Operator.determineOperator(descr
- .getEvaluator(), descr.isNegated()));
- restriction.setVariableId(variable.getId());
- restriction.setVariableName(base);
- restriction.setVariablePath(fieldName);
- restriction.setOrderNumber(orderNumber);
- restriction.setParent(parent);
-
- // Set field value, if it is not set.
- currentField.setFieldType(Field.FieldType.VARIABLE);
-
- variable.setObjectType(VerifierComponentType.FIELD);
-
- data.add(restriction);
- solvers.addRestriction(restriction);
- } else {
-
- EnumField enumField = (EnumField) data
- .getFieldByObjectTypeAndFieldName(base, fieldName);
- if (enumField == null) {
- ObjectType objectType = findOrCreateNewObjectType(base);
-
- enumField = new EnumField();
- enumField.setObjectTypeId(objectType.getId());
- enumField.setClassName(objectType.getName());
- enumField.setName(fieldName);
-
- objectType.getFields().add(enumField);
-
- data.add(enumField);
- }
-
- EnumRestriction restriction = new EnumRestriction();
-
- restriction.setRuleId(currentRule.getId());
- restriction.setPatternId(currentPattern.getId());
- restriction.setPatternIsNot(currentPattern.isPatternNot());
- restriction.setConstraintId(currentConstraint.getId());
- restriction.setFieldId(currentConstraint.getFieldId());
- restriction.setOperator(Operator.determineOperator(descr
- .getEvaluator(), descr.isNegated()));
- restriction.setEnumBaseId(enumField.getId());
- restriction.setEnumBase(base);
- restriction.setEnumName(fieldName);
- restriction.setOrderNumber(orderNumber);
- restriction.setParent(parent);
-
- // Set field value, if it is not set.
- currentField.setFieldType(Field.FieldType.ENUM);
-
- data.add(restriction);
- solvers.addRestriction(restriction);
- }
- }
-
- private ObjectType findOrCreateNewObjectType(String name) {
- ObjectType objectType = data.getObjectTypeByName(name);
- if (objectType == null) {
- objectType = new ObjectType();
- objectType.setName(name);
- data.add(objectType);
- }
- return objectType;
- }
-
- private Field createField(String fieldName, int classId, String className) {
- Field field = new Field();
- field.setObjectTypeId(classId);
- field.setClassName(className);
- field.setName(fieldName);
-
- currentObjectType.getFields().add(field);
- return field;
- }
-
- private void formPossibilities() {
-
- for (PatternPossibility possibility : solvers.getPatternPossibilities()) {
- data.add(possibility);
- }
- for (RulePossibility possibility : solvers.getRulePossibilities()) {
- data.add(possibility);
- }
- }
-}
Deleted: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/PatternSolver.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/PatternSolver.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/PatternSolver.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,23 +0,0 @@
-package org.drools.verifier;
-
-import org.drools.verifier.components.OperatorDescr;
-import org.drools.verifier.components.Pattern;
-
-/**
- * Takes a list of Constraints and makes possibilities from them.
- *
- * @author Toni Rikkola
- */
-class PatternSolver extends Solver {
-
- private Pattern pattern;
-
- public PatternSolver(Pattern pattern) {
- super(OperatorDescr.Type.OR);
- this.pattern = pattern;
- }
-
- public Pattern getPattern() {
- return pattern;
- }
-}
Deleted: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/RuleLoader.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,99 +0,0 @@
-package org.drools.verifier;
-
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Properties;
-
-import org.drools.compiler.DroolsParserException;
-import org.drools.compiler.PackageBuilder;
-import org.drools.compiler.PackageBuilderConfiguration;
-import org.drools.rule.Package;
-
-class RuleLoader {
-
- public static Collection<Package> loadPackages() {
-
- String[] fileNames = new String[] {
- // Missing consequence
- "Consequence.drl",
- // Always false
- "alwaysFalse/Patterns.drl",
- // Equivalence
- "equivalence/Rules.drl",
- // Incoherence
- "incoherence/Patterns.drl",
- "incoherence/Restrictions.drl",
- // Incompatibility
- "incompatibility/Patterns.drl",
- "incompatibility/Restrictions.drl",
- // Missing equality
- "missingEquality/MissingEquality.drl",
- // Opposites
- "opposites/Patterns.drl",
- "opposites/Restrictions.drl",
- "opposites/Rules.drl",
- // Optimization
- "optimisation/PatternOrder.drl",
- "optimisation/RestrictionOrder.drl",
- // Overlaps
- "overlaps/Restrictions.drl",
- // Range checks
- "rangeChecks/Clean.drl",
- "rangeChecks/Dates.drl",
- "rangeChecks/Doubles.drl",
- "rangeChecks/Integers.drl",
- "rangeChecks/NumberPatterns.drl",
- "rangeChecks/Variables.drl",
- // Redundancy
- "redundancy/Consequence.drl",
- "redundancy/Notes.drl",
- "redundancy/Patterns.drl",
- "redundancy/Possibilities.drl",
- "redundancy/Restrictions.drl",
- "redundancy/Rules.drl",
- "redundancy/Warnings.drl",
- // Reporting
- "reports/RangeCheckReports.drl",
- // Subsumption
- "subsumption/Possibilities.drl",
- "subsumption/Restrictions.drl"
- };
-
- Collection<Package> packages = new ArrayList<Package>();
-
- for (int i = 0; i < fileNames.length; i++) {
- try {
- InputStreamReader reader = new InputStreamReader(
- RuleLoader.class.getResourceAsStream(fileNames[i]));
- packages.add(loadPackage(reader));
- reader.close();
- } catch (DroolsParserException e) {
- e.printStackTrace();
- } catch (NullPointerException e) {
- System.err.println("Error when opening file " + fileNames[i]
- + ".");
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- return packages;
- }
-
- private static Package loadPackage(InputStreamReader reader)
- throws DroolsParserException, IOException {
-
- Properties properties = new Properties();
- properties.setProperty( "drools.dialect.java.compiler",
- "JANINO" );
-
- PackageBuilder builder = new PackageBuilder(new PackageBuilderConfiguration( properties ));
-
- builder.addPackageFromDrl(reader);
-
- return builder.getPackage();
- }
-}
Deleted: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/RuleSolver.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,23 +0,0 @@
-package org.drools.verifier;
-
-import org.drools.verifier.components.OperatorDescr;
-import org.drools.verifier.components.VerifierRule;
-
-/**
- * Takes a list of Constraints and makes possibilities from them.
- *
- * @author Toni Rikkola
- */
-class RuleSolver extends Solver {
-
- private VerifierRule rule;
-
- public RuleSolver(VerifierRule rule) {
- super(OperatorDescr.Type.OR);
- this.rule = (VerifierRule) rule;
- }
-
- public VerifierRule getRule() {
- return rule;
- }
-}
Deleted: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Solver.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,160 +0,0 @@
-package org.drools.verifier;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.drools.verifier.components.OperatorDescr;
-import org.drools.verifier.components.VerifierComponent;
-
-/**
- * Takes a list of Constraints and makes possibilities from them.
- *
- * @author Toni Rikkola
- */
-class Solver {
-
- private List<Set<VerifierComponent>> possibilityLists = new ArrayList<Set<VerifierComponent>>();
- private Solver subSolver = null;
- private boolean isChildExists = false;
- private boolean isChildForall = false;
- private boolean isChildNot = false;
-
- private OperatorDescr.Type type;
-
- protected Solver(OperatorDescr.Type type) {
- this.type = type;
- }
-
- public void addOperator(OperatorDescr.Type type) {
- if (subSolver != null) {
- subSolver.addOperator(type);
- } else {
- subSolver = new Solver(type);
- }
- }
-
- /**
- * Add new descr.
- *
- * @param descr
- */
- public void add(VerifierComponent descr) {
-
- if (descr instanceof OperatorDescr) {
- throw new UnsupportedOperationException(
- "Operator descrs are not supported.");
- }
-
- if (subSolver != null) {
- subSolver.add(descr);
- } else {
- if (type == OperatorDescr.Type.AND) {
- if (possibilityLists.isEmpty()) {
- possibilityLists.add(new HashSet<VerifierComponent>());
- }
- for (Set<VerifierComponent> set : possibilityLists) {
- set.add(descr);
- }
- } else if (type == OperatorDescr.Type.OR) {
- Set<VerifierComponent> set = new HashSet<VerifierComponent>();
- set.add(descr);
- possibilityLists.add(set);
- }
- }
- }
-
- /**
- * Ends subSolvers data collection.
- *
- */
- protected void end() {
- if (subSolver != null && subSolver.subSolver == null) {
- if (type == OperatorDescr.Type.AND) {
- if (possibilityLists.isEmpty()) {
- possibilityLists.add(new HashSet<VerifierComponent>());
- }
-
- List<Set<VerifierComponent>> newPossibilities = new ArrayList<Set<VerifierComponent>>();
-
- List<Set<VerifierComponent>> sets = subSolver
- .getPossibilityLists();
- for (Set<VerifierComponent> possibilityList : possibilityLists) {
-
- for (Set<VerifierComponent> set : sets) {
- Set<VerifierComponent> newSet = new HashSet<VerifierComponent>();
- newSet.addAll(possibilityList);
- newSet.addAll(set);
- newPossibilities.add(newSet);
- }
- }
- possibilityLists = newPossibilities;
-
- } else if (type == OperatorDescr.Type.OR) {
-
- possibilityLists.addAll(subSolver.getPossibilityLists());
-
- }
-
- subSolver = null;
-
- } else if (subSolver != null && subSolver.subSolver != null) {
-
- subSolver.end();
- }
-
- }
-
- public void setChildForall(boolean b) {
- if (subSolver != null) {
- subSolver.setChildForall(b);
- } else {
- isChildForall = b;
- }
- }
-
- public void setChildExists(boolean b) {
- if (subSolver != null) {
- subSolver.setChildExists(b);
- } else {
- isChildExists = b;
- }
- }
-
- public void setChildNot(boolean b) {
- if (subSolver != null) {
- subSolver.setChildNot(b);
- } else {
- isChildNot = b;
- }
- }
-
- public boolean isForall() {
- if (subSolver != null) {
- return subSolver.isForall();
- } else {
- return isChildForall;
- }
- }
-
- public boolean isExists() {
- if (subSolver != null) {
- return subSolver.isExists();
- } else {
- return isChildExists;
- }
- }
-
- public boolean isChildNot() {
- if (subSolver != null) {
- return subSolver.isChildNot();
- } else {
- return isChildNot;
- }
- }
-
- public List<Set<VerifierComponent>> getPossibilityLists() {
- return possibilityLists;
- }
-}
Deleted: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Solvers.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,174 +0,0 @@
-package org.drools.verifier;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-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.RulePossibility;
-import org.drools.verifier.components.VerifierComponent;
-import org.drools.verifier.components.VerifierRule;
-
-/**
- *
- * @author Toni Rikkola
- */
-class Solvers {
-
- private RuleSolver ruleSolver = null;
- private PatternSolver patternSolver = null;
-
- private List<PatternPossibility> patternPossibilities = new ArrayList<PatternPossibility>();
- private List<RulePossibility> rulePossibilities = new ArrayList<RulePossibility>();
-
- public void startRuleSolver(VerifierRule rule) {
- ruleSolver = new RuleSolver(rule);
- }
-
- public void endRuleSolver() {
- createRulePossibilities();
- ruleSolver = null;
- }
-
- public void startPatternSolver(Pattern pattern) {
- patternSolver = new PatternSolver(pattern);
-
- patternSolver.getPattern().setPatternNot(ruleSolver.isChildNot());
- }
-
- public void endPatternSolver() {
- createPatternPossibilities();
- patternSolver = null;
- }
-
- public void startForall() {
- if (patternSolver != null) {
- patternSolver.setChildForall(true);
- } else if (ruleSolver != null) {
- ruleSolver.setChildForall(true);
- }
- }
-
- public void endForall() {
- if (patternSolver != null) {
- patternSolver.setChildForall(false);
- } else if (ruleSolver != null) {
- ruleSolver.setChildForall(false);
- }
- }
-
- public void startExists() {
- if (patternSolver != null) {
- patternSolver.setChildExists(true);
- } else if (ruleSolver != null) {
- ruleSolver.setChildExists(true);
- }
- }
-
- public void endExists() {
- if (patternSolver != null) {
- patternSolver.setChildExists(false);
- } else if (ruleSolver != null) {
- ruleSolver.setChildExists(false);
- }
- }
-
- public void startNot() {
- if (patternSolver != null) {
- patternSolver.setChildNot(true);
- } else if (ruleSolver != null) {
- ruleSolver.setChildNot(true);
- }
- }
-
- public void endNot() {
- if (patternSolver != null) {
- patternSolver.setChildNot(false);
- } else if (ruleSolver != null) {
- ruleSolver.setChildNot(false);
- }
- }
-
- public void startOperator(OperatorDescr.Type type) {
- if (patternSolver != null) {
- patternSolver.addOperator(type);
- } else if (ruleSolver != null) {
- ruleSolver.addOperator(type);
- }
- }
-
- public void endOperator() {
- if (patternSolver != null) {
- patternSolver.end();
- } else if (ruleSolver != null) {
- ruleSolver.end();
- }
- }
-
- public void addRestriction(Restriction restriction) {
- patternSolver.add(restriction);
- }
-
- private void createPatternPossibilities() {
- for (Set<VerifierComponent> list : patternSolver.getPossibilityLists()) {
- PatternPossibility possibility = new PatternPossibility();
-
- possibility.setRuleId(ruleSolver.getRule().getId());
- possibility.setRuleName(ruleSolver.getRule().getRuleName());
- possibility.setRuleId(ruleSolver.getRule().getId());
- possibility.setPatternId(patternSolver.getPattern().getId());
-
- for (VerifierComponent descr : list) {
- possibility.add((Restriction) descr);
- }
-
- ruleSolver.add(possibility);
- patternPossibilities.add(possibility);
- }
- }
-
- private void createRulePossibilities() {
- 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 (VerifierComponent descr : list) {
- PatternPossibility patternPossibility = (PatternPossibility) descr;
- possibility.add(patternPossibility);
- }
-
- rulePossibilities.add(possibility);
- }
- }
-
- public List<PatternPossibility> getPatternPossibilities() {
- return patternPossibilities;
- }
-
- public void setPatternPossibilities(
- List<PatternPossibility> patternPossibilities) {
- this.patternPossibilities = patternPossibilities;
- }
-
- public List<RulePossibility> getRulePossibilities() {
- return rulePossibilities;
- }
-
- public void setRulePossibilities(List<RulePossibility> rulePossibilities) {
- this.rulePossibilities = rulePossibilities;
- }
-
- public PatternSolver getPatternSolver() {
- return patternSolver;
- }
-
- public RuleSolver getRuleSolver() {
- return ruleSolver;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/UnknownDescriptionException.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/UnknownDescriptionException.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/UnknownDescriptionException.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,21 +0,0 @@
-package org.drools.verifier;
-
-import org.drools.lang.descr.BaseDescr;
-
-/**
- * This exception is thrown when verifier tries to handle a descr that it is not
- * familiar with.
- *
- * @author trikkola
- */
-public class UnknownDescriptionException extends Exception {
- private static final long serialVersionUID = 6636873223159735829L;
-
- final BaseDescr descr;
-
- public UnknownDescriptionException(BaseDescr descr) {
- super("Descr ( " + descr + " ) is unknown to drools verifier.");
- this.descr = descr;
- }
-
-}
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/Verifier.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,49 +1,25 @@
package org.drools.verifier;
-import java.util.Collection;
+import java.util.List;
-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;
+import org.drools.builder.ResourceType;
+import org.drools.io.Resource;
+import org.drools.verifier.data.VerifierReport;
-/**
- * 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 {
+public interface Verifier {
- static RuleBase verifierKnowledgeBase;
+ /**
+ * Add resource that is verified.
+ *
+ * @param descr
+ */
+ public void addResourcesToVerify(Resource resource,
+ ResourceType type);
- 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
+ * TODO: Something like this, takes a look at the objects and finds out
*/
- public synchronized void reloadAnalysisKnowledgeBase() throws Exception {
- verifierKnowledgeBase = createRuleBase();
- }
+ // public void addObjectModel();
/**
*
@@ -51,88 +27,14 @@
*
* @return true if everything worked.
*/
- public boolean fireAnalysis() {
- try {
+ public boolean fireAnalysis();
- if ( this.verifierKnowledgeBase == null ) {
- synchronized ( this.getClass() ) {
- verifierKnowledgeBase = createRuleBase();
- }
- }
+ public VerifierReport getResult();
- WorkingMemory workingMemory = verifierKnowledgeBase.newStatefulSession();
+ public boolean hasErrors();
- Collection< ? extends Object> c = result.getVerifierData().getAll();
+ public List<VerifierError> getErrors();
- for ( Object o : c ) {
- workingMemory.insert( o );
- }
+ public void dispose();
- // Object that returns the results.
- workingMemory.setGlobal( "result",
- result );
- workingMemory.fireAllRules();
-
- } catch ( Throwable t ) {
- t.printStackTrace();
-
- return false;
- }
-
- return true;
- }
-
- /**
- * 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;
- }
-}
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierConfiguration.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierConfiguration.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,22 @@
+package org.drools.verifier;
+
+import java.util.Map;
+
+import org.drools.PropertiesConfiguration;
+import org.drools.builder.ResourceType;
+import org.drools.io.Resource;
+
+public interface VerifierConfiguration
+ extends
+ PropertiesConfiguration {
+
+ /**
+ * Add external analyzing rules to verifier.
+ *
+ * @param resource
+ * the Resource to add
+ * @param type
+ * the resource type
+ */
+ Map<Resource, ResourceType> getVerifyingResources();
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierConfigurationImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierConfigurationImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierConfigurationImpl.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,30 @@
+package org.drools.verifier;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.builder.ResourceType;
+import org.drools.io.Resource;
+
+public class VerifierConfigurationImpl
+ implements
+ VerifierConfiguration {
+
+ protected Map<Resource, ResourceType> verifyingResources = new HashMap<Resource, ResourceType>();
+ private Map<String, String> properties = new HashMap<String, String>();
+
+ public String getProperty(String name) {
+ return properties.get( name );
+ }
+
+ public void setProperty(String name,
+ String value) {
+ properties.put( name,
+ value );
+ }
+
+ public Map<Resource, ResourceType> getVerifyingResources() {
+ return verifyingResources;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierConfigurationOptions.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierConfigurationOptions.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierConfigurationOptions.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,5 @@
+package org.drools.verifier;
+
+public enum VerifierConfigurationOptions {
+
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierError.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierError.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/VerifierError.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,15 @@
+package org.drools.verifier;
+
+public class VerifierError {
+
+ private final String message;
+
+ public VerifierError(String message) {
+ this.message = message;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilder.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilder.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,22 @@
+package org.drools.verifier.builder;
+
+import java.util.List;
+
+import org.drools.verifier.Verifier;
+import org.drools.verifier.VerifierConfiguration;
+import org.drools.verifier.report.VerifierReportConfiguration;
+
+public interface VerifierBuilder {
+
+ public VerifierConfiguration newVerifierConfiguration();
+
+ public VerifierReportConfiguration newVerifierReportConfiguration();
+
+ public Verifier newVerifier();
+
+ public Verifier newVerifier(VerifierConfiguration conf);
+
+ boolean hasErrors();
+
+ List<VerifierBuilderError> getErrors();
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderConfiguration.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderConfiguration.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,5 @@
+package org.drools.verifier.builder;
+
+public interface VerifierBuilderConfiguration {
+
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderConfigurationImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderConfigurationImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderConfigurationImpl.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,7 @@
+package org.drools.verifier.builder;
+
+public class VerifierBuilderConfigurationImpl
+ implements
+ VerifierBuilderConfiguration {
+
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderError.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderError.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderError.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,5 @@
+package org.drools.verifier.builder;
+
+public interface VerifierBuilderError {
+
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderErrors.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderErrors.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderErrors.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,8 @@
+package org.drools.verifier.builder;
+
+import java.util.Collection;
+
+public interface VerifierBuilderErrors extends
+ Collection<VerifierBuilderError>{
+
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderFactory.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderFactory.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,8 @@
+package org.drools.verifier.builder;
+
+public class VerifierBuilderFactory {
+
+ public static VerifierBuilder newVerifierBuilder() {
+ return new VerifierBuilderImpl();
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderImpl.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,41 @@
+package org.drools.verifier.builder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.verifier.Verifier;
+import org.drools.verifier.VerifierConfiguration;
+import org.drools.verifier.VerifierConfigurationImpl;
+import org.drools.verifier.report.VerifierReportConfiguration;
+import org.drools.verifier.report.VerifierReportConfigurationImpl;
+
+public class VerifierBuilderImpl
+ implements
+ VerifierBuilder {
+
+ private List<VerifierBuilderError> errors = new ArrayList<VerifierBuilderError>();
+
+ public VerifierConfiguration newVerifierConfiguration() {
+ return new VerifierConfigurationImpl();
+ }
+
+ public VerifierReportConfiguration newVerifierReportConfiguration() {
+ return new VerifierReportConfigurationImpl();
+ }
+
+ public Verifier newVerifier() {
+ return new VerifierImpl();
+ }
+
+ public Verifier newVerifier(VerifierConfiguration conf) {
+ return new VerifierImpl( conf );
+ }
+
+ public List<VerifierBuilderError> getErrors() {
+ return errors;
+ }
+
+ public boolean hasErrors() {
+ return !errors.isEmpty();
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,174 @@
+package org.drools.verifier.builder;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.builder.ResourceType;
+import org.drools.compiler.DrlParser;
+import org.drools.compiler.DroolsParserException;
+import org.drools.io.Resource;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.verifier.DefaultVerifierConfiguration;
+import org.drools.verifier.Verifier;
+import org.drools.verifier.VerifierConfiguration;
+import org.drools.verifier.VerifierError;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
+import org.drools.verifier.misc.PackageDescrVisitor;
+import org.drools.verifier.misc.RuleLoader;
+
+/**
+ * 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
+ */
+class VerifierImpl
+ implements
+ Verifier {
+
+ private KnowledgeBase verifierKnowledgeBase;
+ private StatefulKnowledgeSession ksession;
+ private final VerifierConfiguration conf;
+
+ private List<VerifierError> errors = new ArrayList<VerifierError>();
+
+ private VerifierReport result = VerifierReportFactory.newVerifierReport();
+
+ public VerifierImpl(VerifierConfiguration conf) {
+ this.conf = conf;
+ }
+
+ public VerifierImpl() {
+ this.conf = new DefaultVerifierConfiguration();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.drools.verifier.Verifier#addPackageDescr(org.drools.lang.descr.
+ * PackageDescr)
+ */
+ public void addPackageDescr(PackageDescr descr) {
+ try {
+
+ PackageDescrVisitor ruleFlattener = new PackageDescrVisitor();
+
+ ruleFlattener.addPackageDescrToData( descr,
+ result.getVerifierData() );
+
+ } catch ( Throwable t ) {
+ t.printStackTrace();
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.drools.verifier.Verifier#reloadAnalysisKnowledgeBase()
+ */
+ public synchronized void reloadVerifierKnowledgeBase() throws Exception {
+ updateRuleBase();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.drools.verifier.Verifier#fireAnalysis()
+ */
+ public boolean fireAnalysis() {
+ try {
+
+ if ( this.verifierKnowledgeBase == null ) {
+ synchronized ( this.getClass() ) {
+ updateRuleBase();
+ updateKnowledgeSession();
+ }
+ }
+
+ for ( Object o : result.getVerifierData().getAll() ) {
+ ksession.insert( o );
+ }
+
+ // Object that returns the results.
+ ksession.setGlobal( "result",
+ result );
+ ksession.fireAllRules();
+
+ } catch ( Throwable t ) {
+ t.printStackTrace();
+
+ return false;
+ }
+
+ return true;
+ }
+
+ private void updateKnowledgeSession() {
+ if ( this.ksession != null ) {
+ this.ksession.dispose();
+ }
+
+ ksession = verifierKnowledgeBase.newStatefulKnowledgeSession();
+ }
+
+ /**
+ * Returns the verifier results as <code>AnalysisResult</code> object.
+ *
+ * @return Analysis result
+ */
+ public VerifierReport getResult() {
+ return result;
+ }
+
+ private void updateRuleBase() throws Exception {
+
+ verifierKnowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
+
+ verifierKnowledgeBase.addKnowledgePackages( RuleLoader.loadPackages( conf.getVerifyingResources() ) );
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.drools.verifier.Verifier#dispose()
+ */
+ public void dispose() {
+ if ( ksession != null ) {
+ synchronized ( this.getClass() ) {
+ ksession.dispose();
+ }
+ }
+ }
+
+ public void addResourcesToVerify(Resource resource,
+ ResourceType type) {
+
+ if ( type.matchesExtension( ".drl" ) ) {
+ DrlParser p = new DrlParser();
+
+ try {
+
+ PackageDescr pkg = p.parse( resource.getInputStream() );
+ addPackageDescr( pkg );
+
+ } catch ( DroolsParserException e ) {
+ errors.add( new VerifierError( e.getMessage() ) );
+ } catch ( IOException e ) {
+ errors.add( new VerifierError( e.getMessage() ) );
+ }
+ }
+ }
+
+ public List<VerifierError> getErrors() {
+ return errors;
+ }
+
+ public boolean hasErrors() {
+ return !errors.isEmpty();
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ChildComponent.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ChildComponent.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ChildComponent.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,11 @@
+package org.drools.verifier.components;
+
+public interface ChildComponent {
+
+ public VerifierComponentType getParentType();
+
+ public String getParentGuid();
+
+ public int getOrderNumber();
+
+}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Consequence.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Consequence.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Consequence.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -2,25 +2,20 @@
import org.drools.verifier.report.components.Cause;
-public interface Consequence extends Cause {
+public interface Consequence
+ extends
+ Cause {
- public static class ConsequenceType {
+ public static class ConsequenceType {
+ public static final ConsequenceType TEXT = new ConsequenceType( "TEXT" );
- public static final ConsequenceType TEXT = new ConsequenceType(0);
+ protected String type;
- private final int index;
+ public ConsequenceType(String t) {
+ type = t;
+ }
+ }
- private ConsequenceType(int i) {
- index = i;
- }
- }
+ public ConsequenceType getConsequenceType();
- public int getId();
-
- public ConsequenceType getConsequenceType();
-
- public int getRuleId();
-
- public String getRuleName();
-
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Constraint.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Constraint.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Constraint.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,80 +7,57 @@
*
* @author Toni Rikkola
*/
-public class Constraint extends VerifierComponent implements Cause {
+public class Constraint extends PatternComponent
+ implements
+ Cause {
- private static int index = 0;
+ private boolean patternIsNot;
+ private String fieldGuid;
+ private String fieldName;
+ private int lineNumber;
- private int ruleId;
- private int patternId;
- private boolean patternIsNot;
- private int fieldId;
- private String fieldName;
- private int lineNumber;
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.CONSTRAINT;
+ }
- public Constraint() {
- super(index++);
- }
+ public CauseType getCauseType() {
+ return CauseType.CONSTRAINT;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.CONSTRAINT;
- }
+ public int getLineNumber() {
+ return lineNumber;
+ }
- public CauseType getCauseType() {
- return CauseType.CONSTRAINT;
- }
+ public void setLineNumber(int lineNumber) {
+ this.lineNumber = lineNumber;
+ }
- public int getFieldId() {
- return fieldId;
- }
+ public boolean isPatternIsNot() {
+ return patternIsNot;
+ }
- public void setFieldId(int fieldId) {
- this.fieldId = fieldId;
- }
+ public void setPatternIsNot(boolean patternIsNot) {
+ this.patternIsNot = patternIsNot;
+ }
- public int getRuleId() {
- return ruleId;
- }
+ public String getFieldName() {
+ return fieldName;
+ }
- public void setRuleId(int ruleId) {
- this.ruleId = ruleId;
- }
+ public void setFieldName(String fieldName) {
+ this.fieldName = fieldName;
+ }
- public int getLineNumber() {
- return lineNumber;
- }
+ @Override
+ public String toString() {
+ return "Constraint id: " + getGuid() + " field name: " + fieldName;
+ }
- public void setLineNumber(int lineNumber) {
- this.lineNumber = lineNumber;
- }
+ public void setFieldGuid(String guid) {
+ this.fieldGuid = guid;
+ }
- public int getPatternId() {
- return patternId;
- }
-
- public void setPatternId(int patternId) {
- this.patternId = patternId;
- }
-
- public boolean isPatternIsNot() {
- return patternIsNot;
- }
-
- public void setPatternIsNot(boolean patternIsNot) {
- this.patternIsNot = patternIsNot;
- }
-
- public String getFieldName() {
- return fieldName;
- }
-
- public void setFieldName(String fieldName) {
- this.fieldName = fieldName;
- }
-
- @Override
- public String toString() {
- return "Constraint id: " + id + " field name: " + fieldName;
- }
+ public String getFieldGuid() {
+ return fieldGuid;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/EnumField.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/EnumField.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/EnumField.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,10 +1,10 @@
package org.drools.verifier.components;
public class EnumField extends Field {
- private static final long serialVersionUID = 7617431515074762479L;
+ private static final long serialVersionUID = 7617431515074762479L;
- @Override
- public String toString() {
- return "Enum: " + objectTypeName + "." + name;
- }
+ @Override
+ public String toString() {
+ return "Enum: " + objectTypeName + "." + name;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/EnumRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/EnumRestriction.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/EnumRestriction.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -2,42 +2,41 @@
public class EnumRestriction extends Restriction {
- private int enumBaseId;
- private String enumBase;
- private String enumName;
+ private String enumBaseGuid;
+ private String enumBase;
+ private String enumName;
- @Override
- public RestrictionType getRestrictionType() {
- return RestrictionType.ENUM;
- }
+ @Override
+ public RestrictionType getRestrictionType() {
+ return RestrictionType.ENUM;
+ }
- public int getEnumBaseId() {
- return enumBaseId;
- }
+ public String getEnumBaseGuid() {
+ return enumBaseGuid;
+ }
- public void setEnumBaseId(int enumBaseId) {
- this.enumBaseId = enumBaseId;
- }
+ public void setEnumBaseGuid(String enumBaseGuid) {
+ this.enumBaseGuid = enumBaseGuid;
+ }
- public String getEnumBase() {
- return enumBase;
- }
+ public String getEnumBase() {
+ return enumBase;
+ }
- public void setEnumBase(String enumBase) {
- this.enumBase = enumBase;
- }
+ public void setEnumBase(String enumBase) {
+ this.enumBase = enumBase;
+ }
- public String getEnumName() {
- return enumName;
- }
+ public String getEnumName() {
+ return enumName;
+ }
- public void setEnumName(String enumName) {
- this.enumName = enumName;
- }
+ public void setEnumName(String enumName) {
+ this.enumName = enumName;
+ }
- @Override
- public String toString() {
- return "QualifiedIdentifierRestrictionDescr enum: " + enumBase + "."
- + enumName;
- }
+ @Override
+ public String toString() {
+ return "QualifiedIdentifierRestrictionDescr enum: " + enumBase + "." + enumName;
+ }
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Field.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,90 +7,86 @@
*
* @author Toni Rikkola
*/
-public class Field extends VerifierComponent implements Cause {
+public class Field extends RuleComponent
+ implements
+ Cause {
- public static class FieldType {
- public static final FieldType BOOLEAN = new FieldType("boolean");
- public static final FieldType STRING = new FieldType("String");
- public static final FieldType INT = new FieldType("int");
- public static final FieldType DOUBLE = new FieldType("double");
- public static final FieldType DATE = new FieldType("Date");
- public static final FieldType VARIABLE = new FieldType("Variable");
- public static final FieldType OBJECT = new FieldType("Object");
- public static final FieldType ENUM = new FieldType("Enum");
- public static final FieldType UNKNOWN = new FieldType("Unknown");
+ public static class FieldType {
+ public static final FieldType BOOLEAN = new FieldType( "boolean" );
+ public static final FieldType STRING = new FieldType( "String" );
+ public static final FieldType INT = new FieldType( "int" );
+ public static final FieldType DOUBLE = new FieldType( "double" );
+ public static final FieldType DATE = new FieldType( "Date" );
+ public static final FieldType VARIABLE = new FieldType( "Variable" );
+ public static final FieldType OBJECT = new FieldType( "Object" );
+ public static final FieldType ENUM = new FieldType( "Enum" );
+ public static final FieldType UNKNOWN = new FieldType( "Unknown" );
- private final String string;
+ private final String string;
- private FieldType(String string) {
- this.string = string;
- }
+ private FieldType(String string) {
+ this.string = string;
+ }
- @Override
- public String toString() {
- return string;
- }
- }
+ @Override
+ public String toString() {
+ return string;
+ }
+ }
- private static int index = 0;
+ private String objectTypeGuid;
+ protected String objectTypeName;
+ protected String name;
+ private FieldType fieldType;
- private int objectTypeId;
- protected String objectTypeName;
- protected String name;
- private FieldType fieldType;
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.FIELD;
+ }
- public Field() {
- super(index++);
- }
+ public CauseType getCauseType() {
+ return CauseType.FIELD;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.FIELD;
- }
+ public String getName() {
+ return name;
+ }
- public CauseType getCauseType() {
- return CauseType.FIELD;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public String getName() {
- return name;
- }
+ public FieldType getFieldType() {
+ return fieldType;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public void setFieldType(FieldType fieldType) {
+ // Only set fieldType to variable if there is no other fieldType found.
+ if ( fieldType == FieldType.VARIABLE && this.fieldType == null ) {
+ this.fieldType = fieldType;
+ } else {
+ this.fieldType = fieldType;
+ }
+ }
- public FieldType getFieldType() {
- return fieldType;
- }
+ public String getObjectTypeGuid() {
+ return objectTypeGuid;
+ }
- public void setFieldType(FieldType fieldType) {
- // Only set fieldType to variable if there is no other fieldType found.
- if (fieldType == FieldType.VARIABLE && this.fieldType == null) {
- this.fieldType = fieldType;
- } else {
- this.fieldType = fieldType;
- }
- }
+ public void setObjectTypeGuid(String objectTypeGuid) {
+ this.objectTypeGuid = objectTypeGuid;
+ }
- public int getObjectTypeId() {
- return objectTypeId;
- }
+ public String getObjectTypeName() {
+ return objectTypeName;
+ }
- public void setObjectTypeId(int objectTypeId) {
- this.objectTypeId = objectTypeId;
- }
+ public void setObjectTypeName(String objectTypeName) {
+ this.objectTypeName = objectTypeName;
+ }
- public String getObjectTypeName() {
- return objectTypeName;
- }
+ @Override
+ public String toString() {
+ return "Field '" + name + "' from object type '" + objectTypeName + "'";
+ }
- public void setClassName(String objectTypeName) {
- this.objectTypeName = objectTypeName;
- }
-
- @Override
- public String toString() {
- return "Field '" + name + "' from object type '" + objectTypeName + "'";
- }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/FieldObjectTypeLink.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/FieldObjectTypeLink.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/FieldObjectTypeLink.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,38 +1,33 @@
package org.drools.verifier.components;
+import org.drools.verifier.data.VerifierComponent;
+
/**
*
* @author Toni Rikkola
*/
public class FieldObjectTypeLink extends VerifierComponent {
- private static int index = 0;
+ private int fieldId;
+ private int objectTypeId;
- private int fieldId;
- private int objectTypeId;
+ public int getObjectTypeId() {
+ return objectTypeId;
+ }
- public FieldObjectTypeLink() {
- super(index++);
- }
+ public void setClassId(int classId) {
+ this.objectTypeId = classId;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.FIELD_CLASS_LINK;
- }
+ public int getFieldId() {
+ return fieldId;
+ }
- public int getObjectTypeId() {
- return objectTypeId;
- }
+ public void setFieldId(int fieldId) {
+ this.fieldId = fieldId;
+ }
- public void setClassId(int classId) {
- this.objectTypeId = classId;
- }
-
- public int getFieldId() {
- return fieldId;
- }
-
- public void setFieldId(int fieldId) {
- this.fieldId = fieldId;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.FIELD_OBJECT_TYPE_LINK;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/InlineEvalDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/InlineEvalDescr.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/InlineEvalDescr.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -4,6 +4,11 @@
*
* @author Toni Rikkola
*/
-public class InlineEvalDescr {
+public class InlineEvalDescr extends PatternComponent {
+ @Override
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.INLINE_EVAL_DESCR;
+ }
+
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/LiteralRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/LiteralRestriction.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/LiteralRestriction.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -11,166 +11,164 @@
*
* @author Toni Rikkola
*/
-public class LiteralRestriction extends Restriction implements Cause {
+public class LiteralRestriction extends Restriction
+ implements
+ Cause {
- private Field.FieldType valueType;
+ private Field.FieldType valueType;
- private boolean booleanValue;
+ private boolean booleanValue;
- private int intValue;
+ private int intValue;
- private double doubleValue;
+ private double doubleValue;
- private String stringValue;
+ private String stringValue;
- private Date dateValue;
+ private Date dateValue;
- public RestrictionType getRestrictionType() {
- return Restriction.RestrictionType.LITERAL;
- }
+ public RestrictionType getRestrictionType() {
+ return Restriction.RestrictionType.LITERAL;
+ }
- /**
- * Compares two LiteralRestrictions by value.
- *
- * @param restriction
- * Restriction that this object is compared to.
- * @return a negative integer, zero, or a positive integer as this object is
- * less than, equal to, or greater than the specified object.
- * @throws DataFormatException
- * If data was not supported.
- */
- public int compareValues(LiteralRestriction restriction)
- throws DataFormatException {
- if (restriction.getValueType() != valueType) {
- throw new DataFormatException(
- "Value types did not match. Value type "
- + restriction.getValueType() + " was compared to "
- + valueType);
- }
+ /**
+ * Compares two LiteralRestrictions by value.
+ *
+ * @param restriction
+ * Restriction that this object is compared to.
+ * @return a negative integer, zero, or a positive integer as this object is
+ * less than, equal to, or greater than the specified object.
+ * @throws DataFormatException
+ * If data was not supported.
+ */
+ public int compareValues(LiteralRestriction restriction) throws DataFormatException {
+ if ( restriction.getValueType() != valueType ) {
+ throw new DataFormatException( "Value types did not match. Value type " + restriction.getValueType() + " was compared to " + valueType );
+ }
- if (valueType == Field.FieldType.DATE) {
- return dateValue.compareTo(restriction.getDateValue());
- } else if (valueType == Field.FieldType.DOUBLE) {
- if (doubleValue > restriction.getDoubleValue()) {
- return 1;
- } else if (doubleValue < restriction.getDoubleValue()) {
- return -1;
- } else {
- return 0;
- }
- } else if (valueType == Field.FieldType.INT) {
- if (intValue > restriction.getIntValue()) {
- return 1;
- } else if (intValue < restriction.getIntValue()) {
- return -1;
- } else {
- return 0;
- }
- } else if (valueType == Field.FieldType.STRING) {
- return stringValue.compareTo(restriction.getValueAsString());
- } else if (valueType == Field.FieldType.UNKNOWN) {
- return 0;
- }
+ if ( valueType == Field.FieldType.DATE ) {
+ return dateValue.compareTo( restriction.getDateValue() );
+ } else if ( valueType == Field.FieldType.DOUBLE ) {
+ if ( doubleValue > restriction.getDoubleValue() ) {
+ return 1;
+ } else if ( doubleValue < restriction.getDoubleValue() ) {
+ return -1;
+ } else {
+ return 0;
+ }
+ } else if ( valueType == Field.FieldType.INT ) {
+ if ( intValue > restriction.getIntValue() ) {
+ return 1;
+ } else if ( intValue < restriction.getIntValue() ) {
+ return -1;
+ } else {
+ return 0;
+ }
+ } else if ( valueType == Field.FieldType.STRING ) {
+ return stringValue.compareTo( restriction.getValueAsString() );
+ } else if ( valueType == Field.FieldType.UNKNOWN ) {
+ return 0;
+ }
- throw new DataFormatException("Value types did not match. Value type "
- + restriction.getValueType() + " was compared to " + valueType);
- }
+ throw new DataFormatException( "Value types did not match. Value type " + restriction.getValueType() + " was compared to " + valueType );
+ }
- public Object getValueAsObject() {
- if (valueType == Field.FieldType.BOOLEAN) {
- return Boolean.valueOf(booleanValue);
- } else if (valueType == Field.FieldType.DATE) {
- return dateValue;
- } else if (valueType == Field.FieldType.DOUBLE) {
- return Double.valueOf(doubleValue);
- } else if (valueType == Field.FieldType.INT) {
- return Integer.valueOf(intValue);
- }
- return stringValue;
- }
+ public Object getValueAsObject() {
+ if ( valueType == Field.FieldType.BOOLEAN ) {
+ return Boolean.valueOf( booleanValue );
+ } else if ( valueType == Field.FieldType.DATE ) {
+ return dateValue;
+ } else if ( valueType == Field.FieldType.DOUBLE ) {
+ return Double.valueOf( doubleValue );
+ } else if ( valueType == Field.FieldType.INT ) {
+ return Integer.valueOf( intValue );
+ }
+ return stringValue;
+ }
- public String getValueAsString() {
- return stringValue;
- }
+ public String getValueAsString() {
+ return stringValue;
+ }
- public double getDoubleValue() {
- return doubleValue;
- }
+ public double getDoubleValue() {
+ return doubleValue;
+ }
- public int getIntValue() {
- return intValue;
- }
+ public int getIntValue() {
+ return intValue;
+ }
- public Field.FieldType getValueType() {
- return valueType;
- }
+ public Field.FieldType getValueType() {
+ return valueType;
+ }
- public Date getDateValue() {
- return dateValue;
- }
+ public Date getDateValue() {
+ return dateValue;
+ }
- public void setValue(String value) {
+ public void setValue(String value) {
- if (value == null) {
- stringValue = null;
- valueType = Field.FieldType.UNKNOWN;
- return;
- }
+ if ( value == null ) {
+ stringValue = null;
+ valueType = Field.FieldType.UNKNOWN;
+ return;
+ }
- stringValue = value;
- valueType = Field.FieldType.STRING;
+ stringValue = value;
+ valueType = Field.FieldType.STRING;
- if ("true".equals(value) || "false".equals(value)) {
- booleanValue = value.equals("true");
- valueType = Field.FieldType.BOOLEAN;
- stringValue = value;
- }
+ if ( "true".equals( value ) || "false".equals( value ) ) {
+ booleanValue = value.equals( "true" );
+ valueType = Field.FieldType.BOOLEAN;
+ stringValue = value;
+ }
- try {
- intValue = Integer.parseInt(value);
- valueType = Field.FieldType.INT;
- stringValue = value;
- return;
- } catch (NumberFormatException e) {
- // Not int.
- }
+ try {
+ intValue = Integer.parseInt( value );
+ valueType = Field.FieldType.INT;
+ stringValue = value;
+ return;
+ } catch ( NumberFormatException e ) {
+ // Not int.
+ }
- try {
- doubleValue = Double.parseDouble(value);
- valueType = Field.FieldType.DOUBLE;
- stringValue = value;
- return;
- } catch (NumberFormatException e) {
- // Not double.
- }
+ try {
+ doubleValue = Double.parseDouble( value );
+ valueType = Field.FieldType.DOUBLE;
+ stringValue = value;
+ return;
+ } catch ( NumberFormatException e ) {
+ // Not double.
+ }
- try {
- String fmt = System.getProperty("drools.dateformat");
- if (fmt == null) {
- fmt = "dd-MMM-yyyy";
- }
+ try {
+ // TODO: Get this from config.
+ String fmt = System.getProperty( "drools.dateformat" );
+ if ( fmt == null ) {
+ fmt = "dd-MMM-yyyy";
+ }
- dateValue = new SimpleDateFormat(fmt, Locale.ENGLISH).parse(value);
- valueType = Field.FieldType.DATE;
- stringValue = value;
- return;
- } catch (Exception e) {
- // Not a date.
- }
+ dateValue = new SimpleDateFormat( fmt,
+ Locale.ENGLISH ).parse( value );
+ valueType = Field.FieldType.DATE;
+ stringValue = value;
+ return;
+ } catch ( Exception e ) {
+ // Not a date.
+ }
- }
+ }
- public boolean getBooleanValue() {
- return booleanValue;
- }
+ public boolean getBooleanValue() {
+ return booleanValue;
+ }
- public void setBooleanValue(boolean booleanValue) {
- this.booleanValue = booleanValue;
- }
+ public void setBooleanValue(boolean booleanValue) {
+ this.booleanValue = booleanValue;
+ }
- @Override
- public String toString() {
- return "LiteralRestriction from rule [" + ruleName + "] value '"
- + operator.getOperatorString() + " " + stringValue + "'";
- }
+ @Override
+ public String toString() {
+ return "LiteralRestriction from rule [" + getRuleName() + "] value '" + operator.getOperatorString() + " " + stringValue + "'";
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ObjectType.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ObjectType.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ObjectType.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -4,47 +4,46 @@
import java.util.HashSet;
import java.util.Set;
+import org.drools.verifier.data.VerifierComponent;
+
/**
* @author Toni Rikkola
*
*/
-public class ObjectType implements Serializable {
- private static final long serialVersionUID = -783733402566313623L;
+public class ObjectType extends VerifierComponent
+ implements
+ Serializable {
+ private static final long serialVersionUID = -783733402566313623L;
- private static int index = 0;
+ private int offset = 0;
+
+ private String name;
- private int id = index++;
- private int offset =0;
-
- private String name;
+ private Set<Field> fields = new HashSet<Field>();
+
+ public int getOffset() {
+ offset++;
+ return offset % 2;
+ }
+
+ public String getName() {
+ return name;
+ }
- private Set<Field> fields = new HashSet<Field>();
+ public void setName(String name) {
+ this.name = name;
+ }
- public String getName() {
- return name;
- }
-
- public int getOffset(){
- return offset + id % 2;
- }
+ public Set<Field> getFields() {
+ return fields;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public void setFields(Set<Field> fields) {
+ this.fields = fields;
+ }
- 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;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.OBJECT_TYPE;
+ }
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/OperatorDescr.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -6,43 +6,42 @@
*
* @author Toni Rikkola
*/
-public class OperatorDescr extends VerifierComponent implements Serializable {
- private static final long serialVersionUID = 8393994152436331910L;
+public class OperatorDescr extends PatternComponent
+ implements
+ Serializable {
+ private static final long serialVersionUID = 8393994152436331910L;
- private static int index = 0;
+ public static class Type {
+ public static final Type AND = new Type( "AND" );
+ public static final Type OR = new Type( "OR" );
- public static class Type {
- public static final Type AND = new Type(0);
- public static final Type OR = new Type(1);
+ protected final String type;
- private final int index;
+ private Type(String t) {
+ type = t;
+ }
- private Type(int i) {
- index = i;
- }
- };
+ };
- private Type type;
+ private Type type;
- public OperatorDescr() {
- super(index++);
- }
+ public OperatorDescr() {
+ }
- public OperatorDescr(Type operatorType) {
- super(index++);
- this.type = operatorType;
- }
+ public OperatorDescr(Type operatorType) {
+ this.type = operatorType;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.OPERATOR;
- }
+ public Type getType() {
+ return type;
+ }
- public Type getType() {
- return type;
- }
+ public void setType(Type type) {
+ this.type = type;
+ }
- public void setType(Type type) {
- this.type = type;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.OPERATOR;
+ }
+
}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/PackageComponent.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/PackageComponent.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/PackageComponent.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,25 @@
+package org.drools.verifier.components;
+
+import org.drools.verifier.data.VerifierComponent;
+
+public abstract class PackageComponent extends VerifierComponent {
+
+ private String packageName;
+ private String packageGuid;
+
+ public String getPackageName() {
+ return packageName;
+ }
+
+ public void setPackageName(String packageName) {
+ this.packageName = packageName;
+ }
+
+ public String getPackageGuid() {
+ return packageGuid;
+ }
+
+ public void setPackageGuid(String packageGuid) {
+ this.packageGuid = packageGuid;
+ }
+}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Pattern.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,101 +7,88 @@
*
* @author Toni Rikkola
*/
-public class Pattern extends VerifierComponent implements Cause {
+public class Pattern extends PatternComponent
+ implements
+ Cause {
- private static final long serialVersionUID = 5852308145251025423L;
+ private static final long serialVersionUID = 5852308145251025423L;
- private static int index = 0;
+ private String objectTypeGuid;
+ private String name;
+ private VerifierComponentType sourceType = VerifierComponentType.UNKNOWN;
+ private String sourceGuid;
- private int ruleId;
- private int objectTypeId;
- private String name;
- private VerifierComponentType sourceType = VerifierComponentType.NOTHING;
- private int sourceId = -1;
+ private boolean isPatternNot = false;
+ private boolean isPatternExists = false;
+ private boolean isPatternForall = false;
- private boolean isPatternNot = false;
- private boolean isPatternExists = false;
- private boolean isPatternForall = false;
+ public CauseType getCauseType() {
+ return CauseType.PATTERN;
+ }
- public Pattern() {
- super(index++);
- }
+ public boolean isPatternNot() {
+ return isPatternNot;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.PATTERN;
- }
+ public void setPatternNot(boolean isNot) {
+ this.isPatternNot = isNot;
+ }
- public CauseType getCauseType() {
- return CauseType.PATTERN;
- }
+ public boolean isPatternExists() {
+ return isPatternExists;
+ }
- public boolean isPatternNot() {
- return isPatternNot;
- }
+ public void setPatternExists(boolean isExists) {
+ this.isPatternExists = isExists;
+ }
- public void setPatternNot(boolean isNot) {
- this.isPatternNot = isNot;
- }
+ public String getObjectTypeGuid() {
+ return objectTypeGuid;
+ }
- public int getRuleId() {
- return ruleId;
- }
+ public void setObjectTypeGuid(String guid) {
+ this.objectTypeGuid = guid;
+ }
- public void setRuleId(int ruleId) {
- this.ruleId = ruleId;
- }
+ public boolean isPatternForall() {
+ return isPatternForall;
+ }
- public boolean isPatternExists() {
- return isPatternExists;
- }
+ public void setPatternForall(boolean isForall) {
+ this.isPatternForall = isForall;
+ }
- public void setPatternExists(boolean isExists) {
- this.isPatternExists = isExists;
- }
+ public String getSourceGuid() {
+ return sourceGuid;
+ }
- public int getObjectTypeId() {
- return objectTypeId;
- }
+ public void setSourceGuid(String sourceGuid) {
+ this.sourceGuid = sourceGuid;
+ }
- public void setClassId(int classId) {
- this.objectTypeId = classId;
- }
+ public VerifierComponentType getSourceType() {
+ return sourceType;
+ }
- public boolean isPatternForall() {
- return isPatternForall;
- }
+ public void setSourceType(VerifierComponentType sourceType) {
+ this.sourceType = sourceType;
+ }
- public void setPatternForall(boolean isForall) {
- this.isPatternForall = isForall;
- }
+ public String getName() {
+ return name;
+ }
- public int getSourceId() {
- return sourceId;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public void setSourceId(int sourceId) {
- this.sourceId = sourceId;
- }
+ @Override
+ public String toString() {
+ return "Pattern, name: " + name;
+ }
- public VerifierComponentType getSourceType() {
- return sourceType;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.PATTERN;
+ }
- public void setSourceType(VerifierComponentType sourceType) {
- this.sourceType = sourceType;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- @Override
- public String toString() {
- return "Pattern, name: " + name;
- }
}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/PatternComponent.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/PatternComponent.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/PatternComponent.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,24 @@
+package org.drools.verifier.components;
+
+public abstract class PatternComponent extends RuleComponent {
+
+ private String patternName;
+ private String patternGuid;
+
+ public String getPatternName() {
+ return patternName;
+ }
+
+ public void setPatternName(String patternName) {
+ this.patternName = patternName;
+ }
+
+ public String getPatternGuid() {
+ return patternGuid;
+ }
+
+ public void setPatternGuid(String patternGuid) {
+ this.patternGuid = patternGuid;
+ }
+
+}
Deleted: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/PatternPossibility.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,72 +0,0 @@
-package org.drools.verifier.components;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
-
-/**
- * Instance of this class represents a possible combination of Constraints under
- * one Pattern. Each possibility returns true if all the Constraints in the
- * combination are true.
- *
- * @author Toni Rikkola
- */
-public class PatternPossibility extends VerifierComponent implements
- Possibility {
- private static final long serialVersionUID = 8871361928380977116L;
-
- private static int index = 0;
-
- private int patternId;
- private int ruleId;
- private Set<Cause> items = new HashSet<Cause>();
-
- public PatternPossibility() {
- super(index++);
- }
-
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.PATTERN_POSSIBILITY;
- }
-
- public CauseType getCauseType() {
- return CauseType.PATTERN_POSSIBILITY;
- }
-
- public Set<Cause> getItems() {
- return items;
- }
-
- public int getAmountOfItems() {
- return items.size();
- }
-
- public int getPatternId() {
- return patternId;
- }
-
- public int getRuleId() {
- return ruleId;
- }
-
- public void setRuleId(int ruleId) {
- this.ruleId = ruleId;
- }
-
- public void setPatternId(int patternId) {
- this.patternId = patternId;
- }
-
- public void add(Restriction restriction) {
- items.add(restriction);
- }
-
- @Override
- public String toString() {
- return "PatternPossibility from rule: " + ruleName
- + ", amount of items:" + items.size();
- }
-}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Possibility.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Possibility.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Possibility.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,9 +8,11 @@
*
* @author Toni Rikkola
*/
-public interface Possibility extends Cause {
+public interface Possibility
+ extends
+ Cause {
- public Set<Cause> getItems();
-
- public int getAmountOfItems();
+ public Set<Cause> getItems();
+
+ public int getAmountOfItems();
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/QualifiedIdentifierRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/QualifiedIdentifierRestriction.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/QualifiedIdentifierRestriction.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,52 +1,51 @@
package org.drools.verifier.components;
-
/**
*
* @author Toni Rikkola
*/
-public class QualifiedIdentifierRestriction extends Restriction {
+public class QualifiedIdentifierRestriction extends Restriction {
- private int variableId;
- private String variableName;
- private String variablePath;
+ private String variableGuid;
+ private String variableName;
+ private String variablePath;
- @Override
- public RestrictionType getRestrictionType() {
- return RestrictionType.QUALIFIED_IDENTIFIER;
- }
+ @Override
+ public RestrictionType getRestrictionType() {
+ return RestrictionType.QUALIFIED_IDENTIFIER;
+ }
- public String getValueAsString() {
- return variablePath + "." + variableName;
- }
+ public String getValueAsString() {
+ return variablePath + "." + variableName;
+ }
- public int getVariableId() {
- return variableId;
- }
+ public String getVariableGuid() {
+ return variableGuid;
+ }
- public void setVariableId(int variableId) {
- this.variableId = variableId;
- }
+ public void setVariableGuid(String variableGuid) {
+ this.variableGuid = variableGuid;
+ }
- public String getVariableName() {
- return variableName;
- }
+ public String getVariableName() {
+ return variableName;
+ }
- public void setVariableName(String variableName) {
- this.variableName = variableName;
- }
+ public void setVariableName(String variableName) {
+ this.variableName = variableName;
+ }
- public String getVariablePath() {
- return variablePath;
- }
+ public String getVariablePath() {
+ return variablePath;
+ }
- public void setVariablePath(String variablePath) {
- this.variablePath = variablePath;
- }
+ public void setVariablePath(String variablePath) {
+ this.variablePath = variablePath;
+ }
- @Override
- public String toString() {
- return "QualifiedIdentifierRestriction name: " + variableName
- + variablePath;
- }
+ @Override
+ public String toString() {
+ return "QualifiedIdentifierRestriction name: " + variableName + variablePath;
+ }
+
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Restriction.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,95 +8,72 @@
*
* @author Toni Rikkola
*/
-public abstract class Restriction extends VerifierComponent implements Cause {
+public abstract class Restriction extends PatternComponent
+ implements
+ Cause {
- public static class RestrictionType {
- public static final RestrictionType LITERAL = new RestrictionType(0);
- public static final RestrictionType VARIABLE = new RestrictionType(1);
- public static final RestrictionType QUALIFIED_IDENTIFIER = new RestrictionType(
- 2);
- public static final RestrictionType RETURN_VALUE_RESTRICTION = new RestrictionType(
- 3);
- public static final RestrictionType ENUM = new RestrictionType(4);
+ public static class RestrictionType {
+ public static final RestrictionType LITERAL = new RestrictionType( "LITERAL" );
+ public static final RestrictionType VARIABLE = new RestrictionType( "VARIABLE" );
+ public static final RestrictionType QUALIFIED_IDENTIFIER = new RestrictionType( "QUALIFIED_IDENTIFIER" );
+ public static final RestrictionType RETURN_VALUE_RESTRICTION = new RestrictionType( "RETURN_VALUE_RESTRICTION" );
+ public static final RestrictionType ENUM = new RestrictionType( "ENUM" );
- private final int index;
+ protected final String type;
- private RestrictionType(int i) {
- index = i;
- }
- }
+ private RestrictionType(String t) {
+ type = t;
+ }
+ }
- private static int index = 0;
+ private boolean patternIsNot;
+ private String constraintGuid;
- private int patternId;
- private boolean patternIsNot;
- private int constraintId;
+ // Id of the field that this restriction is related to.
+ private String fieldGuid;
- // Id of the field that this restriction is related to.
- private int fieldId;
+ protected Operator operator;
- protected Operator operator;
+ public CauseType getCauseType() {
+ return CauseType.RESTRICTION;
+ }
- public Restriction() {
- super(index++);
- }
+ public abstract RestrictionType getRestrictionType();
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.RESTRICTION;
- }
+ @Override
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.RESTRICTION;
+ }
- public CauseType getCauseType() {
- return CauseType.RESTRICTION;
- }
+ public Operator getOperator() {
+ return operator;
+ }
- public abstract RestrictionType getRestrictionType();
+ public void setOperator(Operator operator) {
+ this.operator = operator;
+ }
- public Operator getOperator() {
- return operator;
- }
+ public String getConstraintGuid() {
+ return constraintGuid;
+ }
- public void setOperator(Operator operator) {
- this.operator = operator;
- }
+ public void setConstraintGuid(String constraintGuid) {
+ this.constraintGuid = constraintGuid;
+ }
- public int getConstraintId() {
- return constraintId;
- }
+ public String getFieldGuid() {
+ return fieldGuid;
+ }
- public void setConstraintId(int constraintId) {
- this.constraintId = constraintId;
- }
+ public void setFieldGuid(String guid) {
+ this.fieldGuid = guid;
+ }
- public int getRuleId() {
- return ruleId;
- }
+ public boolean isPatternIsNot() {
+ return patternIsNot;
+ }
- public void setRuleId(int ruleId) {
- this.ruleId = ruleId;
- }
-
- public int getPatternId() {
- return patternId;
- }
-
- public void setPatternId(int patternId) {
- this.patternId = patternId;
- }
-
- public int getFieldId() {
- return fieldId;
- }
-
- public void setFieldId(int fieldId) {
- this.fieldId = fieldId;
- }
-
- public boolean isPatternIsNot() {
- return patternIsNot;
- }
-
- public void setPatternIsNot(boolean patternIsNot) {
- this.patternIsNot = patternIsNot;
- }
+ public void setPatternIsNot(boolean patternIsNot) {
+ this.patternIsNot = patternIsNot;
+ }
}
Deleted: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ReturValueFieldDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ReturValueFieldDescr.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ReturValueFieldDescr.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,9 +0,0 @@
-package org.drools.verifier.components;
-
-/**
- *
- * @author Toni Rikkola
- */
-public class ReturValueFieldDescr {
-
-}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ReturnValueFieldDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ReturnValueFieldDescr.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ReturnValueFieldDescr.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,13 @@
+package org.drools.verifier.components;
+
+/**
+ *
+ * @author Toni Rikkola
+ */
+public class ReturnValueFieldDescr extends PatternComponent {
+
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.RETURN_VALUE_FIELD_DESCR;
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ReturnValueRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ReturnValueRestriction.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/ReturnValueRestriction.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -6,38 +6,41 @@
*
* @author Toni Rikkola
*/
-public class ReturnValueRestriction extends Restriction implements Cause {
+public class ReturnValueRestriction extends Restriction
+ implements
+ Cause {
- private Object content;
- private String[] declarations;
- private String classMethodName;
+ private Object content;
+ private String[] declarations;
+ private String classMethodName;
- @Override
- public RestrictionType getRestrictionType() {
- return RestrictionType.RETURN_VALUE_RESTRICTION;
- }
+ @Override
+ public RestrictionType getRestrictionType() {
+ return RestrictionType.RETURN_VALUE_RESTRICTION;
+ }
- public String getClassMethodName() {
- return classMethodName;
- }
+ public String getClassMethodName() {
+ return classMethodName;
+ }
- public void setClassMethodName(String classMethodName) {
- this.classMethodName = classMethodName;
- }
+ public void setClassMethodName(String classMethodName) {
+ this.classMethodName = classMethodName;
+ }
- public Object getContent() {
- return content;
- }
+ public Object getContent() {
+ return content;
+ }
- public void setContent(Object content) {
- this.content = content;
- }
+ public void setContent(Object content) {
+ this.content = content;
+ }
- public String[] getDeclarations() {
- return declarations;
- }
+ public String[] getDeclarations() {
+ return declarations;
+ }
- public void setDeclarations(String[] declarations) {
- this.declarations = declarations;
- }
+ public void setDeclarations(String[] declarations) {
+ this.declarations = declarations;
+ }
+
}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/RuleComponent.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/RuleComponent.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/RuleComponent.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,54 @@
+package org.drools.verifier.components;
+
+public abstract class RuleComponent extends PackageComponent
+ implements
+ ChildComponent {
+
+ private String ruleName;
+ private String ruleGuid;
+
+ private VerifierComponentType parentType;
+ private String parentGuid;
+ private int orderNumber;
+
+ public String getRuleName() {
+ return ruleName;
+ }
+
+ public void setRuleName(String ruleName) {
+ this.ruleName = ruleName;
+ }
+
+ public String getRuleGuid() {
+ return ruleGuid;
+ }
+
+ public void setRuleGuid(String ruleGuid) {
+ this.ruleGuid = ruleGuid;
+ }
+
+ public VerifierComponentType getParentType() {
+ return parentType;
+ }
+
+ public String getParentGuid() {
+ return parentGuid;
+ }
+
+ public int getOrderNumber() {
+ return orderNumber;
+ }
+
+ public void setParentType(VerifierComponentType parentType) {
+ this.parentType = parentType;
+ }
+
+ public void setParentGuid(String parentGuid) {
+ this.parentGuid = parentGuid;
+ }
+
+ public void setOrderNumber(int orderNumber) {
+ this.orderNumber = orderNumber;
+ }
+
+}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/RulePackage.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,41 +7,34 @@
*
* @author Toni Rikkola
*/
-public class RulePackage extends VerifierComponent {
+public class RulePackage extends PackageComponent {
- private static int index = 0;
+ private int offset = 0;
+ private String name;
+ private Set<VerifierRule> rules = new HashSet<VerifierRule>();
- private int offset = 0;
- private String name;
- private Set<VerifierRule> rules = new HashSet<VerifierRule>();
-
- public RulePackage() {
- super(index++);
- }
-
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.RULE_PACKAGE;
- }
-
- public int getOffset(){
- offset++;
+ public int getOffset() {
+ offset++;
return offset % 2;
- }
+ }
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public Set<VerifierRule> getRules() {
- return rules;
- }
+ public Set<VerifierRule> getRules() {
+ return rules;
+ }
- public void setRules(Set<VerifierRule> rules) {
- this.rules = rules;
- }
+ public void setRules(Set<VerifierRule> rules) {
+ this.rules = rules;
+ }
+
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.RULE_PACKAGE;
+ }
}
Deleted: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/RulePossibility.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,64 +0,0 @@
-package org.drools.verifier.components;
-
-import java.io.Serializable;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.drools.verifier.report.components.Cause;
-import org.drools.verifier.report.components.CauseType;
-
-/**
- * Instance of this class represents a possible combination of
- * PatternPosibilities under one Rule. Each possibility returns true if all the
- * PatternPosibilities in the combination are true.
- *
- * @author Toni Rikkola
- */
-public class RulePossibility extends VerifierComponent implements
- Serializable, Possibility {
- private static final long serialVersionUID = 8871361928380977116L;
-
- private static int index = 0;
-
- private int ruleId;
- private Set<Cause> items = new HashSet<Cause>();
-
- public RulePossibility() {
- super(index++);
- }
-
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.RULE_POSSIBILITY;
- }
-
- public CauseType getCauseType() {
- return CauseType.RULE_POSSIBILITY;
- }
-
- public Set<Cause> getItems() {
- return items;
- }
-
- public int getAmountOfItems() {
- return items.size();
- }
-
- public int getRuleId() {
- return ruleId;
- }
-
- public void setRuleId(int ruleId) {
- this.ruleId = ruleId;
- }
-
- public void add(PatternPossibility patternPossibility) {
- items.add(patternPossibility);
- }
-
- @Override
- public String toString() {
- return "RulePossibility from rule: " + ruleName + ", amount of items:"
- + items.size();
- }
-}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubPattern.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubPattern.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubPattern.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,48 @@
+package org.drools.verifier.components;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.drools.verifier.report.components.Cause;
+import org.drools.verifier.report.components.CauseType;
+
+/**
+ * Instance of this class represents a possible combination of Constraints under
+ * one Pattern. Each possibility returns true if all the Constraints in the
+ * combination are true.
+ *
+ * @author Toni Rikkola
+ */
+public class SubPattern extends PatternComponent
+ implements
+ Possibility {
+ private static final long serialVersionUID = 8871361928380977116L;
+
+ private Set<Cause> items = new HashSet<Cause>();
+
+ public CauseType getCauseType() {
+ return CauseType.PATTERN_POSSIBILITY;
+ }
+
+ public Set<Cause> getItems() {
+ return items;
+ }
+
+ public int getAmountOfItems() {
+ return items.size();
+ }
+
+ public void add(Restriction restriction) {
+ items.add( restriction );
+ }
+
+ @Override
+ public String toString() {
+ return "PatternPossibility from rule: " + getRuleName() + ", amount of items:" + items.size();
+ }
+
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.PATTERN_POSSIBILITY;
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubRule.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubRule.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/SubRule.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,49 @@
+package org.drools.verifier.components;
+
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.drools.verifier.report.components.Cause;
+import org.drools.verifier.report.components.CauseType;
+
+/**
+ * Instance of this class represents a possible combination of
+ * PatternPosibilities under one Rule. Each possibility returns true if all the
+ * PatternPosibilities in the combination are true.
+ *
+ * @author Toni Rikkola
+ */
+public class SubRule extends RuleComponent
+ implements
+ Serializable,
+ Possibility {
+ private static final long serialVersionUID = 8871361928380977116L;
+
+ private Set<Cause> items = new HashSet<Cause>();
+
+ public CauseType getCauseType() {
+ return CauseType.RULE_POSSIBILITY;
+ }
+
+ public Set<Cause> getItems() {
+ return items;
+ }
+
+ public int getAmountOfItems() {
+ return items.size();
+ }
+
+ public void add(SubPattern patternPossibility) {
+ items.add( patternPossibility );
+ }
+
+ @Override
+ public String toString() {
+ return "RulePossibility from rule: " + getRuleName() + ", amount of items:" + items.size();
+ }
+
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.RULE_POSSIBILITY;
+ }
+}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/TextConsequence.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -2,33 +2,29 @@
import org.drools.verifier.report.components.CauseType;
-public class TextConsequence extends VerifierComponent implements Consequence {
+public class TextConsequence extends RuleComponent
+ implements
+ Consequence {
- private static int index = 0;
- private String text;
+ private String text;
- public TextConsequence() {
- super(index++);
- }
+ public ConsequenceType getConsequenceType() {
+ return ConsequenceType.TEXT;
+ }
- public ConsequenceType getConsequenceType() {
- return ConsequenceType.TEXT;
- }
+ public CauseType getCauseType() {
+ return CauseType.CONSEQUENCE;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.CONSEQUENCE;
- }
+ public void setText(String text) {
+ this.text = text;
+ }
- public CauseType getCauseType() {
- return CauseType.CONSEQUENCE;
- }
+ public String getText() {
+ return text;
+ }
- public void setText(String text) {
- this.text = text;
- }
-
- public String getText() {
- return text;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.CONSEQUENCE;
+ }
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/Variable.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -4,70 +4,55 @@
*
* @author Toni Rikkola
*/
-public class Variable extends VerifierComponent {
+public class Variable extends RuleComponent {
- private static int index;
+ private String objectTypeGuid;
+ private String objectTypeType;
+ private String objectTypeName;
- private int ruleId;
- private VerifierComponentType objectType;
- private int objectId;
- private String objectName;
- private String name;
+ public String getObjectTypeName() {
+ return objectTypeName;
+ }
- public Variable() {
- super(index++);
- }
+ public void setObjectTypeName(String objectTypeName) {
+ this.objectTypeName = objectTypeName;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.VARIABLE;
- }
+ private String name;
- public int getRuleId() {
- return ruleId;
- }
+ public String getObjectTypeGuid() {
+ return objectTypeGuid;
+ }
- public void setRuleId(int ruleId) {
- this.ruleId = ruleId;
- }
+ public void setObjectTypeGuid(String guid) {
+ this.objectTypeGuid = guid;
+ }
- public int getObjectId() {
- return objectId;
- }
+ public void setObjectTypeType(String type) {
+ // VerifierComponentType.OBJECT_TYPE dominates VerifierComponentType.FIELD.
+ if ( this.objectTypeType == null || !VerifierComponentType.OBJECT_TYPE.getType().equals( this.objectTypeType ) ) {
+ this.objectTypeType = type;
+ }
+ }
- public void setObjectId(int variableId) {
- this.objectId = variableId;
- }
+ public String getName() {
+ return name;
+ }
- public VerifierComponentType getObjectType() {
- return objectType;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public void setObjectType(VerifierComponentType type) {
- // VerifierComponentType.CLASS dominates VerifierComponentType.FIELD.
- if (objectType == null || objectType != VerifierComponentType.CLASS) {
- this.objectType = type;
- }
- }
+ public String getObjectTypeType() {
+ return objectTypeType;
+ }
- public String getName() {
- return name;
- }
+ @Override
+ public String toString() {
+ return "Variable name: " + name;
+ }
- public void setName(String name) {
- this.name = name;
- }
-
- public String getObjectName() {
- return objectName;
- }
-
- public void setObjectName(String objectName) {
- this.objectName = objectName;
- }
-
- @Override
- public String toString() {
- return "Variable name: " + name;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.VARIABLE;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VariableRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VariableRestriction.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VariableRestriction.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -6,25 +6,27 @@
*
* @author Toni Rikkola
*/
-public class VariableRestriction extends Restriction implements Cause {
+public class VariableRestriction extends Restriction
+ implements
+ Cause {
- protected Variable variable;
+ protected Variable variable;
- public Variable getVariable() {
- return variable;
- }
+ public Variable getVariable() {
+ return variable;
+ }
- public void setVariable(Variable variable) {
- this.variable = variable;
- }
+ public void setVariable(Variable variable) {
+ this.variable = variable;
+ }
- public RestrictionType getRestrictionType() {
- return Restriction.RestrictionType.VARIABLE;
- }
+ public RestrictionType getRestrictionType() {
+ return Restriction.RestrictionType.VARIABLE;
+ }
- @Override
- public String toString() {
- return "VariableRestriction from rule '" + ruleName + "' variable '"
- + variable + "'";
- }
+ @Override
+ public String toString() {
+ return "VariableRestriction from rule '" + getRuleName() + "' variable '" + variable + "'";
+ }
+
}
\ No newline at end of file
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierAccessorDescr.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -4,16 +4,9 @@
*
* @author Toni Rikkola
*/
-public class VerifierAccessorDescr extends VerifierComponent {
+public class VerifierAccessorDescr extends PatternComponent {
- private static int index = 0;
-
- public VerifierAccessorDescr() {
- super(index++);
- }
-
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.ACCESSOR;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.ACCESSOR;
+ }
}
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierAccumulateDescr.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,111 +1,103 @@
package org.drools.verifier.components;
-
/**
*
* @author Toni Rikkola
*/
-public class VerifierAccumulateDescr extends VerifierComponent {
+public class VerifierAccumulateDescr extends PatternComponent {
- private static int index = 0;
+ private String inputPatternGuid;
+ 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;
- 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 String getActionCode() {
+ return actionCode;
+ }
- public VerifierAccumulateDescr() {
- super(index++);
- }
+ public void setActionCode(String actionCode) {
+ this.actionCode = actionCode;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.ACCUMULATE;
- }
+ public String getClassName() {
+ return className;
+ }
- public String getActionCode() {
- return actionCode;
- }
+ public void setClassName(String className) {
+ this.className = className;
+ }
- public void setActionCode(String actionCode) {
- this.actionCode = actionCode;
- }
+ public String[] getDeclarations() {
+ return declarations;
+ }
- public String getClassName() {
- return className;
- }
+ public void setDeclarations(String[] declarations) {
+ this.declarations = declarations;
+ }
- public void setClassName(String className) {
- this.className = className;
- }
+ public String getExpression() {
+ return expression;
+ }
- public String[] getDeclarations() {
- return declarations;
- }
+ public void setExpression(String expression) {
+ this.expression = expression;
+ }
- public void setDeclarations(String[] declarations) {
- this.declarations = declarations;
- }
+ public boolean isExternalFunction() {
+ return externalFunction;
+ }
- public String getExpression() {
- return expression;
- }
+ public void setExternalFunction(boolean externalFunction) {
+ this.externalFunction = externalFunction;
+ }
- public void setExpression(String expression) {
- this.expression = expression;
- }
+ public String getFunctionIdentifier() {
+ return functionIdentifier;
+ }
- public boolean isExternalFunction() {
- return externalFunction;
- }
+ public void setFunctionIdentifier(String functionIdentifier) {
+ this.functionIdentifier = functionIdentifier;
+ }
- public void setExternalFunction(boolean externalFunction) {
- this.externalFunction = externalFunction;
- }
+ public String getInitCode() {
+ return initCode;
+ }
- public String getFunctionIdentifier() {
- return functionIdentifier;
- }
+ public void setInitCode(String initCode) {
+ this.initCode = initCode;
+ }
- public void setFunctionIdentifier(String functionIdentifier) {
- this.functionIdentifier = functionIdentifier;
- }
+ public String getInputPatternGuid() {
+ return inputPatternGuid;
+ }
- public String getInitCode() {
- return initCode;
- }
+ public void setInputPatternGuid(String inputPatternGuid) {
+ this.inputPatternGuid = inputPatternGuid;
+ }
- public void setInitCode(String initCode) {
- this.initCode = initCode;
- }
+ public String getResultCode() {
+ return resultCode;
+ }
- public int getInputPatternId() {
- return inputPatternId;
- }
+ public void setResultCode(String resultCode) {
+ this.resultCode = resultCode;
+ }
- public void setInputPatternId(int inputPatternId) {
- this.inputPatternId = inputPatternId;
- }
+ public String getReverseCode() {
+ return reverseCode;
+ }
- public String getResultCode() {
- return resultCode;
- }
+ public void setReverseCode(String reverseCode) {
+ this.reverseCode = reverseCode;
+ }
- public void setResultCode(String resultCode) {
- this.resultCode = resultCode;
- }
-
- public String getReverseCode() {
- return reverseCode;
- }
-
- public void setReverseCode(String reverseCode) {
- this.reverseCode = reverseCode;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.ACCUMULATE;
+ }
}
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierCollectDescr.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -4,35 +4,28 @@
*
* @author Toni Rikkola
*/
-public class VerifierCollectDescr extends VerifierComponent {
+public class VerifierCollectDescr extends RuleComponent {
- private static int index = 0;
+ private String insidePatternGuid;
+ private String classMethodName;
- private int insidePatternId;
- private String classMethodName;
+ public String getInsidePatternGuid() {
+ return insidePatternGuid;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.COLLECT;
- }
+ public void setInsidePatternGuid(String guid) {
+ this.insidePatternGuid = guid;
+ }
- public int getInsidePatternId() {
- return insidePatternId;
- }
+ public String getClassMethodName() {
+ return classMethodName;
+ }
- public void setInsidePatternId(int insidePatternId) {
- this.insidePatternId = insidePatternId;
- }
+ public void setClassMethodName(String classMethodName) {
+ this.classMethodName = classMethodName;
+ }
- public String getClassMethodName() {
- return classMethodName;
- }
-
- public void setClassMethodName(String classMethodName) {
- this.classMethodName = classMethodName;
- }
-
- public VerifierCollectDescr() {
- super(index++);
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.COLLECT;
+ }
}
Deleted: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierComponent.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,68 +0,0 @@
-package org.drools.verifier.components;
-
-/**
- *
- * @author Toni Rikkola
- */
-public abstract class VerifierComponent implements
- Comparable<VerifierComponent> {
-
- protected String ruleName;
- protected int ruleId;
- protected final 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
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierComponentType.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -4,34 +4,50 @@
*
* @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);
+public class VerifierComponentType
+ implements
+ Comparable<VerifierComponentType> {
+ public static final VerifierComponentType UNKNOWN = new VerifierComponentType( "UNKNOWN" );
+ public static final VerifierComponentType FIELD = new VerifierComponentType( "FIELD" );
+ public static final VerifierComponentType RULE = new VerifierComponentType( "RULE" );
+ public static final VerifierComponentType CONSTRAINT = new VerifierComponentType( "CONSTRAINT" );
+ public static final VerifierComponentType VARIABLE = new VerifierComponentType( "VARIABLE" );
+ public static final VerifierComponentType PATTERN = new VerifierComponentType( "PATTERN" );
+ public static final VerifierComponentType PATTERN_POSSIBILITY = new VerifierComponentType( "PATTERN_POSSIBILITY" );
+ public static final VerifierComponentType RULE_POSSIBILITY = new VerifierComponentType( "RULE_POSSIBILITY" );
+ public static final VerifierComponentType RESTRICTION = new VerifierComponentType( "RESTRICTION" );
+ public static final VerifierComponentType OPERATOR = new VerifierComponentType( "OPERATOR" );
+ public static final VerifierComponentType FIELD_OBJECT_TYPE_LINK = new VerifierComponentType( "FIELD_CLASS_LINK" );
+ public static final VerifierComponentType COLLECT = new VerifierComponentType( "COLLECT" );
+ public static final VerifierComponentType ACCUMULATE = new VerifierComponentType( "ACCUMULATE" );
+ public static final VerifierComponentType FROM = new VerifierComponentType( "FROM" );
+ public static final VerifierComponentType EVAL = new VerifierComponentType( "EVAL" );
+ public static final VerifierComponentType PREDICATE = new VerifierComponentType( "PREDICATE" );
+ public static final VerifierComponentType METHOD_ACCESSOR = new VerifierComponentType( "METHOD_ACCESSOR" );
+ public static final VerifierComponentType FIELD_ACCESSOR = new VerifierComponentType( "FIELD_ACCESSOR" );
+ public static final VerifierComponentType FUNCTION_CALL = new VerifierComponentType( "FUNCTION_CALL" );
+ public static final VerifierComponentType ACCESSOR = new VerifierComponentType( "ACCESSOR" );
+ public static final VerifierComponentType RULE_PACKAGE = new VerifierComponentType( "RULE_PACKAGE" );
+ public static final VerifierComponentType CONSEQUENCE = new VerifierComponentType( "CONSEQUENCE" );
+ public static final VerifierComponentType OBJECT_TYPE = new VerifierComponentType( "OBJECT_TYPE" );
+ public static final VerifierComponentType INLINE_EVAL_DESCR = new VerifierComponentType( "INLINE_EVAL_DESCR" );
+ public static final VerifierComponentType RETURN_VALUE_FIELD_DESCR = new VerifierComponentType( "RETURN_VALUE_FIELD_DESCR" );
- private final int index;
+ private final String type;
- private VerifierComponentType(int i) {
- index = i;
- }
+ public VerifierComponentType(String t) {
+ type = t;
+ }
+
+ public int compareTo(VerifierComponentType another) {
+ return getType().compareTo( another.getType() );
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public String toString() {
+ return "VerifierComponentType." + type;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierEvalDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierEvalDescr.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierEvalDescr.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,44 +7,39 @@
*
* @author Toni Rikkola
*/
-public class VerifierEvalDescr extends VerifierComponent implements Cause {
+public class VerifierEvalDescr extends RuleComponent
+ implements
+ Cause {
- private static int index = 0;
+ private String content;
+ private String classMethodName;
- private String content;
- private String classMethodName;
+ public CauseType getCauseType() {
+ return CauseType.EVAL;
+ }
- public VerifierEvalDescr() {
- super(index++);
- }
+ public String getClassMethodName() {
+ return classMethodName;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.EVAL;
- }
+ public void setClassMethodName(String classMethodName) {
+ this.classMethodName = classMethodName;
+ }
- public CauseType getCauseType() {
- return CauseType.EVAL;
- }
+ public String getContent() {
+ return content;
+ }
- public String getClassMethodName() {
- return classMethodName;
- }
+ public void setContent(String content) {
+ this.content = content;
+ }
- public void setClassMethodName(String classMethodName) {
- this.classMethodName = classMethodName;
- }
+ @Override
+ public String toString() {
+ return "Eval, content: " + content;
+ }
- public String getContent() {
- return content;
- }
-
- public void setContent(String content) {
- this.content = content;
- }
-
- @Override
- public String toString() {
- return "Eval, content: " + content;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.EVAL;
+ }
}
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFieldAccessDescr.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -4,35 +4,28 @@
*
* @author Toni Rikkola
*/
-public class VerifierFieldAccessDescr extends VerifierComponent {
+public class VerifierFieldAccessDescr extends RuleComponent {
- private static int index = 0;
+ private String fieldName;
+ private String argument;
- private String fieldName;
- private String argument;
+ public String getArgument() {
+ return argument;
+ }
- public VerifierFieldAccessDescr() {
- super(index++);
- }
+ public void setArgument(String argument) {
+ this.argument = argument;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.FIELD_ACCESSOR;
- }
+ public String getFieldName() {
+ return fieldName;
+ }
- public String getArgument() {
- return argument;
- }
+ public void setFieldName(String fieldName) {
+ this.fieldName = fieldName;
+ }
- public void setArgument(String argument) {
- this.argument = argument;
- }
-
- public String getFieldName() {
- return fieldName;
- }
-
- public void setFieldName(String fieldName) {
- this.fieldName = fieldName;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.FIELD_ACCESSOR;
+ }
}
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFromDescr.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -4,35 +4,28 @@
*
* @author Toni Rikkola
*/
-public class VerifierFromDescr extends VerifierComponent {
+public class VerifierFromDescr extends RuleComponent {
- private static int index = 0;
+ private VerifierComponentType dataSourceType;
+ private String dataSourceGuid;
- private VerifierComponentType dataSourceType;
- private int dataSourceId;
+ public String getDataSourceGuid() {
+ return dataSourceGuid;
+ }
- public VerifierFromDescr() {
- super(index++);
- }
+ public void setDataSourceGuid(String guid) {
+ this.dataSourceGuid = guid;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.FROM;
- }
+ public VerifierComponentType getDataSourceType() {
+ return dataSourceType;
+ }
- public int getDataSourceId() {
- return dataSourceId;
- }
+ public void setDataSourceType(VerifierComponentType dataSourceType) {
+ this.dataSourceType = dataSourceType;
+ }
- public void setDataSourceId(int dataSourceId) {
- this.dataSourceId = dataSourceId;
- }
-
- public VerifierComponentType getDataSourceType() {
- return dataSourceType;
- }
-
- public void setDataSourceType(VerifierComponentType dataSourceType) {
- this.dataSourceType = dataSourceType;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.FROM;
+ }
}
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierFunctionCallDescr.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -4,35 +4,28 @@
*
* @author Toni Rikkola
*/
-public class VerifierFunctionCallDescr extends VerifierComponent {
+public class VerifierFunctionCallDescr extends RuleComponent {
- private static int index = 0;
+ private String name;
+ private String arguments;
- private String name;
- private String arguments;
+ public String getArguments() {
+ return arguments;
+ }
- public VerifierFunctionCallDescr() {
- super(index++);
- }
+ public void setArguments(String arguments) {
+ this.arguments = arguments;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.FUNCTION_CALL;
- }
+ public String getName() {
+ return name;
+ }
- public String getArguments() {
- return arguments;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public void setArguments(String arguments) {
- this.arguments = arguments;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.FUNCTION_CALL;
+ }
}
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierMethodAccessDescr.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -4,35 +4,28 @@
*
* @author Toni Rikkola
*/
-public class VerifierMethodAccessDescr extends VerifierComponent {
+public class VerifierMethodAccessDescr extends RuleComponent {
- private static int index = 0;
+ private String methodName;
+ private String arguments;
- private String methodName;
- private String arguments;
+ public String getArguments() {
+ return arguments;
+ }
- public VerifierMethodAccessDescr() {
- super(index++);
- }
+ public void setArguments(String arguments) {
+ this.arguments = arguments;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.METHOD_ACCESSOR;
- }
+ public String getMethodName() {
+ return methodName;
+ }
- public String getArguments() {
- return arguments;
- }
+ public void setMethodName(String methodName) {
+ this.methodName = methodName;
+ }
- public void setArguments(String arguments) {
- this.arguments = arguments;
- }
-
- public String getMethodName() {
- return methodName;
- }
-
- public void setMethodName(String methodName) {
- this.methodName = methodName;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.METHOD_ACCESSOR;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierPredicateDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierPredicateDescr.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierPredicateDescr.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,45 +7,39 @@
*
* @author Toni Rikkola
*/
-public class VerifierPredicateDescr extends VerifierComponent implements
- Cause {
+public class VerifierPredicateDescr extends RuleComponent
+ implements
+ Cause {
- private static int index = 0;
+ private String content;
+ private String classMethodName;
- private String content;
- private String classMethodName;
+ public CauseType getCauseType() {
+ return CauseType.PREDICATE;
+ }
- public VerifierPredicateDescr() {
- super(index++);
- }
+ public String getClassMethodName() {
+ return classMethodName;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.PREDICATE;
- }
+ public void setClassMethodName(String classMethodName) {
+ this.classMethodName = classMethodName;
+ }
- public CauseType getCauseType() {
- return CauseType.PREDICATE;
- }
+ public String getContent() {
+ return content;
+ }
- public String getClassMethodName() {
- return classMethodName;
- }
+ public void setContent(String content) {
+ this.content = content;
+ }
- public void setClassMethodName(String classMethodName) {
- this.classMethodName = classMethodName;
- }
+ @Override
+ public String toString() {
+ return "Predicate id: " + getGuid() + " content: " + content;
+ }
- public String getContent() {
- return content;
- }
-
- public void setContent(String content) {
- this.content = content;
- }
-
- @Override
- public String toString() {
- return "Predicate id: " + id + " content: " + content;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.PREDICATE;
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierRule.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierRule.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/VerifierRule.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,73 +7,67 @@
*
* @author Toni Rikkola
*/
-public class VerifierRule extends VerifierComponent implements Cause {
+public class VerifierRule extends RuleComponent
+ implements
+ Cause {
- private static int index = 0;
+ private String ruleSalience;
+ private String ruleAgendaGroup;
+ private Consequence consequence;
+ private int lineNumber;
- private String ruleSalience;
- private String ruleAgendaGroup;
- private Consequence consequence;
- private int lineNumber;
+ private int packageId;
- private int packageId;
+ public CauseType getCauseType() {
+ return CauseType.RULE;
+ }
- public VerifierRule() {
- super(index++);
- ruleId = index;
- }
+ public String getRuleAgendaGroup() {
+ return ruleAgendaGroup;
+ }
- @Override
- public VerifierComponentType getComponentType() {
- return VerifierComponentType.RULE;
- }
+ public void setRuleAgendaGroup(String agendaGroup) {
+ this.ruleAgendaGroup = agendaGroup;
+ }
- public CauseType getCauseType() {
- return CauseType.RULE;
- }
+ public String getRuleSalience() {
+ return ruleSalience;
+ }
- public String getRuleAgendaGroup() {
- return ruleAgendaGroup;
- }
+ public void setRuleSalience(String salience) {
+ this.ruleSalience = salience;
+ }
- public void setRuleAgendaGroup(String agendaGroup) {
- this.ruleAgendaGroup = agendaGroup;
- }
+ public Consequence getConsequence() {
+ return consequence;
+ }
- public String getRuleSalience() {
- return ruleSalience;
- }
+ public void setConsequence(Consequence consequence) {
+ this.consequence = consequence;
+ }
- public void setRuleSalience(String salience) {
- this.ruleSalience = salience;
- }
+ public int getLineNumber() {
+ return lineNumber;
+ }
- public Consequence getConsequence() {
- return consequence;
- }
+ public void setLineNumber(int lineNumber) {
+ this.lineNumber = lineNumber;
+ }
- public void setConsequence(Consequence consequence) {
- this.consequence = consequence;
- }
+ @Override
+ public String toString() {
+ return "Rule '" + getRuleName() + "'";
+ }
- public int getLineNumber() {
- return lineNumber;
- }
+ public int getPackageId() {
+ return packageId;
+ }
- public void setLineNumber(int lineNumber) {
- this.lineNumber = lineNumber;
- }
+ public void setPackageId(int packageId) {
+ this.packageId = packageId;
+ }
- @Override
- public String toString() {
- return "Rule '" + ruleName + "'";
- }
-
- public int getPackageId() {
- return packageId;
- }
-
- public void setPackageId(int packageId) {
- this.packageId = packageId;
- }
+ public VerifierComponentType getVerifierComponentType() {
+ return VerifierComponentType.RULE;
+ }
}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/DataTree.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/DataTree.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/DataTree.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,64 @@
+package org.drools.verifier.data;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+
+public class DataTree<K, V> {
+ private Map<K, Set<V>> map = new TreeMap<K, Set<V>>();
+
+ public void put(K key, V value) {
+ if (map.containsKey(key)) {
+ Set<V> set = map.get(key);
+ set.add(value);
+ } else {
+ Set<V> set = new TreeSet<V>();
+ set.add(value);
+ map.put(key, set);
+ }
+ }
+
+ public Set<K> keySet() {
+ return map.keySet();
+ }
+
+ public Set<V> getBranch(K key) {
+ Set<V> set = map.get(key);
+ if (set != null) {
+ return set;
+ } else {
+ return Collections.emptySet();
+ }
+ }
+
+ public Collection<V> values() {
+ Collection<V> values = new ArrayList<V>();
+
+ for (Set<V> set : map.values()) {
+ for (V value : set) {
+ values.add(value);
+ }
+ }
+
+ return values;
+ }
+
+ public boolean remove(K key, V value) {
+ Set<V> set = map.get(key);
+
+ if (set != null) {
+ return set.remove(value);
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public String toString() {
+ return values().toString();
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierComponent.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierComponent.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierComponent.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,45 @@
+package org.drools.verifier.data;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.verifier.components.VerifierComponentType;
+
+public abstract class VerifierComponent
+ implements
+ Comparable<VerifierComponent> {
+
+ static class GuidFactory {
+
+ private static Map<VerifierComponentType, Integer> guids = new HashMap<VerifierComponentType, Integer>();
+
+ static String getGuid(VerifierComponentType type) {
+ Integer guid = guids.get( type );
+ if ( guid == null ) {
+ guid = 0;
+ }
+
+ Integer result = guid;
+ guids.put( type,
+ (guid + 1) );
+
+ return result.toString();
+ }
+ }
+
+ private String guid = GuidFactory.getGuid( getVerifierComponentType() );
+
+ public String getGuid() {
+ return guid;
+ }
+
+ public void setGuid(String guid) {
+ this.guid = guid;
+ }
+
+ public abstract VerifierComponentType getVerifierComponentType();
+
+ public int compareTo(VerifierComponent another) {
+ return this.guid.compareTo( another.getGuid() );
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierData.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierData.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierData.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,46 @@
+package org.drools.verifier.data;
+
+import java.util.Collection;
+
+import org.drools.verifier.components.Field;
+import org.drools.verifier.components.ObjectType;
+import org.drools.verifier.components.Restriction;
+import org.drools.verifier.components.RulePackage;
+import org.drools.verifier.components.Variable;
+import org.drools.verifier.components.VerifierComponentType;
+import org.drools.verifier.components.VerifierRule;
+
+/**
+ *
+ * @author Toni Rikkola
+ */
+public interface VerifierData {
+
+ public void add(VerifierComponent object);
+
+ public <T extends VerifierComponent> T getVerifierObject(VerifierComponentType type,
+ String guid);
+
+ public <T extends VerifierComponent> Collection<T> getAll(VerifierComponentType type);
+
+ public Collection<VerifierComponent> getAll();
+
+ public Variable getVariableByRuleAndVariableName(String ruleName,
+ String base);
+
+ public ObjectType getObjectTypeByName(String name);
+
+ public Field getFieldByObjectTypeAndFieldName(String base,
+ String fieldName);
+
+ public RulePackage getPackageByName(String name);
+
+ public Collection<VerifierRule> getRulesByFieldId(String guid);
+
+ public Collection<VerifierRule> getRulesByObjectTypeId(String guid);
+
+ public Collection<Restriction> getRestrictionsByFieldGuid(String guid);
+
+ public Collection<ObjectType> getObjectTypesByRuleName(String ruleName);
+
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierDataMaps.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierDataMaps.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierDataMaps.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,184 @@
+package org.drools.verifier.data;
+
+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.Field;
+import org.drools.verifier.components.FieldObjectTypeLink;
+import org.drools.verifier.components.ObjectType;
+import org.drools.verifier.components.Pattern;
+import org.drools.verifier.components.Restriction;
+import org.drools.verifier.components.RulePackage;
+import org.drools.verifier.components.Variable;
+import org.drools.verifier.components.VerifierComponentType;
+import org.drools.verifier.components.VerifierRule;
+
+/**
+ *
+ * @author Toni Rikkola
+ */
+class VerifierDataMaps
+ implements
+ VerifierData {
+
+ private Map<VerifierComponentType, Map<String, VerifierComponent>> all = new TreeMap<VerifierComponentType, Map<String, VerifierComponent>>();
+
+ private Map<String, RulePackage> packagesByName = new TreeMap<String, RulePackage>();
+ private Map<String, ObjectType> objectTypesByName = new TreeMap<String, ObjectType>();
+ private Map<String, Field> fieldsByObjectTypeAndFieldName = new TreeMap<String, Field>();
+ private DataTree<String, Field> fieldsByObjectTypeId = new DataTree<String, Field>();
+ private Map<String, FieldObjectTypeLink> fieldObjectTypeLinkByPath = new TreeMap<String, FieldObjectTypeLink>();
+ private DataTree<String, Pattern> patternsByObjectTypeId = new DataTree<String, Pattern>();
+ private DataTree<String, Pattern> patternsByRuleName = new DataTree<String, Pattern>();
+ private DataTree<String, Restriction> restrictionsByFieldId = new DataTree<String, Restriction>();
+ private Map<String, Variable> variablesByRuleAndVariableName = new TreeMap<String, Variable>();
+
+ public Collection<ObjectType> getObjectTypesByRuleName(String ruleName) {
+ Set<ObjectType> set = new HashSet<ObjectType>();
+
+ for ( Pattern pattern : patternsByRuleName.getBranch( ruleName ) ) {
+ ObjectType objectType = (ObjectType) getVerifierObject( VerifierComponentType.OBJECT_TYPE,
+ pattern.getObjectTypeGuid() );
+ set.add( objectType );
+ }
+
+ return set;
+ }
+
+ public ObjectType getObjectTypeByName(String name) {
+ return objectTypesByName.get( name );
+ }
+
+ public Field getFieldByObjectTypeAndFieldName(String objectTypeName,
+ String fieldName) {
+ return fieldsByObjectTypeAndFieldName.get( objectTypeName + "." + fieldName );
+ }
+
+ public Variable getVariableByRuleAndVariableName(String ruleName,
+ String variableName) {
+ return variablesByRuleAndVariableName.get( ruleName + "." + variableName );
+ }
+
+ public FieldObjectTypeLink getFieldObjectTypeLink(int id,
+ int id2) {
+ return fieldObjectTypeLinkByPath.get( id + "." + id2 );
+ }
+
+ public Collection<VerifierComponent> getAll() {
+ List<VerifierComponent> objects = new ArrayList<VerifierComponent>();
+
+ for ( VerifierComponentType type : all.keySet() ) {
+ objects.addAll( all.get( type ).values() );
+ }
+
+ return objects;
+ }
+
+ public Collection<Field> getFieldsByObjectTypeId(String id) {
+ return fieldsByObjectTypeId.getBranch( id );
+ }
+
+ public Collection<VerifierRule> getRulesByObjectTypeId(String id) {
+ Set<VerifierRule> rules = new HashSet<VerifierRule>();
+
+ for ( Pattern pattern : patternsByObjectTypeId.getBranch( id ) ) {
+
+ rules.add( (VerifierRule) getVerifierObject( VerifierComponentType.RULE,
+ pattern.getRuleGuid() ) );
+ }
+
+ return rules;
+ }
+
+ public Collection<VerifierRule> getRulesByFieldId(String id) {
+
+ Set<VerifierRule> rules = new HashSet<VerifierRule>();
+
+ for ( Restriction restriction : restrictionsByFieldId.getBranch( id ) ) {
+
+ rules.add( (VerifierRule) getVerifierObject( VerifierComponentType.RULE,
+ restriction.getRuleGuid() ) );
+ }
+
+ return rules;
+ }
+
+ public RulePackage getPackageByName(String name) {
+ return packagesByName.get( name );
+ }
+
+ public Collection<Restriction> getRestrictionsByFieldGuid(String id) {
+ return restrictionsByFieldId.getBranch( id );
+ }
+
+ public void add(VerifierComponent object) {
+ if ( VerifierComponentType.FIELD.equals( object.getVerifierComponentType() ) ) {
+ Field field = (Field) object;
+ ObjectType objectType = (ObjectType) getVerifierObject( VerifierComponentType.OBJECT_TYPE,
+ field.getObjectTypeGuid() );
+ fieldsByObjectTypeAndFieldName.put( objectType.getName() + "." + field.getName(),
+ field );
+
+ fieldsByObjectTypeId.put( field.getObjectTypeGuid(),
+ field );
+ } else if ( VerifierComponentType.VARIABLE.equals( object.getVerifierComponentType() ) ) {
+ Variable variable = (Variable) object;
+ variablesByRuleAndVariableName.put( variable.getRuleName() + "." + variable.getName(),
+ variable );
+ } else if ( VerifierComponentType.PATTERN.equals( object.getVerifierComponentType() ) ) {
+ Pattern pattern = (Pattern) object;
+
+ patternsByObjectTypeId.put( pattern.getObjectTypeGuid(),
+ pattern );
+ patternsByRuleName.put( pattern.getRuleName(),
+ pattern );
+ } else if ( VerifierComponentType.RESTRICTION.equals( object.getVerifierComponentType() ) ) {
+ Restriction restriction = (Restriction) object;
+
+ restrictionsByFieldId.put( restriction.getFieldGuid(),
+ restriction );
+ } else if ( VerifierComponentType.FIELD_OBJECT_TYPE_LINK.equals( object.getVerifierComponentType() ) ) {
+ FieldObjectTypeLink link = (FieldObjectTypeLink) object;
+ fieldObjectTypeLinkByPath.put( link.getFieldId() + "." + link.getObjectTypeId(),
+ link );
+ } else if ( VerifierComponentType.RULE_PACKAGE.equals( object.getVerifierComponentType() ) ) {
+ RulePackage rulePackage = (RulePackage) object;
+
+ packagesByName.put( rulePackage.getName(),
+ rulePackage );
+ } else if ( VerifierComponentType.OBJECT_TYPE.equals( object.getVerifierComponentType() ) ) {
+ ObjectType objectType = (ObjectType) object;
+ objectTypesByName.put( objectType.getName(),
+ objectType );
+ }
+
+ Map<String, VerifierComponent> map = all.get( object.getVerifierComponentType() );
+
+ if ( map == null ) {
+ map = new TreeMap<String, VerifierComponent>();
+ all.put( object.getVerifierComponentType(),
+ map );
+ }
+
+ map.put( object.getGuid(),
+ object );
+
+ }
+
+ // public <T extends VerifierComponent> Collection<T> getAll(VerifierComponentType type) {
+ public Collection< ? extends VerifierComponent> getAll(VerifierComponentType type) {
+ return all.get( type ).values();
+ }
+
+ // public <T extends VerifierComponent> T getVerifierObject(VerifierComponentType type,
+ // String guid) {
+ public VerifierComponent getVerifierObject(VerifierComponentType type,
+ String guid) {
+ return all.get( type ).get( guid );
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReport.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReport.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReport.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,46 @@
+package org.drools.verifier.data;
+
+import java.util.Collection;
+
+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;
+import org.drools.verifier.report.components.VerifierMessageBase;
+
+/**
+ *
+ * @author Toni Rikkola
+ */
+public interface VerifierReport {
+
+ public void add(Gap gap);
+
+ public void remove(Gap gap);
+
+ public void add(MissingNumberPattern missingNumberPattern);
+
+ public VerifierData getVerifierData(VerifierData data);
+
+ 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);
+
+ public Collection<RangeCheckCause> getRangeCheckCausesByFieldId(String guid);
+
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReportFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReportFactory.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReportFactory.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,20 @@
+package org.drools.verifier.data;
+
+/**
+ *
+ * @author Toni Rikkola
+ */
+public class VerifierReportFactory {
+
+ public static VerifierReport newVerifierReport() {
+ return new VerifierReportImpl(newVerifierData());
+ }
+
+ public static VerifierReport newVerifierReport(VerifierData data) {
+ return new VerifierReportImpl(data);
+ }
+
+ public static VerifierData newVerifierData() {
+ return new VerifierDataMaps();
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReportImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReportImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/data/VerifierReportImpl.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,124 @@
+package org.drools.verifier.data;
+
+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.Gap;
+import org.drools.verifier.report.components.MissingNumberPattern;
+import org.drools.verifier.report.components.RangeCheckCause;
+import org.drools.verifier.report.components.Severity;
+import org.drools.verifier.report.components.VerifierMessageBase;
+
+/**
+ *
+ * @author Toni Rikkola
+ */
+class VerifierReportImpl
+ implements
+ VerifierReport {
+ private static final long serialVersionUID = -6207688526236713721L;
+
+ private Map<String, Gap> gapsById = new TreeMap<String, Gap>();
+ private DataTree<String, Gap> gapsByFieldId = new DataTree<String, Gap>();
+ private Map<String, MissingNumberPattern> missingNumberPatternsById = new TreeMap<String, MissingNumberPattern>();
+ private DataTree<String, MissingNumberPattern> missingNumberPatternsByFieldId = new DataTree<String, MissingNumberPattern>();
+
+ private List<VerifierMessageBase> messages = new ArrayList<VerifierMessageBase>();
+ private DataTree<Severity, VerifierMessageBase> messagesBySeverity = new DataTree<Severity, VerifierMessageBase>();
+
+ private VerifierData data;
+
+ public VerifierReportImpl(VerifierData data) {
+ this.data = data;
+ }
+
+ 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.getGuid(),
+ gap );
+
+ // Put by field id.
+ gapsByFieldId.put( gap.getField().getGuid(),
+ gap );
+ }
+
+ public void remove(Gap gap) {
+ gapsById.remove( gap.getGuid() );
+
+ gapsByFieldId.remove( gap.getField().getGuid(),
+ gap );
+ }
+
+ public Collection<Gap> getGapsByFieldId(String 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.getGuid(),
+ missingNumberPattern );
+
+ // Put by field id.
+ missingNumberPatternsByFieldId.put( missingNumberPattern.getField().getGuid(),
+ missingNumberPattern );
+ }
+
+ public Collection<RangeCheckCause> getRangeCheckCausesByFieldId(String id) {
+ Collection<RangeCheckCause> result = new ArrayList<RangeCheckCause>();
+
+ result.addAll( gapsByFieldId.getBranch( id ) );
+
+ result.addAll( missingNumberPatternsByFieldId.getBranch( id ) );
+
+ return result;
+ }
+
+ public VerifierData getVerifierData() {
+ return data;
+ }
+
+ public void setVerifierData(VerifierData data) {
+ this.data = data;
+ }
+
+ public VerifierData getVerifierData(VerifierData data) {
+ return this.data;
+ }
+
+ public Collection<Gap> getGapsByFieldId(int fieldId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Collection<RangeCheckCause> getRangeCheckCausesByFieldId(int id) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/FindMissingNumber.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/FindMissingNumber.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/FindMissingNumber.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,160 @@
+package org.drools.verifier.misc;
+
+import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.drools.verifier.components.Field;
+import org.drools.verifier.components.LiteralRestriction;
+
+public class FindMissingNumber {
+
+ public static final int MIN_NUMBER_OF_RESTRICTIONS = 4;
+
+ /**
+ * Test if the values in constraints are in pattern.
+ *
+ * @param restrictions
+ * @return false if can't find a pattern or constraints list is null or size
+ * of the list is under 3.
+ */
+ public static Number testForPattern(
+ Collection<LiteralRestriction> restrictions) {
+
+ if (restrictions == null
+ || restrictions.size() < MIN_NUMBER_OF_RESTRICTIONS) {
+ return null;
+ }
+
+ BigDecimal[] numbers = new BigDecimal[restrictions.size()];
+
+ int index = 0;
+ for (LiteralRestriction restriction : restrictions) {
+ if (restriction.getValueType() == Field.FieldType.DOUBLE) {
+ numbers[index++] = BigDecimal.valueOf(restriction
+ .getDoubleValue());
+ } else if (restriction.getValueType() == Field.FieldType.INT) {
+ numbers[index++] = BigDecimal
+ .valueOf(restriction.getIntValue());
+ }
+ }
+
+ Arrays.sort(numbers);
+
+ Number missingNumber = findSumPattern(numbers);
+ if (missingNumber != null) {
+ return missingNumber;
+ } else {
+ missingNumber = findMultiplicationPattern(numbers);
+ if (missingNumber != null) {
+ return missingNumber;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Looks for sum pattern, on each step x is added or removed. -x is the same
+ * as +(-x) so this works for both.
+ *
+ * @param numbers
+ * @return true if pattern is found.
+ */
+ protected static Number findSumPattern(BigDecimal[] numbers) {
+ if (numbers == null || numbers.length < MIN_NUMBER_OF_RESTRICTIONS) {
+ return null;
+ }
+ BigDecimal gap = null;
+ Number missingNumber = null;
+
+ BigDecimal a = numbers[0];
+ BigDecimal b = numbers[1];
+ BigDecimal c = numbers[2];
+ BigDecimal d = numbers[3];
+
+ // Uses first four numbers to check if there is a pattern and to
+ // calculate the gap between them. One missing value is allowed.
+ if (b.subtract(a).equals(c.subtract(b))) {
+ gap = b.subtract(a);
+ } else if (c.subtract(b).equals(d.subtract(c))) {
+ gap = c.subtract(b);
+ } else if (b.subtract(a).equals(d.subtract(c))) {
+ gap = b.subtract(a);
+ } else {
+ // No pattern found.
+ return null;
+ }
+
+ for (int i = 0; i < (numbers.length - 1); i++) {
+ BigDecimal first = numbers[i];
+ BigDecimal second = numbers[i + 1];
+
+ if (missingNumber == null && !second.subtract(first).equals(gap)) {
+ missingNumber = second.subtract(gap);
+ } else if (!second.subtract(first).equals(gap)
+ && missingNumber != null) {
+ // Happends if there is no pattern found, or more than 1
+ // missing number.
+ return null;
+ }
+ }
+
+ return missingNumber;
+ }
+
+ /**
+ * Looks for multiplication pattern, on each step x multiplied or divided.
+ * *x is the same as *(1/x) so this works for both.
+ *
+ * @param numbers
+ * @return true if pattern is found.
+ */
+ protected static Number findMultiplicationPattern(BigDecimal[] numbers) {
+ if (numbers == null || numbers.length < MIN_NUMBER_OF_RESTRICTIONS) {
+ return null;
+ }
+ try {
+
+ BigDecimal gap = null;
+ Number missingNumber = null;
+
+ BigDecimal a = numbers[0];
+ BigDecimal b = numbers[1];
+ BigDecimal c = numbers[2];
+ BigDecimal d = numbers[3];
+
+ // Uses first four numbers to check if there is a pattern and to
+ // calculate the gap between them. One missing value is allowed.
+ if (b.divide(a).equals(c.divide(b))) {
+ gap = b.divide(a);
+ } else if (c.divide(b).equals(d.divide(c))) {
+ gap = c.divide(b);
+ } else if (b.divide(a).equals(d.divide(c))) {
+ gap = b.divide(a);
+ } else {
+ // No pattern found.
+ return null;
+ }
+
+ BigDecimal first = null;
+ BigDecimal second = null;
+ for (int i = 0; i < (numbers.length - 1); i++) {
+ first = numbers[i];
+ second = numbers[i + 1];
+
+ if (missingNumber == null && !second.divide(first).equals(gap)) {
+ missingNumber = first.multiply(gap);
+ } else if (!second.divide(first).equals(gap)
+ && missingNumber != null) {
+ // Happends if there is no pattern found, or more than 1
+ // missing number.
+ return null;
+ }
+ }
+ return missingNumber;
+ } catch (Exception e) {
+ return null;
+ }
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/PackageDescrVisitor.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/PackageDescrVisitor.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/PackageDescrVisitor.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,926 @@
+package org.drools.verifier.misc;
+
+import java.util.Collection;
+
+import org.drools.base.evaluators.Operator;
+import org.drools.lang.descr.AccessorDescr;
+import org.drools.lang.descr.AccumulateDescr;
+import org.drools.lang.descr.AndDescr;
+import org.drools.lang.descr.BaseDescr;
+import org.drools.lang.descr.CollectDescr;
+import org.drools.lang.descr.ConditionalElementDescr;
+import org.drools.lang.descr.DeclarativeInvokerDescr;
+import org.drools.lang.descr.EvalDescr;
+import org.drools.lang.descr.ExistsDescr;
+import org.drools.lang.descr.FieldAccessDescr;
+import org.drools.lang.descr.FieldBindingDescr;
+import org.drools.lang.descr.FieldConstraintDescr;
+import org.drools.lang.descr.ForallDescr;
+import org.drools.lang.descr.FromDescr;
+import org.drools.lang.descr.FunctionCallDescr;
+import org.drools.lang.descr.LiteralRestrictionDescr;
+import org.drools.lang.descr.MethodAccessDescr;
+import org.drools.lang.descr.NotDescr;
+import org.drools.lang.descr.OrDescr;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.lang.descr.PatternDescr;
+import org.drools.lang.descr.PatternSourceDescr;
+import org.drools.lang.descr.PredicateDescr;
+import org.drools.lang.descr.QualifiedIdentifierRestrictionDescr;
+import org.drools.lang.descr.RestrictionConnectiveDescr;
+import org.drools.lang.descr.ReturnValueRestrictionDescr;
+import org.drools.lang.descr.RuleDescr;
+import org.drools.lang.descr.VariableRestrictionDescr;
+import org.drools.verifier.components.Consequence;
+import org.drools.verifier.components.Constraint;
+import org.drools.verifier.components.EnumField;
+import org.drools.verifier.components.EnumRestriction;
+import org.drools.verifier.components.Field;
+import org.drools.verifier.components.LiteralRestriction;
+import org.drools.verifier.components.ObjectType;
+import org.drools.verifier.components.OperatorDescr;
+import org.drools.verifier.components.Pattern;
+import org.drools.verifier.components.SubPattern;
+import org.drools.verifier.components.QualifiedIdentifierRestriction;
+import org.drools.verifier.components.ReturnValueRestriction;
+import org.drools.verifier.components.RulePackage;
+import org.drools.verifier.components.SubRule;
+import org.drools.verifier.components.TextConsequence;
+import org.drools.verifier.components.Variable;
+import org.drools.verifier.components.VariableRestriction;
+import org.drools.verifier.components.VerifierAccessorDescr;
+import org.drools.verifier.components.VerifierAccumulateDescr;
+import org.drools.verifier.components.VerifierCollectDescr;
+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.data.VerifierComponent;
+import org.drools.verifier.data.VerifierData;
+import org.drools.verifier.solver.Solvers;
+
+/**
+ * @author Toni Rikkola
+ *
+ */
+public class PackageDescrVisitor {
+
+ private Solvers solvers = new Solvers();
+
+ private VerifierData data;
+
+ private RulePackage currentPackage = null;
+ private VerifierRule currentRule = null;
+ private Pattern currentPattern = null;
+ private Constraint currentConstraint = null;
+ private ObjectType currentObjectType = null;
+ private Field currentField = null;
+
+ /**
+ * Adds packageDescr to given VerifierData object
+ *
+ * @param packageDescr
+ * PackageDescr that will be visited.
+ * @param data
+ * VerifierData where the visited objects are added.
+ * @throws UnknownDescriptionException
+ */
+ public void addPackageDescrToData(PackageDescr packageDescr,
+ VerifierData data) throws UnknownDescriptionException {
+
+ this.data = data;
+
+ visit( packageDescr );
+
+ formPossibilities();
+ }
+
+ private void visit(Collection< ? > descrs,
+ VerifierComponent parent) throws UnknownDescriptionException {
+
+ int orderNumber = 0;
+
+ for ( Object o : descrs ) {
+ BaseDescr descr = (BaseDescr) o;
+ if ( descr instanceof PackageDescr ) {
+ visit( (PackageDescr) descr );
+ } else if ( descr instanceof RuleDescr ) {
+ visit( (RuleDescr) descr,
+ parent );
+ } else if ( descr instanceof PatternDescr ) {
+ visit( (PatternDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof VariableRestrictionDescr ) {
+ visit( (VariableRestrictionDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof FieldBindingDescr ) {
+ visit( (FieldBindingDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof FieldConstraintDescr ) {
+ visit( (FieldConstraintDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof RestrictionConnectiveDescr ) {
+ visit( (RestrictionConnectiveDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof LiteralRestrictionDescr ) {
+ visit( (LiteralRestrictionDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof ReturnValueRestrictionDescr ) {
+ visit( (ReturnValueRestrictionDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof QualifiedIdentifierRestrictionDescr ) {
+ visit( (QualifiedIdentifierRestrictionDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof FunctionCallDescr ) {
+ visit( (FunctionCallDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof PredicateDescr ) {
+ visit( (PredicateDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof AccessorDescr ) {
+ visit( (AccessorDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof MethodAccessDescr ) {
+ visit( (MethodAccessDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof FieldAccessDescr ) {
+ visit( (FieldAccessDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof PatternSourceDescr ) {
+ visit( (PatternSourceDescr) descr,
+ parent );
+ } else if ( descr instanceof ConditionalElementDescr ) {
+ visit( (ConditionalElementDescr) descr,
+ parent,
+ orderNumber );
+ }
+
+ orderNumber++;
+ }
+ }
+
+ private VerifierComponent visit(PatternSourceDescr descr,
+ VerifierComponent parent) throws UnknownDescriptionException {
+ if ( descr instanceof AccumulateDescr ) {
+ return visit( (AccumulateDescr) descr,
+ parent );
+ } else if ( descr instanceof CollectDescr ) {
+ return visit( (CollectDescr) descr,
+ parent );
+ } else if ( descr instanceof FromDescr ) {
+ return visit( (FromDescr) descr,
+ parent );
+ } else {
+ throw new UnknownDescriptionException( descr );
+ }
+ }
+
+ private VerifierComponent visit(DeclarativeInvokerDescr descr,
+ VerifierComponent parent) throws UnknownDescriptionException {
+ if ( descr instanceof AccessorDescr ) {
+ return visit( (AccessorDescr) descr,
+ parent );
+ } else if ( descr instanceof FieldAccessDescr ) {
+ return visit( (FieldAccessDescr) descr,
+ parent );
+ } else if ( descr instanceof FunctionCallDescr ) {
+ return visit( (FunctionCallDescr) descr,
+ parent );
+ } else if ( descr instanceof MethodAccessDescr ) {
+ return visit( (MethodAccessDescr) descr,
+ parent );
+ } else {
+ throw new UnknownDescriptionException( descr );
+ }
+ }
+
+ private void visit(ConditionalElementDescr descr,
+ VerifierComponent parent,
+ int orderNumber) throws UnknownDescriptionException {
+
+ if ( descr instanceof AndDescr ) {
+ visit( (AndDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof CollectDescr ) {
+ visit( (CollectDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof EvalDescr ) {
+ visit( (EvalDescr) descr,
+ parent,
+ orderNumber );
+ } else if ( descr instanceof ExistsDescr ) {
+ visit( (ExistsDescr) descr,
+ parent );
+ } else if ( descr instanceof ForallDescr ) {
+ visit( (ForallDescr) descr,
+ parent );
+ } else if ( descr instanceof FromDescr ) {
+ visit( (FromDescr) descr,
+ parent );
+ } else if ( descr instanceof NotDescr ) {
+ visit( (NotDescr) descr,
+ parent );
+ } else if ( descr instanceof OrDescr ) {
+ visit( (OrDescr) descr,
+ parent,
+ orderNumber );
+ }
+ }
+
+ private void visit(ForallDescr descr,
+ VerifierComponent parent) throws UnknownDescriptionException {
+ solvers.startForall();
+ visit( descr.getDescrs(),
+ parent );
+ solvers.endForall();
+ }
+
+ private void visit(ExistsDescr descr,
+ VerifierComponent parent) throws UnknownDescriptionException {
+ solvers.startExists();
+ visit( descr.getDescrs(),
+ parent );
+ solvers.endExists();
+ }
+
+ private void visit(NotDescr descr,
+ VerifierComponent parent) throws UnknownDescriptionException {
+ solvers.startNot();
+ visit( descr.getDescrs(),
+ parent );
+ solvers.endNot();
+ }
+
+ /**
+ * End leaf
+ *
+ * @param descr
+ * @return
+ */
+ private VerifierFunctionCallDescr visit(FunctionCallDescr descr,
+ VerifierComponent parent,
+ int orderNumber) {
+ VerifierFunctionCallDescr functionCall = new VerifierFunctionCallDescr();
+ functionCall.setName( descr.getName() );
+ functionCall.setArguments( descr.getArguments() );
+ functionCall.setOrderNumber( orderNumber );
+ functionCall.setParentGuid( parent.getGuid() );
+ functionCall.setParentType( parent.getVerifierComponentType() );
+
+ return functionCall;
+ }
+
+ /**
+ * End leaf
+ *
+ * @param descr
+ * @return
+ */
+ private VerifierPredicateDescr visit(PredicateDescr descr,
+ VerifierComponent parent,
+ int orderNumber) {
+
+ VerifierPredicateDescr predicate = new VerifierPredicateDescr();
+ predicate.setRuleName( currentRule.getRuleName() );
+ predicate.setRuleGuid( currentRule.getGuid() );
+ predicate.setContent( descr.getContent().toString() );
+ predicate.setClassMethodName( descr.getClassMethodName() );
+ predicate.setOrderNumber( orderNumber );
+ predicate.setParentGuid( parent.getGuid() );
+ predicate.setParentType( parent.getVerifierComponentType() );
+
+ data.add( predicate );
+
+ return predicate;
+ }
+
+ /**
+ * End leaf
+ *
+ * @param descr
+ * @return
+ */
+ private VerifierEvalDescr visit(EvalDescr descr,
+ VerifierComponent parent,
+ int orderNumber) {
+
+ VerifierEvalDescr eval = new VerifierEvalDescr();
+ eval.setRuleGuid( currentRule.getGuid() );
+ eval.setRuleName( currentRule.getRuleName() );
+ eval.setContent( descr.getContent().toString() );
+ eval.setClassMethodName( descr.getClassMethodName() );
+ eval.setOrderNumber( orderNumber );
+ eval.setParentGuid( parent.getGuid() );
+ eval.setParentType( parent.getVerifierComponentType() );
+
+ data.add( eval );
+
+ return eval;
+ }
+
+ /**
+ * End leaf
+ *
+ * @param descr
+ * @return
+ * @throws UnknownDescriptionException
+ */
+ private VerifierFromDescr visit(FromDescr descr,
+ VerifierComponent parent) throws UnknownDescriptionException {
+ VerifierFromDescr from = new VerifierFromDescr();
+
+ VerifierComponent ds = visit( descr.getDataSource(),
+ from );
+ from.setDataSourceGuid( ds.getGuid() );
+ from.setDataSourceType( ds.getVerifierComponentType() );
+ from.setParentGuid( parent.getGuid() );
+ from.setParentType( parent.getVerifierComponentType() );
+
+ return from;
+ }
+
+ private VerifierAccumulateDescr visit(AccumulateDescr descr,
+ VerifierComponent parent) throws UnknownDescriptionException {
+ VerifierAccumulateDescr accumulate = new VerifierAccumulateDescr();
+
+ accumulate.setInputPatternGuid( visit( descr.getInputPattern(),
+ accumulate,
+ 0 ) );
+ accumulate.setInitCode( descr.getInitCode() );
+ accumulate.setActionCode( descr.getActionCode() );
+ accumulate.setReverseCode( descr.getReverseCode() );
+ accumulate.setResultCode( descr.getResultCode() );
+
+ // XXX: Array seems to be always null.
+ // accumulate.setDeclarations(descr.getDeclarations());
+
+ accumulate.setClassName( descr.getClassName() );
+ accumulate.setExternalFunction( descr.isExternalFunction() );
+ accumulate.setFunctionIdentifier( descr.getFunctionIdentifier() );
+ accumulate.setExpression( descr.getExpression() );
+ accumulate.setParentGuid( parent.getGuid() );
+ accumulate.setParentType( parent.getVerifierComponentType() );
+
+ return accumulate;
+ }
+
+ private VerifierCollectDescr visit(CollectDescr descr,
+ VerifierComponent parent) throws UnknownDescriptionException {
+ VerifierCollectDescr collect = new VerifierCollectDescr();
+ collect.setClassMethodName( descr.getClassMethodName() );
+ collect.setInsidePatternGuid( visit( descr.getInputPattern(),
+ collect,
+ 0 ) );
+ collect.setParentGuid( parent.getGuid() );
+ collect.setParentType( parent.getVerifierComponentType() );
+
+ return collect;
+ }
+
+ private VerifierAccessorDescr visit(AccessorDescr descr,
+ VerifierComponent parent,
+ int orderNumber) {
+ VerifierAccessorDescr accessor = new VerifierAccessorDescr();
+ accessor.setOrderNumber( orderNumber );
+ accessor.setParentGuid( parent.getGuid() );
+ accessor.setParentType( parent.getVerifierComponentType() );
+ // TODO: I wonder what this descr does.
+ return accessor;
+ }
+
+ /**
+ * End leaf
+ *
+ * @param descr
+ */
+ private VerifierMethodAccessDescr visit(MethodAccessDescr descr,
+ VerifierComponent parent,
+ int orderNumber) {
+ VerifierMethodAccessDescr accessor = new VerifierMethodAccessDescr();
+ accessor.setMethodName( descr.getMethodName() );
+ accessor.setArguments( descr.getArguments() );
+ accessor.setOrderNumber( orderNumber );
+ accessor.setParentGuid( parent.getGuid() );
+ accessor.setParentType( parent.getVerifierComponentType() );
+
+ return accessor;
+ }
+
+ /**
+ * End leaf
+ *
+ * @param descr
+ */
+ private VerifierFieldAccessDescr visit(FieldAccessDescr descr,
+ VerifierComponent parent,
+ int orderNumber) {
+ VerifierFieldAccessDescr accessor = new VerifierFieldAccessDescr();
+ accessor.setFieldName( descr.getFieldName() );
+ accessor.setArgument( descr.getArgument() );
+ accessor.setOrderNumber( orderNumber );
+ accessor.setParentGuid( parent.getGuid() );
+ accessor.setParentType( parent.getVerifierComponentType() );
+
+ return accessor;
+ }
+
+ private void visit(PackageDescr descr) throws UnknownDescriptionException {
+ RulePackage rulePackage = data.getPackageByName( descr.getName() );
+
+ if ( rulePackage == null ) {
+ rulePackage = new RulePackage();
+
+ rulePackage.setName( descr.getName() );
+ data.add( rulePackage );
+ }
+
+ currentPackage = rulePackage;
+
+ visit( descr.getRules(),
+ rulePackage );
+ }
+
+ private void visit(RuleDescr descr,
+ VerifierComponent parent) throws UnknownDescriptionException {
+
+ VerifierRule rule = new VerifierRule();
+ currentRule = rule;
+
+ rule.setRuleName( descr.getName() );
+ rule.setRuleSalience( descr.getSalience() );
+ rule.setConsequence( visitConsequence( rule,
+ descr.getConsequence() ) );
+ rule.setLineNumber( descr.getLine() );
+ rule.setPackageGuid( currentPackage.getGuid() );
+ rule.setParentGuid( parent.getGuid() );
+ rule.setParentType( parent.getVerifierComponentType() );
+
+ data.add( rule );
+
+ currentPackage.getRules().add( rule );
+
+ solvers.startRuleSolver( rule );
+ visit( descr.getLhs(),
+ rule,
+ 0 );
+ solvers.endRuleSolver();
+ }
+
+ /**
+ * Creates verifier object from rule consequence. Currently only supports
+ * text based consequences.
+ *
+ * @param o
+ * Consequence object.
+ * @return Verifier object that implements the Consequence interface.
+ */
+ private Consequence visitConsequence(VerifierComponent parent,
+ Object o) {
+
+ TextConsequence consequence = new TextConsequence();
+
+ String text = o.toString();
+
+ /*
+ * Strip all comments out of the code.
+ */
+ StringBuffer buffer = new StringBuffer( text );
+ int commentIndex = buffer.indexOf( "//" );
+
+ while ( commentIndex != -1 ) {
+ buffer = buffer.delete( commentIndex,
+ buffer.indexOf( "\n",
+ commentIndex ) );
+ commentIndex = buffer.indexOf( "//" );
+ }
+
+ text = buffer.toString();
+
+ /*
+ * Strip all useless characters out of the code.
+ */
+ text = text.replaceAll( "\n",
+ "" );
+ text = text.replaceAll( "\r",
+ "" );
+ text = text.replaceAll( "\t",
+ "" );
+ text = text.replaceAll( " ",
+ "" );
+
+ consequence.setText( text );
+ consequence.setRuleGuid( currentRule.getGuid() );
+ consequence.setRuleName( currentRule.getRuleName() );
+ consequence.setParentGuid( parent.getGuid() );
+ consequence.setParentType( parent.getVerifierComponentType() );
+
+ data.add( consequence );
+
+ return consequence;
+ }
+
+ private void visit(OrDescr descr,
+ VerifierComponent parent,
+ int orderNumber) throws UnknownDescriptionException {
+ OperatorDescr operatorDescr = new OperatorDescr( OperatorDescr.Type.OR );
+ operatorDescr.setOrderNumber( orderNumber );
+ operatorDescr.setParentGuid( parent.getGuid() );
+ operatorDescr.setParentType( parent.getVerifierComponentType() );
+
+ data.add( operatorDescr );
+
+ solvers.startOperator( OperatorDescr.Type.OR );
+ visit( descr.getDescrs(),
+ operatorDescr );
+ solvers.endOperator();
+ }
+
+ private void visit(AndDescr descr,
+ VerifierComponent parent,
+ int orderNumber) throws UnknownDescriptionException {
+ OperatorDescr operatorDescr = new OperatorDescr( OperatorDescr.Type.AND );
+ operatorDescr.setOrderNumber( orderNumber );
+ operatorDescr.setParentGuid( parent.getGuid() );
+ operatorDescr.setParentType( parent.getVerifierComponentType() );
+
+ data.add( operatorDescr );
+
+ solvers.startOperator( OperatorDescr.Type.AND );
+ visit( descr.getDescrs(),
+ operatorDescr );
+ solvers.endOperator();
+ }
+
+ private String visit(PatternDescr descr,
+ VerifierComponent parent,
+ int orderNumber) throws UnknownDescriptionException {
+
+ ObjectType objectType = findOrCreateNewObjectType( descr.getObjectType() );
+ currentObjectType = objectType;
+
+ Pattern pattern = new Pattern();
+ pattern.setRuleGuid( currentRule.getGuid() );
+ pattern.setRuleName( currentRule.getRuleName() );
+ pattern.setObjectTypeGuid( objectType.getGuid() );
+ pattern.setName( objectType.getName() );
+ pattern.setPatternNot( solvers.getRuleSolver().isChildNot() );
+ pattern.setPatternExists( solvers.getRuleSolver().isExists() );
+ pattern.setPatternForall( solvers.getRuleSolver().isForall() );
+ pattern.setOrderNumber( orderNumber );
+ pattern.setParentGuid( parent.getGuid() );
+ pattern.setParentType( parent.getVerifierComponentType() );
+
+ data.add( pattern );
+ currentPattern = pattern;
+
+ if ( descr.getIdentifier() != null ) {
+ Variable variable = new Variable();
+ variable.setRuleGuid( currentRule.getGuid() );
+ variable.setRuleName( currentRule.getRuleName() );
+ variable.setName( descr.getIdentifier() );
+
+ variable.setObjectTypeType( VerifierComponentType.OBJECT_TYPE.getType() );
+ variable.setObjectTypeGuid( objectType.getGuid() );
+ variable.setObjectTypeType( descr.getObjectType() );
+
+ data.add( variable );
+ }
+
+ // visit source.
+ if ( descr.getSource() != null ) {
+ VerifierComponent source = visit( descr.getSource(),
+ pattern );
+ pattern.setSourceGuid( source.getGuid() );
+ pattern.setSourceType( source.getVerifierComponentType() );
+ } else {
+ pattern.setSourceGuid( null );
+ pattern.setSourceType( VerifierComponentType.UNKNOWN );
+ }
+ solvers.startPatternSolver( pattern );
+ visit( descr.getConstraint(),
+ pattern,
+ 0 );
+ solvers.endPatternSolver();
+
+ return pattern.getGuid();
+ }
+
+ private void visit(FieldConstraintDescr descr,
+ VerifierComponent parent,
+ int orderNumber) throws UnknownDescriptionException {
+
+ Field field = data.getFieldByObjectTypeAndFieldName( currentObjectType.getName(),
+ descr.getFieldName() );
+ if ( field == null ) {
+ field = createField( descr.getFieldName(),
+ currentObjectType.getGuid(),
+ currentObjectType.getName(),
+ parent );
+ data.add( field );
+ }
+ currentField = field;
+
+ Constraint constraint = new Constraint();
+
+ constraint.setRuleGuid( currentRule.getGuid() );
+ constraint.setFieldGuid( currentField.getGuid() );
+ constraint.setFieldName( currentField.getName() );
+ constraint.setPatternGuid( currentPattern.getGuid() );
+ constraint.setPatternIsNot( currentPattern.isPatternNot() );
+ constraint.setFieldGuid( field.getGuid() );
+ constraint.setOrderNumber( orderNumber );
+ constraint.setParentGuid( parent.getGuid() );
+ constraint.setParentType( parent.getVerifierComponentType() );
+
+ data.add( constraint );
+
+ currentConstraint = constraint;
+
+ visit( descr.getRestriction(),
+ constraint,
+ 0 );
+ }
+
+ private void visit(RestrictionConnectiveDescr descr,
+ VerifierComponent parent,
+ int orderNumber) throws UnknownDescriptionException {
+
+ if ( descr.getConnective() == RestrictionConnectiveDescr.AND ) {
+
+ solvers.startOperator( OperatorDescr.Type.AND );
+ visit( descr.getRestrictions(),
+ parent );
+ solvers.endOperator();
+
+ } else if ( descr.getConnective() == RestrictionConnectiveDescr.OR ) {
+
+ solvers.startOperator( OperatorDescr.Type.OR );
+ visit( descr.getRestrictions(),
+ parent );
+ solvers.endOperator();
+
+ } else {
+ throw new UnknownDescriptionException( descr );
+ }
+ }
+
+ /**
+ * End
+ *
+ * @param descr
+ */
+ private void visit(FieldBindingDescr descr,
+ VerifierComponent parent,
+ int orderNumber) {
+
+ Variable variable = new Variable();
+ variable.setRuleGuid( currentRule.getGuid() );
+ variable.setRuleName( currentRule.getRuleName() );
+ variable.setName( descr.getIdentifier() );
+ variable.setOrderNumber( orderNumber );
+ variable.setParentGuid( parent.getGuid() );
+ variable.setParentType( parent.getVerifierComponentType() );
+
+ variable.setObjectTypeType( VerifierComponentType.FIELD.getType() );
+
+ data.add( variable );
+ }
+
+ /**
+ * End
+ *
+ * Foo( bar == $bar )<br>
+ * $bar is a VariableRestrictionDescr
+ *
+ * @param descr
+ */
+ private void visit(VariableRestrictionDescr descr,
+ VerifierComponent parent,
+ int orderNumber) {
+
+ Variable variable = data.getVariableByRuleAndVariableName( currentRule.getRuleName(),
+ descr.getIdentifier() );
+ VariableRestriction restriction = new VariableRestriction();
+
+ restriction.setRuleGuid( currentRule.getGuid() );
+ restriction.setRuleName( currentRule.getRuleName() );
+ restriction.setPatternGuid( currentPattern.getGuid() );
+ restriction.setPatternIsNot( currentPattern.isPatternNot() );
+ restriction.setConstraintGuid( currentConstraint.getGuid() );
+ restriction.setFieldGuid( currentConstraint.getFieldGuid() );
+ restriction.setOperator( Operator.determineOperator( descr.getEvaluator(),
+ descr.isNegated() ) );
+ restriction.setVariable( variable );
+ restriction.setOrderNumber( orderNumber );
+ restriction.setParentGuid( parent.getGuid() );
+ restriction.setParentType( parent.getVerifierComponentType() );
+
+ // Set field value, if it is unset.
+ currentField.setFieldType( Field.FieldType.VARIABLE );
+
+ data.add( restriction );
+ solvers.addRestriction( restriction );
+ }
+
+ /**
+ * End
+ *
+ * @param descr
+ */
+ private void visit(ReturnValueRestrictionDescr descr,
+ VerifierComponent parent,
+ int orderNumber) {
+
+ ReturnValueRestriction restriction = new ReturnValueRestriction();
+
+ restriction.setRuleGuid( currentRule.getGuid() );
+ restriction.setRuleName( currentRule.getRuleName() );
+ restriction.setPatternGuid( currentPattern.getGuid() );
+ restriction.setPatternIsNot( currentPattern.isPatternNot() );
+ restriction.setConstraintGuid( currentConstraint.getGuid() );
+ restriction.setFieldGuid( currentConstraint.getFieldGuid() );
+ restriction.setOperator( Operator.determineOperator( descr.getEvaluator(),
+ descr.isNegated() ) );
+ restriction.setClassMethodName( descr.getClassMethodName() );
+ restriction.setContent( descr.getContent() );
+ restriction.setDeclarations( descr.getDeclarations() );
+ restriction.setOrderNumber( orderNumber );
+ restriction.setParentGuid( parent.getGuid() );
+ restriction.setParentType( parent.getVerifierComponentType() );
+
+ data.add( restriction );
+ solvers.addRestriction( restriction );
+
+ }
+
+ /**
+ * End
+ *
+ * @param descr
+ */
+ private void visit(LiteralRestrictionDescr descr,
+ VerifierComponent parent,
+ int orderNumber) {
+
+ LiteralRestriction restriction = new LiteralRestriction();
+
+ restriction.setRuleGuid( currentRule.getGuid() );
+ restriction.setRuleName( currentRule.getRuleName() );
+ restriction.setRuleGuid( currentRule.getGuid() );
+ restriction.setPatternGuid( currentPattern.getGuid() );
+ restriction.setPatternIsNot( currentPattern.isPatternNot() );
+ restriction.setConstraintGuid( currentConstraint.getGuid() );
+ restriction.setFieldGuid( currentConstraint.getFieldGuid() );
+ restriction.setOperator( Operator.determineOperator( descr.getEvaluator(),
+ descr.isNegated() ) );
+ restriction.setValue( descr.getText() );
+ restriction.setOrderNumber( orderNumber );
+ restriction.setParentGuid( parent.getGuid() );
+ restriction.setParentType( parent.getVerifierComponentType() );
+
+ // Set field value, if it is unset.
+ currentField.setFieldType( restriction.getValueType() );
+
+ data.add( restriction );
+ solvers.addRestriction( restriction );
+ }
+
+ /**
+ * End
+ *
+ * @param descr
+ */
+ private void visit(QualifiedIdentifierRestrictionDescr descr,
+ VerifierComponent parent,
+ int orderNumber) {
+
+ String text = descr.getText();
+
+ String base = text.substring( 0,
+ text.indexOf( "." ) );
+ String fieldName = text.substring( text.indexOf( "." ) );
+
+ Variable variable = data.getVariableByRuleAndVariableName( currentRule.getRuleName(),
+ base );
+
+ if ( variable != null ) {
+
+ QualifiedIdentifierRestriction restriction = new QualifiedIdentifierRestriction();
+
+ restriction.setRuleGuid( currentRule.getGuid() );
+ restriction.setPatternGuid( currentPattern.getGuid() );
+ restriction.setPatternIsNot( currentPattern.isPatternNot() );
+ restriction.setConstraintGuid( currentConstraint.getGuid() );
+ restriction.setFieldGuid( currentConstraint.getFieldGuid() );
+ restriction.setOperator( Operator.determineOperator( descr.getEvaluator(),
+ descr.isNegated() ) );
+ restriction.setVariableGuid( variable.getGuid() );
+ restriction.setVariableName( base );
+ restriction.setVariablePath( fieldName );
+ restriction.setOrderNumber( orderNumber );
+ restriction.setParentGuid( parent.getGuid() );
+ restriction.setParentType( parent.getVerifierComponentType() );
+
+ // Set field value, if it is not set.
+ currentField.setFieldType( Field.FieldType.VARIABLE );
+
+ variable.setObjectTypeType( VerifierComponentType.FIELD.getType() );
+
+ data.add( restriction );
+ solvers.addRestriction( restriction );
+ } else {
+
+ EnumField enumField = (EnumField) data.getFieldByObjectTypeAndFieldName( base,
+ fieldName );
+ if ( enumField == null ) {
+ ObjectType objectType = findOrCreateNewObjectType( base );
+
+ enumField = new EnumField();
+
+ enumField.setObjectTypeGuid( objectType.getGuid() );
+ enumField.setObjectTypeName( objectType.getName() );
+ enumField.setName( fieldName );
+
+ objectType.getFields().add( enumField );
+
+ data.add( enumField );
+ }
+
+ EnumRestriction restriction = new EnumRestriction();
+
+ restriction.setRuleGuid( currentRule.getGuid() );
+ restriction.setPatternGuid( currentPattern.getGuid() );
+ restriction.setPatternIsNot( currentPattern.isPatternNot() );
+ restriction.setConstraintGuid( currentConstraint.getGuid() );
+ restriction.setFieldGuid( currentConstraint.getFieldGuid() );
+ restriction.setOperator( Operator.determineOperator( descr.getEvaluator(),
+ descr.isNegated() ) );
+ restriction.setEnumBaseGuid( enumField.getGuid() );
+ restriction.setEnumBase( base );
+ restriction.setEnumName( fieldName );
+ restriction.setOrderNumber( orderNumber );
+ restriction.setParentGuid( parent.getGuid() );
+ restriction.setParentType( parent.getVerifierComponentType() );
+
+ // Set field value, if it is not set.
+ currentField.setFieldType( Field.FieldType.ENUM );
+
+ data.add( restriction );
+ solvers.addRestriction( restriction );
+ }
+ }
+
+ private ObjectType findOrCreateNewObjectType(String name) {
+ ObjectType objectType = data.getObjectTypeByName( name );
+ if ( objectType == null ) {
+ objectType = new ObjectType();
+ objectType.setName( name );
+ data.add( objectType );
+ }
+ return objectType;
+ }
+
+ private Field createField(String fieldName,
+ String classGuid,
+ String className,
+ VerifierComponent parent) {
+ Field field = new Field();
+ field.setObjectTypeGuid( classGuid );
+ field.setObjectTypeName( className );
+ field.setName( fieldName );
+ field.setParentGuid( parent.getGuid() );
+ field.setParentType( parent.getVerifierComponentType() );
+
+ currentObjectType.getFields().add( field );
+ return field;
+ }
+
+ private void formPossibilities() {
+
+ for ( SubPattern possibility : solvers.getPatternPossibilities() ) {
+ data.add( possibility );
+ }
+ for ( SubRule possibility : solvers.getRulePossibilities() ) {
+ data.add( possibility );
+ }
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/RuleLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/RuleLoader.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/RuleLoader.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,155 @@
+package org.drools.verifier.misc;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceType;
+import org.drools.definition.KnowledgePackage;
+import org.drools.io.Resource;
+import org.drools.io.ResourceFactory;
+import org.drools.verifier.Verifier;
+
+public class RuleLoader {
+
+ // public static Collection<KnowledgePackage> loadPackages() {
+ // return loadPackages(Collections.<Resource, ResourceType> emptyMap());
+ // }
+
+ /**
+ *
+ * @param resources
+ * Additional custom rules added by the user.
+ * @return
+ */
+ public static Collection<KnowledgePackage> loadPackages(Map<Resource, ResourceType> resources) {
+
+ KnowledgeBuilderConfiguration kbuilderConfiguration = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
+ kbuilderConfiguration.setProperty( "drools.dialect.java.compiler",
+ "JANINO" );
+
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+
+ if ( resources != null ) {
+ for ( Resource resource : resources.keySet() ) {
+ kbuilder.add( resource,
+ resources.get( resource ) );
+ }
+ }
+
+ return kbuilder.getKnowledgePackages();
+ }
+
+ public static Map<Resource, ResourceType> basicRulesForFullKnowledgeBase() {
+ Map<Resource, ResourceType> resources = new HashMap<Resource, ResourceType>();
+
+ // Missing consequence
+ resources.put( ResourceFactory.newClassPathResource( "Consequence.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ // Always false
+ resources.put( ResourceFactory.newClassPathResource( "alwaysFalse/Patterns.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ // Equivalence
+ resources.put( ResourceFactory.newClassPathResource( "equivalence/Rules.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ // Incoherence
+ resources.put( ResourceFactory.newClassPathResource( "incoherence/Patterns.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ resources.put( ResourceFactory.newClassPathResource( "incoherence/Restrictions.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ // Incompatibility
+ resources.put( ResourceFactory.newClassPathResource( "incompatibility/Patterns.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ resources.put( ResourceFactory.newClassPathResource( "incompatibility/Restrictions.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ // Missing equality
+ resources.put( ResourceFactory.newClassPathResource( "missingEquality/MissingEquality.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ // Opposites
+ resources.put( ResourceFactory.newClassPathResource( "opposites/Patterns.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ resources.put( ResourceFactory.newClassPathResource( "opposites/Restrictions.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ resources.put( ResourceFactory.newClassPathResource( "opposites/Rules.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ // Optimization
+ resources.put( ResourceFactory.newClassPathResource( "optimisation/PatternOrder.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ // TODO: The DRL needs more work
+ // resources.put( ResourceFactory.newClassPathResource( "optimisation/RestrictionOrder.drl",
+ // Verifier.class ),
+ // ResourceType.DRL );
+ // Overlaps
+ resources.put( ResourceFactory.newClassPathResource( "overlaps/Restrictions.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ // Range checks
+ resources.put( ResourceFactory.newClassPathResource( "rangeChecks/Clean.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ resources.put( ResourceFactory.newClassPathResource( "rangeChecks/Dates.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ resources.put( ResourceFactory.newClassPathResource( "rangeChecks/Doubles.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ resources.put( ResourceFactory.newClassPathResource( "rangeChecks/Integers.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ ResourceFactory.newClassPathResource( "rangeChecks/NumberPatterns.drl",
+ Verifier.class );
+ ResourceFactory.newClassPathResource( "rangeChecks/Variables.drl",
+ Verifier.class );
+ // Redundancy
+ resources.put( ResourceFactory.newClassPathResource( "redundancy/Consequence.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ resources.put( ResourceFactory.newClassPathResource( "redundancy/Notes.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ resources.put( ResourceFactory.newClassPathResource( "redundancy/Patterns.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ resources.put( ResourceFactory.newClassPathResource( "redundancy/Possibilities.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+
+ resources.put( ResourceFactory.newClassPathResource( "redundancy/Restrictions.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ resources.put( ResourceFactory.newClassPathResource( "redundancy/Rules.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ resources.put( ResourceFactory.newClassPathResource( "redundancy/Warnings.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ // Reporting
+ resources.put( ResourceFactory.newClassPathResource( "reports/RangeCheckReports.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ // Subsumption
+ resources.put( ResourceFactory.newClassPathResource( "subsumption/Possibilities.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ resources.put( ResourceFactory.newClassPathResource( "subsumption/Restrictions.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+
+ return resources;
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/UnknownDescriptionException.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/UnknownDescriptionException.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/misc/UnknownDescriptionException.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,21 @@
+package org.drools.verifier.misc;
+
+import org.drools.lang.descr.BaseDescr;
+
+/**
+ * This exception is thrown when verifier tries to handle a descr that it is not
+ * familiar with.
+ *
+ * @author trikkola
+ */
+public class UnknownDescriptionException extends Exception {
+ private static final long serialVersionUID = 6636873223159735829L;
+
+ final BaseDescr descr;
+
+ public UnknownDescriptionException(BaseDescr descr) {
+ super("Descr ( " + descr + " ) is unknown to drools verifier.");
+ this.descr = descr;
+ }
+
+}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/ReportModeller.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -3,7 +3,7 @@
import java.util.Collection;
import org.drools.verifier.components.LiteralRestriction;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
import org.drools.verifier.report.components.Gap;
import org.drools.verifier.report.components.MissingNumberPattern;
import org.drools.verifier.report.components.Severity;
@@ -18,10 +18,10 @@
*/
public class ReportModeller {
- public static String writeXML(VerifierResult result) {
+ public static String writeXML(VerifierReport result) {
XStream xstream = new XStream();
- xstream.alias("result", VerifierResult.class);
+ xstream.alias("result", VerifierReport.class);
xstream.alias("message", VerifierMessage.class);
xstream.alias("Gap", Gap.class);
@@ -34,7 +34,7 @@
return "<?xml version=\"1.0\"?>\n" + xstream.toXML(result);
}
- public static String writePlainText(VerifierResult result) {
+ public static String writePlainText(VerifierReport result) {
StringBuffer str = new StringBuffer();
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerfierReportConfigurationOptions.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerfierReportConfigurationOptions.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerfierReportConfigurationOptions.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,5 @@
+package org.drools.verifier.report;
+
+public enum VerfierReportConfigurationOptions {
+
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportConfiguration.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportConfiguration.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,5 @@
+package org.drools.verifier.report;
+
+public interface VerifierReportConfiguration {
+
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportConfigurationImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportConfigurationImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportConfigurationImpl.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,5 @@
+package org.drools.verifier.report;
+
+public class VerifierReportConfigurationImpl implements VerifierReportConfiguration {
+
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportWriter.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportWriter.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportWriter.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,12 @@
+package org.drools.verifier.report;
+
+import java.io.IOException;
+import java.io.OutputStream;
+
+import org.drools.verifier.data.VerifierReport;
+
+public interface VerifierReportWriter {
+
+ public void writeReport(OutputStream out,
+ VerifierReport result) throws IOException;
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportWriterFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportWriterFactory.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/VerifierReportWriterFactory.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,35 @@
+package org.drools.verifier.report;
+
+import org.drools.verifier.report.html.HTMLReportWriter;
+
+public class VerifierReportWriterFactory {
+
+ public static VerifierReportWriter newPDFReportWriter() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public static VerifierReportWriter newHTMLReportWriter() {
+ return new HTMLReportWriter();
+ }
+
+ /**
+ * Returns the verifier results as plain text.
+ *
+ * @return Analysis results as plain text.
+ */
+ public static VerifierReportWriter newPlainTextReportWriter() {
+ return null;
+ // return ReportModeller.writePlainText( result );
+ }
+
+ /**
+ * Returns the verifier results as XML.
+ *
+ * @return Analysis results as XML
+ */
+ public static VerifierReportWriter newXMLReportWriter() {
+ return null;
+ // return ReportModeller.writeXML( result );
+ }
+}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/AlwaysTrue.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/AlwaysTrue.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/AlwaysTrue.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -10,7 +10,7 @@
private static int index = 0;
- private final int id = index++;
+ private final String guid = String.valueOf( index++ );
private final Cause cause;
@@ -27,8 +27,8 @@
return CauseType.ALWAYS_TRUE;
}
- public int getId() {
- return id;
+ public String getGuid() {
+ return guid;
}
public Cause getCause() {
Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Cause.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Cause.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Cause.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -6,8 +6,7 @@
*/
public interface Cause {
-
- public int getId();
-
- public CauseType getCauseType();
+ public String getGuid();
+
+ public CauseType getCauseType();
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Incompatibility.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -12,7 +12,7 @@
private static int index = 0;
- private final int id = index++;
+ private final String guid = String.valueOf( index++ );
private final Cause left;
private final Cause right;
@@ -22,8 +22,8 @@
this.right = right;
}
- public int getId() {
- return id;
+ public String getGuid() {
+ return guid;
}
public CauseType getCauseType() {
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/MissingRange.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -3,64 +3,59 @@
import org.drools.base.evaluators.Operator;
import org.drools.verifier.components.Field;
-public abstract class MissingRange implements Comparable<MissingRange> {
+public abstract class MissingRange
+ implements
+ Comparable<MissingRange> {
- private static int index = 0;
- protected final int id = index++;
+ private static int index = 0;
+ protected final String guid = String.valueOf( index++ );
- protected final Field field;
- protected final Operator operator;
+ protected final Field field;
+ protected final Operator operator;
- public MissingRange(Field field, Operator operator) {
- this.field = field;
- this.operator = operator;
- }
+ public MissingRange(Field field,
+ Operator operator) {
+ this.field = field;
+ this.operator = operator;
+ }
- /**
- * Takes the given operator e, and returns a reversed version of it.
- *
- * @return operator
- */
- public static Operator getReversedOperator(Operator e) {
- if (e.equals(Operator.NOT_EQUAL)) {
- return Operator.EQUAL;
- } else if (e.equals(Operator.EQUAL)) {
- return Operator.NOT_EQUAL;
- } else if (e.equals(Operator.GREATER)) {
- return Operator.LESS_OR_EQUAL;
- } else if (e.equals(Operator.LESS)) {
- return Operator.GREATER_OR_EQUAL;
- } else if (e.equals(Operator.GREATER_OR_EQUAL)) {
- return Operator.LESS;
- } else if (e.equals(Operator.LESS_OR_EQUAL)) {
- return Operator.GREATER;
- } else {
- return Operator.determineOperator(e.getOperatorString(), !e
- .isNegated());
- }
- }
+ /**
+ * Takes the given operator e, and returns a reversed version of it.
+ *
+ * @return operator
+ */
+ public static Operator getReversedOperator(Operator e) {
+ if ( e.equals( Operator.NOT_EQUAL ) ) {
+ return Operator.EQUAL;
+ } else if ( e.equals( Operator.EQUAL ) ) {
+ return Operator.NOT_EQUAL;
+ } else if ( e.equals( Operator.GREATER ) ) {
+ return Operator.LESS_OR_EQUAL;
+ } else if ( e.equals( Operator.LESS ) ) {
+ return Operator.GREATER_OR_EQUAL;
+ } else if ( e.equals( Operator.GREATER_OR_EQUAL ) ) {
+ return Operator.LESS;
+ } else if ( e.equals( Operator.LESS_OR_EQUAL ) ) {
+ return Operator.GREATER;
+ } else {
+ return Operator.determineOperator( e.getOperatorString(),
+ !e.isNegated() );
+ }
+ }
- public int compareTo(MissingRange another) {
- int value = this.id - another.getId();
+ public int compareTo(MissingRange another) {
+ return this.guid.compareTo( another.getGuid() );
+ }
- if (value > 0) {
- return 1;
- } else if (value < 0) {
- return -1;
- } else {
- return 0;
- }
- }
+ public String getGuid() {
+ return guid;
+ }
- public int getId() {
- return id;
- }
+ public Field getField() {
+ return field;
+ }
- public Field getField() {
- return field;
- }
-
- public Operator getOperator() {
- return operator;
- }
+ public Operator getOperator() {
+ return operator;
+ }
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/components/Subsumption.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,7 +8,7 @@
private static int index = 0;
- private final int id = index++;
+ private final String guid = String.valueOf( index++ );
private final Cause left;
private final Cause right;
@@ -18,8 +18,8 @@
this.right = right;
}
- public int getId() {
- return id;
+ public String getGuid() {
+ return guid;
}
public CauseType getCauseType() {
Deleted: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ComponentsReportModeller.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,121 +0,0 @@
-package org.drools.verifier.report.html;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.drools.verifier.components.Field;
-import org.drools.verifier.components.ObjectType;
-import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierData;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.report.components.Severity;
-
-public class ComponentsReportModeller extends ReportModeller {
-
- public static void writeHTML(String path, VerifierResult result) {
- VerifierData data = result.getVerifierData();
-
- // Source folder
- File sourceFolder = new File(path + UrlFactory.SOURCE_FOLDER);
- sourceFolder.mkdir();
-
- // Base files
- // index.htm
- writeToFile(path + UrlFactory.SOURCE_FOLDER + File.separator
- + UrlFactory.HTML_FILE_INDEX, formPage(UrlFactory.THIS_FOLDER,
- ComponentsReportVisitor.visitObjectTypeCollection(
- UrlFactory.THIS_FOLDER, data.getAllObjectTypes())));
-
- // packages.htm
- writeToFile(path + UrlFactory.SOURCE_FOLDER + File.separator
- + UrlFactory.HTML_FILE_PACKAGES, formPage(
- UrlFactory.THIS_FOLDER, ComponentsReportVisitor
- .visitRulePackageCollection(UrlFactory.THIS_FOLDER,
- data.getAllRulePackages())));
-
- // Rules
- String ruleFolder = path + UrlFactory.SOURCE_FOLDER + File.separator
- + UrlFactory.RULE_FOLDER;
- File rulesFolder = new File(ruleFolder);
- rulesFolder.mkdir();
- for (VerifierRule rule : data.getAllRules()) {
- writeToFile(ruleFolder + File.separator + rule.getId() + ".htm",
- formPage(UrlFactory.PREVIOUS_FOLDER,
- ComponentsReportVisitor.visitRule(
- UrlFactory.PREVIOUS_FOLDER, rule, data)));
- }
-
- // ObjectTypes
- String objectTypeFolder = path + UrlFactory.SOURCE_FOLDER
- + File.separator + UrlFactory.OBJECT_TYPE_FOLDER;
- File objectTypesFolder = new File(objectTypeFolder);
- objectTypesFolder.mkdir();
- for (ObjectType objectType : data.getAllObjectTypes()) {
- writeToFile(objectTypeFolder + File.separator + objectType.getId()
- + ".htm", formPage(UrlFactory.PREVIOUS_FOLDER,
- ComponentsReportVisitor.visitObjectType(
- UrlFactory.PREVIOUS_FOLDER, objectType, data)));
- }
-
- // Fields
- String fieldFolder = path + UrlFactory.SOURCE_FOLDER + File.separator
- + UrlFactory.FIELD_FOLDER;
- File fieldsFolder = new File(fieldFolder);
- fieldsFolder.mkdir();
- for (Field field : data.getAllFields()) {
- writeToFile(fieldFolder + File.separator + field.getId() + ".htm",
- formPage(UrlFactory.PREVIOUS_FOLDER,
- ComponentsReportVisitor.visitField(
- UrlFactory.PREVIOUS_FOLDER, field, result)));
- }
-
- // Verifier messages
- writeMessages(path, result);
-
- // css files
- String cssFolder = path + UrlFactory.SOURCE_FOLDER + File.separator
- + UrlFactory.CSS_FOLDER;
- File cssesFolder = new File(cssFolder);
- cssesFolder.mkdir();
- writeToFile(cssFolder + File.separator + UrlFactory.CSS_BASIC,
- ComponentsReportVisitor.getCss(UrlFactory.CSS_BASIC));
-
- // Image files
- String imagesFolder = path + UrlFactory.SOURCE_FOLDER + File.separator
- + UrlFactory.IMAGES_FOLDER;
-
- File imgsFolder = new File(imagesFolder);
- imgsFolder.mkdir();
-
- try {
- copyFile(imagesFolder, "hdrlogo_drools50px.gif");
- copyFile(imagesFolder, "jbossrules_hdrbkg_blue.gif");
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- private static void writeMessages(String path, VerifierResult result) {
- VerifierData data = result.getVerifierData();
-
- String errors = VerifierMessagesVisitor
- .visitVerifierMessagesCollection(
- Severity.ERROR.getTuple(),
- result.getBySeverity(Severity.ERROR),
- data);
- String warnings = VerifierMessagesVisitor
- .visitVerifierMessagesCollection(
- Severity.WARNING.getTuple(),
- result.getBySeverity(Severity.WARNING),
- data);
- String notes = VerifierMessagesVisitor
- .visitVerifierMessagesCollection(
- Severity.NOTE.getTuple(), result
- .getBySeverity(Severity.NOTE),
- data);
-
- writeToFile(path + UrlFactory.SOURCE_FOLDER + File.separator
- + UrlFactory.HTML_FILE_VERIFIER_MESSAGES, formPage(
- UrlFactory.THIS_FOLDER, errors + warnings + notes));
- }
-}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ComponentsReportVisitor.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,114 +8,142 @@
import org.drools.verifier.components.ObjectType;
import org.drools.verifier.components.Restriction;
import org.drools.verifier.components.RulePackage;
+import org.drools.verifier.components.VerifierComponentType;
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierData;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierData;
+import org.drools.verifier.data.VerifierReport;
import org.drools.verifier.report.components.RangeCheckCause;
import org.mvel2.templates.TemplateRuntime;
class ComponentsReportVisitor extends ReportVisitor {
- public static String getCss(String fileName) {
- return readFile(fileName);
- }
+ public static String getCss(String fileName) {
+ return readFile( fileName );
+ }
- public static String visitRulePackageCollection(String sourceFolder,
- Collection<RulePackage> packages) {
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("sourceFolder", sourceFolder);
- map.put("ruleFolder", UrlFactory.RULE_FOLDER);
+ public static String visitRulePackageCollection(String sourceFolder,
+ Collection<RulePackage> packages) {
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put( "sourceFolder",
+ sourceFolder );
+ map.put( "ruleFolder",
+ UrlFactory.RULE_FOLDER );
- map.put("rulePackages", packages);
+ map.put( "rulePackages",
+ packages );
- String myTemplate = readFile("packages.htm");
+ String myTemplate = readFile( "packages.htm" );
- String result = String.valueOf(TemplateRuntime.eval(myTemplate, map));
+ String result = String.valueOf( TemplateRuntime.eval( myTemplate,
+ map ) );
- return result;
- }
+ return result;
+ }
- public static String visitObjectTypeCollection(String sourceFolder,
- Collection<ObjectType> objectTypes) {
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("sourceFolder", sourceFolder);
- map.put("objectTypeFolder", sourceFolder + "/"
- + UrlFactory.OBJECT_TYPE_FOLDER);
- map.put("fieldFolder", UrlFactory.FIELD_FOLDER);
- map.put("objectTypes", objectTypes);
+ public static String visitObjectTypeCollection(String sourceFolder,
+ Collection<ObjectType> objectTypes) {
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put( "sourceFolder",
+ sourceFolder );
+ map.put( "objectTypeFolder",
+ sourceFolder + "/" + UrlFactory.OBJECT_TYPE_FOLDER );
+ map.put( "fieldFolder",
+ UrlFactory.FIELD_FOLDER );
+ map.put( "objectTypes",
+ objectTypes );
- String myTemplate = readFile("objectTypes.htm");
+ String myTemplate = readFile( "objectTypes.htm" );
- return String.valueOf(TemplateRuntime.eval(myTemplate, map));
- }
+ return String.valueOf( TemplateRuntime.eval( myTemplate,
+ map ) );
+ }
- public static String visitRule(String sourceFolder, VerifierRule rule,
- VerifierData data) {
- Collection<ObjectType> objectTypes = data.getObjectTypesByRuleName(rule
- .getRuleName());
+ public static String visitRule(String sourceFolder,
+ VerifierRule rule,
+ VerifierData data) {
+ Collection<ObjectType> objectTypes = data.getObjectTypesByRuleName( rule.getRuleName() );
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("sourceFolder", sourceFolder);
- map.put("objectTypeFolder", UrlFactory.OBJECT_TYPE_FOLDER);
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put( "sourceFolder",
+ sourceFolder );
+ map.put( "objectTypeFolder",
+ UrlFactory.OBJECT_TYPE_FOLDER );
- map.put("rule", rule);
- map.put("objectTypes", objectTypes);
+ map.put( "rule",
+ rule );
+ map.put( "objectTypes",
+ objectTypes );
- String myTemplate = readFile("rule.htm");
+ String myTemplate = readFile( "rule.htm" );
- return String.valueOf(TemplateRuntime.eval(myTemplate, map));
- }
+ return String.valueOf( TemplateRuntime.eval( myTemplate,
+ map ) );
+ }
- public static String visitObjectType(String sourceFolder,
- ObjectType objectType, VerifierData data) {
- Collection<VerifierRule> rules = data.getRulesByObjectTypeId(objectType
- .getId());
+ public static String visitObjectType(String sourceFolder,
+ ObjectType objectType,
+ VerifierData data) {
+ Collection<VerifierRule> rules = data.getRulesByObjectTypeId( objectType.getGuid() );
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("sourceFolder", sourceFolder);
- map.put("ruleFolder", UrlFactory.RULE_FOLDER);
- map.put("fieldFolder", UrlFactory.FIELD_FOLDER);
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put( "sourceFolder",
+ sourceFolder );
+ map.put( "ruleFolder",
+ UrlFactory.RULE_FOLDER );
+ map.put( "fieldFolder",
+ UrlFactory.FIELD_FOLDER );
- map.put("objectType", objectType);
- map.put("rules", rules);
+ map.put( "objectType",
+ objectType );
+ map.put( "rules",
+ rules );
- String myTemplate = readFile("objectType.htm");
+ String myTemplate = readFile( "objectType.htm" );
- return String.valueOf(TemplateRuntime.eval(myTemplate, map));
- }
+ return String.valueOf( TemplateRuntime.eval( myTemplate,
+ map ) );
+ }
- public static String visitField(String sourceFolder, Field field,
- VerifierResult result) {
- VerifierData data = result.getVerifierData();
- ObjectType objectType = data.getObjectTypeById(field.getObjectTypeId());
- Collection<VerifierRule> rules = data.getRulesByFieldId(field.getId());
+ public static String visitField(String sourceFolder,
+ Field field,
+ VerifierReport result) {
+ VerifierData data = result.getVerifierData();
+ ObjectType objectType = data.getVerifierObject( VerifierComponentType.OBJECT_TYPE,
+ field.getObjectTypeGuid() );
+ Collection<VerifierRule> rules = data.getRulesByFieldId( field.getGuid() );
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("sourceFolder", sourceFolder);
- map.put("ruleFolder", UrlFactory.RULE_FOLDER);
- map.put("objectTypeFolder", UrlFactory.OBJECT_TYPE_FOLDER);
- map.put("fieldFolder", UrlFactory.FIELD_FOLDER);
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put( "sourceFolder",
+ sourceFolder );
+ map.put( "ruleFolder",
+ UrlFactory.RULE_FOLDER );
+ map.put( "objectTypeFolder",
+ UrlFactory.OBJECT_TYPE_FOLDER );
+ map.put( "fieldFolder",
+ UrlFactory.FIELD_FOLDER );
- map.put("field", field);
- map.put("objectType", objectType);
- map.put("rules", rules);
+ map.put( "field",
+ field );
+ map.put( "objectType",
+ objectType );
+ map.put( "rules",
+ rules );
- if (field.getFieldType() == Field.FieldType.DOUBLE
- || field.getFieldType() == Field.FieldType.DATE
- || field.getFieldType() == Field.FieldType.INT) {
- Collection<RangeCheckCause> causes = result
- .getRangeCheckCausesByFieldId(field.getId());
- Collection<Restriction> restrictions = data
- .getRestrictionsByFieldId(field.getId());
- map.put("ranges", "Ranges:"
- + MissingRangesReportVisitor.visitRanges(
- UrlFactory.PREVIOUS_FOLDER, restrictions, causes));
- } else {
- map.put("ranges", "");
- }
+ if ( field.getFieldType() == Field.FieldType.DOUBLE || field.getFieldType() == Field.FieldType.DATE || field.getFieldType() == Field.FieldType.INT ) {
+ Collection<RangeCheckCause> causes = result.getRangeCheckCausesByFieldId( field.getGuid() );
+ Collection<Restriction> restrictions = data.getRestrictionsByFieldGuid( field.getGuid() );
+ map.put( "ranges",
+ "Ranges:" + MissingRangesReportVisitor.visitRanges( UrlFactory.PREVIOUS_FOLDER,
+ restrictions,
+ causes ) );
+ } else {
+ map.put( "ranges",
+ "" );
+ }
- String myTemplate = readFile("field.htm");
+ String myTemplate = readFile( "field.htm" );
- return String.valueOf(TemplateRuntime.eval(myTemplate, map));
- }
+ return String.valueOf( TemplateRuntime.eval( myTemplate,
+ map ) );
+ }
}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/HTMLReportWriter.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/HTMLReportWriter.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/HTMLReportWriter.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,108 @@
+package org.drools.verifier.report.html;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.zip.ZipOutputStream;
+
+import org.drools.verifier.components.Field;
+import org.drools.verifier.components.ObjectType;
+import org.drools.verifier.components.RulePackage;
+import org.drools.verifier.components.VerifierComponentType;
+import org.drools.verifier.components.VerifierRule;
+import org.drools.verifier.data.VerifierData;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.report.VerifierReportWriter;
+import org.drools.verifier.report.components.Severity;
+
+public class HTMLReportWriter extends ReportModeller
+ implements
+ VerifierReportWriter {
+
+ public void writeReport(OutputStream out,
+ VerifierReport result) throws IOException {
+
+ zout = new ZipOutputStream( out );
+
+ VerifierData data = result.getVerifierData();
+
+ // Base files
+ // index.htm
+ writeToFile( UrlFactory.SOURCE_FOLDER + File.separator + UrlFactory.HTML_FILE_INDEX,
+ formPage( UrlFactory.THIS_FOLDER,
+ ComponentsReportVisitor.visitObjectTypeCollection( UrlFactory.THIS_FOLDER,
+ data.<ObjectType> getAll( VerifierComponentType.OBJECT_TYPE ) ) ) );
+
+ // packages.htm
+ writeToFile( UrlFactory.SOURCE_FOLDER + File.separator + UrlFactory.HTML_FILE_PACKAGES,
+ formPage( UrlFactory.THIS_FOLDER,
+ ComponentsReportVisitor.visitRulePackageCollection( UrlFactory.THIS_FOLDER,
+ data.<RulePackage> getAll( VerifierComponentType.RULE_PACKAGE ) ) ) );
+
+ // Rules
+ String ruleFolder = UrlFactory.SOURCE_FOLDER + File.separator + UrlFactory.RULE_FOLDER;
+ for ( VerifierRule rule : data.<VerifierRule> getAll( VerifierComponentType.RULE ) ) {
+ writeToFile( ruleFolder + File.separator + rule.getGuid() + ".htm",
+ formPage( UrlFactory.PREVIOUS_FOLDER,
+ ComponentsReportVisitor.visitRule( UrlFactory.PREVIOUS_FOLDER,
+ rule,
+ data ) ) );
+ }
+
+ // ObjectTypes
+ String objectTypeFolder = UrlFactory.SOURCE_FOLDER + File.separator + UrlFactory.OBJECT_TYPE_FOLDER;
+ for ( ObjectType objectType : data.<ObjectType> getAll( VerifierComponentType.OBJECT_TYPE ) ) {
+ writeToFile( objectTypeFolder + File.separator + objectType.getGuid() + ".htm",
+ formPage( UrlFactory.PREVIOUS_FOLDER,
+ ComponentsReportVisitor.visitObjectType( UrlFactory.PREVIOUS_FOLDER,
+ objectType,
+ data ) ) );
+ }
+
+ // Fields
+ String fieldFolder = UrlFactory.SOURCE_FOLDER + File.separator + UrlFactory.FIELD_FOLDER;
+ for ( Field field : data.<Field> getAll( VerifierComponentType.FIELD ) ) {
+ writeToFile( fieldFolder + File.separator + field.getGuid() + ".htm",
+ formPage( UrlFactory.PREVIOUS_FOLDER,
+ ComponentsReportVisitor.visitField( UrlFactory.PREVIOUS_FOLDER,
+ field,
+ result ) ) );
+ }
+
+ // Verifier messages
+ writeMessages( result );
+
+ // css files
+ String cssFolder = UrlFactory.SOURCE_FOLDER + File.separator + UrlFactory.CSS_FOLDER;
+ writeToFile( cssFolder + File.separator + UrlFactory.CSS_BASIC,
+ ComponentsReportVisitor.getCss( UrlFactory.CSS_BASIC ) );
+
+ // Image files
+ String imagesFolder = UrlFactory.SOURCE_FOLDER + File.separator + UrlFactory.IMAGES_FOLDER;
+
+ copyFile( imagesFolder,
+ "hdrlogo_drools50px.gif" );
+ copyFile( imagesFolder,
+ "jbossrules_hdrbkg_blue.gif" );
+
+ zout.close();
+ }
+
+ private void writeMessages(VerifierReport result) throws IOException {
+ VerifierData data = result.getVerifierData();
+
+ String errors = VerifierMessagesVisitor.visitVerifierMessagesCollection( Severity.ERROR.getTuple(),
+ result.getBySeverity( Severity.ERROR ),
+ data );
+ String warnings = VerifierMessagesVisitor.visitVerifierMessagesCollection( Severity.WARNING.getTuple(),
+ result.getBySeverity( Severity.WARNING ),
+ data );
+ String notes = VerifierMessagesVisitor.visitVerifierMessagesCollection( Severity.NOTE.getTuple(),
+ result.getBySeverity( Severity.NOTE ),
+ data );
+
+ writeToFile( UrlFactory.SOURCE_FOLDER + File.separator + UrlFactory.HTML_FILE_VERIFIER_MESSAGES,
+ formPage( UrlFactory.THIS_FOLDER,
+ errors + warnings + notes ) );
+ }
+}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/MissingRangesReportVisitor.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -10,167 +10,187 @@
import org.drools.verifier.components.Field;
import org.drools.verifier.components.LiteralRestriction;
import org.drools.verifier.components.Restriction;
-import org.drools.verifier.dao.DataTree;
-import org.drools.verifier.dao.VerifierData;
+import org.drools.verifier.components.VerifierComponentType;
+import org.drools.verifier.data.DataTree;
+import org.drools.verifier.data.VerifierData;
import org.drools.verifier.report.components.RangeCheckCause;
import org.drools.verifier.report.components.VerifierRangeCheckMessage;
import org.mvel2.templates.TemplateRuntime;
class MissingRangesReportVisitor extends ReportVisitor {
- public static Collection<String> visitRestrictionsCollection(
- String sourceFolder, Collection<Restriction> restrictions,
- Collection<RangeCheckCause> causes) {
- DataTree<Object, DataRow> dt = new DataTree<Object, DataRow>();
- Collection<String> stringRows = new ArrayList<String>();
+ public static Collection<String> visitRestrictionsCollection(String sourceFolder,
+ Collection<Restriction> restrictions,
+ Collection<RangeCheckCause> causes) {
+ DataTree<Object, DataRow> dt = new DataTree<Object, DataRow>();
+ Collection<String> stringRows = new ArrayList<String>();
- for (RangeCheckCause cause : causes) {
- dt.put(cause.getValueAsObject(), new DataRow(null, null, cause
- .getOperator(), cause.getValueAsString()));
- }
+ for ( RangeCheckCause cause : causes ) {
+ dt.put( cause.getValueAsObject(),
+ new DataRow( null,
+ null,
+ cause.getOperator(),
+ cause.getValueAsString() ) );
+ }
- for (Restriction r : restrictions) {
- if (r instanceof LiteralRestriction) {
- try {
- LiteralRestriction restriction = (LiteralRestriction) r;
+ for ( Restriction r : restrictions ) {
+ if ( r instanceof LiteralRestriction ) {
+ try {
+ LiteralRestriction restriction = (LiteralRestriction) r;
- dt.put(restriction.getValueAsObject(), new DataRow(
- restriction.getRuleId(), restriction.getRuleName(),
- restriction.getOperator(), restriction
- .getValueAsString()));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
+ dt.put( restriction.getValueAsObject(),
+ new DataRow( restriction.getRuleGuid(),
+ restriction.getRuleName(),
+ restriction.getOperator(),
+ restriction.getValueAsString() ) );
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
+ }
+ }
- DataRow previous = null;
- for (Iterator<DataRow> iterator = dt.values().iterator(); iterator
- .hasNext();) {
- DataRow current = iterator.next();
+ DataRow previous = null;
+ for ( Iterator<DataRow> iterator = dt.values().iterator(); iterator.hasNext(); ) {
+ DataRow current = iterator.next();
- if (previous != null) {
- // Check if previous and current are from the same rule.
- if (previous.ruleId == null && current.ruleId == null
- && !previous.operator.equals(Operator.EQUAL)
- && !previous.operator.equals(Operator.NOT_EQUAL)
- && !current.operator.equals(Operator.EQUAL)
- && !current.operator.equals(Operator.NOT_EQUAL)) {
- // Combine these two.
- stringRows.add("Missing : " + previous + " .. " + current);
+ if ( previous != null ) {
+ // Check if previous and current are from the same rule.
+ if ( previous.ruleId == null && current.ruleId == null && !previous.operator.equals( Operator.EQUAL ) && !previous.operator.equals( Operator.NOT_EQUAL ) && !current.operator.equals( Operator.EQUAL )
+ && !current.operator.equals( Operator.NOT_EQUAL ) ) {
+ // Combine these two.
+ stringRows.add( "Missing : " + previous + " .. " + current );
- current = iterator.next();
+ current = iterator.next();
- } else if (previous.ruleId != null
- && previous.ruleId.equals(current.ruleId)) {
- // Combine these two.
- stringRows.add(UrlFactory.getRuleUrl(sourceFolder,
- current.ruleId, current.ruleName)
- + " : "
- + previous.toString()
- + " "
- + current.toString());
+ } else if ( previous.ruleId != null && previous.ruleId.equals( current.ruleId ) ) {
+ // Combine these two.
+ stringRows.add( UrlFactory.getRuleUrl( sourceFolder,
+ current.ruleId,
+ current.ruleName ) + " : " + previous.toString() + " " + current.toString() );
- current = iterator.next();
+ current = iterator.next();
- } else if (!iterator.hasNext()) { // If this is last row
- // Print previous and current if they were not merged.
- processRangeOutput(previous, stringRows, sourceFolder);
- processRangeOutput(current, stringRows, sourceFolder);
+ } else if ( !iterator.hasNext() ) { // If this is last row
+ // Print previous and current if they were not merged.
+ processRangeOutput( previous,
+ stringRows,
+ sourceFolder );
+ processRangeOutput( current,
+ stringRows,
+ sourceFolder );
- } else { // If they are not from the same rule
- // Print previous.
- processRangeOutput(previous, stringRows, sourceFolder);
- }
- } else if (!iterator.hasNext()) {
- processRangeOutput(current, stringRows, sourceFolder);
- }
+ } else { // If they are not from the same rule
+ // Print previous.
+ processRangeOutput( previous,
+ stringRows,
+ sourceFolder );
+ }
+ } else if ( !iterator.hasNext() ) {
+ processRangeOutput( current,
+ stringRows,
+ sourceFolder );
+ }
- // Set current as previous.
- previous = current;
- }
+ // Set current as previous.
+ previous = current;
+ }
- return stringRows;
- }
+ return stringRows;
+ }
- public static String visitRanges(String sourceFolder,
- Collection<Restriction> restrictions,
- Collection<RangeCheckCause> causes) {
- Map<String, Object> map = new HashMap<String, Object>();
+ public static String visitRanges(String sourceFolder,
+ Collection<Restriction> restrictions,
+ Collection<RangeCheckCause> causes) {
+ Map<String, Object> map = new HashMap<String, Object>();
- map.put("lines", visitRestrictionsCollection(sourceFolder,
- restrictions, causes));
+ map.put( "lines",
+ visitRestrictionsCollection( sourceFolder,
+ restrictions,
+ causes ) );
- String myTemplate = readFile("ranges.htm");
+ String myTemplate = readFile( "ranges.htm" );
- String result = String.valueOf(TemplateRuntime.eval(myTemplate, map));
+ String result = String.valueOf( TemplateRuntime.eval( myTemplate,
+ map ) );
- return result;
- }
+ return result;
+ }
- private static void processRangeOutput(DataRow dataRow,
- Collection<String> stringRows, String sourceFolder) {
+ private static void processRangeOutput(DataRow dataRow,
+ Collection<String> stringRows,
+ String sourceFolder) {
- if (dataRow.ruleId == null) {
- stringRows.add("Missing : " + dataRow.toString());
- } else {
- stringRows.add(UrlFactory.getRuleUrl(sourceFolder, dataRow.ruleId,
- dataRow.ruleName)
- + " : " + dataRow.toString());
- }
- }
+ if ( dataRow.ruleId == null ) {
+ stringRows.add( "Missing : " + dataRow.toString() );
+ } else {
+ stringRows.add( UrlFactory.getRuleUrl( sourceFolder,
+ dataRow.ruleId,
+ dataRow.ruleName ) + " : " + dataRow.toString() );
+ }
+ }
- public static String visitRangeCheckMessage(String sourceFolder,
- VerifierRangeCheckMessage message, VerifierData data) {
- Collection<Restriction> restrictions = data
- .getRestrictionsByFieldId(message.getFaulty().getId());
- Field field = (Field) message.getFaulty();
+ public static String visitRangeCheckMessage(String sourceFolder,
+ VerifierRangeCheckMessage message,
+ VerifierData data) {
+ Field field = (Field) message.getFaulty();
+ Collection<Restriction> restrictions = data.getRestrictionsByFieldGuid( field.getGuid() );
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("header", processHeader(sourceFolder));
- map.put("sourceFolder", sourceFolder);
- map.put("fieldFolder", sourceFolder + "/" + UrlFactory.FIELD_FOLDER);
- map.put("objectTypeFolder", sourceFolder + "/"
- + UrlFactory.OBJECT_TYPE_FOLDER);
- map
- .put("packageFolder", sourceFolder + "/"
- + UrlFactory.PACKAGE_FOLDER);
- map.put("cssStyle", createStyleTag(sourceFolder + "/"
- + UrlFactory.CSS_FOLDER + "/" + UrlFactory.CSS_BASIC));
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put( "header",
+ processHeader( sourceFolder ) );
+ map.put( "sourceFolder",
+ sourceFolder );
+ map.put( "fieldFolder",
+ sourceFolder + "/" + UrlFactory.FIELD_FOLDER );
+ map.put( "objectTypeFolder",
+ sourceFolder + "/" + UrlFactory.OBJECT_TYPE_FOLDER );
+ map.put( "packageFolder",
+ sourceFolder + "/" + UrlFactory.PACKAGE_FOLDER );
+ map.put( "cssStyle",
+ createStyleTag( sourceFolder + "/" + UrlFactory.CSS_FOLDER + "/" + UrlFactory.CSS_BASIC ) );
- map.put("field", field);
- map.put("objectType", data.getObjectTypeById(field.getObjectTypeId()));
- map.put("ranges", visitRanges(UrlFactory.THIS_FOLDER, restrictions,
- message.getCauses()));
+ map.put( "field",
+ field );
+ map.put( "objectType",
+ data.getVerifierObject( VerifierComponentType.OBJECT_TYPE,
+ field.getObjectTypeGuid() ) );
+ map.put( "ranges",
+ visitRanges( UrlFactory.THIS_FOLDER,
+ restrictions,
+ message.getCauses() ) );
- String myTemplate = readFile("missingRange.htm");
+ String myTemplate = readFile( "missingRange.htm" );
- String result = String.valueOf(TemplateRuntime.eval(myTemplate, map));
+ String result = String.valueOf( TemplateRuntime.eval( myTemplate,
+ map ) );
- return result;
- }
+ return result;
+ }
}
-class DataRow implements Comparable<DataRow> {
- public String ruleName;
- protected Integer ruleId;
- protected Operator operator;
- protected String value;
+class DataRow
+ implements
+ Comparable<DataRow> {
+ public String ruleName;
+ protected String ruleId;
+ protected Operator operator;
+ protected String value;
- public int compareTo(DataRow o) {
- return operator.getOperatorString().compareTo(
- o.operator.getOperatorString());
- }
+ public int compareTo(DataRow o) {
+ return operator.getOperatorString().compareTo( o.operator.getOperatorString() );
+ }
- public DataRow(Integer ruleId, String ruleName, Operator operator,
- String valueAsString) {
- this.ruleId = ruleId;
- this.ruleName = ruleName;
- this.operator = operator;
- this.value = valueAsString;
- }
+ public DataRow(String ruleId,
+ String ruleName,
+ Operator operator,
+ String valueAsString) {
+ this.ruleId = ruleId;
+ this.ruleName = ruleName;
+ this.operator = operator;
+ this.value = valueAsString;
+ }
- public String toString() {
- return operator.getOperatorString() + " " + value;
- }
+ public String toString() {
+ return operator.getOperatorString() + " " + value;
+ }
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/ReportModeller.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,71 +1,79 @@
package org.drools.verifier.report.html;
-import java.io.BufferedWriter;
+import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
+import java.util.jar.JarEntry;
+import java.util.zip.ZipOutputStream;
import org.mvel2.templates.TemplateRuntime;
-
abstract class ReportModeller {
- protected static String formPage(String sourceFolder, String content) {
- Map<String, Object> map = new HashMap<String, Object>();
- String myTemplate = VerifierMessagesVisitor.readFile("frame.htm");
+ protected ZipOutputStream zout;
- map.put("cssStyle", ReportVisitor.createStyleTag(sourceFolder + "/"
- + UrlFactory.CSS_FOLDER + "/" + UrlFactory.CSS_BASIC));
- map.put("sourceFolder", sourceFolder);
- map.put("header", ReportVisitor.processHeader(sourceFolder));
- map.put("content", content);
+ protected String formPage(String sourceFolder,
+ String content) {
+ Map<String, Object> map = new HashMap<String, Object>();
+ String myTemplate = VerifierMessagesVisitor.readFile( "frame.htm" );
- return String.valueOf(TemplateRuntime.eval(myTemplate, map));
- }
+ map.put( "cssStyle",
+ ReportVisitor.createStyleTag( sourceFolder + "/" + UrlFactory.CSS_FOLDER + "/" + UrlFactory.CSS_BASIC ) );
+ map.put( "sourceFolder",
+ sourceFolder );
+ map.put( "header",
+ ReportVisitor.processHeader( sourceFolder ) );
+ map.put( "content",
+ content );
- public static void copyFile(String destination, String filename)
- throws IOException {
+ return String.valueOf( TemplateRuntime.eval( myTemplate,
+ map ) );
+ }
- File source = new File(ComponentsReportModeller.class.getResource(
- filename).getFile());
- File dest = new File(destination + File.separator + filename);
+ public void copyFile(String destination,
+ String filename) throws IOException {
+ zout.putNextEntry( new JarEntry( destination + File.separator + filename ) );
- if (!dest.exists()) {
- dest.createNewFile();
- }
- InputStream in = null;
- OutputStream out = null;
- try {
- in = new FileInputStream(source);
- out = new FileOutputStream(dest);
+ File source = new File( HTMLReportWriter.class.getResource( filename ).getFile() );
+ InputStream in = new FileInputStream( source );
- // Transfer bytes from in to out
- byte[] buf = new byte[1024];
- int len;
- while ((len = in.read(buf)) > 0) {
- out.write(buf, 0, len);
- }
- } finally {
- in.close();
- out.close();
- }
+ // Transfer bytes from in to out
+ byte[] buf = new byte[1024];
+ int len;
+ while ( (len = in.read( buf )) > 0 ) {
+ zout.write( buf,
+ 0,
+ len );
+ }
+ in.close();
+ zout.closeEntry();
+ }
- }
+ protected void writeToFile(String fileName,
+ String text) throws IOException {
+ zout.putNextEntry( new JarEntry( fileName ) );
- protected 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());
- }
- }
+ ByteArrayInputStream i = new ByteArrayInputStream( text.getBytes() );
+
+ int len = 0;
+ byte[] copyBuf = new byte[1024];
+ while ( len != -1 ) {
+
+ len = i.read( copyBuf,
+ 0,
+ copyBuf.length );
+ if ( len > 0 ) {
+ zout.write( copyBuf,
+ 0,
+ len );
+ }
+ }
+
+ i.close();
+ zout.closeEntry();
+ }
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/UrlFactory.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,45 +8,47 @@
*/
class UrlFactory {
- public static final String THIS_FOLDER = ".";
- public static final String PREVIOUS_FOLDER = "..";
+ public static final String THIS_FOLDER = ".";
+ public static final String PREVIOUS_FOLDER = "..";
- public static final String SOURCE_FOLDER = "report";
- public static final String OBJECT_TYPE_FOLDER = "objectTypes";
- public static final String FIELD_FOLDER = "fields";
- public static final String RULE_FOLDER = "rules";
- public static final String PACKAGE_FOLDER = "packages";
- public static final String CSS_FOLDER = "css";
+ public static final String SOURCE_FOLDER = "report";
+ public static final String OBJECT_TYPE_FOLDER = "objectTypes";
+ public static final String FIELD_FOLDER = "fields";
+ public static final String RULE_FOLDER = "rules";
+ public static final String PACKAGE_FOLDER = "packages";
+ public static final String CSS_FOLDER = "css";
- public static final String CSS_BASIC = "basic.css";
+ public static final String CSS_BASIC = "basic.css";
- public static final String IMAGES_FOLDER = "images";
+ public static final String IMAGES_FOLDER = "images";
- public static final String HTML_FILE_INDEX = "index.htm";
- public static final String HTML_FILE_PACKAGES = "packages.htm";
- public static final String HTML_FILE_VERIFIER_MESSAGES = "verifierMessages.htm";
+ public static final String HTML_FILE_INDEX = "index.htm";
+ public static final String HTML_FILE_PACKAGES = "packages.htm";
+ public static final String HTML_FILE_VERIFIER_MESSAGES = "verifierMessages.htm";
- /**
- * Finds a link to object if one exists.
- *
- * @param o
- * Object that might have a page that can be linked.
- * @return Link to objects page or the toString() text if no link could not
- * be created.
- */
- public static String getUrl(Object o) {
- if (o instanceof VerifierRule) {
- VerifierRule rule = (VerifierRule) o;
- return getRuleUrl(UrlFactory.RULE_FOLDER, rule.getId(), rule
- .getRuleName());
- }
+ /**
+ * Finds a link to object if one exists.
+ *
+ * @param o
+ * Object that might have a page that can be linked.
+ * @return Link to objects page or the toString() text if no link could not
+ * be created.
+ */
+ public static String getUrl(Object o) {
+ if ( o instanceof VerifierRule ) {
+ VerifierRule rule = (VerifierRule) o;
+ return getRuleUrl( UrlFactory.RULE_FOLDER,
+ rule.getGuid(),
+ rule.getRuleName() );
+ }
- return o.toString();
- }
+ return o.toString();
+ }
- static String getRuleUrl(String sourceFolder, int ruleId, String ruleName) {
- return "<a href=\"" + sourceFolder + "/" + RULE_FOLDER + "/" + ruleId
- + ".htm\">" + ruleName + "</a>";
- }
+ static String getRuleUrl(String sourceFolder,
+ String ruleId,
+ String ruleName) {
+ return "<a href=\"" + sourceFolder + "/" + RULE_FOLDER + "/" + ruleId + ".htm\">" + ruleName + "</a>";
+ }
}
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/report/html/VerifierMessagesVisitor.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -5,7 +5,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.drools.verifier.dao.VerifierData;
+import org.drools.verifier.data.VerifierData;
import org.drools.verifier.report.components.Cause;
import org.drools.verifier.report.components.VerifierMessage;
import org.drools.verifier.report.components.VerifierMessageBase;
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/PatternSolver.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/PatternSolver.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/PatternSolver.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,24 @@
+package org.drools.verifier.solver;
+
+import org.drools.verifier.components.OperatorDescr;
+import org.drools.verifier.components.Pattern;
+import org.drools.verifier.solver.Solver;
+
+/**
+ * Takes a list of Constraints and makes possibilities from them.
+ *
+ * @author Toni Rikkola
+ */
+class PatternSolver extends Solver {
+
+ private Pattern pattern;
+
+ public PatternSolver(Pattern pattern) {
+ super(OperatorDescr.Type.OR);
+ this.pattern = pattern;
+ }
+
+ public Pattern getPattern() {
+ return pattern;
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/RuleSolver.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/RuleSolver.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/RuleSolver.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,24 @@
+package org.drools.verifier.solver;
+
+import org.drools.verifier.components.OperatorDescr;
+import org.drools.verifier.components.VerifierRule;
+import org.drools.verifier.solver.Solver;
+
+/**
+ * Takes a list of Constraints and makes possibilities from them.
+ *
+ * @author Toni Rikkola
+ */
+public class RuleSolver extends Solver {
+
+ private VerifierRule rule;
+
+ public RuleSolver(VerifierRule rule) {
+ super( OperatorDescr.Type.OR );
+ this.rule = (VerifierRule) rule;
+ }
+
+ public VerifierRule getRule() {
+ return rule;
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/Solver.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/Solver.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/Solver.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,158 @@
+package org.drools.verifier.solver;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.drools.verifier.components.OperatorDescr;
+import org.drools.verifier.data.VerifierComponent;
+
+/**
+ * Takes a list of Constraints and makes possibilities from them.
+ *
+ * @author Toni Rikkola
+ */
+class Solver {
+
+ private List<Set<VerifierComponent>> possibilityLists = new ArrayList<Set<VerifierComponent>>();
+ private Solver subSolver = null;
+ private boolean isChildExists = false;
+ private boolean isChildForall = false;
+ private boolean isChildNot = false;
+
+ private OperatorDescr.Type type;
+
+ protected Solver(OperatorDescr.Type type) {
+ this.type = type;
+ }
+
+ public void addOperator(OperatorDescr.Type type) {
+ if ( subSolver != null ) {
+ subSolver.addOperator( type );
+ } else {
+ subSolver = new Solver( type );
+ }
+ }
+
+ /**
+ * Add new descr.
+ *
+ * @param descr
+ */
+ public void add(VerifierComponent descr) {
+
+ if ( descr instanceof OperatorDescr ) {
+ throw new UnsupportedOperationException( "Operator descrs are not supported." );
+ }
+
+ if ( subSolver != null ) {
+ subSolver.add( descr );
+ } else {
+ if ( type == OperatorDescr.Type.AND ) {
+ if ( possibilityLists.isEmpty() ) {
+ possibilityLists.add( new HashSet<VerifierComponent>() );
+ }
+ for ( Set<VerifierComponent> set : possibilityLists ) {
+ set.add( descr );
+ }
+ } else if ( type == OperatorDescr.Type.OR ) {
+ Set<VerifierComponent> set = new HashSet<VerifierComponent>();
+ set.add( descr );
+ possibilityLists.add( set );
+ }
+ }
+ }
+
+ /**
+ * Ends subSolvers data collection.
+ *
+ */
+ protected void end() {
+ if ( subSolver != null && subSolver.subSolver == null ) {
+ if ( type == OperatorDescr.Type.AND ) {
+ if ( possibilityLists.isEmpty() ) {
+ possibilityLists.add( new HashSet<VerifierComponent>() );
+ }
+
+ List<Set<VerifierComponent>> newPossibilities = new ArrayList<Set<VerifierComponent>>();
+
+ List<Set<VerifierComponent>> sets = subSolver.getPossibilityLists();
+ for ( Set<VerifierComponent> possibilityList : possibilityLists ) {
+
+ for ( Set<VerifierComponent> set : sets ) {
+ Set<VerifierComponent> newSet = new HashSet<VerifierComponent>();
+ newSet.addAll( possibilityList );
+ newSet.addAll( set );
+ newPossibilities.add( newSet );
+ }
+ }
+ possibilityLists = newPossibilities;
+
+ } else if ( type == OperatorDescr.Type.OR ) {
+
+ possibilityLists.addAll( subSolver.getPossibilityLists() );
+
+ }
+
+ subSolver = null;
+
+ } else if ( subSolver != null && subSolver.subSolver != null ) {
+
+ subSolver.end();
+ }
+
+ }
+
+ public void setChildForall(boolean b) {
+ if ( subSolver != null ) {
+ subSolver.setChildForall( b );
+ } else {
+ isChildForall = b;
+ }
+ }
+
+ public void setChildExists(boolean b) {
+ if ( subSolver != null ) {
+ subSolver.setChildExists( b );
+ } else {
+ isChildExists = b;
+ }
+ }
+
+ public void setChildNot(boolean b) {
+ if ( subSolver != null ) {
+ subSolver.setChildNot( b );
+ } else {
+ isChildNot = b;
+ }
+ }
+
+ public boolean isForall() {
+ if ( subSolver != null ) {
+ return subSolver.isForall();
+ } else {
+ return isChildForall;
+ }
+ }
+
+ public boolean isExists() {
+ if ( subSolver != null ) {
+ return subSolver.isExists();
+ } else {
+ return isChildExists;
+ }
+ }
+
+ public boolean isChildNot() {
+ if ( subSolver != null ) {
+ return subSolver.isChildNot();
+ } else {
+ return isChildNot;
+ }
+ }
+
+ public List<Set<VerifierComponent>> getPossibilityLists() {
+ return possibilityLists;
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/Solvers.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/Solvers.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/solver/Solvers.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,173 @@
+package org.drools.verifier.solver;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import org.drools.verifier.components.OperatorDescr;
+import org.drools.verifier.components.Pattern;
+import org.drools.verifier.components.SubPattern;
+import org.drools.verifier.components.Restriction;
+import org.drools.verifier.components.SubRule;
+import org.drools.verifier.components.VerifierRule;
+import org.drools.verifier.data.VerifierComponent;
+
+/**
+ *
+ * @author Toni Rikkola
+ */
+public class Solvers {
+
+ private RuleSolver ruleSolver = null;
+ private PatternSolver patternSolver = null;
+
+ private List<SubPattern> patternPossibilities = new ArrayList<SubPattern>();
+ private List<SubRule> rulePossibilities = new ArrayList<SubRule>();
+
+ public void startRuleSolver(VerifierRule rule) {
+ ruleSolver = new RuleSolver( rule );
+ }
+
+ public void endRuleSolver() {
+ createRulePossibilities();
+ ruleSolver = null;
+ }
+
+ public void startPatternSolver(Pattern pattern) {
+ patternSolver = new PatternSolver( pattern );
+
+ patternSolver.getPattern().setPatternNot( ruleSolver.isChildNot() );
+ }
+
+ public void endPatternSolver() {
+ createPatternPossibilities();
+ patternSolver = null;
+ }
+
+ public void startForall() {
+ if ( patternSolver != null ) {
+ patternSolver.setChildForall( true );
+ } else if ( ruleSolver != null ) {
+ ruleSolver.setChildForall( true );
+ }
+ }
+
+ public void endForall() {
+ if ( patternSolver != null ) {
+ patternSolver.setChildForall( false );
+ } else if ( ruleSolver != null ) {
+ ruleSolver.setChildForall( false );
+ }
+ }
+
+ public void startExists() {
+ if ( patternSolver != null ) {
+ patternSolver.setChildExists( true );
+ } else if ( ruleSolver != null ) {
+ ruleSolver.setChildExists( true );
+ }
+ }
+
+ public void endExists() {
+ if ( patternSolver != null ) {
+ patternSolver.setChildExists( false );
+ } else if ( ruleSolver != null ) {
+ ruleSolver.setChildExists( false );
+ }
+ }
+
+ public void startNot() {
+ if ( patternSolver != null ) {
+ patternSolver.setChildNot( true );
+ } else if ( ruleSolver != null ) {
+ ruleSolver.setChildNot( true );
+ }
+ }
+
+ public void endNot() {
+ if ( patternSolver != null ) {
+ patternSolver.setChildNot( false );
+ } else if ( ruleSolver != null ) {
+ ruleSolver.setChildNot( false );
+ }
+ }
+
+ public void startOperator(OperatorDescr.Type type) {
+ if ( patternSolver != null ) {
+ patternSolver.addOperator( type );
+ } else if ( ruleSolver != null ) {
+ ruleSolver.addOperator( type );
+ }
+ }
+
+ public void endOperator() {
+ if ( patternSolver != null ) {
+ patternSolver.end();
+ } else if ( ruleSolver != null ) {
+ ruleSolver.end();
+ }
+ }
+
+ public void addRestriction(Restriction restriction) {
+ patternSolver.add( restriction );
+ }
+
+ private void createPatternPossibilities() {
+ for ( Set<VerifierComponent> list : patternSolver.getPossibilityLists() ) {
+ SubPattern possibility = new SubPattern();
+
+ possibility.setRuleGuid( ruleSolver.getRule().getGuid() );
+ possibility.setRuleName( ruleSolver.getRule().getRuleName() );
+ possibility.setRuleGuid( ruleSolver.getRule().getGuid() );
+ possibility.setPatternGuid( patternSolver.getPattern().getGuid() );
+
+ for ( VerifierComponent descr : list ) {
+ possibility.add( (Restriction) descr );
+ }
+
+ ruleSolver.add( possibility );
+ patternPossibilities.add( possibility );
+ }
+ }
+
+ private void createRulePossibilities() {
+ for ( Set<VerifierComponent> list : ruleSolver.getPossibilityLists() ) {
+ SubRule possibility = new SubRule();
+
+ possibility.setRuleGuid( ruleSolver.getRule().getGuid() );
+ possibility.setRuleName( ruleSolver.getRule().getRuleName() );
+ possibility.setRuleGuid( ruleSolver.getRule().getGuid() );
+
+ for ( VerifierComponent descr : list ) {
+ SubPattern patternPossibility = (SubPattern) descr;
+ possibility.add( patternPossibility );
+ }
+
+ rulePossibilities.add( possibility );
+ }
+ }
+
+ public List<SubPattern> getPatternPossibilities() {
+ return patternPossibilities;
+ }
+
+ public void setPatternPossibilities(List<SubPattern> patternPossibilities) {
+ this.patternPossibilities = patternPossibilities;
+ }
+
+ public List<SubRule> getRulePossibilities() {
+ return rulePossibilities;
+ }
+
+ public void setRulePossibilities(List<SubRule> rulePossibilities) {
+ this.rulePossibilities = rulePossibilities;
+ }
+
+ public PatternSolver getPatternSolver() {
+ return patternSolver;
+ }
+
+ public RuleSolver getRuleSolver() {
+ return ruleSolver;
+ }
+}
\ No newline at end of file
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/Consequence.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -5,12 +5,12 @@
import org.drools.verifier.components.VerifierRule;
import org.drools.verifier.components.TextConsequence;
import org.drools.verifier.report.components.VerifierMessage;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.MessageType;
#declare any global variables here
-global VerifierResult result;
+global VerifierReport result;
rule "No action - possibly commented out"
@@ -18,7 +18,7 @@
$c :TextConsequence( ( text == null || matches "" ) )
$r :VerifierRule(
- id == $c.ruleId
+ guid matches $c.ruleGuid
)
then
result.add( new VerifierMessage(
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Patterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Patterns.drl 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Patterns.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,7 +7,7 @@
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.components.SubPattern;
import org.drools.verifier.components.VerifierRule;
import org.drools.verifier.report.components.Severity;
@@ -15,9 +15,9 @@
import org.drools.verifier.report.components.Incompatibility;
import org.drools.verifier.report.components.VerifierMessage;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
-global VerifierResult result;
+global VerifierReport result;
#
# Finds patterns that are always false.
@@ -38,12 +38,12 @@
$p :Pattern()
# Check that there is at least one pattern possibility.
- exists PatternPossibility( patternId == $p.id )
+ exists SubPattern( patternGuid == $p.guid )
# All the pattern possibilities for pattern need to be in conflict
forall(
- $pp :PatternPossibility(
- patternId == $p.id
+ $pp :SubPattern(
+ patternGuid matches $p.guid
)
Incompatibility(
@@ -52,7 +52,7 @@
)
)
- $r :VerifierRule( id == $p.ruleId )
+ $r :VerifierRule( guid == $p.ruleGuid )
then
# Report an error
result.add( new VerifierMessage(
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Rules.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Rules.drl 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysFalse/Rules.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,16 +7,16 @@
package org.drools.verifier.alwaysFalse
#list any import classes here.
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.components.RulePossibility;
+import org.drools.verifier.components.SubRule;
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;
+import org.drools.verifier.data.VerifierReport;
-global VerifierResult result;
+global VerifierReport result;
#
# Finds rules that are always false.
@@ -35,8 +35,8 @@
# All the rule possibilities for rule need to be in conflict
forall(
- $rp :RulePossibility(
- ruleId == $r.id
+ $rp :SubRule(
+ ruleGuid matches $r.guid
)
Incompatibility(
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Patterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Patterns.drl 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Patterns.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -9,7 +9,7 @@
import org.drools.verifier.components.Restriction;
import org.drools.verifier.components.Pattern;
-import org.drools.verifier.components.PatternPossibility;
+import org.drools.verifier.components.SubPattern;
import org.drools.verifier.components.VerifierRule;
import org.drools.verifier.report.components.AlwaysTrue;
@@ -18,9 +18,9 @@
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.MessageType;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
-global VerifierResult result;
+global VerifierReport result;
@@ -28,7 +28,7 @@
when
a :Restriction()
b :Restriction()
- $pp :PatternPossibility()
+ $pp :SubPattern()
Opposites(
(
@@ -53,8 +53,8 @@
when
$p :Pattern()
- $pp :PatternPossibility(
- patternId == $p.id
+ $pp :SubPattern(
+ patternGuid matches $p.guid
)
# For each restriction in pattern possibility
@@ -96,13 +96,13 @@
$p :Pattern()
# Only report the ones that have restrictions.
- exists PatternPossibility( patternId == $p.id )
+ exists SubPattern( patternGuid == $p.guid )
# For each restriction in each pattern possibility for current pattern,
# there needs to be an opposite.
forall(
- $pp :PatternPossibility(
- patternId == $p.id
+ $pp :SubPattern(
+ patternGuid matches $p.guid
)
AlwaysTrue(
@@ -110,7 +110,7 @@
)
)
- $r :VerifierRule( id == $p.ruleId )
+ $r :VerifierRule( guid matches $p.ruleGuid )
then
result.add( new VerifierMessage(
Severity.NOTE,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Rules.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Rules.drl 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/alwaysTrue/Rules.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,8 +8,8 @@
import org.drools.verifier.components.Pattern;
-import org.drools.verifier.components.PatternPossibility;
-import org.drools.verifier.components.RulePossibility;
+import org.drools.verifier.components.SubPattern;
+import org.drools.verifier.components.SubRule;
import org.drools.verifier.components.VerifierRule;
import org.drools.verifier.report.components.AlwaysTrue;
@@ -18,9 +18,9 @@
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.MessageType;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
-global VerifierResult result;
+global VerifierReport result;
#
# Finds rule possibilities that are always true.
@@ -35,13 +35,13 @@
when
$r :VerifierRule()
- $rp :RulePossibility(
- ruleId == $r.id
+ $rp :SubRule(
+ ruleGuid matches $r.guid
)
# Each pattern possibility in rule possibility needs to be always true.
forall(
- $pp :PatternPossibility(
+ $pp :SubPattern(
this memberOf $rp.items
)
@@ -67,8 +67,8 @@
$r :VerifierRule()
forall(
- $rp :RulePossibility(
- ruleId == $r.id
+ $rp :SubRule(
+ ruleGuid matches $r.guid
)
AlwaysTrue(
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/equivalence/Rules.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -16,7 +16,7 @@
# Check that VerifierRule $left and $right have redundant fields.
$left :VerifierRule()
$right :VerifierRule(
- id != $left.id,
+ guid not matches $left.guid,
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incoherence/Patterns.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -4,8 +4,8 @@
#list any import classes here.
import org.drools.verifier.components.VerifierRule;
import org.drools.verifier.components.LiteralRestriction;
-import org.drools.verifier.components.PatternPossibility;
-import org.drools.verifier.components.RulePossibility;
+import org.drools.verifier.components.SubPattern;
+import org.drools.verifier.components.SubRule;
import org.drools.verifier.components.Pattern;
import org.drools.verifier.components.VariableRestriction;
import org.drools.verifier.report.components.Cause;
@@ -14,7 +14,7 @@
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.MessageType;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
import java.util.Collection;
import java.util.ArrayList;
@@ -22,7 +22,7 @@
import org.drools.base.evaluators.Operator;
#declare any global variables here
-global VerifierResult result;
+global VerifierReport result;
#
# If two Patterns are in conflict.
@@ -40,40 +40,40 @@
)
$r2 :LiteralRestriction(
- ruleId == $r1.ruleId,
+ ruleGuid matches $r1.ruleGuid,
patternIsNot == false,
restrictionType == $r1.restrictionType,
- fieldId == $r1.fieldId,
+ fieldGuid matches $r1.fieldGuid,
valueType == $r1.valueType,
operator == $r1.operator
)
eval( $r1.compareValues( $r2 ) == 0 )
- $pp1 :PatternPossibility(
- patternId == $r1.patternId
+ $pp1 :SubPattern(
+ patternGuid matches $r1.patternGuid
)
- $pp2 :PatternPossibility(
- patternId == $r2.patternId
+ $pp2 :SubPattern(
+ patternGuid matches $r2.patternGuid
)
- # There is a problem if both of these are in the same RulePossibility.
- $rp :RulePossibility(
+ # There is a problem if both of these are in the same SubRule.
+ $rp :SubRule(
items contains $pp1,
items contains $pp2
)
$p1 :Pattern(
- id == $r1.patternId
+ guid matches $r1.patternGuid
)
$p2 :Pattern(
- id == $r2.patternId
+ guid matches $r2.patternGuid
)
$r :VerifierRule(
- id == $rp.ruleId
+ guid matches $rp.ruleGuid
)
then
Collection list = new ArrayList();
@@ -107,39 +107,39 @@
)
$r2 :VariableRestriction(
- ruleId == $r1.ruleId,
+ ruleGuid matches $r1.ruleGuid,
patternIsNot == false,
- fieldId == $r1.fieldId,
- variable.objectId == $r1.variable.objectId,
- variable.objectType == $r1.variable.objectType,
+ fieldGuid matches $r1.fieldGuid,
+ variable.objectTypeGuid matches $r1.variable.objectTypeGuid,
+ variable.objectTypeType == $r1.variable.objectTypeType,
operator == $r1.operator
)
- $pp1 :PatternPossibility(
- patternId == $r1.patternId
+ $pp1 :SubPattern(
+ patternGuid matches $r1.patternGuid
)
- $pp2 :PatternPossibility(
- patternId == $r2.patternId
+ $pp2 :SubPattern(
+ patternGuid matches $r2.patternGuid
)
- # There is a problem if both of these are in the same RulePossibility.
- $rp :RulePossibility(
+ # There is a problem if both of these are in the same SubRule.
+ $rp :SubRule(
items contains $pp1,
items contains $pp2
)
$p1 :Pattern(
- id == $r1.patternId
+ guid matches $r1.patternGuid
)
$p2 :Pattern(
- id == $r2.patternId
+ guid matches $r2.patternGuid
)
$r :VerifierRule(
- id == $rp.ruleId
+ guid matches $rp.ruleGuid
)
then
Collection list = new ArrayList();
@@ -173,38 +173,38 @@
)
$r2 :LiteralRestriction(
- ruleId == $r1.ruleId,
+ ruleGuid matches $r1.ruleGuid,
patternIsNot == false,
( operator == Operator.GREATER || == Operator.GREATER_OR_EQUAL || == Operator.EQUAL ),
- fieldId == $r1.fieldId
+ fieldGuid matches $r1.fieldGuid
)
eval( $r1.compareValues( $r2 ) == -1 )
- $pp1 :PatternPossibility(
- patternId == $r1.patternId
+ $pp1 :SubPattern(
+ patternGuid matches $r1.patternGuid
)
- $pp2 :PatternPossibility(
- patternId == $r2.patternId
+ $pp2 :SubPattern(
+ patternGuid matches $r2.patternGuid
)
- # There is a problem if both of these are in the same RulePossibility.
- $rp :RulePossibility(
+ # There is a problem if both of these are in the same SubRule.
+ $rp :SubRule(
items contains $pp1,
items contains $pp2
)
$p1 :Pattern(
- id == $r1.patternId
+ guid matches $r1.patternGuid
)
$p2 :Pattern(
- id == $r2.patternId
+ guid matches $r2.patternGuid
)
$r :VerifierRule(
- id == $rp.ruleId
+ guid matches $rp.ruleGuid
)
then
Collection list = new ArrayList();
@@ -238,38 +238,38 @@
)
$r2 :LiteralRestriction(
- ruleId == $r1.ruleId,
+ ruleGuid matches $r1.ruleGuid,
patternIsNot == false,
( operator == Operator.LESS || == Operator.LESS_OR_EQUAL || == Operator.EQUAL ),
- fieldId == $r1.fieldId
+ fieldGuid matches $r1.fieldGuid
)
eval( $r1.compareValues( $r2 ) == 1 )
- $pp1 :PatternPossibility(
- patternId == $r1.patternId
+ $pp1 :SubPattern(
+ patternGuid matches $r1.patternGuid
)
- $pp2 :PatternPossibility(
- patternId == $r2.patternId
+ $pp2 :SubPattern(
+ patternGuid matches $r2.patternGuid
)
- # There is a problem if both of these are in the same RulePossibility.
- $rp :RulePossibility(
+ # There is a problem if both of these are in the same SubRule.
+ $rp :SubRule(
items contains $pp1,
items contains $pp2
)
$p1 :Pattern(
- id == $r1.patternId
+ guid matches $r1.patternGuid
)
$p2 :Pattern(
- id == $r2.patternId
+ guid matches $r2.patternGuid
)
$r :VerifierRule(
- id == $rp.ruleId
+ guid matches $rp.ruleGuid
)
then
Collection list = new ArrayList();
@@ -303,39 +303,39 @@
)
$r2 :LiteralRestriction(
- ruleId == $r1.ruleId,
+ ruleGuid matches $r1.ruleGuid,
patternIsNot == false,
# It is also a problem if the value is NOT_EQUAL, but there is already a rule for that.
( operator != Operator.EQUAL && != Operator.NOT_EQUAL ),
- fieldId == $r1.fieldId
+ fieldGuid matches $r1.fieldGuid
)
eval( $r1.compareValues( $r2 ) == 0 )
- $pp1 :PatternPossibility(
- patternId == $r1.patternId
+ $pp1 :SubPattern(
+ patternGuid matches $r1.patternGuid
)
- $pp2 :PatternPossibility(
- patternId == $r2.patternId
+ $pp2 :SubPattern(
+ patternGuid matches $r2.patternGuid
)
- # There is a problem if both of these are in the same RulePossibility.
- $rp :RulePossibility(
+ # There is a problem if both of these are in the same SubRule.
+ $rp :SubRule(
items contains $pp1,
items contains $pp2
)
$p1 :Pattern(
- id == $r1.patternId
+ guid matches $r1.patternGuid
)
$p2 :Pattern(
- id == $r2.patternId
+ guid matches $r2.patternGuid
)
$r :VerifierRule(
- id == $rp.ruleId
+ guid matches $rp.ruleGuid
)
then
Collection list = new ArrayList();
@@ -369,39 +369,39 @@
)
$r2 :VariableRestriction(
- ruleId == $r1.ruleId,
+ ruleGuid matches $r1.ruleGuid,
patternIsNot == false,
- fieldId == $r1.fieldId,
- variable.objectId == $r1.variable.objectId,
- variable.objectType == $r1.variable.objectType,
+ fieldGuid matches $r1.fieldGuid,
+ variable.objectTypeGuid matches $r1.variable.objectTypeGuid,
+ variable.objectTypeType == $r1.variable.objectTypeType,
# It is also a problem if the value is NOT_EQUAL, but there is already a rule for that.
( operator != Operator.EQUAL && != Operator.NOT_EQUAL )
)
- $pp1 :PatternPossibility(
- patternId == $r1.patternId
+ $pp1 :SubPattern(
+ patternGuid matches $r1.patternGuid
)
- $pp2 :PatternPossibility(
- patternId == $r2.patternId
+ $pp2 :SubPattern(
+ patternGuid matches $r2.patternGuid
)
- # There is a problem if both of these are in the same RulePossibility.
- $rp :RulePossibility(
+ # There is a problem if both of these are in the same SubRule.
+ $rp :SubRule(
items contains $pp1,
items contains $pp2
)
$p1 :Pattern(
- id == $r1.patternId
+ guid matches $r1.patternGuid
)
$p2 :Pattern(
- id == $r2.patternId
+ guid matches $r2.patternGuid
)
$r :VerifierRule(
- id == $rp.ruleId
+ guid matches $rp.ruleGuid
)
then
Collection list = new ArrayList();
@@ -435,38 +435,38 @@
)
$r2 :LiteralRestriction(
- ruleId == $r1.ruleId,
+ ruleGuid matches $r1.ruleGuid,
patternIsNot == false,
operator == Operator.EQUAL,
- fieldId == $r1.fieldId
+ fieldGuid matches $r1.fieldGuid
)
eval( $r1.compareValues( $r2 ) == 0 )
- $pp1 :PatternPossibility(
- patternId == $r1.patternId
+ $pp1 :SubPattern(
+ patternGuid matches $r1.patternGuid
)
- $pp2 :PatternPossibility(
- patternId == $r2.patternId
+ $pp2 :SubPattern(
+ patternGuid matches $r2.patternGuid
)
- # There is a problem if both of these are in the same RulePossibility.
- $rp :RulePossibility(
+ # There is a problem if both of these are in the same SubRule.
+ $rp :SubRule(
items contains $pp1,
items contains $pp2
)
$p1 :Pattern(
- id == $r1.patternId
+ guid matches $r1.patternGuid
)
$p2 :Pattern(
- id == $r2.patternId
+ guid matches $r2.patternGuid
)
$r :VerifierRule(
- id == $rp.ruleId
+ guid matches $rp.ruleGuid
)
then
Collection list = new ArrayList();
@@ -501,38 +501,38 @@
)
$r2 :VariableRestriction(
- ruleId == $r1.ruleId,
+ ruleGuid matches $r1.ruleGuid,
patternIsNot == false,
- fieldId == $r1.fieldId,
- variable.objectId == $r1.variable.objectId,
- variable.objectType == $r1.variable.objectType,
+ fieldGuid matches $r1.fieldGuid,
+ variable.objectTypeGuid == $r1.variable.objectTypeGuid,
+ variable.objectTypeType == $r1.variable.objectTypeType,
operator == Operator.EQUAL
)
- $pp1 :PatternPossibility(
- patternId == $r1.patternId
+ $pp1 :SubPattern(
+ patternGuid matches $r1.patternGuid
)
- $pp2 :PatternPossibility(
- patternId == $r2.patternId
+ $pp2 :SubPattern(
+ patternGuid matches $r2.patternGuid
)
- # There is a problem if both of these are in the same RulePossibility.
- $rp :RulePossibility(
+ # There is a problem if both of these are in the same SubRule.
+ $rp :SubRule(
items contains $pp1,
items contains $pp2
)
$p1 :Pattern(
- id == $r1.patternId
+ guid matches $r1.patternGuid
)
$p2 :Pattern(
- id == $r2.patternId
+ guid matches $r2.patternGuid
)
$r :VerifierRule(
- id == $rp.ruleId
+ guid matches $rp.ruleGuid
)
then
Collection list = new ArrayList();
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incoherence/Restrictions.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -3,7 +3,7 @@
#list any import classes here.
import org.drools.verifier.components.LiteralRestriction;
-import org.drools.verifier.components.PatternPossibility;
+import org.drools.verifier.components.SubPattern;
import org.drools.verifier.components.Pattern;
import org.drools.verifier.components.VariableRestriction;
import org.drools.verifier.report.components.Cause;
@@ -11,7 +11,7 @@
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.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
import java.util.Collection;
import java.util.ArrayList;
@@ -19,7 +19,7 @@
import org.drools.base.evaluators.Operator;
#declare any global variables here
-global VerifierResult result;
+global VerifierReport result;
#
# If two LiteralRestrictions are in conflict.
@@ -37,24 +37,24 @@
)
$r2 :LiteralRestriction(
- patternId == $r1.patternId,
+ patternGuid matches $r1.patternGuid,
restrictionType == $r1.restrictionType,
- fieldId == $r1.fieldId,
+ fieldGuid matches $r1.fieldGuid,
valueType == $r1.valueType,
- id != $r1.id,
+ guid not matches $r1.guid,
# Operator needs to be reversed to what the other one has.
eval( operator == MissingRange.getReversedOperator( $r1.getOperator() ))
)
eval( $r1.compareValues( $r2 ) == 0 )
- # There is a problem if both of these are in the same PatternPossibility.
- $pp :PatternPossibility(
+ # There is a problem if both of these are in the same SubPattern.
+ $pp :SubPattern(
items contains $r1,
items contains $r2
)
- $p :Pattern( id == $pp.patternId )
+ $p :Pattern( guid matches $pp.patternGuid )
then
Collection list = new ArrayList();
list.add( $r1 );
@@ -84,23 +84,23 @@
)
$r2 :LiteralRestriction(
- patternId == $r1.patternId,
+ patternGuid matches $r1.patternGuid,
restrictionType == $r1.restrictionType,
- fieldId == $r1.fieldId,
+ fieldGuid matches $r1.fieldGuid,
valueType == $r1.valueType,
( operator == Operator.LESS_OR_EQUAL || == Operator.LESS),
- id != $r1.id
+ guid not matches $r1.guid
)
eval( $r1.compareValues( $r2 ) == 1 )
- # There is a problem if both of these are in the same PatternPossibility.
- $pp :PatternPossibility(
+ # There is a problem if both of these are in the same SubPattern.
+ $pp :SubPattern(
items contains $r1,
items contains $r2
)
- $p :Pattern( id == $pp.patternId )
+ $p :Pattern( guid matches $pp.patternGuid )
then
Collection list = new ArrayList();
list.add( $r1 );
@@ -130,23 +130,23 @@
)
$r2 :LiteralRestriction(
- patternId == $r1.patternId,
+ patternGuid matches $r1.patternGuid,
restrictionType == $r1.restrictionType,
- fieldId == $r1.fieldId,
+ fieldGuid matches $r1.fieldGuid,
valueType == $r1.valueType,
( operator == Operator.LESS_OR_EQUAL || == Operator.LESS || == Operator.EQUAL ),
- id != $r1.id
+ guid not matches $r1.guid
)
eval( $r1.compareValues( $r2 ) == 1 )
- # There is a problem if both of these are in the same PatternPossibility.
- $pp :PatternPossibility(
+ # There is a problem if both of these are in the same SubPattern.
+ $pp :SubPattern(
items contains $r1,
items contains $r2
)
- $p :Pattern( id == $pp.patternId )
+ $p :Pattern( guid matches $pp.patternGuid )
then
Collection list = new ArrayList();
list.add( $r1 );
@@ -176,23 +176,23 @@
)
$r2 :LiteralRestriction(
- patternId == $r1.patternId,
+ patternGuid matches $r1.patternGuid,
restrictionType == $r1.restrictionType,
- fieldId == $r1.fieldId,
+ fieldGuid matches $r1.fieldGuid,
valueType == $r1.valueType,
operator == Operator.EQUAL,
- id != $r1.id
+ guid not matches $r1.guid
)
eval( $r1.compareValues( $r2 ) == 1 )
- # There is a problem if both of these are in the same PatternPossibility.
- $pp :PatternPossibility(
+ # There is a problem if both of these are in the same SubPattern.
+ $pp :SubPattern(
items contains $r1,
items contains $r2
)
- $p :Pattern( id == $pp.patternId )
+ $p :Pattern( guid matches $pp.patternGuid )
then
Collection list = new ArrayList();
list.add( $r1 );
@@ -222,23 +222,23 @@
)
$r2 :LiteralRestriction(
- patternId == $r1.patternId,
+ patternGuid matches $r1.patternGuid,
restrictionType == $r1.restrictionType,
- fieldId == $r1.fieldId,
+ fieldGuid matches $r1.fieldGuid,
valueType == $r1.valueType,
operator == Operator.GREATER,
- id != $r1.id
+ guid not matches $r1.guid
)
eval( $r1.compareValues( $r2 ) == 0 )
- # There is a problem if both of these are in the same PatternPossibility.
- $pp :PatternPossibility(
+ # There is a problem if both of these are in the same SubPattern.
+ $pp :SubPattern(
items contains $r1,
items contains $r2
)
- $p :Pattern( id == $pp.patternId )
+ $p :Pattern( guid matches $pp.patternGuid )
then
Collection list = new ArrayList();
list.add( $r1 );
@@ -270,22 +270,22 @@
)
$r2 :VariableRestriction(
- patternId == $r1.patternId,
- fieldId == $r1.fieldId,
- id != $r1.id,
- variable.objectId == $r1.variable.objectId,
- variable.objectType == $r1.variable.objectType,
+ patternGuid matches $r1.patternGuid,
+ fieldGuid matches $r1.fieldGuid,
+ guid not matches $r1.guid,
+ variable.objectTypeGuid matches $r1.variable.objectTypeGuid,
+ variable.objectTypeType == $r1.variable.objectTypeType,
# 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(
+ # There is a problem if both of these are in the same SubPattern.
+ $pp :SubPattern(
items contains $r1,
items contains $r2
)
- $p :Pattern( id == $pp.patternId )
+ $p :Pattern( guid matches $pp.patternGuid )
then
Collection list = new ArrayList();
list.add( $r1 );
@@ -315,21 +315,21 @@
)
$r2 :VariableRestriction(
- patternId == $r1.patternId,
- fieldId == $r1.fieldId,
+ patternGuid matches $r1.patternGuid,
+ fieldGuid matches $r1.fieldGuid,
operator == Operator.GREATER,
- variable.objectId == $r1.variable.objectId,
- variable.objectType == $r1.variable.objectType,
- id != $r1.id
+ variable.objectTypeGuid == $r1.variable.objectTypeGuid,
+ variable.objectTypeType == $r1.variable.objectTypeType,
+ guid not matches $r1.guid
)
- # There is a problem if both of these are in the same PatternPossibility.
- $pp :PatternPossibility(
+ # There is a problem if both of these are in the same SubPattern.
+ $pp :SubPattern(
items contains $r1,
items contains $r2
)
- $p :Pattern( id == $pp.patternId )
+ $p :Pattern( guid matches $pp.patternGuid )
then
Collection list = new ArrayList();
list.add( $r1 );
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incompatibility/Patterns.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -3,13 +3,13 @@
#list any import classes here.
import org.drools.verifier.components.Restriction;
-import org.drools.verifier.components.PatternPossibility;
+import org.drools.verifier.components.SubPattern;
import org.drools.verifier.report.components.Incompatibility;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
-global VerifierResult result;
+global VerifierReport result;
#
# Pattern possibilities are incompatible if any of the restrictions are incompatible.
@@ -30,11 +30,11 @@
when
$incompatibility :Incompatibility()
- $pp1 :PatternPossibility(
+ $pp1 :SubPattern(
items contains $incompatibility.left
)
- $pp2 :PatternPossibility(
+ $pp2 :SubPattern(
items contains $incompatibility.right
)
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/incompatibility/Restrictions.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -24,10 +24,10 @@
$r2 :LiteralRestriction(
restrictionType == $r1.restrictionType,
- fieldId == $r1.fieldId,
+ fieldGuid matches $r1.fieldGuid,
valueType == $r1.valueType,
( operator == Operator.LESS_OR_EQUAL || == Operator.LESS || == Operator.EQUAL ),
- id != $r1.id
+ guid not matches $r1.guid
)
eval( $r1.compareValues( $r2 ) == 1 )
@@ -49,10 +49,10 @@
$r2 :LiteralRestriction(
restrictionType == $r1.restrictionType,
- fieldId == $r1.fieldId,
+ fieldGuid matches $r1.fieldGuid,
valueType == $r1.valueType,
operator == Operator.EQUAL,
- id != $r1.id
+ guid not matches $r1.guid
)
eval( $r1.compareValues( $r2 ) == 1 )
@@ -74,10 +74,10 @@
$r2 :LiteralRestriction(
restrictionType == $r1.restrictionType,
- fieldId == $r1.fieldId,
+ fieldGuid matches $r1.fieldGuid,
valueType == $r1.valueType,
operator == Operator.GREATER,
- id != $r1.id
+ guid not matches $r1.guid
)
eval( $r1.compareValues( $r2 ) == 0 )
@@ -98,11 +98,11 @@
)
$r2 :VariableRestriction(
- fieldId == $r1.fieldId,
+ fieldGuid matches $r1.fieldGuid,
operator == Operator.GREATER,
- variable.objectId == $r1.variable.objectId,
- variable.objectType == $r1.variable.objectType,
- id != $r1.id
+ variable.objectTypeGuid == $r1.variable.objectTypeGuid,
+ variable.objectTypeType == $r1.variable.objectTypeType,
+ guid not matches $r1.guid
)
then
insert( new Incompatibility( $r1, $r2 ) );
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/missingEquality/MissingEquality.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -12,12 +12,12 @@
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.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
#declare any global variables here
-global VerifierResult result;
+global VerifierReport result;
#
# Informs that there are inequalities, but not equality being catered for.
@@ -37,7 +37,7 @@
)
and
not LiteralRestriction(
- fieldId == $r.fieldId,
+ fieldGuid matches $r.fieldGuid,
operator == Operator.NOT_EQUAL,
patternIsNot == $r.patternIsNot,
valueAsString matches $r.valueAsString
@@ -48,7 +48,7 @@
)
and
not LiteralRestriction(
- fieldId == $r.fieldId,
+ fieldGuid matches $r.fieldGuid,
operator == Operator.EQUAL,
patternIsNot == $r.patternIsNot,
valueAsString matches $r.valueAsString
@@ -63,7 +63,7 @@
)
and
not LiteralRestriction(
- fieldId == $r.fieldId,
+ fieldGuid matches $r.fieldGuid,
operator == MatchesEvaluatorsDefinition.NOT_MATCHES,
patternIsNot == $r.patternIsNot,
valueAsString matches $r.valueAsString
@@ -75,7 +75,7 @@
)
and
not LiteralRestriction(
- fieldId == $r.fieldId,
+ fieldGuid matches $r.fieldGuid,
operator == MatchesEvaluatorsDefinition.MATCHES,
patternIsNot == $r.patternIsNot,
valueAsString matches $r.valueAsString
@@ -111,11 +111,11 @@
)
and
not VariableRestriction(
- fieldId == $r.fieldId,
+ fieldGuid matches $r.fieldGuid,
operator == Operator.NOT_EQUAL,
patternIsNot == $r.patternIsNot,
- variable.objectId == $r.variable.objectId,
- variable.objectType == $r.variable.objectType
+ variable.objectTypeGuid matches $r.variable.objectTypeGuid,
+ variable.objectTypeType == $r.variable.objectTypeType
)
) or (
$r :VariableRestriction(
@@ -123,11 +123,11 @@
)
and
not VariableRestriction(
- fieldId == $r.fieldId,
+ fieldGuid matches $r.fieldGuid,
operator == Operator.EQUAL,
patternIsNot == $r.patternIsNot,
- variable.objectId == $r.variable.objectId,
- variable.objectType == $r.variable.objectType
+ variable.objectTypeGuid matches $r.variable.objectTypeGuid,
+ variable.objectTypeType == $r.variable.objectTypeType
)
#
# matches and not matches
@@ -138,11 +138,11 @@
)
and
not VariableRestriction(
- fieldId == $r.fieldId,
+ fieldGuid matches $r.fieldGuid,
operator == MatchesEvaluatorsDefinition.NOT_MATCHES,
patternIsNot == $r.patternIsNot,
- variable.objectId == $r.variable.objectId,
- variable.objectType == $r.variable.objectType
+ variable.objectTypeGuid matches $r.variable.objectTypeGuid,
+ variable.objectTypeType == $r.variable.objectTypeType
)
) or (
$r :VariableRestriction(
@@ -150,11 +150,11 @@
)
and
not VariableRestriction(
- fieldId == $r.fieldId,
+ fieldGuid matches $r.fieldGuid,
operator == MatchesEvaluatorsDefinition.MATCHES,
patternIsNot == $r.patternIsNot,
- variable.objectId == $r.variable.objectId,
- variable.objectType == $r.variable.objectType
+ variable.objectTypeGuid matches $r.variable.objectTypeGuid,
+ variable.objectTypeType == $r.variable.objectTypeType
)
#
# memberof and not memberof
@@ -165,11 +165,11 @@
)
and
not VariableRestriction(
- fieldId == $r.fieldId,
+ fieldGuid matches $r.fieldGuid,
operator == SetEvaluatorsDefinition.NOT_MEMBEROF,
patternIsNot == $r.patternIsNot,
- variable.objectId == $r.variable.objectId,
- variable.objectType == $r.variable.objectType
+ variable.objectTypeGuid matches $r.variable.objectTypeGuid,
+ variable.objectTypeType == $r.variable.objectTypeType
)
) or (
$r :VariableRestriction(
@@ -177,11 +177,11 @@
)
and
not VariableRestriction(
- fieldId == $r.fieldId,
+ fieldGuid matches $r.fieldGuid,
operator == SetEvaluatorsDefinition.MEMBEROF,
patternIsNot == $r.patternIsNot,
- variable.objectId == $r.variable.objectId,
- variable.objectType == $r.variable.objectType
+ variable.objectTypeGuid matches $r.variable.objectTypeGuid,
+ variable.objectTypeType == $r.variable.objectTypeType
)
#
# contains and not contains
@@ -192,11 +192,11 @@
)
and
not VariableRestriction(
- fieldId == $r.fieldId,
+ fieldGuid matches $r.fieldGuid,
operator == SetEvaluatorsDefinition.NOT_CONTAINS,
patternIsNot == $r.patternIsNot,
- variable.objectId == $r.variable.objectId,
- variable.objectType == $r.variable.objectType
+ variable.objectTypeGuid matches $r.variable.objectTypeGuid,
+ variable.objectTypeType == $r.variable.objectTypeType
)
) or (
$r :VariableRestriction(
@@ -204,11 +204,11 @@
)
and
not VariableRestriction(
- fieldId == $r.fieldId,
+ fieldGuid matches $r.fieldGuid,
operator == SetEvaluatorsDefinition.CONTAINS,
patternIsNot == $r.patternIsNot,
- variable.objectId == $r.variable.objectId,
- variable.objectType == $r.variable.objectType
+ variable.objectTypeGuid matches $r.variable.objectTypeGuid,
+ variable.objectTypeType == $r.variable.objectTypeType
)
)
then
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Patterns.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -3,14 +3,14 @@
#list any import classes here.
import org.drools.verifier.components.Restriction;
-import org.drools.verifier.components.PatternPossibility;
+import org.drools.verifier.components.SubPattern;
import org.drools.verifier.report.components.Opposites;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
#declare any global variables here
-global VerifierResult result;
+global VerifierReport result;
#
@@ -34,11 +34,11 @@
when
$opposites :Opposites()
- $pp1 :PatternPossibility(
+ $pp1 :SubPattern(
items contains $opposites.left
)
- $pp2 :PatternPossibility(
+ $pp2 :SubPattern(
items contains $opposites.right
)
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/opposites/Restrictions.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -14,12 +14,12 @@
import org.drools.verifier.report.components.Opposites;
import org.drools.verifier.report.components.MissingRange;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
import org.drools.base.evaluators.Operator;
#declare any global variables here
-global VerifierResult result;
+global VerifierReport result;
#
# If two LiteralRestrictions are in conflict.
@@ -36,9 +36,9 @@
)
$right :LiteralRestriction(
- fieldId == $left.fieldId,
+ fieldGuid matches $left.fieldGuid,
valueType == $left.valueType,
- id != $left.id,
+ guid not matches $left.guid,
# Operator needs to be reversed to what the other one has.
eval( operator == MissingRange.getReversedOperator( $left.getOperator() ))
)
@@ -72,10 +72,10 @@
$right :LiteralRestriction(
restrictionType == $left.restrictionType,
- fieldId == $left.fieldId,
+ fieldGuid matches $left.fieldGuid,
valueType == $left.valueType,
operator == Operator.LESS,
- id != $left.id
+ guid not matches $left.guid
)
eval( $left.compareValues( $right ) == 0 )
@@ -107,10 +107,10 @@
$right :LiteralRestriction(
restrictionType == $left.restrictionType,
- fieldId == $left.fieldId,
+ fieldGuid matches $left.fieldGuid,
valueType == $left.valueType,
operator == Operator.LESS_OR_EQUAL,
- id != $left.id
+ guid not matches $left.guid
)
eval( $left.compareValues( $right ) == 0 )
@@ -144,10 +144,10 @@
$right :LiteralRestriction(
restrictionType == $left.restrictionType,
- fieldId == $left.fieldId,
+ fieldGuid matches $left.fieldGuid,
valueType == $left.valueType,
operator == Operator.GREATER,
- id != $left.id
+ guid not matches $left.guid
)
eval( $left.compareValues( $right ) == 1 )
@@ -180,10 +180,10 @@
$right :LiteralRestriction(
restrictionType == $left.restrictionType,
- fieldId == $left.fieldId,
+ fieldGuid matches $left.fieldGuid,
valueType == $left.valueType,
operator == Operator.LESS_OR_EQUAL,
- id != $left.id
+ guid not matches $left.guid
)
eval( $left.compareValues( $right ) == 1 )
@@ -212,10 +212,10 @@
$r1 :VariableRestriction()
$r2 :VariableRestriction(
- fieldId == $r1.fieldId,
- id != $r1.id,
- variable.objectId == $r1.variable.objectId,
- variable.objectType == $r1.variable.objectType,
+ fieldGuid matches $r1.fieldGuid,
+ guid not matches $r1.guid,
+ variable.objectTypeGuid matches $r1.variable.objectTypeGuid,
+ variable.objectTypeType == $r1.variable.objectTypeType,
# Operator needs to be reverse to what the other one has.
eval( operator == MissingRange.getReversedOperator( $r1.getOperator() ))
)
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/PatternOrder.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -9,16 +9,16 @@
import org.drools.verifier.components.VerifierRule;
import org.drools.verifier.components.OperatorDescr;
import org.drools.verifier.components.VerifierEvalDescr;
-import org.drools.verifier.components.VerifierComponent;
+import org.drools.verifier.components.RuleComponent;
+import org.drools.verifier.data.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.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
-
#declare any global variables here
-global VerifierResult result;
+global VerifierReport result;
@@ -37,20 +37,22 @@
$operator :OperatorDescr()
$eval :VerifierEvalDescr(
- parent == $operator
+ parentGuid matches $operator.guid,
+ parentType == $operator.verifierComponentType
)
- # Any other VerifierComponent that is not predicate or operator
- $other :VerifierComponent(
- parent == $operator,
+ # Any other RuleComponent that is not predicate or operator
+ $other :RuleComponent(
+ parentGuid matches $operator.guid,
+ parentType == $operator.verifierComponentType,
orderNumber > $eval.orderNumber,
- ( componentType != VerifierComponentType.OPERATOR && != VerifierComponentType.EVAL )
+ ( verifierComponentType != VerifierComponentType.OPERATOR && != VerifierComponentType.EVAL )
)
$rule :VerifierRule(
- id == $eval.ruleId
+ guid matches $eval.ruleGuid
)
- then
+ then
Collection list = new ArrayList();
list.add( $eval );
list.add( $other );
@@ -64,4 +66,4 @@
"), could be before (" +
$eval + ").",
list ) );
-end
+end
\ No newline at end of file
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/optimisation/RestrictionOrder.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,20 +8,23 @@
import org.drools.base.evaluators.Operator;
import org.drools.base.evaluators.MatchesEvaluatorsDefinition;
+import org.drools.verifier.components.SubPattern;
import org.drools.verifier.components.Restriction;
+import org.drools.verifier.components.Constraint;
import org.drools.verifier.components.Pattern;
import org.drools.verifier.components.VerifierRule;
import org.drools.verifier.components.OperatorDescr;
import org.drools.verifier.components.VerifierPredicateDescr;
-import org.drools.verifier.components.VerifierComponent;
+import org.drools.verifier.data.VerifierComponent;
import org.drools.verifier.components.VerifierComponentType;
+import org.drools.verifier.components.RuleComponent;
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.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
#declare any global variables here
-global VerifierResult result;
+global VerifierReport result;
# Informs that rule would be more effective if the less expensive
@@ -33,84 +36,51 @@
#
rule "Optimise restrictions inside operator"
when
- $operator :OperatorDescr()
+ $sp : SubPattern()
+
(
$r1 :Restriction(
- parent.parent == $operator,
( operator == Operator.EQUAL || == MatchesEvaluatorsDefinition.MATCHES )
- )
+ ) from $sp.items
and
- # There is no reason to check if there is a less expensive constraint
- # if this one has a restriction that is more expensive.
- not Restriction(
- parent == $r1.parent,
- ( operator == Operator.GREATER || == Operator.LESS || == Operator.GREATER_OR_EQUAL || == Operator.LESS_OR_EQUAL || == MatchesEvaluatorsDefinition.NOT_MATCHES || == Operator.NOT_EQUAL )
- )
- and
$r2 :Restriction(
- parent.parent == $operator,
- parent.orderNumber < $r1.parent.orderNumber,
+ guid != $r1.guid,
( operator == Operator.GREATER || == Operator.LESS || == Operator.GREATER_OR_EQUAL || == Operator.LESS_OR_EQUAL || == MatchesEvaluatorsDefinition.NOT_MATCHES || == Operator.NOT_EQUAL )
- )
- and
- # The other restriction should not have any less expensive restrictions.
- not Restriction(
- parent == $r2.parent,
- ( operator == Operator.EQUAL || == MatchesEvaluatorsDefinition.MATCHES )
- )
+ ) from $sp.items
) or (
$r1 :Restriction(
- parent.parent == $operator,
( operator == Operator.GREATER || == Operator.LESS )
- )
+ ) from $sp.items
and
- # There is no reason to check if there is a less expensive constraint
- # if this one has a restriction that is more expensive.
- not Restriction(
- parent == $r1.parent,
- ( operator == Operator.GREATER_OR_EQUAL || == Operator.LESS_OR_EQUAL || == MatchesEvaluatorsDefinition.NOT_MATCHES || == Operator.NOT_EQUAL )
- )
- and
$r2 :Restriction(
- parent.parent == $operator,
- parent.orderNumber < $r1.parent.orderNumber,
+ guid != $r1.guid,
( operator == Operator.GREATER_OR_EQUAL || == Operator.LESS_OR_EQUAL || == MatchesEvaluatorsDefinition.NOT_MATCHES || == Operator.NOT_EQUAL )
- )
- and
- # The other restriction should not have any less expensive restrictions.
- not Restriction(
- parent == $r2.parent,
- ( operator == Operator.EQUAL || == MatchesEvaluatorsDefinition.MATCHES || == Operator.GREATER || == Operator.LESS )
- )
+ ) from $sp.items
) or (
$r1 :Restriction(
- parent.parent == $operator,
( operator == Operator.GREATER_OR_EQUAL || == Operator.LESS_OR_EQUAL )
- )
+ ) from $sp.items
and
- # There is no reason to check if there is a less expensive constraint
- # if this one has a restriction that is more expensive.
- not Restriction(
- parent == $r1.parent,
- ( operator == MatchesEvaluatorsDefinition.NOT_MATCHES || == Operator.NOT_EQUAL )
- )
- and
$r2 :Restriction(
- parent.parent == $operator,
- parent.orderNumber < $r1.parent.orderNumber,
+ guid != $r1.guid,
( operator == MatchesEvaluatorsDefinition.NOT_MATCHES || == Operator.NOT_EQUAL )
- )
- and
- # The other restriction should not have any less expensive restrictions.
- not Restriction(
- parent == $r2.parent,
- ( operator == Operator.EQUAL || == MatchesEvaluatorsDefinition.MATCHES || == Operator.GREATER || == Operator.LESS || == Operator.GREATER_OR_EQUAL || == Operator.LESS_OR_EQUAL )
- )
+ ) from $sp.items
)
+
+ $c :Constraint(
+ guid matches $r1.parentGuid,
+ verifierComponentType == $r1.parentType
+ )
+
+ Constraint(
+ guid matches $r2.parentGuid,
+ orderNumber < $c.orderNumber,
+ verifierComponentType == $r2.parentType
+ )
$pattern :Pattern(
- id == $r1.patternId
+ guid == $sp.patternGuid
)
then
Collection list = new ArrayList();
@@ -128,6 +98,7 @@
list ) );
end
+
# Informs that rule would be more effective if the less expensive
# component was on the left side.
#
@@ -143,7 +114,8 @@
)
and
$r2 :Restriction(
- parent == $r1.parent,
+ parentGuid == $r1.parentGuid,
+ parentType == $r1.parentType,
orderNumber < $r1.orderNumber,
( operator == Operator.GREATER ||
== Operator.LESS ||
@@ -159,7 +131,8 @@
)
and
$r2 :Restriction(
- parent == $r1.parent,
+ parentGuid == $r1.parentGuid,
+ parentType == $r1.parentType,
orderNumber < $r1.orderNumber,
( operator == Operator.GREATER_OR_EQUAL ||
== Operator.LESS_OR_EQUAL ||
@@ -173,14 +146,15 @@
)
and
$r2 :Restriction(
- parent == $r1.parent,
+ parentGuid == $r1.parentGuid,
+ parentType == $r1.parentType,
orderNumber < $r1.orderNumber,
( operator == MatchesEvaluatorsDefinition.NOT_MATCHES || == Operator.NOT_EQUAL )
)
)
$pattern :Pattern(
- id == $r1.patternId
+ guid == $r1.patternGuid
)
then
Collection list = new ArrayList();
@@ -209,18 +183,20 @@
$operator :OperatorDescr()
$predicate :VerifierPredicateDescr(
- parent == $operator
+ parentGuid matches $operator.guid,
+ parentType == $operator.verifierComponentType
)
# Any other VerifierComponent that is not predicate or operator
- $other :VerifierComponent(
- parent == $operator,
+ $other :RuleComponent(
+ parentGuid matches $operator.guid,
+ parentType == $operator.verifierComponentType,
orderNumber > $predicate.orderNumber,
- ( componentType != VerifierComponentType.OPERATOR && != VerifierComponentType.PREDICATE )
+ ( verifierComponentType != VerifierComponentType.OPERATOR && != VerifierComponentType.PREDICATE )
)
$rule :VerifierRule(
- id == $predicate.ruleId
+ guid == $predicate.ruleGuid
)
then
Collection list = new ArrayList();
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/overlaps/Restrictions.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/overlaps/Restrictions.drl 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/overlaps/Restrictions.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -5,7 +5,7 @@
import java.util.Collection;
import java.util.ArrayList;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
import org.drools.verifier.components.LiteralRestriction;
import org.drools.verifier.components.Field.FieldType;
@@ -17,7 +17,7 @@
import org.drools.verifier.report.components.MessageType;
#declare any global variables here
-global VerifierResult result;
+global VerifierReport result;
#
# Fires when two restrictions are overlapping.
@@ -36,19 +36,19 @@
# There is subsumption between two restrictions
$subsumption :Subsumption(
left.causeType == CauseType.RESTRICTION,
- $leftId :left.id,
- $rightId :right.id
+ $leftGuid :left.guid,
+ $rightGuid :right.guid
)
$left :LiteralRestriction(
- id == $leftId
+ guid matches $leftGuid
)
$right :LiteralRestriction(
- id == $rightId
+ guid matches $rightGuid
)
# There is no restriction between these two restrictions.
not $center :LiteralRestriction(
- fieldId == $left.fieldId,
+ fieldGuid matches $left.fieldGuid,
eval( $center.compareValues( $left ) == 1 ),
eval( $center.compareValues( $right ) == -1 )
)
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Clean.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,10 +7,10 @@
import org.drools.verifier.report.components.Gap;
import org.drools.verifier.report.components.MissingNumberPattern;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
#declare any global variables here
-global VerifierResult result;
+global VerifierReport result;
#
# Merges existing gaps from working memory. Cleans out the data for actual reporting.
@@ -45,7 +45,7 @@
operator == Operator.GREATER_OR_EQUAL
)
$g2 :Gap(
- id != $g1.id,
+ guid not matches $g1.guid,
field == $g1.field,
operator == Operator.LESS_OR_EQUAL,
valueAsString == $g1.valueAsString
@@ -90,7 +90,7 @@
# Covered x < 100
$higher :LiteralRestriction(
- fieldId == $lower.fieldId,
+ fieldGuid matches $lower.fieldGuid,
intValue > $lower.intValue,
patternIsNot == $lower.patternIsNot,
( operator == Operator.LESS || == Operator.LESS_OR_EQUAL)
@@ -99,7 +99,7 @@
# No "<" or "<=" restrictions between these two
not LiteralRestriction(
( operator == Operator.LESS_OR_EQUAL || == Operator.LESS ),
- fieldId == $lower.fieldId,
+ fieldGuid matches $lower.fieldGuid,
patternIsNot == $lower.patternIsNot,
intValue > $lower.intValue,
intValue < $higher.intValue
@@ -107,7 +107,7 @@
# gap ( x < 50 ) or ( x > 50 ) or ( x <= 70 )
$gap :Gap(
- restriction.fieldId == $lower.fieldId,
+ restriction.fieldGuid matches $lower.fieldGuid,
restriction.patternIsNot == $lower.patternIsNot,
restriction.intValue > $lower.intValue,
restriction.intValue < $higher.intValue
@@ -142,7 +142,7 @@
# Covered x < 100
$higher :LiteralRestriction(
- fieldId == $lower.fieldId,
+ fieldGuid matches $lower.fieldGuid,
intValue > $lower.intValue,
patternIsNot == $lower.patternIsNot,
( operator == Operator.LESS || == Operator.LESS_OR_EQUAL)
@@ -151,7 +151,7 @@
# No "<" or "<=" restrictions between these two
not LiteralRestriction(
( operator == Operator.GREATER_OR_EQUAL || == Operator.GREATER ),
- fieldId == $lower.fieldId,
+ fieldGuid matches $lower.fieldGuid,
patternIsNot == $lower.patternIsNot,
intValue > $lower.intValue,
intValue < $higher.intValue
@@ -159,7 +159,7 @@
# gap ( x < 50 ) or ( x > 50 ) or ( x >= 70 )
$gap :Gap(
- restriction.fieldId == $lower.fieldId,
+ restriction.fieldGuid matches $lower.fieldGuid,
restriction.patternIsNot == $lower.patternIsNot,
restriction.intValue > $lower.intValue,
restriction.intValue < $higher.intValue
@@ -194,7 +194,7 @@
# Covered x < 100.0
$higher :LiteralRestriction(
- fieldId == $lower.fieldId,
+ fieldGuid matches $lower.fieldGuid,
doubleValue > $lower.doubleValue,
patternIsNot == $lower.patternIsNot,
( operator == Operator.LESS || == Operator.LESS_OR_EQUAL)
@@ -203,7 +203,7 @@
# No "<" or "<=" restrictions between these two
not LiteralRestriction(
( operator == Operator.LESS_OR_EQUAL || == Operator.LESS ),
- fieldId == $lower.fieldId,
+ fieldGuid matches $lower.fieldGuid,
patternIsNot == $lower.patternIsNot,
doubleValue > $lower.doubleValue,
doubleValue < $higher.doubleValue
@@ -211,7 +211,7 @@
# gap ( x < 50.0 ) or ( x > 50.0 ) or ( x <= 70.0 )
$gap :Gap(
- restriction.fieldId == $lower.fieldId,
+ restriction.fieldGuid matches $lower.fieldGuid,
restriction.patternIsNot == $lower.patternIsNot,
restriction.doubleValue > $lower.doubleValue,
restriction.doubleValue < $higher.doubleValue
@@ -246,7 +246,7 @@
# Covered x < 100.0
$higher :LiteralRestriction(
- fieldId == $lower.fieldId,
+ fieldGuid matches $lower.fieldGuid,
doubleValue > $lower.doubleValue,
patternIsNot == $lower.patternIsNot,
( operator == Operator.LESS || == Operator.LESS_OR_EQUAL)
@@ -255,7 +255,7 @@
# No "<" or "<=" restrictions between these two
not LiteralRestriction(
( operator == Operator.GREATER_OR_EQUAL || == Operator.GREATER ),
- fieldId == $lower.fieldId,
+ fieldGuid matches $lower.fieldGuid,
patternIsNot == $lower.patternIsNot,
doubleValue > $lower.doubleValue,
doubleValue < $higher.doubleValue
@@ -263,7 +263,7 @@
# gap ( x < 50.0 ) or ( x > 50.0 ) or ( x >= 70.0 )
$gap :Gap(
- restriction.fieldId == $lower.fieldId,
+ restriction.fieldGuid matches $lower.fieldGuid,
restriction.patternIsNot == $lower.patternIsNot,
restriction.doubleValue > $lower.doubleValue,
restriction.doubleValue < $higher.doubleValue
@@ -298,7 +298,7 @@
# Covered x < "20-Oct-2007"
$higher :LiteralRestriction(
- fieldId == $lower.fieldId,
+ fieldGuid matches $lower.fieldGuid,
patternIsNot == $lower.patternIsNot,
( operator == Operator.LESS || == Operator.LESS_OR_EQUAL),
eval( dateValue.after( $lower.getDateValue() ) )
@@ -307,7 +307,7 @@
# No "<" or "<=" restrictions between these two
not LiteralRestriction(
( operator == Operator.LESS_OR_EQUAL || == Operator.LESS ),
- fieldId == $lower.fieldId,
+ fieldGuid matches $lower.fieldGuid,
patternIsNot == $lower.patternIsNot,
eval( dateValue.after( $lower.getDateValue() ) ),
eval( dateValue.before( $higher.getDateValue() ) )
@@ -315,7 +315,7 @@
# gap ( x < "10-Oct-2007" ) or ( x > "10-Oct-2007" ) or ( x <= "15-Oct-2007" )
$gap :Gap(
- restriction.fieldId == $lower.fieldId,
+ restriction.fieldGuid matches $lower.fieldGuid,
restriction.patternIsNot == $lower.patternIsNot,
eval( restriction.getDateValue().after( $lower.getDateValue() ) ),
eval( restriction.getDateValue().before( $higher.getDateValue() ) )
@@ -350,7 +350,7 @@
# Covered x < "20-Oct-2007"
$higher :LiteralRestriction(
- fieldId == $lower.fieldId,
+ fieldGuid matches $lower.fieldGuid,
patternIsNot == $lower.patternIsNot,
( operator == Operator.LESS || == Operator.LESS_OR_EQUAL),
eval( dateValue.after( $lower.getDateValue() ) )
@@ -359,7 +359,7 @@
# No ">" or ">=" restrictions between these two
not LiteralRestriction(
( operator == Operator.GREATER_OR_EQUAL || == Operator.GREATER ),
- fieldId == $lower.fieldId,
+ fieldGuid matches $lower.fieldGuid,
patternIsNot == $lower.patternIsNot,
eval( dateValue.after( $lower.getDateValue() ) ),
eval( dateValue.before( $higher.getDateValue() ) )
@@ -367,7 +367,7 @@
# gap ( x < "10-Oct-2007" ) or ( x > "10-Oct-2007" ) or ( x >= "15-Oct-2007" )
$gap :Gap(
- restriction.fieldId == $lower.fieldId,
+ restriction.fieldGuid matches $lower.fieldGuid,
restriction.patternIsNot == $lower.patternIsNot,
eval( restriction.getDateValue().after( $lower.getDateValue() ) ),
eval( restriction.getDateValue().before( $higher.getDateValue() ) )
@@ -375,4 +375,4 @@
then
retract( $gap );
result.remove( $gap );
-end
+end
\ No newline at end of file
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Dates.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -5,17 +5,16 @@
import org.drools.base.evaluators.Operator;
import org.drools.verifier.components.*;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
import org.drools.verifier.report.components.Gap;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
-import org.drools.verifier.dao.VerifierResult;
#declare any global variables here
-global VerifierResult result;
+global VerifierReport result;
function boolean checkDates(Date d1, Date d2, boolean up) {
Calendar c1 = new GregorianCalendar();
@@ -41,13 +40,13 @@
# Foo( bar > "27-Oct-2007" )
$r :LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
operator == Operator.GREATER
)
# Check if Foo( bar == "27-Oct-2007" || <= "27-Oct-2007" ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.LESS_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
eval( dateValue.equals($r.getDateValue()) )
@@ -72,13 +71,13 @@
# Foo( bar > "27-Oct-2007" )
$r :LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
operator == Operator.LESS
)
# Check if Foo( bar == "27-Oct-2007" || <= "27-Oct-2007" ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.GREATER_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
eval( dateValue.equals($r.getDateValue()) )
@@ -104,13 +103,13 @@
# Foo( bar == "27-Oct-2007" )
$r :LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.LESS_OR_EQUAL )
)
# Check if Foo( bar > "27-Oct-2007" || >= "27-Oct-2007" ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.GREATER || == Operator.GREATER_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
eval( dateValue.equals($r.getDateValue()) )
@@ -118,7 +117,7 @@
# Check if Foo( bar == "28-Oct-2007" || >= "28-Oct-2007" ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.GREATER_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
eval( checkDates( dateValue, $r.getDateValue(), true ) )
@@ -144,13 +143,13 @@
# Foo( bar == "27-Oct-2007" )
$r :LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.GREATER_OR_EQUAL )
)
# Check if Foo( bar < "27-Oct-2007" || <= "27-Oct-2007" ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.LESS || == Operator.LESS_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
eval( dateValue.equals($r.getDateValue()) )
@@ -158,7 +157,7 @@
# Check if Foo( bar == "26-Oct-2007" || <= "26-Oct-2007" ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.LESS_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
eval( checkDates( dateValue, $r.getDateValue(), false ) )
@@ -168,4 +167,4 @@
result.add( gap );
insert( gap );
-end
+end
\ No newline at end of file
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Doubles.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,10 +7,10 @@
import org.drools.verifier.components.*;
import org.drools.verifier.report.components.Gap;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
#declare any global variables here
-global VerifierResult result;
+global VerifierReport result;
# If all ranges are not checked for a field.
@@ -26,13 +26,13 @@
# Foo( bar > 42 )
$r :LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
operator == Operator.GREATER
)
# Check if Foo( bar == 42 || <= 42 ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.LESS_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
doubleValue == $r.doubleValue
@@ -57,13 +57,13 @@
# Foo( bar > 42 )
$r :LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
operator == Operator.LESS
)
# Check if Foo( bar == 42 || <= 42 ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.GREATER_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
doubleValue == $r.doubleValue
@@ -89,13 +89,13 @@
# Foo( bar == 42 )
$r :LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.LESS_OR_EQUAL )
)
# Check if Foo( bar > 42 || >= 42 ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.GREATER || == Operator.GREATER_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
doubleValue == $r.doubleValue
@@ -121,13 +121,13 @@
# Foo( bar == 42 )
$r :LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.GREATER_OR_EQUAL )
)
# Check if Foo( bar < 42 || <= 42 ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.LESS || == Operator.LESS_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
doubleValue == $r.doubleValue
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Integers.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,9 +7,9 @@
import org.drools.verifier.components.*;
import org.drools.verifier.report.components.Gap;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
-global VerifierResult result;
+global VerifierReport result;
# If all ranges are not checked for a field.
#
@@ -24,13 +24,13 @@
# Foo( bar > 42 )
$r :LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
operator == Operator.GREATER
)
# Check if Foo( bar == 42 || <= 42 ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.LESS_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
intValue == $r.intValue
@@ -55,13 +55,13 @@
# Foo( bar > 42 )
$r :LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
operator == Operator.LESS
)
# Check if Foo( bar == 42 || <= 42 ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.GREATER_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
intValue == $r.intValue
@@ -87,13 +87,13 @@
# Foo( bar == 42 )
$r :LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.LESS_OR_EQUAL )
)
# Check if Foo( bar > 42 || >= 42 ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.GREATER || == Operator.GREATER_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
intValue == $r.intValue
@@ -101,7 +101,7 @@
# Check if Foo( bar == 43 || >= 43 ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.GREATER_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
eval( intValue == $r.getIntValue() + 1 )
@@ -127,13 +127,13 @@
# Foo( bar == 42 )
$r :LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.GREATER_OR_EQUAL )
)
# Check if Foo( bar < 42 || <= 42 ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.LESS || == Operator.LESS_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
intValue == $r.intValue
@@ -141,7 +141,7 @@
# Check if Foo( bar == 41 || <= 41 ) is missing.
not LiteralRestriction(
- fieldId == $f.id,
+ fieldGuid matches $f.guid,
( operator == Operator.EQUAL || == Operator.LESS_OR_EQUAL ),
patternIsNot == $r.patternIsNot,
eval( intValue == $r.getIntValue() - 1 )
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/NumberPatterns.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -9,13 +9,13 @@
import org.drools.verifier.report.components.Cause;
import org.drools.verifier.FindMissingNumber;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
import java.util.ArrayList;
import java.util.List;
#declare any global variables here
-global VerifierResult result;
+global VerifierReport result;
#
# If all pattern ranges are not checked for a field.
@@ -44,7 +44,7 @@
$list :ArrayList( size > FindMissingNumber.MIN_NUMBER_OF_RESTRICTIONS )
from collect(
LiteralRestriction(
- fieldId == $f.id,
+ fieldId == $f.guid,
patternIsNot == true,
operator == Operator.EQUAL
)
@@ -75,7 +75,7 @@
$list :ArrayList( size > FindMissingNumber.MIN_NUMBER_OF_RESTRICTIONS )
from collect(
LiteralRestriction(
- fieldId == $f.id,
+ fieldId == $f.guid,
patternIsNot == false,
operator == Operator.NOT_EQUAL
)
@@ -85,7 +85,7 @@
$list :ArrayList( size > FindMissingNumber.MIN_NUMBER_OF_RESTRICTIONS )
from collect(
LiteralRestriction(
- fieldId == $f.id,
+ fieldId == $f.guid,
patternIsNot == true,
operator == Operator.NOT_EQUAL
)
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/rangeChecks/Variables.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -2,7 +2,7 @@
#list any import classes here.
import org.drools.verifier.components.*;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
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 VerifierResult result
+#global VerifierReport result;
/*
# If all ranges are not checked for a field.
@@ -29,44 +29,44 @@
# Find another variable that points to the same field.
# Find another constraint and check if it continues to check the range for this field.
(
- $r :VariableRestriction( fieldId == $f.id, evaluator == ">" )
+ $r :VariableRestriction( fieldId == $f.guid, evaluator == ">" )
and
$v1 :Variable( id == $r.variableId )
and
- $v2 :Variable( objectId == $v1.objectId, objectType == $v1.objectType, id != $v1.id)
+ $v2 :Variable( objectId == $v1.objectId, objectType == $v1.objectType, id != $v1.guid)
and
- not VariableRestriction( fieldId == $f.id, ( evaluator == "==" || == "<=" ),
- variableId == $v2.id,
+ not VariableRestriction( fieldId == $f.guid, ( evaluator == "==" || == "<=" ),
+ variableId == $v2.guid,
patternIsNot == $r.patternIsNot )
) or (
- $r :VariableRestriction( fieldId == $f.id, evaluator == "<" )
+ $r :VariableRestriction( fieldId == $f.guid, evaluator == "<" )
and
$v1 :Variable( id == $r.variableId )
and
- $v2 :Variable( objectId == $v1.objectId, objectType == $v1.objectType, id != $v1.id)
+ $v2 :Variable( objectId == $v1.objectId, objectType == $v1.objectType, id != $v1.guid)
and
- not VariableRestriction( fieldId == $f.id, ( evaluator == "==" || == ">=" ),
- variableId == $v2.id,
+ not VariableRestriction( fieldId == $f.guid, ( evaluator == "==" || == ">=" ),
+ variableId == $v2.guid,
patternIsNot == $r.patternIsNot )
) or (
- $r :VariableRestriction( fieldId == $f.id, evaluator == "<=" )
+ $r :VariableRestriction( fieldId == $f.guid, evaluator == "<=" )
and
$v1 :Variable( id == $r.variableId )
and
- $v2 :Variable( objectId == $v1.objectId, objectType == $v1.objectType, id != $v1.id)
+ $v2 :Variable( objectId == $v1.objectId, objectType == $v1.objectType, id != $v1.guid)
and
- not VariableRestriction( fieldId == $f.id, evaluator == ">",
- variableId == $v2.id,
+ not VariableRestriction( fieldId == $f.guid, evaluator == ">",
+ variableId == $v2.guid,
patternIsNot == $r.patternIsNot )
) or (
- $r :VariableRestriction( fieldId == $f.id, evaluator == ">=" )
+ $r :VariableRestriction( fieldId == $f.guid, evaluator == ">=" )
and
$v1 :Variable( id == $r.variableId )
and
- $v2 :Variable( objectId == $v1.objectId, objectType == $v1.objectType, id != $v1.id)
+ $v2 :Variable( objectId == $v1.objectId, objectType == $v1.objectType, id != $v1.guid)
and
- not VariableRestriction( fieldId == $f.id, evaluator == "<",
- variableId == $v2.id,
+ not VariableRestriction( fieldId == $f.guid, evaluator == "<",
+ variableId == $v2.guid,
patternIsNot == $r.patternIsNot )
)
$rule :VerifierRule( id == $r.ruleId )
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Consequence.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -18,7 +18,7 @@
# Check that VerifierRule $left and $right have redundant fields.
$left :TextConsequence()
$right :TextConsequence(
- id != $left.id,
+ guid not matches $left.guid,
text == $left.text
)
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Notes.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -2,7 +2,7 @@
package org.drools.verifier.redundancy
#list any import classes here.
-global VerifierResult result;
+global VerifierReport result;
@@ -10,9 +10,9 @@
import java.util.Collection;
import java.util.ArrayList;
-import org.drools.verifier.components.PatternPossibility;
-import org.drools.verifier.components.RulePossibility;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.components.SubPattern;
+import org.drools.verifier.components.SubRule;
+import org.drools.verifier.data.VerifierReport;
import org.drools.verifier.report.components.Redundancy;
import org.drools.verifier.report.components.VerifierMessage;
import org.drools.verifier.report.components.Cause;
@@ -36,7 +36,7 @@
left.causeType == CauseType.RESTRICTION
)
- $pp :PatternPossibility(
+ $pp :SubPattern(
items contains $r.left,
items contains $r.right
)
@@ -63,7 +63,7 @@
left.causeType == CauseType.PATTERN_POSSIBILITY
)
- RulePossibility(
+ SubRule(
items contains $r.left,
items contains $r.right
)
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Patterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Patterns.drl 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Patterns.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -16,11 +16,11 @@
# Check that Patterns $left and $right have redundant fields.
$left :Pattern()
$right :Pattern(
- id != $left.id,
- objectTypeId == $left.objectTypeId,
+ guid not matches $left.guid,
+ objectTypeGuid matches $left.objectTypeGuid,
# TODO: In some cases the source might be redundant with different sources.
sourceType == $left.sourceType,
- sourceId == $left.sourceId,
+ sourceGuid == $left.sourceGuid,
patternNot == $left.patternNot,
patternExists == $left.patternExists,
patternForall == $left.patternForall
@@ -29,8 +29,8 @@
# Has possibilities, if the there is no possibilities,
# then the Redundancy type is STRONG.
# Because these patterns have no restrictions.
- exists PatternPossibility( patternId == $left.id )
- exists PatternPossibility( patternId == $right.id )
+ exists SubPattern( patternGuid matches $left.guid )
+ exists SubPattern( patternGuid matches $right.guid )
# Check that there is not already a pair with these values.
not Redundancy(
@@ -55,19 +55,19 @@
# Check that Patterns $left and $right have redundant fields.
$left :Pattern()
$right :Pattern(
- id != $left.id,
- objectTypeId == $left.objectTypeId,
+ guid not matches $left.guid,
+ objectTypeGuid == $left.objectTypeGuid,
# TODO: In some cases the source might be redundant with different sources.
sourceType == $left.sourceType,
- sourceId == $left.sourceId,
+ sourceGuid == $left.sourceGuid,
patternNot == $left.patternNot,
patternExists == $left.patternExists,
patternForall == $left.patternForall
)
# Not possibilities
- not PatternPossibility( patternId == $left.id )
- not PatternPossibility( patternId == $right.id )
+ not SubPattern( patternGuid matches $left.guid )
+ not SubPattern( patternGuid matches $right.guid )
# Check that there is not already a pair with these values.
not Redundancy(
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Possibilities.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Possibilities.drl 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Possibilities.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -35,27 +35,27 @@
# Find two PatternPossibilities.
(
- $pp1 :PatternPossibility(
- eval( patternId == $redundancy.getLeft().getId() )
+ $pp1 :SubPattern(
+ eval( patternGuid.equals( $redundancy.getLeft().getGuid() ) )
)
and
- $pp2 :PatternPossibility(
- eval( patternId == $redundancy.getRight().getId() )
+ $pp2 :SubPattern(
+ eval( patternGuid.equals( $redundancy.getRight().getGuid() ) )
)
) or (
- $pp1 :PatternPossibility(
- eval( patternId == $redundancy.getRight().getId() )
+ $pp1 :SubPattern(
+ eval( patternGuid.equals( $redundancy.getRight().getGuid() ) )
)
and
- $pp2 :PatternPossibility(
- eval( patternId == $redundancy.getLeft().getId() )
+ $pp2 :SubPattern(
+ eval( patternGuid.equals( $redundancy.getLeft().getGuid() ) )
)
)
# For every restriction in $pp1 there is a redundancy to $pp2.
forall(
$r :Restriction(
- patternId == $pp1.patternId,
+ patternGuid matches $pp1.patternGuid,
this memberOf $pp1.items
)
@@ -75,7 +75,7 @@
# For every restriction in $pp2 there is a redundancy to $pp1.
forall(
$r :Restriction(
- patternId == $pp2.patternId,
+ patternGuid matches $pp2.patternGuid,
this memberOf $pp2.items
)
@@ -121,17 +121,17 @@
)
# Find two RulePossibilities.
- $rp1 :RulePossibility(
- eval( ruleId == $redundancy.getLeft().getId() )
+ $rp1 :SubRule(
+ eval( ruleGuid.equals( $redundancy.getLeft().getGuid() ) )
)
- $rp2 :RulePossibility(
- eval( ruleId == $redundancy.getRight().getId() )
+ $rp2 :SubRule(
+ eval( ruleGuid.equals( $redundancy.getRight().getGuid() ) )
)
# For every pattern possibility in $rp1 there is a redundant pattern possibility in $rp2.
forall(
- $pp :PatternPossibility(
- ruleId == $rp1.ruleId,
+ $pp :SubPattern(
+ ruleGuid matches $rp1.ruleGuid,
this memberOf $rp1.items
)
@@ -145,8 +145,8 @@
# For every pattern possibility in $rp2 there is a redundant pattern possibility in $rp1.
forall(
- $pp :PatternPossibility(
- ruleId == $rp2.ruleId,
+ $pp :SubPattern(
+ ruleGuid matches $rp2.ruleGuid,
this memberOf $rp2.items
)
@@ -158,4 +158,4 @@
)
then
insert( new Redundancy( RedundancyType.STRONG, $rp1, $rp2 ) );
-end
+end
\ No newline at end of file
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Restrictions.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -13,10 +13,10 @@
# Check that Restrictions $left and $right have redundant fields.
$left :VariableRestriction()
$right :VariableRestriction(
- id != $left.id,
+ guid not matches $left.guid,
operator == $left.operator,
- variable.objectType == $left.variable.objectType,
- variable.objectId == $left.variable.objectId
+ variable.objectTypeType == $left.variable.objectTypeType,
+ variable.objectTypeGuid matches $left.variable.objectTypeGuid
)
# Check that there is not already a pair with these values.
not Redundancy(
@@ -41,7 +41,7 @@
and
(
$right :LiteralRestriction(
- id != $left.id,
+ guid not matches $left.guid,
operator == $left.operator,
valueType == $left.valueType,
valueType == Field.FieldType.BOOLEAN,
@@ -49,7 +49,7 @@
)
or
$right :LiteralRestriction(
- id != $left.id,
+ guid not matches $left.guid,
operator == $left.operator,
valueType == $left.valueType,
valueType == Field.FieldType.STRING,
@@ -57,7 +57,7 @@
)
or
$right :LiteralRestriction(
- id != $left.id,
+ guid not matches $left.guid,
operator == $left.operator,
valueType == $left.valueType,
valueType == Field.FieldType.INT,
@@ -65,7 +65,7 @@
)
or
$right :LiteralRestriction(
- id != $left.id,
+ guid not matches $left.guid,
operator == $left.operator,
valueType == $left.valueType,
valueType == Field.FieldType.DOUBLE,
@@ -73,7 +73,7 @@
)
or
$right :LiteralRestriction(
- id != $left.id,
+ guid not matches $left.guid,
operator == $left.operator,
valueType == $left.valueType,
valueType == Field.FieldType.DATE,
@@ -82,22 +82,22 @@
or
(
$right :LiteralRestriction(
- id != $left.id,
+ guid not matches $left.guid,
operator == $left.operator,
valueType == $left.valueType,
valueType == Field.FieldType.VARIABLE
)
and
$v :Variable(
- objectType == VerifierComponentType.FIELD,
- objectId == $left.id
+ objectTypeType == VerifierComponentType.FIELD,
+ objectTypeGuid matches $left.guid
)
and
Variable(
- objectType == VerifierComponentType.FIELD,
- objectId == $right.id,
- objectName == $v.objectName,
- name == $v.name
+ objectTypeType == VerifierComponentType.FIELD,
+ objectTypeGuid matches $right.guid,
+ objectTypeName == $v.objectTypeName,
+ name matches $v.name
)
)
)
@@ -112,4 +112,4 @@
)
then
insert( new Redundancy( RedundancyType.STRONG, $left, $right ) );
-end
+end
\ No newline at end of file
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Rules.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -19,7 +19,7 @@
# Check that VerifierRule $left and $right have redundant fields.
$left :VerifierRule()
$right :VerifierRule(
- id != $left.id,
+ guid not matches $left.guid,
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/redundancy/Warnings.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -2,7 +2,7 @@
package org.drools.verifier.redundancy
#list any import classes here.
-global VerifierResult result;
+global VerifierReport result;
@@ -10,8 +10,8 @@
import java.util.Collection;
import java.util.ArrayList;
-import org.drools.verifier.components.RulePossibility;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.components.SubRule;
+import org.drools.verifier.data.VerifierReport;
import org.drools.verifier.report.components.Redundancy;
import org.drools.verifier.report.components.RedundancyType;
import org.drools.verifier.report.components.VerifierMessage;
@@ -45,14 +45,14 @@
)
# Check that redundant possibilities are from redundant rules
- exists RulePossibility(
+ exists SubRule(
this == $rulePossibilityRedundancy.left,
- eval( ruleId == $ruleRedundancy.getLeft().getId() )
+ eval( ruleGuid.equals( $ruleRedundancy.getLeft().getGuid() ) )
)
- exists RulePossibility(
+ exists SubRule(
this == $rulePossibilityRedundancy.right,
- eval( ruleId == $ruleRedundancy.getRight().getId() )
+ eval( ruleGuid.equals( $ruleRedundancy.getRight().getGuid() ) )
)
# Check that the possibilties are redundant to each other.
@@ -104,17 +104,17 @@
)
# Check that redundant possibilities are from redundant rules
- exists RulePossibility(
+ exists SubRule(
this == $rulePossibilityRedundancy.left,
- eval( ruleId == $ruleRedundancy.getLeft().getId() )
+ eval( ruleGuid.equals( $ruleRedundancy.getLeft().getGuid() ) )
)
- exists RulePossibility(
+ exists SubRule(
this == $rulePossibilityRedundancy.right,
- eval( ruleId == $ruleRedundancy.getRight().getId() )
+ eval( ruleGuid.equals( $ruleRedundancy.getRight().getGuid() ) )
)
- # Check that the left side is redundant to right, but the right side is not redudant to left.
+ # Check that the left side is redundant to right, but the right side is not redundant to left.
not Redundancy(
left.causeType == CauseType.RULE_POSSIBILITY,
left == $rulePossibilityRedundancy.right,
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/field.htm
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/field.htm 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/field.htm 2009-10-24 18:25:51 UTC (rev 29799)
@@ -4,13 +4,13 @@
<div>
Name: @{field.name}<br/>
Type: @{field.fieldType}<br/>
- Belongs to class: <a href="@{sourceFolder}/@{objectTypeFolder}/@{objectType.id}.htm">@{objectType.name}</a>
+ Belongs to class: <a href="@{sourceFolder}/@{objectTypeFolder}/@{objectType.guid}.htm">@{objectType.name}</a>
</div>
<div>
Rules that use this component:
<ul>
@foreach{rule:rules}
- <li><a href="@{sourceFolder}/@{ruleFolder}/@{rule.id}.htm">@{rule.ruleName}</a></li>
+ <li><a href="@{sourceFolder}/@{ruleFolder}/@{rule.guid}.htm">@{rule.ruleName}</a></li>
@end{}
</ul>
</div>
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/missingRange.htm
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/missingRange.htm 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/missingRange.htm 2009-10-24 18:25:51 UTC (rev 29799)
@@ -2,9 +2,9 @@
<table>
<tr>
<th><a href=
- "@{sourceFolder}/@{objectTypeFolder}/@{objectType.id}.htm">
+ "@{sourceFolder}/@{objectTypeFolder}/@{objectType.guid}.htm">
@{objectType.name}</a>.<a href=
- "@{sourceFolder}/@{fieldFolder}/@{field.id}.htm">@{field.name}</a></th>
+ "@{sourceFolder}/@{fieldFolder}/@{field.guid}.htm">@{field.name}</a></th>
</tr>
<tr>
<td >
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/objectType.htm
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/objectType.htm 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/objectType.htm 2009-10-24 18:25:51 UTC (rev 29799)
@@ -9,7 +9,7 @@
@if{objectType.fields != null && !objectType.fields.empty}
<ul>
@foreach{field:objectType.fields}
- <li>@{field.fieldType} <a href="@{sourceFolder}/@{fieldFolder}/@{field.id}.htm">@{field.name}</a></li>
+ <li>@{field.fieldType} <a href="@{sourceFolder}/@{fieldFolder}/@{field.guid}.htm">@{field.name}</a></li>
@end{}
</ul>
@else{}
@@ -22,7 +22,7 @@
Rules that use this component:
<ul>
@foreach{rule:rules}
- <li><a href="@{sourceFolder}/@{ruleFolder}/@{rule.id}.htm">@{rule.ruleName}</a></li>
+ <li><a href="@{sourceFolder}/@{ruleFolder}/@{rule.guid}.htm">@{rule.ruleName}</a></li>
@end{}
</ul>
</div>
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/objectTypes.htm
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/objectTypes.htm 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/objectTypes.htm 2009-10-24 18:25:51 UTC (rev 29799)
@@ -9,10 +9,10 @@
</tr>
@foreach{objectType:objectTypes}
<tr class="row@{objectType.offset}">
- <td><a href="@{sourceFolder}/@{objectTypeFolder}/@{objectType.id}.htm">@{objectType.name}</a></td>
+ <td><a href="@{sourceFolder}/@{objectTypeFolder}/@{objectType.guid}.htm">@{objectType.name}</a></td>
<td>
@foreach{field:objectType.fields}
- @{field.fieldType} <a href="@{sourceFolder}/@{fieldFolder}/@{field.id}.htm">@{field.name}</a>@end{","}
+ @{field.fieldType} <a href="@{sourceFolder}/@{fieldFolder}/@{field.guid}.htm">@{field.name}</a>@end{","}
</td>
</tr>
@end{}
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/packages.htm
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/packages.htm 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/packages.htm 2009-10-24 18:25:51 UTC (rev 29799)
@@ -10,7 +10,7 @@
<td>
<ul>
@foreach{rule:rulePackage.rules}
- <li class="row@{rulePackage.offset}" ><a href="@{sourceFolder}/@{ruleFolder}/@{rule.id}.htm">@{rule.ruleName}</a></li>@end{}
+ <li class="row@{rulePackage.offset}" ><a href="@{sourceFolder}/@{ruleFolder}/@{rule.guid}.htm">@{rule.ruleName}</a></li>@end{}
</ul>
</td>
</tr>
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/rule.htm
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/rule.htm 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/report/html/rule.htm 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,7 +8,7 @@
Patterns:
<ul>
@foreach{objectType:objectTypes}
- <li><a href="@{sourceFolder}/@{objectTypeFolder}/@{objectType.id}.htm">@{objectType.name}</a></li>
+ <li><a href="@{sourceFolder}/@{objectTypeFolder}/@{objectType.guid}.htm">@{objectType.name}</a></li>
@end{}
</ul>
</div>
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/reports/RangeCheckReports.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -4,7 +4,7 @@
#list any import classes here.
import org.drools.verifier.components.Field;
import org.drools.verifier.report.components.VerifierRangeCheckMessage;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
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 VerifierResult result
+global VerifierReport result
#
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Possibilities.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Possibilities.drl 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Possibilities.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -3,8 +3,8 @@
import org.drools.verifier.components.Restriction;
import org.drools.verifier.components.Pattern;
-import org.drools.verifier.components.PatternPossibility;
-import org.drools.verifier.components.RulePossibility;
+import org.drools.verifier.components.SubPattern;
+import org.drools.verifier.components.SubRule;
import org.drools.verifier.report.components.Redundancy;
import org.drools.verifier.report.components.Subsumption;
import org.drools.verifier.report.components.CauseType;
@@ -33,11 +33,11 @@
)
# Find two PatternPossibilities.
- $pp1 :PatternPossibility(
- eval( patternId == $redundancy.getLeft().getId() )
+ $pp1 :SubPattern(
+ eval( patternGuid.equals( $redundancy.getLeft().getGuid() ) )
)
- $pp2 :PatternPossibility(
- eval( patternId == $redundancy.getRight().getId() )
+ $pp2 :SubPattern(
+ eval( patternGuid.equals( $redundancy.getRight().getGuid() ) )
)
# For every restriction in $pp1 there is a redundancy to restriction in $pp2.
@@ -100,16 +100,16 @@
)
# Find two RulePossibilities.
- $rp1 :RulePossibility(
- eval( ruleId == $redundancy.getLeft().getId() )
+ $rp1 :SubRule(
+ eval( ruleGuid.equals( $redundancy.getLeft().getGuid() ) )
)
- $rp2 :RulePossibility(
- eval( ruleId == $redundancy.getRight().getId() )
+ $rp2 :SubRule(
+ eval( ruleGuid.equals( $redundancy.getRight().getGuid() ) )
)
- # For every PatternPossibility in $rp1 there is a redundancy to PatternPossibility in $rp2.
+ # For every SubPattern in $rp1 there is a redundancy to SubPattern in $rp2.
forall(
- $pp :PatternPossibility(
+ $pp :SubPattern(
this memberOf $rp1.items
)
@@ -119,14 +119,14 @@
)
)
- # There is no PatternPossibility on $rp2 that has no redundancy in $rp1
- # and has a lower order number than an existing PatternPossibility from $rp2 to $rp1.
+ # There is no SubPattern on $rp2 that has no redundancy in $rp1
+ # and has a lower order number than an existing SubPattern from $rp2 to $rp1.
not(
- $pp1 :PatternPossibility(
+ $pp1 :SubPattern(
this memberOf $rp2.items
)
and
- $pp2 :PatternPossibility(
+ $pp2 :SubPattern(
this memberOf $rp2.items,
orderNumber > $pp1.orderNumber
)
Modified: labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Restrictions.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Restrictions.drl 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/main/resources/org/drools/verifier/subsumption/Restrictions.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -27,7 +27,7 @@
# Covered x > 100
$higher :LiteralRestriction(
- fieldId == $lower.fieldId,
+ fieldGuid matches $lower.fieldGuid,
( operator == Operator.GREATER || == Operator.GREATER_OR_EQUAL || == Operator.EQUAL)
)
@@ -54,7 +54,7 @@
# Covered x < 100
$lower :LiteralRestriction(
- fieldId == $higher.fieldId,
+ fieldGuid matches $higher.fieldGuid,
( operator == Operator.LESS || == Operator.LESS_OR_EQUAL || == Operator.EQUAL)
)
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/ConsequenceTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -9,8 +9,8 @@
import org.drools.StatelessSession;
import org.drools.base.RuleNameMatchesAgendaFilter;
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.VerifierMessage;
import org.drools.verifier.report.components.VerifierMessageBase;
@@ -30,7 +30,7 @@
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "No action - possibly commented out" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "ConsequenceTest.drl" ),
result.getVerifierData() );
Deleted: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/FindMissingNumberTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/FindMissingNumberTest.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/FindMissingNumberTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,129 +0,0 @@
-package org.drools.verifier;
-
-import java.math.BigDecimal;
-
-import junit.framework.TestCase;
-
-public class FindMissingNumberTest extends TestCase {
-
- public void testfindSumPattern() {
- // Sum +2 missing number 4
- assertTrue(FindMissingNumber.findSumPattern(
- new BigDecimal[] { BigDecimal.valueOf(2),
- BigDecimal.valueOf(6), BigDecimal.valueOf(8),
- BigDecimal.valueOf(10) }).doubleValue() == 4);
- // +10 missing number 50
- assertTrue(FindMissingNumber.findSumPattern(
- new BigDecimal[] { BigDecimal.valueOf(10),
- BigDecimal.valueOf(20), BigDecimal.valueOf(30),
- BigDecimal.valueOf(40), BigDecimal.valueOf(60),
- BigDecimal.valueOf(70) }).doubleValue() == 50);
- // +66 missing number 308
- assertTrue(FindMissingNumber.findSumPattern(
- new BigDecimal[] { BigDecimal.valueOf(110),
- BigDecimal.valueOf(176), BigDecimal.valueOf(242),
- BigDecimal.valueOf(374) }).doubleValue() == 308);
-
- // Deduction -2 missing number 8
- assertTrue(FindMissingNumber.findSumPattern(
- new BigDecimal[] { BigDecimal.valueOf(10),
- BigDecimal.valueOf(6), BigDecimal.valueOf(4),
- BigDecimal.valueOf(2) }).doubleValue() == 8);
- // -337 missing number -11
- assertTrue(FindMissingNumber.findSumPattern(
- new BigDecimal[] { BigDecimal.valueOf(663),
- BigDecimal.valueOf(326), BigDecimal.valueOf(-348),
- BigDecimal.valueOf(-685) }).doubleValue() == -11);
- // -31 missing number 4350
- assertTrue(FindMissingNumber.findSumPattern(
- new BigDecimal[] { BigDecimal.valueOf(4443),
- BigDecimal.valueOf(4412), BigDecimal.valueOf(4381),
- BigDecimal.valueOf(4319) }).doubleValue() == 4350);
-
- // Not valid
- // Not in pattern.
- assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
- BigDecimal.valueOf(1), BigDecimal.valueOf(2),
- BigDecimal.valueOf(4), BigDecimal.valueOf(6),
- BigDecimal.valueOf(8), BigDecimal.valueOf(11) }) == null);
- assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
- BigDecimal.valueOf(5), BigDecimal.valueOf(3),
- BigDecimal.valueOf(54353), BigDecimal.valueOf(54554),
- BigDecimal.valueOf(232), BigDecimal.valueOf(123) }) == null);
- // No missing values.
- assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
- BigDecimal.valueOf(2), BigDecimal.valueOf(4),
- BigDecimal.valueOf(6), BigDecimal.valueOf(8),
- BigDecimal.valueOf(10), BigDecimal.valueOf(12),
- BigDecimal.valueOf(14) }) == null);
- assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
- BigDecimal.valueOf(10), BigDecimal.valueOf(20),
- BigDecimal.valueOf(30), BigDecimal.valueOf(40),
- BigDecimal.valueOf(50), BigDecimal.valueOf(60) }) == null);
- assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
- BigDecimal.valueOf(-15), BigDecimal.valueOf(-10),
- BigDecimal.valueOf(-5), BigDecimal.valueOf(0),
- BigDecimal.valueOf(5), BigDecimal.valueOf(10),
- BigDecimal.valueOf(15) }) == null);
- // Under 4 values always returns null.
- assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
- BigDecimal.valueOf(2), BigDecimal.valueOf(4),
- BigDecimal.valueOf(6) }) == null);
- assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
- BigDecimal.valueOf(2), BigDecimal.valueOf(4) }) == null);
- assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] { BigDecimal
- .valueOf(2) }) == null);
- }
-
- public void testFindMultiplicationPattern() {
-
- // Multiplication
- // *2 missing number 4
- assertTrue(FindMissingNumber.findMultiplicationPattern(
- new BigDecimal[] { BigDecimal.valueOf(2),
- BigDecimal.valueOf(8), BigDecimal.valueOf(16),
- BigDecimal.valueOf(32), BigDecimal.valueOf(64) })
- .doubleValue() == 4);
- // *17 missing number 383214
- assertTrue(FindMissingNumber.findMultiplicationPattern(
- new BigDecimal[] { BigDecimal.valueOf(78),
- BigDecimal.valueOf(1326), BigDecimal.valueOf(22542),
- BigDecimal.valueOf(6514638) }).doubleValue() == 383214);
- // *1,23 missing number 2016.6957
- assertTrue(FindMissingNumber.findMultiplicationPattern(
- new BigDecimal[] { BigDecimal.valueOf(1333),
- BigDecimal.valueOf(1639.59),
- BigDecimal.valueOf(2480.535711),
- BigDecimal.valueOf(3051.05892453) }).doubleValue() == 2016.6957);
-
- // Division
- // /2 (*0.5) missing number 128
- assertTrue(FindMissingNumber.findMultiplicationPattern(
- new BigDecimal[] { BigDecimal.valueOf(256),
- BigDecimal.valueOf(64), BigDecimal.valueOf(32),
- BigDecimal.valueOf(16), BigDecimal.valueOf(8),
- BigDecimal.valueOf(4), BigDecimal.valueOf(2) })
- .doubleValue() == 128);
- // /10 (*0.1) missing number 1
- assertTrue(FindMissingNumber.findMultiplicationPattern(
- new BigDecimal[] { BigDecimal.valueOf(10000),
- BigDecimal.valueOf(1000), BigDecimal.valueOf(100),
- BigDecimal.valueOf(10), BigDecimal.valueOf(0.1),
- BigDecimal.valueOf(0.01) }).doubleValue() == 1);
-
- // Not valid
- // Not in pattern.
- assertTrue(FindMissingNumber.findMultiplicationPattern(new BigDecimal[] {
- BigDecimal.valueOf(111.2), BigDecimal.valueOf(3323),
- BigDecimal.valueOf(234.434), BigDecimal.valueOf(44343),
- BigDecimal.valueOf(434) }) == null);
- assertTrue(FindMissingNumber.findMultiplicationPattern(new BigDecimal[] {
- BigDecimal.valueOf(1), BigDecimal.valueOf(2),
- BigDecimal.valueOf(3), BigDecimal.valueOf(4),
- BigDecimal.valueOf(5), BigDecimal.valueOf(6),
- BigDecimal.valueOf(7), BigDecimal.valueOf(5),
- BigDecimal.valueOf(4), BigDecimal.valueOf(3),
- BigDecimal.valueOf(2), BigDecimal.valueOf(1),
- BigDecimal.valueOf(1), BigDecimal.valueOf(1) }) == null);
- }
-}
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/PatternSolverDRLTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/PatternSolverDRLTest.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/PatternSolverDRLTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -3,9 +3,9 @@
import java.io.ByteArrayInputStream;
import java.util.Collection;
-import org.drools.verifier.components.PatternPossibility;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.components.SubPattern;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
/**
*
@@ -26,7 +26,7 @@
rule.append(" order.setOrderDiscount( 6.0 ); ");
rule.append("end");
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(
new ByteArrayInputStream(rule.toString().getBytes()), result
.getVerifierData());
@@ -36,8 +36,8 @@
// Check that there is three pattern possibilities and that they contain
// the right amount of items.
for (Object o : testData) {
- if (o instanceof PatternPossibility) {
- PatternPossibility pp = (PatternPossibility) o;
+ if (o instanceof SubPattern) {
+ SubPattern pp = (SubPattern) o;
if (pp.getItems().size() == 2) {
patternCount++;
Deleted: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/PatternSolverTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,373 +0,0 @@
-package org.drools.verifier;
-
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.drools.verifier.components.LiteralRestriction;
-import org.drools.verifier.components.OperatorDescr;
-import org.drools.verifier.components.Pattern;
-import org.drools.verifier.components.VerifierComponent;
-
-/**
- *
- * @author Toni Rikkola
- *
- */
-public class PatternSolverTest extends TestCase {
-
- /**
- * <pre>
- * and
- * / \
- * descr descr2
- * </pre>
- *
- * result:<br>
- * descr && descr2
- */
- public void testAddBasicAnd() {
- Pattern pattern = new Pattern();
-
- LiteralRestriction literalRestriction = new LiteralRestriction();
- LiteralRestriction literalRestriction2 = new LiteralRestriction();
-
- PatternSolver solver = new PatternSolver(pattern);
-
- solver.addOperator(OperatorDescr.Type.AND);
- solver.add(literalRestriction);
- solver.add(literalRestriction2);
- solver.end();
-
- List<Set<VerifierComponent>> list = solver.getPossibilityLists();
- assertEquals(1, list.size());
- assertEquals(2, list.get(0).size());
- }
-
- /**
- * <pre>
- * or
- * / \
- * descr descr2
- * </pre>
- *
- * result:<br>
- * descr<br>
- * or<br>
- * descr2
- */
- public void testAddBasicOr() {
- Pattern pattern = new Pattern();
-
- LiteralRestriction literalRestriction = new LiteralRestriction();
- LiteralRestriction literalRestriction2 = new LiteralRestriction();
-
- PatternSolver solver = new PatternSolver(pattern);
-
- solver.addOperator(OperatorDescr.Type.OR);
- solver.add(literalRestriction);
- solver.add(literalRestriction2);
- solver.end();
-
- List<Set<VerifierComponent>> list = solver.getPossibilityLists();
- assertEquals(2, list.size());
- assertEquals(1, list.get(0).size());
- assertEquals(1, list.get(1).size());
- }
-
- /**
- * <pre>
- * or
- * / \
- * descr and
- * / \
- * descr2 descr3
- * </pre>
- *
- * result:<br>
- * descr <br>
- * or<br>
- * descr2 && descr3
- */
- public void testAddOrAnd() {
- Pattern pattern = new Pattern();
-
- LiteralRestriction literalRestriction = new LiteralRestriction();
- LiteralRestriction literalRestriction2 = new LiteralRestriction();
- LiteralRestriction literalRestriction3 = new LiteralRestriction();
-
- PatternSolver solver = new PatternSolver(pattern);
-
- solver.addOperator(OperatorDescr.Type.OR);
- solver.add(literalRestriction);
- solver.addOperator(OperatorDescr.Type.AND);
- solver.add(literalRestriction2);
- solver.add(literalRestriction3);
- solver.end();
- solver.end();
-
- List<Set<VerifierComponent>> list = solver.getPossibilityLists();
- assertEquals(2, list.size());
-
- assertEquals(1, list.get(0).size());
- assertTrue(list.get(0).contains(literalRestriction));
-
- assertEquals(2, list.get(1).size());
- assertTrue(list.get(1).contains(literalRestriction2));
- assertTrue(list.get(1).contains(literalRestriction3));
- }
-
- /**
- * <pre>
- * and
- * / \
- * descr or
- * / \
- * descr2 descr3
- * </pre>
- *
- * result:<br>
- * descr && descr2 <br>
- * or<br>
- * descr && descr3
- */
- public void testAddAndOr() {
- Pattern pattern = new Pattern();
-
- LiteralRestriction literalRestriction = new LiteralRestriction();
- LiteralRestriction literalRestriction2 = new LiteralRestriction();
- LiteralRestriction literalRestriction3 = new LiteralRestriction();
-
- PatternSolver solver = new PatternSolver(pattern);
-
- solver.addOperator(OperatorDescr.Type.AND);
- solver.add(literalRestriction);
- solver.addOperator(OperatorDescr.Type.OR);
- solver.add(literalRestriction2);
- solver.add(literalRestriction3);
- solver.end();
- solver.end();
-
- List<Set<VerifierComponent>> list = solver.getPossibilityLists();
- assertEquals(2, list.size());
-
- assertEquals(2, list.get(0).size());
- assertTrue(list.get(0).contains(literalRestriction));
- assertTrue(list.get(0).contains(literalRestriction2));
-
- assertEquals(2, list.get(1).size());
- assertTrue(list.get(1).contains(literalRestriction));
- assertTrue(list.get(1).contains(literalRestriction3));
- }
-
- /**
- * <pre>
- * and
- * / \
- * or or
- * / \ / \
- * descr descr2 descr3 descr4
- * </pre>
- *
- * result:<br>
- * descr && descr3<br>
- * or<br>
- * descr && descr4<br>
- * or<br>
- * descr2 && descr3<br>
- * or<br>
- * descr2 && descr4
- */
- public void testAddAndOrOr() {
- Pattern pattern = new Pattern();
-
- LiteralRestriction literalRestriction = new LiteralRestriction();
- LiteralRestriction literalRestriction2 = new LiteralRestriction();
- LiteralRestriction literalRestriction3 = new LiteralRestriction();
- LiteralRestriction literalRestriction4 = new LiteralRestriction();
-
- PatternSolver solver = new PatternSolver(pattern);
-
- solver.addOperator(OperatorDescr.Type.AND);
- solver.addOperator(OperatorDescr.Type.OR);
- solver.add(literalRestriction);
- solver.add(literalRestriction2);
- solver.end();
- solver.addOperator(OperatorDescr.Type.OR);
- solver.add(literalRestriction3);
- solver.add(literalRestriction4);
- solver.end();
- solver.end();
-
- List<Set<VerifierComponent>> list = solver.getPossibilityLists();
- assertEquals(4, list.size());
-
- assertEquals(2, list.get(0).size());
- assertTrue(list.get(0).contains(literalRestriction));
- assertTrue(list.get(0).contains(literalRestriction3));
-
- assertEquals(2, list.get(1).size());
- assertTrue(list.get(1).contains(literalRestriction));
- assertTrue(list.get(1).contains(literalRestriction4));
-
- assertEquals(2, list.get(2).size());
- assertTrue(list.get(2).contains(literalRestriction2));
- assertTrue(list.get(2).contains(literalRestriction3));
-
- assertEquals(2, list.get(3).size());
- assertTrue(list.get(3).contains(literalRestriction2));
- assertTrue(list.get(3).contains(literalRestriction4));
- }
-
- /**
- * <pre>
- * or
- * / \
- * and and
- * / \ / \
- * descr descr2 descr3 descr4
- * </pre>
- *
- * result:<br>
- * descr && descr2<br>
- * or<br>
- * descr3 && descr4
- */
- public void testAddOrAndAnd() {
- Pattern pattern = new Pattern();
-
- LiteralRestriction literalRestriction = new LiteralRestriction();
- LiteralRestriction literalRestriction2 = new LiteralRestriction();
- LiteralRestriction literalRestriction3 = new LiteralRestriction();
- LiteralRestriction literalRestriction4 = new LiteralRestriction();
-
- PatternSolver solver = new PatternSolver(pattern);
-
- solver.addOperator(OperatorDescr.Type.OR);
- solver.addOperator(OperatorDescr.Type.AND);
- solver.add(literalRestriction);
- solver.add(literalRestriction2);
- solver.end();
- solver.addOperator(OperatorDescr.Type.AND);
- solver.add(literalRestriction3);
- solver.add(literalRestriction4);
- solver.end();
- solver.end();
-
- List<Set<VerifierComponent>> list = solver.getPossibilityLists();
- assertEquals(2, list.size());
-
- assertEquals(2, list.get(0).size());
- assertTrue(list.get(0).contains(literalRestriction));
- assertTrue(list.get(0).contains(literalRestriction2));
-
- assertEquals(2, list.get(1).size());
- assertTrue(list.get(1).contains(literalRestriction3));
- assertTrue(list.get(1).contains(literalRestriction4));
- }
-
- /**
- * <pre>
- * or
- * / \
- * and or
- * / \ / \
- * descr descr2 descr3 descr4
- * </pre>
- *
- * result:<br>
- * descr && descr2<br>
- * or<br>
- * descr3<br>
- * or<br>
- * descr4
- */
- public void testAddOrAndOr() {
- Pattern pattern = new Pattern();
-
- LiteralRestriction literalRestriction = new LiteralRestriction();
- LiteralRestriction literalRestriction2 = new LiteralRestriction();
- LiteralRestriction literalRestriction3 = new LiteralRestriction();
- LiteralRestriction literalRestriction4 = new LiteralRestriction();
-
- PatternSolver solver = new PatternSolver(pattern);
-
- solver.addOperator(OperatorDescr.Type.OR);
- solver.addOperator(OperatorDescr.Type.AND);
- solver.add(literalRestriction);
- solver.add(literalRestriction2);
- solver.end();
- solver.addOperator(OperatorDescr.Type.OR);
- solver.add(literalRestriction3);
- solver.add(literalRestriction4);
- solver.end();
- solver.end();
-
- List<Set<VerifierComponent>> list = solver.getPossibilityLists();
- assertEquals(3, list.size());
-
- assertEquals(2, list.get(0).size());
- assertTrue(list.get(0).contains(literalRestriction));
- assertTrue(list.get(0).contains(literalRestriction2));
-
- assertEquals(1, list.get(1).size());
- assertTrue(list.get(1).contains(literalRestriction3));
-
- assertEquals(1, list.get(2).size());
- assertTrue(list.get(2).contains(literalRestriction4));
- }
-
- /**
- * <pre>
- * and
- * / | \
- * and or descr5
- * / \ / \
- * descr descr2 descr3 descr4
- * </pre>
- *
- * result:<br>
- * descr && descr2 && descr3 && descr5<br>
- * or<br>
- * descr && descr2 && descr4 && descr5<br>
- */
- public void testAddOrAndOrDescr() {
- Pattern pattern = new Pattern();
-
- LiteralRestriction literalRestriction = new LiteralRestriction();
- LiteralRestriction literalRestriction2 = new LiteralRestriction();
- LiteralRestriction literalRestriction3 = new LiteralRestriction();
- LiteralRestriction literalRestriction4 = new LiteralRestriction();
- LiteralRestriction literalRestriction5 = new LiteralRestriction();
-
- PatternSolver solver = new PatternSolver(pattern);
-
- solver.addOperator(OperatorDescr.Type.AND);
- solver.addOperator(OperatorDescr.Type.AND);
- solver.add(literalRestriction);
- solver.add(literalRestriction2);
- solver.end();
- solver.addOperator(OperatorDescr.Type.OR);
- solver.add(literalRestriction3);
- solver.add(literalRestriction4);
- solver.end();
- solver.add(literalRestriction5);
- solver.end();
-
- List<Set<VerifierComponent>> list = solver.getPossibilityLists();
- assertEquals(2, list.size());
-
- assertEquals(4, list.get(0).size());
- assertTrue(list.get(0).contains(literalRestriction));
- assertTrue(list.get(0).contains(literalRestriction2));
- assertTrue(list.get(0).contains(literalRestriction3));
- assertTrue(list.get(0).contains(literalRestriction5));
-
- assertEquals(4, list.get(1).size());
- assertTrue(list.get(1).contains(literalRestriction));
- assertTrue(list.get(1).contains(literalRestriction2));
- assertTrue(list.get(1).contains(literalRestriction4));
- assertTrue(list.get(1).contains(literalRestriction4));
- }
-}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckDatesTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,8 +8,8 @@
import org.drools.StatelessSession;
import org.drools.StatelessSessionResult;
import org.drools.base.RuleNameMatchesAgendaFilter;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Gap;
/**
@@ -30,7 +30,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Range check for dates, if smaller than or equal is missing"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingRangesForDates.drl"), result
.getVerifierData());
@@ -68,7 +68,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Range check for dates, if greater than or equal is missing"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingRangesForDates.drl"), result
.getVerifierData());
@@ -106,7 +106,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Range check for dates, equal and greater than"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingRangesForDates.drl"), result
.getVerifierData());
@@ -145,7 +145,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Range check for dates, equal and smaller than"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingRangesForDates.drl"), result
.getVerifierData());
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckDoublesTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,8 +8,8 @@
import org.drools.StatelessSession;
import org.drools.StatelessSessionResult;
import org.drools.base.RuleNameMatchesAgendaFilter;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Gap;
/**
@@ -27,7 +27,7 @@
.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Range check for doubles, if smaller than or equal is missing"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingRangesForDoubles.drl"), result
.getVerifierData());
@@ -66,7 +66,7 @@
.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Range check for doubles, if greater than or equal is missing"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingRangesForDoubles.drl"), result
.getVerifierData());
@@ -104,7 +104,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Range check for doubles, equal and greater than"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingRangesForDoubles.drl"), result
.getVerifierData());
@@ -144,7 +144,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Range check for doubles, equal and smaller than"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingRangesForDoubles.drl"), result
.getVerifierData());
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/RangeCheckIntegersTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,8 +8,8 @@
import org.drools.StatelessSession;
import org.drools.StatelessSessionResult;
import org.drools.base.RuleNameMatchesAgendaFilter;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Gap;
/**
@@ -27,7 +27,7 @@
.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Range check for integers, if smaller than or equal is missing"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingRangesForInts.drl"), result
.getVerifierData());
@@ -66,7 +66,7 @@
.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Range check for integers, if greater than or equal is missing"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingRangesForInts.drl"), result
.getVerifierData());
@@ -104,7 +104,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Range check for integers, equal and greater than"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingRangesForInts.drl"), result
.getVerifierData());
@@ -143,7 +143,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Range check for integers, equal and smaller than"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingRangesForInts.drl"), result
.getVerifierData());
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/SolversTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -9,11 +9,12 @@
import org.drools.verifier.components.LiteralRestriction;
import org.drools.verifier.components.OperatorDescr;
import org.drools.verifier.components.Pattern;
-import org.drools.verifier.components.PatternPossibility;
+import org.drools.verifier.components.SubPattern;
import org.drools.verifier.components.Restriction;
-import org.drools.verifier.components.RulePossibility;
+import org.drools.verifier.components.SubRule;
import org.drools.verifier.components.VerifierRule;
import org.drools.verifier.report.components.Cause;
+import org.drools.verifier.solver.Solvers;
/**
*
@@ -69,7 +70,7 @@
solvers.endRuleSolver();
- List<RulePossibility> list = solvers.getRulePossibilities();
+ List<SubRule> list = solvers.getRulePossibilities();
assertEquals(1, list.size());
assertEquals(2, list.get(0).getItems().size());
@@ -82,8 +83,8 @@
result2.add(r4);
Object[] possibilies = list.get(0).getItems().toArray();
- PatternPossibility p1 = (PatternPossibility) possibilies[0];
- PatternPossibility p2 = (PatternPossibility) possibilies[1];
+ SubPattern p1 = (SubPattern) possibilies[0];
+ SubPattern p2 = (SubPattern) possibilies[1];
/*
* Order may change but it doesn't matter.
@@ -125,7 +126,7 @@
solvers.endPatternSolver();
solvers.endRuleSolver();
- List<RulePossibility> list = solvers.getRulePossibilities();
+ List<SubRule> list = solvers.getRulePossibilities();
assertEquals(1, list.size());
assertEquals(1, list.get(0).getItems().size());
@@ -135,7 +136,7 @@
Set<Cause> set = list.get(0).getItems();
for (Cause cause : set) {
- PatternPossibility possibility = (PatternPossibility) cause;
+ SubPattern possibility = (SubPattern) cause;
assertTrue(possibility.getItems().containsAll(result));
}
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/SubsumptantPossibilitiesRuleTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -12,221 +12,245 @@
import org.drools.StatelessSessionResult;
import org.drools.base.RuleNameMatchesAgendaFilter;
import org.drools.verifier.components.LiteralRestriction;
-import org.drools.verifier.components.PatternPossibility;
-import org.drools.verifier.components.RulePossibility;
-import org.drools.verifier.components.VerifierComponent;
+import org.drools.verifier.components.SubPattern;
+import org.drools.verifier.components.RuleComponent;
+import org.drools.verifier.components.SubRule;
import org.drools.verifier.report.components.PartialRedundancy;
import org.drools.verifier.report.components.Redundancy;
import org.drools.verifier.report.components.Subsumption;
public class SubsumptantPossibilitiesRuleTest extends TestBase {
- private static final String RULE_NAME = "Find subsumptant Possibilities";
+ private static final String RULE_NAME = "Find subsumptant Possibilities";
- public void testFake() {
- assertTrue(true);
- }
+ public void testFake() {
+ assertTrue( true );
+ }
- public void fixmetestSubsumptantPossibilitiesPattern() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("redundancy/Possibilities.drl"));
+ public void fixmetestSubsumptantPossibilitiesPattern() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "redundancy/Possibilities.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(RULE_NAME));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( RULE_NAME ) );
- String ruleName1 = "Rule 1";
- String ruleName2 = "Rule 2";
+ String ruleName1 = "Rule 1";
+ String ruleName2 = "Rule 2";
- StatelessSessionResult sessionResult = session
- .executeWithResults(createSubsumptantPatternData(ruleName1,
- ruleName2));
+ StatelessSessionResult sessionResult = session.executeWithResults( createSubsumptantPatternData( ruleName1,
+ ruleName2 ) );
- Map<String, Set<String>> map = createSubsumptionMap(sessionResult
- .iterateObjects());
+ Map<String, Set<String>> map = createSubsumptionMap( sessionResult.iterateObjects() );
- assertTrue(TestBase.mapContains(map, ruleName2, ruleName1));
+ assertTrue( TestBase.mapContains( map,
+ ruleName2,
+ ruleName1 ) );
- if (!map.isEmpty()) {
- fail("More subsumpt cases than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More subsumpt cases than was expected." );
+ }
+ }
- public void fixmetestSubsumptantPossibilitiesRule() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("redundancy/Possibilities.drl"));
+ public void fixmetestSubsumptantPossibilitiesRule() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "redundancy/Possibilities.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(RULE_NAME));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( RULE_NAME ) );
- String ruleName1 = "Rule 1";
- String ruleName2 = "Rule 2";
+ String ruleName1 = "Rule 1";
+ String ruleName2 = "Rule 2";
- StatelessSessionResult sessionResult = session
- .executeWithResults(createSubsumptantRuleData(ruleName1,
- ruleName2));
+ StatelessSessionResult sessionResult = session.executeWithResults( createSubsumptantRuleData( ruleName1,
+ ruleName2 ) );
- Map<String, Set<String>> map = createSubsumptionMap(sessionResult
- .iterateObjects());
+ Map<String, Set<String>> map = createSubsumptionMap( sessionResult.iterateObjects() );
- assertTrue(TestBase.mapContains(map, ruleName2, ruleName1));
+ assertTrue( TestBase.mapContains( map,
+ ruleName2,
+ ruleName1 ) );
- if (!map.isEmpty()) {
- fail("More subsumpt cases than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More subsumpt cases than was expected." );
+ }
+ }
- public void fixmetestSubsumptantPossibilitiesBoth() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("redundancy/Possibilities.drl"));
+ public void fixmetestSubsumptantPossibilitiesBoth() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "redundancy/Possibilities.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(RULE_NAME));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( RULE_NAME ) );
- String ruleName1 = "Rule 1";
- String ruleName2 = "Rule 2";
- String ruleName3 = "Rule 3";
- String ruleName4 = "Rule 4";
- String ruleName5 = "Rule 5";
- String ruleName6 = "Rule 6";
- String ruleName7 = "Rule 7";
- String ruleName8 = "Rule 8";
- String ruleName9 = "Rule 9";
- String ruleName10 = "Rule 10";
- String ruleName11 = "Rule 11";
- String ruleName12 = "Rule 12";
+ String ruleName1 = "Rule 1";
+ String ruleName2 = "Rule 2";
+ String ruleName3 = "Rule 3";
+ String ruleName4 = "Rule 4";
+ String ruleName5 = "Rule 5";
+ String ruleName6 = "Rule 6";
+ String ruleName7 = "Rule 7";
+ String ruleName8 = "Rule 8";
+ String ruleName9 = "Rule 9";
+ String ruleName10 = "Rule 10";
+ String ruleName11 = "Rule 11";
+ String ruleName12 = "Rule 12";
- // Rule data
- Collection<Object> data = createSubsumptantRuleData(ruleName1,
- ruleName2);
- data.addAll(createSubsumptantRuleData(ruleName3, ruleName4));
- data.addAll(createSubsumptantRuleData(ruleName5, ruleName6));
+ // Rule data
+ Collection<Object> data = createSubsumptantRuleData( ruleName1,
+ ruleName2 );
+ data.addAll( createSubsumptantRuleData( ruleName3,
+ ruleName4 ) );
+ data.addAll( createSubsumptantRuleData( ruleName5,
+ ruleName6 ) );
- // Pattern data.
- data.addAll(createSubsumptantPatternData(ruleName7, ruleName8));
- data.addAll(createSubsumptantPatternData(ruleName9, ruleName10));
- data.addAll(createSubsumptantPatternData(ruleName11, ruleName12));
+ // Pattern data.
+ data.addAll( createSubsumptantPatternData( ruleName7,
+ ruleName8 ) );
+ data.addAll( createSubsumptantPatternData( ruleName9,
+ ruleName10 ) );
+ data.addAll( createSubsumptantPatternData( ruleName11,
+ ruleName12 ) );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<String, Set<String>> map = createSubsumptionMap(sessionResult
- .iterateObjects());
+ Map<String, Set<String>> map = createSubsumptionMap( sessionResult.iterateObjects() );
- assertTrue(TestBase.mapContains(map, ruleName2, ruleName1));
- assertTrue(TestBase.mapContains(map, ruleName4, ruleName3));
- assertTrue(TestBase.mapContains(map, ruleName6, ruleName5));
+ assertTrue( TestBase.mapContains( map,
+ ruleName2,
+ ruleName1 ) );
+ assertTrue( TestBase.mapContains( map,
+ ruleName4,
+ ruleName3 ) );
+ assertTrue( TestBase.mapContains( map,
+ ruleName6,
+ ruleName5 ) );
- assertTrue(TestBase.mapContains(map, ruleName8, ruleName7));
- assertTrue(TestBase.mapContains(map, ruleName10, ruleName9));
- assertTrue(TestBase.mapContains(map, ruleName12, ruleName11));
+ assertTrue( TestBase.mapContains( map,
+ ruleName8,
+ ruleName7 ) );
+ assertTrue( TestBase.mapContains( map,
+ ruleName10,
+ ruleName9 ) );
+ assertTrue( TestBase.mapContains( map,
+ ruleName12,
+ ruleName11 ) );
- if (!map.isEmpty()) {
- fail("More subsumpt cases than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More subsumpt cases than was expected." );
+ }
+ }
- private Collection<Object> createSubsumptantPatternData(String ruleName1,
- String ruleName2) {
+ private Collection<Object> createSubsumptantPatternData(String ruleName1,
+ String ruleName2) {
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- LiteralRestriction lr1 = new LiteralRestriction();
- lr1.setRuleName(ruleName1);
- LiteralRestriction lr2 = new LiteralRestriction();
- lr2.setRuleName(ruleName1);
+ LiteralRestriction lr1 = new LiteralRestriction();
+ lr1.setRuleName( ruleName1 );
+ LiteralRestriction lr2 = new LiteralRestriction();
+ lr2.setRuleName( ruleName1 );
- PatternPossibility pp1 = new PatternPossibility();
- pp1.setRuleName(ruleName1);
- pp1.add(lr1);
- pp1.add(lr2);
+ SubPattern pp1 = new SubPattern();
+ pp1.setRuleName( ruleName1 );
+ pp1.add( lr1 );
+ pp1.add( lr2 );
- LiteralRestriction lr3 = new LiteralRestriction();
- lr3.setRuleName(ruleName2);
+ LiteralRestriction lr3 = new LiteralRestriction();
+ lr3.setRuleName( ruleName2 );
- PatternPossibility pp2 = new PatternPossibility();
- pp2.setRuleName(ruleName2);
- pp2.add(lr3);
+ SubPattern pp2 = new SubPattern();
+ pp2.setRuleName( ruleName2 );
+ pp2.add( lr3 );
- Redundancy redundancy1 = new Redundancy(lr1, lr3);
+ Redundancy redundancy1 = new Redundancy( lr1,
+ lr3 );
- PartialRedundancy pr1 = new PartialRedundancy(pp1, pp2, redundancy1);
- PartialRedundancy pr2 = new PartialRedundancy(pp2, pp1, redundancy1);
+ PartialRedundancy pr1 = new PartialRedundancy( pp1,
+ pp2,
+ redundancy1 );
+ PartialRedundancy pr2 = new PartialRedundancy( pp2,
+ pp1,
+ redundancy1 );
- data.add(lr1);
- data.add(lr2);
- data.add(lr3);
- data.add(pp1);
- data.add(pp2);
- data.add(redundancy1);
- data.add(pr1);
- data.add(pr2);
+ data.add( lr1 );
+ data.add( lr2 );
+ data.add( lr3 );
+ data.add( pp1 );
+ data.add( pp2 );
+ data.add( redundancy1 );
+ data.add( pr1 );
+ data.add( pr2 );
- return data;
- }
+ return data;
+ }
- private Collection<Object> createSubsumptantRuleData(String ruleName1,
- String ruleName2) {
+ private Collection<Object> createSubsumptantRuleData(String ruleName1,
+ String ruleName2) {
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- PatternPossibility pp1 = new PatternPossibility();
- pp1.setRuleName(ruleName1);
- PatternPossibility pp2 = new PatternPossibility();
- pp2.setRuleName(ruleName1);
+ SubPattern pp1 = new SubPattern();
+ pp1.setRuleName( ruleName1 );
+ SubPattern pp2 = new SubPattern();
+ pp2.setRuleName( ruleName1 );
- RulePossibility rp1 = new RulePossibility();
- rp1.setRuleName(ruleName1);
- rp1.add(pp1);
- rp1.add(pp2);
+ SubRule rp1 = new SubRule();
+ rp1.setRuleName( ruleName1 );
+ rp1.add( pp1 );
+ rp1.add( pp2 );
- PatternPossibility pp3 = new PatternPossibility();
- pp3.setRuleName(ruleName2);
+ SubPattern pp3 = new SubPattern();
+ pp3.setRuleName( ruleName2 );
- RulePossibility rp2 = new RulePossibility();
- rp2.setRuleName(ruleName2);
- rp2.add(pp3);
+ SubRule rp2 = new SubRule();
+ rp2.setRuleName( ruleName2 );
+ rp2.add( pp3 );
- Redundancy redundancy1 = new Redundancy(pp1, pp3);
+ Redundancy redundancy1 = new Redundancy( pp1,
+ pp3 );
- PartialRedundancy pr1 = new PartialRedundancy(rp1, rp2, redundancy1);
- PartialRedundancy pr2 = new PartialRedundancy(rp2, rp1, redundancy1);
+ PartialRedundancy pr1 = new PartialRedundancy( rp1,
+ rp2,
+ redundancy1 );
+ PartialRedundancy pr2 = new PartialRedundancy( rp2,
+ rp1,
+ redundancy1 );
- data.add(pp1);
- data.add(pp2);
- data.add(rp1);
- data.add(pp3);
- data.add(rp2);
- data.add(redundancy1);
- data.add(pr1);
- data.add(pr2);
+ data.add( pp1 );
+ data.add( pp2 );
+ data.add( rp1 );
+ data.add( pp3 );
+ data.add( rp2 );
+ data.add( redundancy1 );
+ data.add( pr1 );
+ data.add( pr2 );
- return data;
- }
+ return data;
+ }
- /**
- * Creates redundancy map from Redundancy objects, one rule may have several
- * redundancy dependencies.
- *
- * @param iter
- * @return
- */
- private Map<String, Set<String>> createSubsumptionMap(Iterator iter) {
+ /**
+ * Creates redundancy map from Redundancy objects, one rule may have several
+ * redundancy dependencies.
+ *
+ * @param iter
+ * @return
+ */
+ private Map<String, Set<String>> createSubsumptionMap(Iterator iter) {
- Map<String, Set<String>> map = new HashMap<String, Set<String>>();
- while (iter.hasNext()) {
- Object o = (Object) iter.next();
- if (o instanceof Subsumption) {
- Subsumption s = (Subsumption) o;
- VerifierComponent left = (VerifierComponent) s.getLeft();
- VerifierComponent right = (VerifierComponent) s.getRight();
+ Map<String, Set<String>> map = new HashMap<String, Set<String>>();
+ while ( iter.hasNext() ) {
+ Object o = (Object) iter.next();
+ if ( o instanceof Subsumption ) {
+ Subsumption s = (Subsumption) o;
+ RuleComponent left = (RuleComponent) s.getLeft();
+ RuleComponent right = (RuleComponent) s.getRight();
- if (map.containsKey(left.getRuleName())) {
- Set<String> set = map.get(left.getRuleName());
- set.add(right.getRuleName());
- } else {
- Set<String> set = new HashSet<String>();
- set.add(right.getRuleName());
- map.put(left.getRuleName(), set);
- }
- }
- }
+ if ( map.containsKey( left.getRuleName() ) ) {
+ Set<String> set = map.get( left.getRuleName() );
+ set.add( right.getRuleName() );
+ } else {
+ Set<String> set = new HashSet<String>();
+ set.add( right.getRuleName() );
+ map.put( left.getRuleName(),
+ set );
+ }
+ }
+ }
- return map;
- }
+ return map;
+ }
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/TestBase.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -16,7 +16,8 @@
import org.drools.compiler.PackageBuilder;
import org.drools.lang.descr.PackageDescr;
import org.drools.rule.Package;
-import org.drools.verifier.dao.VerifierData;
+import org.drools.verifier.data.VerifierData;
+import org.drools.verifier.misc.PackageDescrVisitor;
import org.drools.verifier.report.components.Cause;
/**
@@ -108,7 +109,7 @@
Reader drlReader = new InputStreamReader( stream );
PackageDescr descr = new DrlParser().parse( drlReader );
- PackageDescrFlattener ruleFlattener = new PackageDescrFlattener();
+ PackageDescrVisitor ruleFlattener = new PackageDescrVisitor();
ruleFlattener.addPackageDescrToData( descr,
data );
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,51 +1,40 @@
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.dao.VerifierResult;
+import org.drools.builder.ResourceType;
+import org.drools.io.impl.ClassPathResource;
+import org.drools.verifier.builder.VerifierBuilder;
+import org.drools.verifier.builder.VerifierBuilderFactory;
+import org.drools.verifier.data.VerifierReport;
import org.drools.verifier.report.components.Severity;
+import org.drools.verifier.report.components.VerifierMessageBase;
public class VerifierTest extends TestCase {
- public void testAnalyzer() throws Exception {
- Verifier anal = new Verifier();
+ public void testVerifier() {
+ VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
- DrlParser p = new DrlParser();
- InputStreamReader reader = new InputStreamReader( this.getClass().getResourceAsStream( "Misc3.drl" ) );
- PackageDescr pkg = p.parse( reader );
- assertFalse( p.hasErrors() );
+ // Check that the builder works.
+ assertFalse( vBuilder.hasErrors() );
+ assertEquals( 0,
+ vBuilder.getErrors().size() );
- anal.addPackageDescr( pkg );
- assertTrue( "Firing verifier failed.",
- anal.fireAnalysis() );
+ Verifier verifier = vBuilder.newVerifier();
- VerifierResult result = anal.getResult();
- assertNotNull( result );
+ verifier.addResourcesToVerify( new ClassPathResource( "Misc3.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+
+ assertFalse( verifier.hasErrors() );
assertEquals( 0,
- result.getBySeverity( Severity.ERROR ).size() );
- assertEquals( 10,
- result.getBySeverity( Severity.WARNING ).size() );
- assertEquals( 16,
- result.getBySeverity( Severity.NOTE ).size() );
+ verifier.getErrors().size() );
- //check it again
- anal = new Verifier();
+ boolean works = verifier.fireAnalysis();
- p = new DrlParser();
- reader = new InputStreamReader( this.getClass().getResourceAsStream( "Misc3.drl" ) );
- pkg = p.parse( reader );
- assertFalse( p.hasErrors() );
+ assertTrue( works );
- anal.addPackageDescr( pkg );
- assertTrue( "Firing verifier failed.",
- anal.fireAnalysis() );
-
- result = anal.getResult();
+ VerifierReport result = verifier.getResult();
assertNotNull( result );
assertEquals( 0,
result.getBySeverity( Severity.ERROR ).size() );
@@ -56,32 +45,47 @@
}
- 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() );
+ public void testCustomRule() {
- anal.addPackageDescr( pkg );
- anal.fireAnalysis();
+ VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
- RuleBase original = Verifier.verifierKnowledgeBase;
+ VerifierConfiguration vConfiguration = vBuilder.newVerifierConfiguration();
- Verifier anal2 = new Verifier();
+ // Check that the builder works.
+ assertFalse( vBuilder.hasErrors() );
+ assertEquals( 0,
+ vBuilder.getErrors().size() );
- assertSame( original,
- Verifier.verifierKnowledgeBase );
+ vConfiguration.getVerifyingResources().put( new ClassPathResource( "FindPatterns.drl",
+ Verifier.class ),
+ ResourceType.DRL );
- try {
- anal2.reloadAnalysisKnowledgeBase();
- } catch ( Exception e ) {
- fail( "Couldn't reload the knowledge base." );
- }
+ Verifier verifier = vBuilder.newVerifier( vConfiguration );
- assertNotSame( original,
- Verifier.verifierKnowledgeBase );
+ verifier.addResourcesToVerify( new ClassPathResource( "Misc3.drl",
+ Verifier.class ),
+ ResourceType.DRL );
+ assertFalse( verifier.hasErrors() );
+ assertEquals( 0,
+ verifier.getErrors().size() );
+
+ boolean works = verifier.fireAnalysis();
+
+ assertTrue( works );
+
+ VerifierReport result = verifier.getResult();
+ assertNotNull( result );
+ assertEquals( 0,
+ result.getBySeverity( Severity.ERROR ).size() );
+ assertEquals( 0,
+ result.getBySeverity( Severity.WARNING ).size() );
+ assertEquals( 6,
+ result.getBySeverity( Severity.NOTE ).size() );
+
+ for ( VerifierMessageBase m : result.getBySeverity( Severity.NOTE ) ) {
+ assertEquals( "This pattern was found.",
+ m.getMessage() );
+ }
}
-
}
Modified: 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTestStandalone.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -1,19 +1,21 @@
package org.drools.verifier;
-import java.io.BufferedWriter;
-import java.io.FileWriter;
-import java.io.InputStreamReader;
+import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
-import org.drools.compiler.DrlParser;
-import org.drools.lang.descr.PackageDescr;
+import org.drools.builder.ResourceType;
+import org.drools.io.ResourceFactory;
+import org.drools.verifier.builder.VerifierBuilderFactory;
import org.drools.verifier.components.Field;
import org.drools.verifier.components.ObjectType;
+import org.drools.verifier.components.VerifierComponentType;
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierResult;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.report.VerifierReportWriter;
+import org.drools.verifier.report.VerifierReportWriterFactory;
import org.drools.verifier.report.components.Cause;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.VerifierMessage;
@@ -25,121 +27,107 @@
*/
class VerifierTestStandalone {
- public static final void main(String[] args) {
- try {
+ public static final void main(String[] args) {
+ try {
- Collection<String> fileNames = new ArrayList<String>();
+ 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("Enums.drl");
- // fileNames.add("ConsequenceTest.drl");
- // fileNames.add("optimisation/OptimisationRestrictionOrderTest.drl");
- // fileNames.add("optimisation/OptimisationPatternOrderTest.drl");
+ // 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( "Enums.drl" );
+ // fileNames.add("ConsequenceTest.drl");
+ // fileNames.add("optimisation/OptimisationRestrictionOrderTest.drl");
+ // fileNames.add("optimisation/OptimisationPatternOrderTest.drl");
- DrlParser parser = new DrlParser();
- Verifier a = new Verifier();
+ Verifier verifier = VerifierBuilderFactory.newVerifierBuilder().newVerifier();
- for (String s : fileNames) {
- PackageDescr descr = parser.parse(new InputStreamReader(
- Verifier.class.getResourceAsStream(s)));
- a.addPackageDescr(descr);
- }
+ for ( String s : fileNames ) {
+ verifier.addResourcesToVerify( ResourceFactory.newClassPathResource( s,
+ Verifier.class ),
+ ResourceType.DRL );
+ }
- a.fireAnalysis();
- // System.out.print(a.getResultAsPlainText());
- // System.out.print(a.getResultAsXML());
- // a.writeComponentsHTML("/stash/");
- // a.writeComponentsHTML("/Users/michaelneale/foo.html");
- a.writeComponentsHTML("/home/trikkola/");
- // a.writeComponentsHTML("c:/");
+ verifier.fireAnalysis();
+ // System.out.print(a.getResultAsPlainText());
+ // System.out.print(a.getResultAsXML());
+ // a.writeComponentsHTML("/stash/");
+ // a.writeComponentsHTML("/Users/michaelneale/foo.html");
+ // a.writeComponentsHTML("/home/trikkola/");
+ // a.writeComponentsHTML("c:/");
- VerifierResult result = a.getResult();
- Collection<VerifierMessageBase> msgs = result
- .getBySeverity(Severity.ERROR);
+ VerifierReport result = verifier.getResult();
- for (Iterator iterator = msgs.iterator(); iterator.hasNext();) {
- VerifierMessageBase msg = (VerifierMessageBase) iterator.next();
- System.out.println("ERR: " + msg.getMessage());
- }
+ VerifierReportWriter reportwriter = VerifierReportWriterFactory.newHTMLReportWriter();
+ FileOutputStream out = new FileOutputStream( "/Users/rikkola/Desktop/testReport.zip" );
- 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);
+ reportwriter.writeReport( out,
+ result );
- }
+ Collection<VerifierMessageBase> msgs = result.getBySeverity( Severity.ERROR );
- } 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);
+ 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 );
- }
- }
+ }
- 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());
- }
+ } 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 );
- Collection<ObjectType> classes = result.getVerifierData()
- .getAllObjectTypes();
- for (Iterator iterator = classes.iterator(); iterator.hasNext();) {
- ObjectType c = (ObjectType) iterator.next();
+ }
- Collection<VerifierRule> cr = result.getVerifierData()
- .getRulesByObjectTypeId(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);
+ }
+ }
- }
- }
+ 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() );
+ }
- // System.err.println(a.getResultAsPlainText());
- // System.out.println(result.toString());
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
+ Collection<ObjectType> classes = result.getVerifierData().getAll( VerifierComponentType.OBJECT_TYPE );
+ for ( Iterator iterator = classes.iterator(); iterator.hasNext(); ) {
+ ObjectType c = (ObjectType) iterator.next();
- 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());
- }
- }
+ Collection<VerifierRule> cr = result.getVerifierData().getRulesByObjectTypeId( c.getGuid() );
+ 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.getGuid() );
+ System.err.println( "Field rules: " + cr );
+
+ }
+ }
+
+ // System.err.println(a.getResultAsPlainText());
+ // System.out.println(result.toString());
+ } catch ( Throwable t ) {
+ t.printStackTrace();
+ }
+ }
}
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysFalse/AlwaysFalseTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysFalse/AlwaysFalseTest.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysFalse/AlwaysFalseTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -9,13 +9,13 @@
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.SubPattern;
import org.drools.verifier.components.Restriction;
-import org.drools.verifier.components.RulePossibility;
+import org.drools.verifier.components.SubRule;
import org.drools.verifier.components.VariableRestriction;
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Incompatibility;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.VerifierMessage;
@@ -33,7 +33,7 @@
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Pattern that is always false" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<Object> data = new ArrayList<Object>();
session.setGlobal( "result",
@@ -42,14 +42,14 @@
// This pattern has an error.
VerifierRule rule1 = new VerifierRule();
Pattern pattern1 = new Pattern();
- pattern1.setRuleId( rule1.getId() );
+ pattern1.setRuleGuid( rule1.getGuid() );
Restriction r1 = new LiteralRestriction();
Restriction r2 = new LiteralRestriction();
Incompatibility i1 = new Incompatibility( r1,
r2 );
- PatternPossibility pp1 = new PatternPossibility();
- pp1.setPatternId( pattern1.getId() );
+ SubPattern pp1 = new SubPattern();
+ pp1.setPatternGuid( pattern1.getGuid() );
pp1.add( r1 );
pp1.add( r2 );
@@ -57,19 +57,19 @@
Restriction r4 = new VariableRestriction();
Incompatibility i2 = new Incompatibility( r1,
r2 );
- PatternPossibility pp2 = new PatternPossibility();
- pp2.setPatternId( pattern1.getId() );
+ SubPattern pp2 = new SubPattern();
+ pp2.setPatternGuid( pattern1.getGuid() );
pp2.add( r1 );
pp2.add( r2 );
// This pattern does not have an error.
Pattern pattern2 = new Pattern();
- pattern2.setRuleId( rule1.getId() );
+ pattern2.setRuleGuid( rule1.getGuid() );
Restriction r5 = new LiteralRestriction();
Restriction r6 = new LiteralRestriction();
- PatternPossibility pp3 = new PatternPossibility();
- pp3.setPatternId( pattern2.getId() );
+ SubPattern pp3 = new SubPattern();
+ pp3.setPatternGuid( pattern2.getGuid() );
pp3.add( r5 );
pp3.add( r6 );
@@ -77,8 +77,8 @@
Restriction r8 = new VariableRestriction();
Incompatibility i4 = new Incompatibility( r7,
r8 );
- PatternPossibility pp4 = new PatternPossibility();
- pp4.setPatternId( pattern2.getId() );
+ SubPattern pp4 = new SubPattern();
+ pp4.setPatternGuid( pattern2.getGuid() );
pp4.add( r7 );
pp4.add( r8 );
@@ -147,7 +147,7 @@
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Pattern that is always false" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<Object> data = new ArrayList<Object>();
session.setGlobal( "result",
@@ -156,7 +156,7 @@
// This pattern has an error.
VerifierRule rule1 = new VerifierRule();
Pattern pattern1 = new Pattern();
- pattern1.setRuleId( rule1.getId() );
+ pattern1.setRuleGuid( rule1.getGuid() );
data.add( rule1 );
data.add( pattern1 );
@@ -176,7 +176,7 @@
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Rule that is always false" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<Object> data = new ArrayList<Object>();
session.setGlobal( "result",
@@ -185,40 +185,40 @@
// This rule has an error.
VerifierRule rule1 = new VerifierRule();
- PatternPossibility pp1 = new PatternPossibility();
- PatternPossibility pp2 = new PatternPossibility();
+ SubPattern pp1 = new SubPattern();
+ SubPattern pp2 = new SubPattern();
Incompatibility i1 = new Incompatibility( pp1,
pp2 );
- RulePossibility rp1 = new RulePossibility();
- rp1.setRuleId( rule1.getId() );
+ SubRule rp1 = new SubRule();
+ rp1.setRuleGuid( rule1.getGuid() );
rp1.add( pp1 );
rp1.add( pp2 );
- PatternPossibility pp3 = new PatternPossibility();
- PatternPossibility pp4 = new PatternPossibility();
+ SubPattern pp3 = new SubPattern();
+ SubPattern pp4 = new SubPattern();
Incompatibility i2 = new Incompatibility( pp1,
pp2 );
- RulePossibility rp2 = new RulePossibility();
- rp2.setRuleId( rule1.getId() );
+ SubRule rp2 = new SubRule();
+ rp2.setRuleGuid( rule1.getGuid() );
rp2.add( pp1 );
rp2.add( pp2 );
// This pattern does not have an error.
VerifierRule rule2 = new VerifierRule();
- PatternPossibility pp5 = new PatternPossibility();
- PatternPossibility pp6 = new PatternPossibility();
- RulePossibility rp3 = new RulePossibility();
- rp3.setRuleId( rule2.getId() );
+ SubPattern pp5 = new SubPattern();
+ SubPattern pp6 = new SubPattern();
+ SubRule rp3 = new SubRule();
+ rp3.setRuleGuid( rule2.getGuid() );
rp3.add( pp5 );
rp3.add( pp6 );
- PatternPossibility pp7 = new PatternPossibility();
- PatternPossibility pp8 = new PatternPossibility();
+ SubPattern pp7 = new SubPattern();
+ SubPattern pp8 = new SubPattern();
Incompatibility i4 = new Incompatibility( pp7,
pp8 );
- RulePossibility rp4 = new RulePossibility();
- rp4.setRuleId( rule2.getId() );
+ SubRule rp4 = new SubRule();
+ rp4.setRuleGuid( rule2.getGuid() );
rp4.add( pp7 );
rp4.add( pp8 );
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysTrue/AlwaysTruePatternTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysTrue/AlwaysTruePatternTest.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysTrue/AlwaysTruePatternTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -10,12 +10,12 @@
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.SubPattern;
import org.drools.verifier.components.Restriction;
import org.drools.verifier.components.VariableRestriction;
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.AlwaysTrue;
import org.drools.verifier.report.components.Opposites;
import org.drools.verifier.report.components.Severity;
@@ -34,7 +34,7 @@
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Pattern possibility that is always true" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<Object> data = new ArrayList<Object>();
session.setGlobal( "result",
@@ -47,8 +47,8 @@
Restriction r2 = new LiteralRestriction();
Opposites o1 = new Opposites( r1,
r2 );
- PatternPossibility pp1 = new PatternPossibility();
- pp1.setPatternId( pattern1.getId() );
+ SubPattern pp1 = new SubPattern();
+ pp1.setPatternGuid( pattern1.getGuid() );
pp1.add( r1 );
pp1.add( r2 );
@@ -56,8 +56,8 @@
Restriction r4 = new VariableRestriction();
Opposites o2 = new Opposites( r1,
r2 );
- PatternPossibility pp2 = new PatternPossibility();
- pp2.setPatternId( pattern1.getId() );
+ SubPattern pp2 = new SubPattern();
+ pp2.setPatternGuid( pattern1.getGuid() );
pp2.add( r1 );
pp2.add( r2 );
@@ -66,8 +66,8 @@
Restriction r5 = new LiteralRestriction();
Restriction r6 = new LiteralRestriction();
- PatternPossibility pp3 = new PatternPossibility();
- pp3.setPatternId( pattern2.getId() );
+ SubPattern pp3 = new SubPattern();
+ pp3.setPatternGuid( pattern2.getGuid() );
pp3.add( r5 );
pp3.add( r6 );
@@ -75,8 +75,8 @@
Restriction r8 = new VariableRestriction();
Opposites o4 = new Opposites( r7,
r8 );
- PatternPossibility pp4 = new PatternPossibility();
- pp4.setPatternId( pattern2.getId() );
+ SubPattern pp4 = new SubPattern();
+ pp4.setPatternGuid( pattern2.getGuid() );
pp4.add( r7 );
pp4.add( r8 );
@@ -136,7 +136,7 @@
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Pattern that is always true" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<Object> data = new ArrayList<Object>();
session.setGlobal( "result",
@@ -146,25 +146,25 @@
// This pattern is always true.
Pattern pattern1 = new Pattern();
- pattern1.setRuleId( rule1.getId() );
+ pattern1.setRuleGuid( rule1.getGuid() );
- PatternPossibility pp1 = new PatternPossibility();
- pp1.setPatternId( pattern1.getId() );
+ SubPattern pp1 = new SubPattern();
+ pp1.setPatternGuid( pattern1.getGuid() );
AlwaysTrue alwaysTrue1 = new AlwaysTrue( pp1 );
- PatternPossibility pp2 = new PatternPossibility();
- pp2.setPatternId( pattern1.getId() );
+ SubPattern pp2 = new SubPattern();
+ pp2.setPatternGuid( pattern1.getGuid() );
AlwaysTrue alwaysTrue2 = new AlwaysTrue( pp2 );
// This pattern is okay.
Pattern pattern2 = new Pattern();
- pattern2.setRuleId( rule1.getId() );
+ pattern2.setRuleGuid( rule1.getGuid() );
- PatternPossibility pp3 = new PatternPossibility();
- pp3.setPatternId( pattern2.getId() );
+ SubPattern pp3 = new SubPattern();
+ pp3.setPatternGuid( pattern2.getGuid() );
- PatternPossibility pp4 = new PatternPossibility();
- pp4.setPatternId( pattern2.getId() );
+ SubPattern pp4 = new SubPattern();
+ pp4.setPatternGuid( pattern2.getGuid() );
AlwaysTrue alwaysTrue4 = new AlwaysTrue( pp4 );
data.add( rule1 );
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysTrue/AlwaysTrueRuleTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysTrue/AlwaysTrueRuleTest.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/alwaysTrue/AlwaysTrueRuleTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,11 +8,11 @@
import org.drools.StatelessSessionResult;
import org.drools.base.RuleNameMatchesAgendaFilter;
import org.drools.verifier.TestBase;
-import org.drools.verifier.components.PatternPossibility;
-import org.drools.verifier.components.RulePossibility;
+import org.drools.verifier.components.SubPattern;
+import org.drools.verifier.components.SubRule;
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.AlwaysTrue;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.VerifierMessage;
@@ -25,155 +25,155 @@
*/
public class AlwaysTrueRuleTest extends TestBase {
- public void testPatternPossibilities() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Rules.drl"));
+ public void testPatternPossibilities() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Rules.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Rule possibility that is always true"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Rule possibility that is always true" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- Collection<Object> data = new ArrayList<Object>();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ Collection<Object> data = new ArrayList<Object>();
- session.setGlobal("result", result);
+ session.setGlobal( "result",
+ result );
- // This rule is always true.
- VerifierRule rule1 = new VerifierRule();
+ // This rule is always true.
+ VerifierRule rule1 = new VerifierRule();
- RulePossibility rp1 = new RulePossibility();
- PatternPossibility pp1 = new PatternPossibility();
- pp1.setRuleId(rule1.getId());
- AlwaysTrue alwaysTrue1 = new AlwaysTrue(pp1);
- PatternPossibility pp2 = new PatternPossibility();
- pp2.setRuleId(rule1.getId());
- AlwaysTrue alwaysTrue2 = new AlwaysTrue(pp2);
+ SubRule rp1 = new SubRule();
+ SubPattern pp1 = new SubPattern();
+ pp1.setRuleGuid( rule1.getGuid() );
+ AlwaysTrue alwaysTrue1 = new AlwaysTrue( pp1 );
+ SubPattern pp2 = new SubPattern();
+ pp2.setRuleGuid( rule1.getGuid() );
+ AlwaysTrue alwaysTrue2 = new AlwaysTrue( pp2 );
- rp1.add(pp1);
- rp1.add(pp2);
+ rp1.add( pp1 );
+ rp1.add( pp2 );
- // This rule is okay.
- VerifierRule rule2 = new VerifierRule();
+ // This rule is okay.
+ VerifierRule rule2 = new VerifierRule();
- RulePossibility rp2 = new RulePossibility();
- PatternPossibility pp3 = new PatternPossibility();
- pp3.setRuleId(rule2.getId());
- PatternPossibility pp4 = new PatternPossibility();
- pp4.setRuleId(rule2.getId());
- AlwaysTrue alwaysTrue4 = new AlwaysTrue(pp4);
+ SubRule rp2 = new SubRule();
+ SubPattern pp3 = new SubPattern();
+ pp3.setRuleGuid( rule2.getGuid() );
+ SubPattern pp4 = new SubPattern();
+ pp4.setRuleGuid( rule2.getGuid() );
+ AlwaysTrue alwaysTrue4 = new AlwaysTrue( pp4 );
- rp2.add(pp3);
- rp2.add(pp4);
+ rp2.add( pp3 );
+ rp2.add( pp4 );
- data.add(rule1);
- data.add(rp1);
- data.add(pp1);
- data.add(pp2);
- data.add(alwaysTrue1);
- data.add(alwaysTrue2);
+ data.add( rule1 );
+ data.add( rp1 );
+ data.add( pp1 );
+ data.add( pp2 );
+ data.add( alwaysTrue1 );
+ data.add( alwaysTrue2 );
- data.add(rule2);
- data.add(rp2);
- data.add(pp3);
- data.add(pp4);
- data.add(alwaysTrue4);
+ data.add( rule2 );
+ data.add( rp2 );
+ data.add( pp3 );
+ data.add( pp4 );
+ data.add( alwaysTrue4 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
- Iterator iter = sessionResult.iterateObjects();
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
+ Iterator iter = sessionResult.iterateObjects();
- boolean rp1true = false;
- boolean rp2true = false;
- boolean rp3true = false;
- boolean rp4true = false;
- while (iter.hasNext()) {
- Object o = (Object) iter.next();
- if (o instanceof AlwaysTrue) {
- AlwaysTrue alwaysTrue = (AlwaysTrue) o;
- if (!rp1true) {
- rp1true = alwaysTrue.getCause().equals(pp1);
- }
- if (!rp2true) {
- rp2true = alwaysTrue.getCause().equals(pp2);
- }
- if (!rp3true) {
- rp3true = alwaysTrue.getCause().equals(pp3);
- }
- if (!rp4true) {
- rp4true = alwaysTrue.getCause().equals(pp4);
- }
- }
- }
+ boolean rp1true = false;
+ boolean rp2true = false;
+ boolean rp3true = false;
+ boolean rp4true = false;
+ while ( iter.hasNext() ) {
+ Object o = (Object) iter.next();
+ if ( o instanceof AlwaysTrue ) {
+ AlwaysTrue alwaysTrue = (AlwaysTrue) o;
+ if ( !rp1true ) {
+ rp1true = alwaysTrue.getCause().equals( pp1 );
+ }
+ if ( !rp2true ) {
+ rp2true = alwaysTrue.getCause().equals( pp2 );
+ }
+ if ( !rp3true ) {
+ rp3true = alwaysTrue.getCause().equals( pp3 );
+ }
+ if ( !rp4true ) {
+ rp4true = alwaysTrue.getCause().equals( pp4 );
+ }
+ }
+ }
- assertTrue(rp1true);
- assertTrue(rp2true);
- assertFalse(rp3true);
- assertTrue(rp4true);
- }
+ assertTrue( rp1true );
+ assertTrue( rp2true );
+ assertFalse( rp3true );
+ assertTrue( rp4true );
+ }
- public void testPatterns() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Rules.drl"));
+ public void testPatterns() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Rules.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Rule that is always true"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Rule that is always true" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- Collection<Object> data = new ArrayList<Object>();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ Collection<Object> data = new ArrayList<Object>();
- session.setGlobal("result", result);
+ session.setGlobal( "result",
+ result );
- // This rule is always true.
- VerifierRule rule1 = new VerifierRule();
+ // This rule is always true.
+ VerifierRule rule1 = new VerifierRule();
- RulePossibility rp1 = new RulePossibility();
- rp1.setRuleId(rule1.getId());
- AlwaysTrue alwaysTrue1 = new AlwaysTrue(rp1);
+ SubRule rp1 = new SubRule();
+ rp1.setRuleGuid( rule1.getGuid() );
+ AlwaysTrue alwaysTrue1 = new AlwaysTrue( rp1 );
- RulePossibility rp2 = new RulePossibility();
- rp2.setRuleId(rule1.getId());
- AlwaysTrue alwaysTrue2 = new AlwaysTrue(rp2);
+ SubRule rp2 = new SubRule();
+ rp2.setRuleGuid( rule1.getGuid() );
+ AlwaysTrue alwaysTrue2 = new AlwaysTrue( rp2 );
- // This rule is okay.
- VerifierRule rule2 = new VerifierRule();
+ // This rule is okay.
+ VerifierRule rule2 = new VerifierRule();
- RulePossibility rp3 = new RulePossibility();
- rp3.setRuleId(rule2.getId());
+ SubRule rp3 = new SubRule();
+ rp3.setRuleGuid( rule2.getGuid() );
- RulePossibility rp4 = new RulePossibility();
- rp4.setRuleId(rule2.getId());
- AlwaysTrue alwaysTrue4 = new AlwaysTrue(rp4);
+ SubRule rp4 = new SubRule();
+ rp4.setRuleGuid( rule2.getGuid() );
+ AlwaysTrue alwaysTrue4 = new AlwaysTrue( rp4 );
- data.add(rule1);
- data.add(rp1);
- data.add(rp2);
- data.add(alwaysTrue1);
- data.add(alwaysTrue2);
+ data.add( rule1 );
+ data.add( rp1 );
+ data.add( rp2 );
+ data.add( alwaysTrue1 );
+ data.add( alwaysTrue2 );
- data.add(rule2);
- data.add(rp3);
- data.add(rp4);
- data.add(alwaysTrue4);
+ data.add( rule2 );
+ data.add( rp3 );
+ data.add( rp4 );
+ data.add( alwaysTrue4 );
- session.executeWithResults(data);
+ session.executeWithResults( data );
- Iterator<VerifierMessageBase> iter = result.getBySeverity(
- Severity.WARNING).iterator();
+ Iterator<VerifierMessageBase> iter = result.getBySeverity( Severity.WARNING ).iterator();
- boolean works = false;
- while (iter.hasNext()) {
- Object o = (Object) iter.next();
- if (o instanceof VerifierMessage) {
- VerifierMessage message = (VerifierMessage) o;
- if (message.getFaulty().equals(rule1)) {
- works = true;
- } else {
- fail("There can be only one. (And this is not the one)");
- }
- }
- }
+ boolean works = false;
+ while ( iter.hasNext() ) {
+ Object o = (Object) iter.next();
+ if ( o instanceof VerifierMessage ) {
+ VerifierMessage message = (VerifierMessage) o;
+ if ( message.getFaulty().equals( rule1 ) ) {
+ works = true;
+ } else {
+ fail( "There can be only one. (And this is not the one)" );
+ }
+ }
+ }
- assertEquals(0, result.getBySeverity(Severity.ERROR).size());
- assertEquals(1, result.getBySeverity(Severity.WARNING).size());
- assertEquals(0, result.getBySeverity(Severity.NOTE).size());
- assertTrue(works);
- }
+ assertEquals( 0,
+ result.getBySeverity( Severity.ERROR ).size() );
+ assertEquals( 1,
+ result.getBySeverity( Severity.WARNING ).size() );
+ assertEquals( 0,
+ result.getBySeverity( Severity.NOTE ).size() );
+ assertTrue( works );
+ }
}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/data/VerifierDataMapsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/data/VerifierDataMapsTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/data/VerifierDataMapsTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,318 @@
+package org.drools.verifier.data;
+
+import java.util.Collection;
+
+import junit.framework.TestCase;
+
+import org.drools.verifier.components.Constraint;
+import org.drools.verifier.components.EnumField;
+import org.drools.verifier.components.EnumRestriction;
+import org.drools.verifier.components.Field;
+import org.drools.verifier.components.FieldObjectTypeLink;
+import org.drools.verifier.components.InlineEvalDescr;
+import org.drools.verifier.components.LiteralRestriction;
+import org.drools.verifier.components.ObjectType;
+import org.drools.verifier.components.OperatorDescr;
+import org.drools.verifier.components.Pattern;
+import org.drools.verifier.components.SubPattern;
+import org.drools.verifier.components.QualifiedIdentifierRestriction;
+import org.drools.verifier.components.Restriction;
+import org.drools.verifier.components.ReturnValueFieldDescr;
+import org.drools.verifier.components.ReturnValueRestriction;
+import org.drools.verifier.components.RulePackage;
+import org.drools.verifier.components.SubRule;
+import org.drools.verifier.components.TextConsequence;
+import org.drools.verifier.components.Variable;
+import org.drools.verifier.components.VariableRestriction;
+import org.drools.verifier.components.VerifierAccessorDescr;
+import org.drools.verifier.components.VerifierAccumulateDescr;
+import org.drools.verifier.components.VerifierCollectDescr;
+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.VerifierMethodAccessDescr;
+import org.drools.verifier.components.VerifierPredicateDescr;
+import org.drools.verifier.components.VerifierRule;
+
+public class VerifierDataMapsTest extends TestCase {
+
+ public void testSaveVerifierComponentAndGet() {
+ VerifierData data = VerifierReportFactory.newVerifierData();
+
+ VerifierRule rule = new VerifierRule();
+ rule.setGuid( "0" );
+
+ data.add( rule );
+
+ Collection<VerifierComponent> all = data.getAll();
+
+ assertEquals( 1,
+ all.size() );
+ assertEquals( rule,
+ all.toArray()[0] );
+
+ Collection<VerifierRule> rules = data.getAll( VerifierComponentType.RULE );
+
+ assertEquals( 1,
+ rules.size() );
+ assertEquals( rule,
+ rules.toArray()[0] );
+
+ VerifierRule rule2 = data.getVerifierObject( VerifierComponentType.RULE,
+ "0" );
+
+ assertNotNull( rule2 );
+ assertEquals( rule,
+ rule2 );
+ }
+
+ public void testSaveVerifierComponentAndGetForAllComponentTypes() {
+
+ saveVerifierComponentAndGet( fillTestValues( new Constraint() ) );
+ saveVerifierComponentAndGet( fillTestValues( new FieldObjectTypeLink() ) );
+ saveVerifierComponentAndGet( fillTestValues( new InlineEvalDescr() ) );
+ saveVerifierComponentAndGet( fillTestValues( new ObjectType() ) );
+ saveVerifierComponentAndGet( fillTestValues( new OperatorDescr() ) );
+ saveVerifierComponentAndGet( fillTestValues( new SubPattern() ) );
+ saveVerifierComponentAndGet( fillTestValues( new ReturnValueFieldDescr() ) );
+ saveVerifierComponentAndGet( fillTestValues( new RulePackage() ) );
+ saveVerifierComponentAndGet( fillTestValues( new SubRule() ) );
+ saveVerifierComponentAndGet( fillTestValues( new TextConsequence() ) );
+ saveVerifierComponentAndGet( fillTestValues( new Variable() ) );
+ saveVerifierComponentAndGet( fillTestValues( new VerifierAccessorDescr() ) );
+ saveVerifierComponentAndGet( fillTestValues( new VerifierAccumulateDescr() ) );
+ saveVerifierComponentAndGet( fillTestValues( new VerifierCollectDescr() ) );
+ saveVerifierComponentAndGet( fillTestValues( new VerifierEvalDescr() ) );
+ saveVerifierComponentAndGet( fillTestValues( new VerifierFieldAccessDescr() ) );
+ saveVerifierComponentAndGet( fillTestValues( new VerifierFromDescr() ) );
+ saveVerifierComponentAndGet( fillTestValues( new VerifierMethodAccessDescr() ) );
+ saveVerifierComponentAndGet( fillTestValues( new VerifierPredicateDescr() ) );
+ saveVerifierComponentAndGet( fillTestValues( new VerifierRule() ) );
+ }
+
+ public void testSaveVerifierComponentAndGetForAllFields() {
+ saveVerifierComponentAndGet( (Field) fillTestValues( new EnumField() ) );
+ saveVerifierComponentAndGet( (Field) fillTestValues( new Field() ) );
+ }
+
+ public void testSaveVerifierComponentAndGetForAllRestrictions() {
+ saveVerifierComponentAndGet( (Restriction) fillTestValues( new LiteralRestriction() ) );
+ saveVerifierComponentAndGet( (Restriction) fillTestValues( new EnumRestriction() ) );
+ saveVerifierComponentAndGet( (Restriction) fillTestValues( new QualifiedIdentifierRestriction() ) );
+ saveVerifierComponentAndGet( (Restriction) fillTestValues( new ReturnValueRestriction() ) );
+ saveVerifierComponentAndGet( (Restriction) fillTestValues( new ReturnValueRestriction() ) );
+ saveVerifierComponentAndGet( (Restriction) fillTestValues( new VariableRestriction() ) );
+ }
+
+ public void testSavePatternAndGet() {
+ VerifierData data = VerifierReportFactory.newVerifierData();
+
+ VerifierRule rule = (VerifierRule) fillTestValues( new VerifierRule() );
+ rule.setRuleName( "test" );
+ assertNotNull( rule.getRuleName() );
+ assertEquals( "test",
+ rule.getRuleName() );
+
+ ObjectType objectType = (ObjectType) fillTestValues( new ObjectType() );
+ Pattern pattern = (Pattern) fillTestValues( new Pattern() );
+
+ pattern.setRuleGuid( rule.getGuid() );
+ assertNotNull( pattern.getRuleGuid() );
+ assertEquals( rule.getGuid(),
+ pattern.getRuleGuid() );
+
+ pattern.setRuleName( rule.getRuleName() );
+ assertNotNull( pattern.getRuleName() );
+ assertEquals( rule.getRuleName(),
+ pattern.getRuleName() );
+
+ pattern.setObjectTypeGuid( objectType.getGuid() );
+ assertNotNull( pattern.getObjectTypeGuid() );
+ assertEquals( objectType.getGuid(),
+ pattern.getObjectTypeGuid() );
+
+ data.add( rule );
+ data.add( objectType );
+ data.add( pattern );
+
+ Collection<VerifierComponent> all = data.getAll();
+
+ assertEquals( 3,
+ all.size() );
+ assertTrue( all.contains( pattern ) );
+ assertTrue( all.contains( objectType ) );
+ assertTrue( all.contains( rule ) );
+
+ Collection<VerifierComponent> components = data.getAll( pattern.getVerifierComponentType() );
+
+ assertEquals( 1,
+ components.size() );
+ assertEquals( pattern,
+ components.toArray()[0] );
+
+ VerifierComponent objectType2 = data.getVerifierObject( objectType.getVerifierComponentType(),
+ objectType.getGuid() );
+
+ assertNotNull( objectType2 );
+ assertEquals( objectType,
+ objectType2 );
+
+ VerifierComponent rule2 = data.getVerifierObject( rule.getVerifierComponentType(),
+ rule.getGuid() );
+
+ assertNotNull( rule2 );
+ assertEquals( rule,
+ rule2 );
+ }
+
+ private VerifierComponent fillTestValues(VerifierComponent component) {
+ component.setGuid( "0" );
+
+ assertNotNull( component.getGuid() );
+ assertNotNull( component.getVerifierComponentType() );
+
+ return component;
+ }
+
+ private void saveVerifierComponentAndGet(Field field) {
+ VerifierData data = VerifierReportFactory.newVerifierData();
+
+ ObjectType objectType = (ObjectType) fillTestValues( new ObjectType() );
+
+ field.setObjectTypeGuid( objectType.getGuid() );
+
+ data.add( objectType );
+ data.add( field );
+
+ Collection<VerifierComponent> all = data.getAll();
+
+ assertEquals( 2,
+ all.size() );
+ assertTrue( all.contains( objectType ) );
+ assertTrue( all.contains( field ) );
+
+ Collection<VerifierComponent> fields = data.getAll( field.getVerifierComponentType() );
+
+ assertEquals( 1,
+ fields.size() );
+ assertEquals( field,
+ fields.toArray()[0] );
+
+ VerifierComponent field2 = data.getVerifierObject( field.getVerifierComponentType(),
+ field.getGuid() );
+
+ assertNotNull( field2 );
+ assertEquals( field,
+ field2 );
+
+ Collection<VerifierComponent> objectTypes = data.getAll( objectType.getVerifierComponentType() );
+
+ assertEquals( 1,
+ objectTypes.size() );
+ assertEquals( objectType,
+ objectTypes.toArray()[0] );
+
+ VerifierComponent objectType2 = data.getVerifierObject( objectType.getVerifierComponentType(),
+ objectType.getGuid() );
+
+ assertNotNull( objectType2 );
+ assertEquals( objectType,
+ objectType2 );
+ }
+
+ private void saveVerifierComponentAndGet(Restriction component) {
+ VerifierData data = VerifierReportFactory.newVerifierData();
+
+ ObjectType objectType = (ObjectType) fillTestValues( new ObjectType() );
+
+ Field field = (Field) fillTestValues( new Field() );
+ field.setObjectTypeGuid( objectType.getGuid() );
+
+ component.setFieldGuid( field.getGuid() );
+
+ assertNotNull( component.getFieldGuid() );
+
+ data.add( objectType );
+ data.add( field );
+ data.add( component );
+
+ Collection<VerifierComponent> all = data.getAll();
+
+ assertEquals( 3,
+ all.size() );
+ assertTrue( all.contains( objectType ) );
+ assertTrue( all.contains( field ) );
+ assertTrue( all.contains( component ) );
+
+ Collection<VerifierComponent> components = data.getAll( component.getVerifierComponentType() );
+
+ assertEquals( 1,
+ components.size() );
+ assertEquals( component,
+ components.toArray()[0] );
+
+ VerifierComponent component2 = data.getVerifierObject( component.getVerifierComponentType(),
+ component.getGuid() );
+
+ assertNotNull( component2 );
+ assertEquals( component,
+ component2 );
+
+ Collection<VerifierComponent> fields = data.getAll( field.getVerifierComponentType() );
+
+ assertEquals( 1,
+ fields.size() );
+ assertEquals( field,
+ fields.toArray()[0] );
+
+ VerifierComponent field2 = data.getVerifierObject( field.getVerifierComponentType(),
+ field.getGuid() );
+
+ assertNotNull( field2 );
+ assertEquals( field,
+ field2 );
+
+ Collection<VerifierComponent> objectTypes = data.getAll( objectType.getVerifierComponentType() );
+
+ assertEquals( 1,
+ objectTypes.size() );
+ assertEquals( objectType,
+ objectTypes.toArray()[0] );
+
+ VerifierComponent objectType2 = data.getVerifierObject( objectType.getVerifierComponentType(),
+ objectType.getGuid() );
+
+ assertNotNull( objectType2 );
+ assertEquals( objectType,
+ objectType2 );
+ }
+
+ private void saveVerifierComponentAndGet(VerifierComponent component) {
+ VerifierData data = VerifierReportFactory.newVerifierData();
+
+ data.add( component );
+
+ Collection<VerifierComponent> all = data.getAll();
+
+ assertEquals( 1,
+ all.size() );
+ assertEquals( component,
+ all.toArray()[0] );
+
+ Collection<VerifierComponent> components = data.getAll( component.getVerifierComponentType() );
+
+ assertEquals( 1,
+ components.size() );
+ assertEquals( component,
+ components.toArray()[0] );
+
+ VerifierComponent component2 = data.getVerifierObject( component.getVerifierComponentType(),
+ component.getGuid() );
+
+ assertNotNull( component2 );
+ assertEquals( component,
+ component2 );
+ }
+
+}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/equivalence/EquivalentRulesTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -10,8 +10,8 @@
import org.drools.base.RuleNameMatchesAgendaFilter;
import org.drools.verifier.TestBase;
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.redundancy.RedundancyTestBase;
import org.drools.verifier.report.components.Redundancy;
@@ -40,7 +40,7 @@
data.add(rule2);
data.add(r1);
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentPatternsTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -9,8 +9,8 @@
import org.drools.base.RuleNameMatchesAgendaFilter;
import org.drools.verifier.TestBase;
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.VerifierMessage;
import org.drools.verifier.report.components.VerifierMessageBase;
@@ -22,14 +22,14 @@
*/
public class IncoherentPatternsTest extends TestBase {
- public void testIncoherentPatternsInRulePossibility() throws Exception {
+ public void testIncoherentPatternsInSubRule() throws Exception {
StatelessSession session = getStatelessSession(this.getClass()
.getResourceAsStream("Patterns.drl"));
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Incoherent Patterns in rule possibility"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("PatternsTest.drl"), result
.getVerifierData());
@@ -62,7 +62,7 @@
}
}
- public void testIncoherentPatternsInRulePossibilityVariables()
+ public void testIncoherentPatternsInSubRuleVariables()
throws Exception {
StatelessSession session = getStatelessSession(this.getClass()
.getResourceAsStream("Patterns.drl"));
@@ -70,7 +70,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Incoherent Patterns in rule possibility, variables"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("PatternsTest.drl"), result
.getVerifierData());
@@ -104,7 +104,7 @@
}
}
- public void testIncoherentPatternsInRulePossibilityRangesLess()
+ public void testIncoherentPatternsInSubRuleRangesLess()
throws Exception {
StatelessSession session = getStatelessSession(this.getClass()
.getResourceAsStream("Patterns.drl"));
@@ -113,7 +113,7 @@
.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Incoherent Patterns in rule possibility, ranges when not conflicts with lesser value"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("PatternsTest.drl"), result
.getVerifierData());
@@ -145,7 +145,7 @@
}
}
- public void testIncoherentPatternsInRulePossibilityRangesGreater()
+ public void testIncoherentPatternsInSubRuleRangesGreater()
throws Exception {
StatelessSession session = getStatelessSession(this.getClass()
.getResourceAsStream("Patterns.drl"));
@@ -154,7 +154,7 @@
.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Incoherent Patterns in rule possibility, ranges when not conflicts with greater value"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("PatternsTest.drl"), result
.getVerifierData());
@@ -186,7 +186,7 @@
}
}
- public void testIncoherentPatternsInRulePossibilityRangesEqualOrUnequal()
+ public void testIncoherentPatternsInSubRuleRangesEqualOrUnequal()
throws Exception {
StatelessSession session = getStatelessSession(this.getClass()
.getResourceAsStream("Patterns.drl"));
@@ -195,7 +195,7 @@
.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Incoherent Patterns in rule possibility, ranges when not conflicts with equal or unequal value"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("PatternsTest.drl"), result
.getVerifierData());
@@ -227,7 +227,7 @@
}
}
- public void testIncoherentPatternsInRulePossibilityRangesEqualOrUnequalVariables()
+ public void testIncoherentPatternsInSubRuleRangesEqualOrUnequalVariables()
throws Exception {
StatelessSession session = getStatelessSession(this.getClass()
.getResourceAsStream("Patterns.drl"));
@@ -236,7 +236,7 @@
.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Incoherent Patterns in rule possibility, ranges when not conflicts with equal or unequal variables"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("PatternsTest.drl"), result
.getVerifierData());
@@ -267,7 +267,7 @@
}
}
- public void testIncoherentPatternsInRulePossibilityRangesEqualValue()
+ public void testIncoherentPatternsInSubRuleRangesEqualValue()
throws Exception {
StatelessSession session = getStatelessSession(this.getClass()
.getResourceAsStream("Patterns.drl"));
@@ -276,7 +276,7 @@
.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Incoherent Patterns in rule possibility, ranges when not conflicts with equal value"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("PatternsTest.drl"), result
.getVerifierData());
@@ -307,7 +307,7 @@
}
}
- public void testIncoherentPatternsInRulePossibilityRangesEqualVariable()
+ public void testIncoherentPatternsInSubRuleRangesEqualVariable()
throws Exception {
StatelessSession session = getStatelessSession(this.getClass()
.getResourceAsStream("Patterns.drl"));
@@ -316,7 +316,7 @@
.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Incoherent Patterns in rule possibility, ranges when not conflicts with equal variable"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("PatternsTest.drl"), result
.getVerifierData());
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentRestrictionsTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -9,8 +9,8 @@
import org.drools.base.RuleNameMatchesAgendaFilter;
import org.drools.verifier.TestBase;
import org.drools.verifier.components.Pattern;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.VerifierMessage;
import org.drools.verifier.report.components.VerifierMessageBase;
@@ -22,12 +22,12 @@
*/
public class IncoherentRestrictionsTest extends TestBase {
- public void testIncoherentLiteralRestrictionsInPatternPossibility() throws Exception {
+ public void testIncoherentLiteralRestrictionsInSubPattern() throws Exception {
StatelessSession session = getStatelessSession( getClass().getResourceAsStream( "Restrictions.drl" ) );
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent LiteralRestrictions in pattern possibility" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection< ? extends Object> testData = getTestData( getClass().getResourceAsStream( "RestrictionsTest.drl" ),
result.getVerifierData() );
@@ -57,12 +57,12 @@
}
}
- public void testIncoherentLiteralRestrictionsInPatternPossibilityImpossibleRanges() throws Exception {
+ public void testIncoherentLiteralRestrictionsInSubPatternImpossibleRanges() throws Exception {
StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Restrictions.drl" ) );
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent LiteralRestrictions with ranges in pattern possibility, impossible ranges" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "RestrictionsTest.drl" ),
result.getVerifierData() );
@@ -91,12 +91,12 @@
}
}
- public void testIncoherentLiteralRestrictionsInPatternPossibilityImpossibleEqualityLess() throws Exception {
+ public void testIncoherentLiteralRestrictionsInSubPatternImpossibleEqualityLess() throws Exception {
StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Restrictions.drl" ) );
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent LiteralRestrictions with ranges in pattern possibility, impossible equality less or equal" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "RestrictionsTest.drl" ),
result.getVerifierData() );
@@ -126,12 +126,12 @@
}
}
- public void testIncoherentLiteralRestrictionsInPatternPossibilityImpossibleEqualityGreater() throws Exception {
+ public void testIncoherentLiteralRestrictionsInSubPatternImpossibleEqualityGreater() throws Exception {
StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Restrictions.drl" ) );
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent LiteralRestrictions with ranges in pattern possibility, impossible equality greater" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "RestrictionsTest.drl" ),
result.getVerifierData() );
@@ -160,12 +160,12 @@
}
}
- public void testIncoherentLiteralRestrictionsInPatternPossibilityImpossibleRange() throws Exception {
+ public void testIncoherentLiteralRestrictionsInSubPatternImpossibleRange() throws Exception {
StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Restrictions.drl" ) );
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent LiteralRestrictions with ranges in pattern possibility, impossible range" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "RestrictionsTest.drl" ),
result.getVerifierData() );
@@ -194,12 +194,12 @@
}
}
- public void testIncoherentVariableRestrictionsInPatternPossibility() throws Exception {
+ public void testIncoherentVariableRestrictionsInSubPattern() throws Exception {
StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Restrictions.drl" ) );
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent VariableRestrictions in pattern possibility" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "RestrictionsTest.drl" ),
result.getVerifierData() );
@@ -230,12 +230,12 @@
}
}
- public void testIncoherentVariableRestrictionsInPatternPossibilityImpossibleRange() throws Exception {
+ public void testIncoherentVariableRestrictionsInSubPatternImpossibleRange() throws Exception {
StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Restrictions.drl" ) );
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent VariableRestrictions in pattern possibility, impossible range" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "RestrictionsTest.drl" ),
result.getVerifierData() );
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityPatternsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityPatternsTest.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityPatternsTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -10,7 +10,7 @@
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.SubPattern;
import org.drools.verifier.components.Restriction;
import org.drools.verifier.report.components.Cause;
import org.drools.verifier.report.components.CauseType;
@@ -30,8 +30,8 @@
/*
* Working pair
*/
- PatternPossibility pp1 = new PatternPossibility();
- PatternPossibility pp2 = new PatternPossibility();
+ SubPattern pp1 = new SubPattern();
+ SubPattern pp2 = new SubPattern();
Restriction r1 = new LiteralRestriction();
pp1.add(r1);
@@ -51,8 +51,8 @@
/*
* Another working pair.
*/
- PatternPossibility pp3 = new PatternPossibility();
- PatternPossibility pp4 = new PatternPossibility();
+ SubPattern pp3 = new SubPattern();
+ SubPattern pp4 = new SubPattern();
Restriction r5 = new LiteralRestriction();
pp3.add(r5);
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incompatibility/IncompatibilityRestrictionsTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -19,247 +19,243 @@
public class IncompatibilityRestrictionsTest extends IncompatibilityBase {
- public void testLiteralRestrictionsIncompatibilityLessOrEqual()
- throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Restrictions.drl"));
+ 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"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incompatible LiteralRestrictions with ranges in pattern possibility, impossible equality less or equal" ) );
- Collection<Object> data = new ArrayList<Object>();
+ 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");
+ /*
+ * Working pair
+ */
+ LiteralRestriction r1 = new LiteralRestriction();
+ r1.setOperator( Operator.EQUAL );
+ r1.setPatternGuid( "0" );
+ r1.setFieldGuid( "0" );
+ r1.setValue( "10" );
- LiteralRestriction r2 = new LiteralRestriction();
- r2.setOperator(Operator.LESS);
- r2.setPatternId(0);
- r2.setFieldId(0);
- r2.setValue("1");
+ LiteralRestriction r2 = new LiteralRestriction();
+ r2.setOperator( Operator.LESS );
+ r2.setPatternGuid( "0" );
+ r2.setFieldGuid( "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");
+ /*
+ * Pair that doesn't work.
+ */
+ LiteralRestriction r3 = new LiteralRestriction();
+ r3.setOperator( Operator.GREATER_OR_EQUAL );
+ r3.setPatternGuid( "1" );
+ r3.setFieldGuid( "1" );
+ r3.setValue( "1" );
- LiteralRestriction r4 = new LiteralRestriction();
- r4.setOperator(Operator.EQUAL);
- r4.setPatternId(1);
- r4.setFieldId(1);
- r4.setValue("10");
+ LiteralRestriction r4 = new LiteralRestriction();
+ r4.setOperator( Operator.EQUAL );
+ r4.setPatternGuid( "1" );
+ r4.setFieldGuid( "1" );
+ r4.setValue( "10" );
- data.add(r1);
- data.add(r2);
- data.add(r3);
- data.add(r4);
+ data.add( r1 );
+ data.add( r2 );
+ data.add( r3 );
+ data.add( r4 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createIncompatibilityMap(CauseType.RESTRICTION,
- sessionResult.iterateObjects());
+ Map<Cause, Set<Cause>> map = createIncompatibilityMap( CauseType.RESTRICTION,
+ sessionResult.iterateObjects() );
- assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
- .causeMapContains(map, r2, r1)));
+ assertTrue( (TestBase.causeMapContains( map,
+ r1,
+ r2 ) ^ TestBase.causeMapContains( map,
+ r2,
+ r1 )) );
- if (!map.isEmpty()) {
- fail("More incompatibilities than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More incompatibilities than was expected." );
+ }
+ }
- public void testLiteralRestrictionsIncompatibilityGreater()
- throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Restrictions.drl"));
+ 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"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incompatible LiteralRestrictions with ranges in pattern possibility, impossible equality greater" ) );
- Collection<Object> data = new ArrayList<Object>();
+ 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");
+ /*
+ * Working pair
+ */
+ LiteralRestriction r1 = new LiteralRestriction();
+ r1.setOperator( Operator.GREATER );
+ r1.setPatternGuid( "0" );
+ r1.setFieldGuid( "0" );
+ r1.setValue( "10" );
- LiteralRestriction r2 = new LiteralRestriction();
- r2.setOperator(Operator.EQUAL);
- r2.setPatternId(0);
- r2.setFieldId(0);
- r2.setValue("1");
+ LiteralRestriction r2 = new LiteralRestriction();
+ r2.setOperator( Operator.EQUAL );
+ r2.setPatternGuid( "0" );
+ r2.setFieldGuid( "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");
+ /*
+ * Pair that doesn't work.
+ */
+ LiteralRestriction r3 = new LiteralRestriction();
+ r3.setOperator( Operator.GREATER_OR_EQUAL );
+ r3.setPatternGuid( "1" );
+ r3.setFieldGuid( "1" );
+ r3.setValue( "1" );
- LiteralRestriction r4 = new LiteralRestriction();
- r4.setOperator(Operator.EQUAL);
- r4.setPatternId(1);
- r4.setFieldId(1);
- r4.setValue("10");
+ LiteralRestriction r4 = new LiteralRestriction();
+ r4.setOperator( Operator.EQUAL );
+ r4.setPatternGuid( "1" );
+ r4.setFieldGuid( "1" );
+ r4.setValue( "10" );
- data.add(r1);
- data.add(r2);
- data.add(r3);
- data.add(r4);
+ data.add( r1 );
+ data.add( r2 );
+ data.add( r3 );
+ data.add( r4 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createIncompatibilityMap(CauseType.RESTRICTION,
- sessionResult.iterateObjects());
+ Map<Cause, Set<Cause>> map = createIncompatibilityMap( CauseType.RESTRICTION,
+ sessionResult.iterateObjects() );
- assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
- .causeMapContains(map, r2, r1)));
+ assertTrue( (TestBase.causeMapContains( map,
+ r1,
+ r2 ) ^ TestBase.causeMapContains( map,
+ r2,
+ r1 )) );
- if (!map.isEmpty()) {
- fail("More incompatibilities than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More incompatibilities than was expected." );
+ }
+ }
- public void testLiteralRestrictionsIncompatibilityImpossibleRange()
- throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Restrictions.drl"));
+ 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"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incompatible LiteralRestrictions with ranges in pattern possibility, impossible range" ) );
- Collection<Object> data = new ArrayList<Object>();
+ 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");
+ /*
+ * Working pair
+ */
+ LiteralRestriction r1 = new LiteralRestriction();
+ r1.setOperator( Operator.GREATER );
+ r1.setPatternGuid( "0" );
+ r1.setFieldGuid( "0" );
+ r1.setValue( "10" );
- LiteralRestriction r2 = new LiteralRestriction();
- r2.setOperator(Operator.LESS);
- r2.setPatternId(0);
- r2.setFieldId(0);
- r2.setValue("10");
+ LiteralRestriction r2 = new LiteralRestriction();
+ r2.setOperator( Operator.LESS );
+ r2.setPatternGuid( "0" );
+ r2.setFieldGuid( "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");
+ /*
+ * Pair that doesn't work.
+ */
+ LiteralRestriction r3 = new LiteralRestriction();
+ r3.setOperator( Operator.GREATER_OR_EQUAL );
+ r3.setPatternGuid( "1" );
+ r3.setFieldGuid( "1" );
+ r3.setValue( "1" );
- LiteralRestriction r4 = new LiteralRestriction();
- r4.setOperator(Operator.EQUAL);
- r4.setPatternId(1);
- r4.setFieldId(1);
- r4.setValue("10");
+ LiteralRestriction r4 = new LiteralRestriction();
+ r4.setOperator( Operator.EQUAL );
+ r4.setPatternGuid( "1" );
+ r4.setFieldGuid( "1" );
+ r4.setValue( "10" );
- data.add(r1);
- data.add(r2);
- data.add(r3);
- data.add(r4);
+ data.add( r1 );
+ data.add( r2 );
+ data.add( r3 );
+ data.add( r4 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createIncompatibilityMap(CauseType.RESTRICTION,
- sessionResult.iterateObjects());
+ Map<Cause, Set<Cause>> map = createIncompatibilityMap( CauseType.RESTRICTION,
+ sessionResult.iterateObjects() );
- assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
- .causeMapContains(map, r2, r1)));
+ assertTrue( (TestBase.causeMapContains( map,
+ r1,
+ r2 ) ^ TestBase.causeMapContains( map,
+ r2,
+ r1 )) );
- if (!map.isEmpty()) {
- fail("More incompatibilities than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More incompatibilities than was expected." );
+ }
+ }
- public void testVariableRestrictionsIncompatibilityImpossibleRange()
- throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Restrictions.drl"));
+ public void testVariableRestrictionsIncompatibilityImpossibleRange() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Restrictions.drl" ) );
- session
- .setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Incoherent VariableRestrictions in pattern possibility, impossible range"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent VariableRestrictions in pattern possibility, impossible range" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- /*
- * Working pair
- */
- Variable variable1 = new Variable();
- variable1.setObjectId(0);
- variable1.setObjectType(VerifierComponentType.FIELD);
+ /*
+ * Working pair
+ */
+ Variable variable1 = new Variable();
+ variable1.setObjectTypeGuid( "0" );
+ variable1.setObjectTypeType( VerifierComponentType.FIELD.getType() );
- VariableRestriction r1 = new VariableRestriction();
- r1.setOperator(Operator.GREATER);
- r1.setPatternId(0);
- r1.setFieldId(0);
- r1.setVariable(variable1);
+ VariableRestriction r1 = new VariableRestriction();
+ r1.setOperator( Operator.GREATER );
+ r1.setPatternGuid( "0" );
+ r1.setFieldGuid( "0" );
+ r1.setVariable( variable1 );
- VariableRestriction r2 = new VariableRestriction();
- r2.setOperator(Operator.LESS);
- r2.setPatternId(0);
- r2.setFieldId(0);
- r2.setVariable(variable1);
+ VariableRestriction r2 = new VariableRestriction();
+ r2.setOperator( Operator.LESS );
+ r2.setPatternGuid( "0" );
+ r2.setFieldGuid( "0" );
+ r2.setVariable( variable1 );
- /*
- * Pair that doesn't work.
- */
- Variable variable2 = new Variable();
- variable2.setObjectId(1);
- variable2.setObjectType(VerifierComponentType.FIELD);
+ /*
+ * Pair that doesn't work.
+ */
+ Variable variable2 = new Variable();
+ variable2.setObjectTypeGuid( "1" );
+ variable2.setObjectTypeType( VerifierComponentType.FIELD.getType() );
- VariableRestriction r3 = new VariableRestriction();
- r3.setOperator(Operator.GREATER_OR_EQUAL);
- r3.setPatternId(1);
- r3.setFieldId(1);
- r3.setVariable(variable2);
+ VariableRestriction r3 = new VariableRestriction();
+ r3.setOperator( Operator.GREATER_OR_EQUAL );
+ r3.setPatternGuid( "1" );
+ r3.setFieldGuid( "1" );
+ r3.setVariable( variable2 );
- VariableRestriction r4 = new VariableRestriction();
- r4.setOperator(Operator.EQUAL);
- r4.setPatternId(1);
- r4.setFieldId(1);
- r4.setVariable(variable2);
+ VariableRestriction r4 = new VariableRestriction();
+ r4.setOperator( Operator.EQUAL );
+ r4.setPatternGuid( "1" );
+ r4.setFieldGuid( "1" );
+ r4.setVariable( variable2 );
- data.add(r1);
- data.add(r2);
- data.add(r3);
- data.add(r4);
+ data.add( r1 );
+ data.add( r2 );
+ data.add( r3 );
+ data.add( r4 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createIncompatibilityMap(CauseType.RESTRICTION,
- sessionResult.iterateObjects());
+ Map<Cause, Set<Cause>> map = createIncompatibilityMap( CauseType.RESTRICTION,
+ sessionResult.iterateObjects() );
- assertTrue((TestBase.causeMapContains(map, r1, r2) ^ TestBase
- .causeMapContains(map, r2, r1)));
+ assertTrue( (TestBase.causeMapContains( map,
+ r1,
+ r2 ) ^ TestBase.causeMapContains( map,
+ r2,
+ r1 )) );
- if (!map.isEmpty()) {
- fail("More incompatibilities than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More incompatibilities than was expected." );
+ }
+ }
}
Added: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/misc/FindMissingNumberTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/misc/FindMissingNumberTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/misc/FindMissingNumberTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,131 @@
+package org.drools.verifier.misc;
+
+import java.math.BigDecimal;
+
+import org.drools.verifier.misc.FindMissingNumber;
+
+import junit.framework.TestCase;
+
+public class FindMissingNumberTest extends TestCase {
+
+ public void testfindSumPattern() {
+ // Sum +2 missing number 4
+ assertTrue(FindMissingNumber.findSumPattern(
+ new BigDecimal[] { BigDecimal.valueOf(2),
+ BigDecimal.valueOf(6), BigDecimal.valueOf(8),
+ BigDecimal.valueOf(10) }).doubleValue() == 4);
+ // +10 missing number 50
+ assertTrue(FindMissingNumber.findSumPattern(
+ new BigDecimal[] { BigDecimal.valueOf(10),
+ BigDecimal.valueOf(20), BigDecimal.valueOf(30),
+ BigDecimal.valueOf(40), BigDecimal.valueOf(60),
+ BigDecimal.valueOf(70) }).doubleValue() == 50);
+ // +66 missing number 308
+ assertTrue(FindMissingNumber.findSumPattern(
+ new BigDecimal[] { BigDecimal.valueOf(110),
+ BigDecimal.valueOf(176), BigDecimal.valueOf(242),
+ BigDecimal.valueOf(374) }).doubleValue() == 308);
+
+ // Deduction -2 missing number 8
+ assertTrue(FindMissingNumber.findSumPattern(
+ new BigDecimal[] { BigDecimal.valueOf(10),
+ BigDecimal.valueOf(6), BigDecimal.valueOf(4),
+ BigDecimal.valueOf(2) }).doubleValue() == 8);
+ // -337 missing number -11
+ assertTrue(FindMissingNumber.findSumPattern(
+ new BigDecimal[] { BigDecimal.valueOf(663),
+ BigDecimal.valueOf(326), BigDecimal.valueOf(-348),
+ BigDecimal.valueOf(-685) }).doubleValue() == -11);
+ // -31 missing number 4350
+ assertTrue(FindMissingNumber.findSumPattern(
+ new BigDecimal[] { BigDecimal.valueOf(4443),
+ BigDecimal.valueOf(4412), BigDecimal.valueOf(4381),
+ BigDecimal.valueOf(4319) }).doubleValue() == 4350);
+
+ // Not valid
+ // Not in pattern.
+ assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+ BigDecimal.valueOf(1), BigDecimal.valueOf(2),
+ BigDecimal.valueOf(4), BigDecimal.valueOf(6),
+ BigDecimal.valueOf(8), BigDecimal.valueOf(11) }) == null);
+ assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+ BigDecimal.valueOf(5), BigDecimal.valueOf(3),
+ BigDecimal.valueOf(54353), BigDecimal.valueOf(54554),
+ BigDecimal.valueOf(232), BigDecimal.valueOf(123) }) == null);
+ // No missing values.
+ assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+ BigDecimal.valueOf(2), BigDecimal.valueOf(4),
+ BigDecimal.valueOf(6), BigDecimal.valueOf(8),
+ BigDecimal.valueOf(10), BigDecimal.valueOf(12),
+ BigDecimal.valueOf(14) }) == null);
+ assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+ BigDecimal.valueOf(10), BigDecimal.valueOf(20),
+ BigDecimal.valueOf(30), BigDecimal.valueOf(40),
+ BigDecimal.valueOf(50), BigDecimal.valueOf(60) }) == null);
+ assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+ BigDecimal.valueOf(-15), BigDecimal.valueOf(-10),
+ BigDecimal.valueOf(-5), BigDecimal.valueOf(0),
+ BigDecimal.valueOf(5), BigDecimal.valueOf(10),
+ BigDecimal.valueOf(15) }) == null);
+ // Under 4 values always returns null.
+ assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+ BigDecimal.valueOf(2), BigDecimal.valueOf(4),
+ BigDecimal.valueOf(6) }) == null);
+ assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+ BigDecimal.valueOf(2), BigDecimal.valueOf(4) }) == null);
+ assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] { BigDecimal
+ .valueOf(2) }) == null);
+ }
+
+ public void testFindMultiplicationPattern() {
+
+ // Multiplication
+ // *2 missing number 4
+ assertTrue(FindMissingNumber.findMultiplicationPattern(
+ new BigDecimal[] { BigDecimal.valueOf(2),
+ BigDecimal.valueOf(8), BigDecimal.valueOf(16),
+ BigDecimal.valueOf(32), BigDecimal.valueOf(64) })
+ .doubleValue() == 4);
+ // *17 missing number 383214
+ assertTrue(FindMissingNumber.findMultiplicationPattern(
+ new BigDecimal[] { BigDecimal.valueOf(78),
+ BigDecimal.valueOf(1326), BigDecimal.valueOf(22542),
+ BigDecimal.valueOf(6514638) }).doubleValue() == 383214);
+ // *1,23 missing number 2016.6957
+ assertTrue(FindMissingNumber.findMultiplicationPattern(
+ new BigDecimal[] { BigDecimal.valueOf(1333),
+ BigDecimal.valueOf(1639.59),
+ BigDecimal.valueOf(2480.535711),
+ BigDecimal.valueOf(3051.05892453) }).doubleValue() == 2016.6957);
+
+ // Division
+ // /2 (*0.5) missing number 128
+ assertTrue(FindMissingNumber.findMultiplicationPattern(
+ new BigDecimal[] { BigDecimal.valueOf(256),
+ BigDecimal.valueOf(64), BigDecimal.valueOf(32),
+ BigDecimal.valueOf(16), BigDecimal.valueOf(8),
+ BigDecimal.valueOf(4), BigDecimal.valueOf(2) })
+ .doubleValue() == 128);
+ // /10 (*0.1) missing number 1
+ assertTrue(FindMissingNumber.findMultiplicationPattern(
+ new BigDecimal[] { BigDecimal.valueOf(10000),
+ BigDecimal.valueOf(1000), BigDecimal.valueOf(100),
+ BigDecimal.valueOf(10), BigDecimal.valueOf(0.1),
+ BigDecimal.valueOf(0.01) }).doubleValue() == 1);
+
+ // Not valid
+ // Not in pattern.
+ assertTrue(FindMissingNumber.findMultiplicationPattern(new BigDecimal[] {
+ BigDecimal.valueOf(111.2), BigDecimal.valueOf(3323),
+ BigDecimal.valueOf(234.434), BigDecimal.valueOf(44343),
+ BigDecimal.valueOf(434) }) == null);
+ assertTrue(FindMissingNumber.findMultiplicationPattern(new BigDecimal[] {
+ BigDecimal.valueOf(1), BigDecimal.valueOf(2),
+ BigDecimal.valueOf(3), BigDecimal.valueOf(4),
+ BigDecimal.valueOf(5), BigDecimal.valueOf(6),
+ BigDecimal.valueOf(7), BigDecimal.valueOf(5),
+ BigDecimal.valueOf(4), BigDecimal.valueOf(3),
+ BigDecimal.valueOf(2), BigDecimal.valueOf(1),
+ BigDecimal.valueOf(1), BigDecimal.valueOf(1) }) == null);
+ }
+}
Added: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/misc/PackageDescrVisitorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/misc/PackageDescrVisitorTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/misc/PackageDescrVisitorTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,45 @@
+package org.drools.verifier.misc;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.Collection;
+
+import org.drools.compiler.DrlParser;
+import org.drools.compiler.DroolsParserException;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.verifier.Verifier;
+import org.drools.verifier.data.VerifierComponent;
+import org.drools.verifier.data.VerifierData;
+import org.drools.verifier.data.VerifierReportFactory;
+
+import junit.framework.TestCase;
+
+public class PackageDescrVisitorTest extends TestCase {
+
+ public void testVisit() throws DroolsParserException,
+ UnknownDescriptionException {
+ PackageDescrVisitor visitor = new PackageDescrVisitor();
+ VerifierData data = VerifierReportFactory.newVerifierData();
+
+ assertNotNull( data );
+
+ Reader drlReader = new InputStreamReader( Verifier.class.getResourceAsStream( "Misc3.drl" ) );
+ PackageDescr packageDescr = new DrlParser().parse( drlReader );
+
+ assertNotNull( packageDescr );
+
+ visitor.addPackageDescrToData( packageDescr,
+ data );
+
+ Collection<VerifierComponent> all = data.getAll();
+
+ assertNotNull( all );
+ assertEquals( 49,
+ all.size() );
+
+// for ( VerifierComponent verifierComponent : all ) {
+// System.out.println( verifierComponent );
+// }
+ }
+
+}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/missingEquality/MissingEqualityTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -9,8 +9,8 @@
import org.drools.verifier.TestBase;
import org.drools.verifier.components.LiteralRestriction;
import org.drools.verifier.components.VariableRestriction;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Cause;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.VerifierMessage;
@@ -25,7 +25,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Missing restriction in LiteralRestrictions"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingEqualityTest.drl"), result
.getVerifierData());
@@ -65,7 +65,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Missing restriction in VariableRestrictions"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> testData = getTestData(this.getClass()
.getResourceAsStream("MissingEqualityTest.drl"), result
.getVerifierData());
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositePatternsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositePatternsTest.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositePatternsTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -10,7 +10,7 @@
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.SubPattern;
import org.drools.verifier.components.Restriction;
import org.drools.verifier.report.components.Cause;
import org.drools.verifier.report.components.CauseType;
@@ -30,8 +30,8 @@
/*
* Working pair
*/
- PatternPossibility pp1 = new PatternPossibility();
- PatternPossibility pp2 = new PatternPossibility();
+ SubPattern pp1 = new SubPattern();
+ SubPattern pp2 = new SubPattern();
Restriction r1 = new LiteralRestriction();
pp1.add(r1);
@@ -51,8 +51,8 @@
/*
* Pair that doesn't work.
*/
- PatternPossibility pp3 = new PatternPossibility();
- PatternPossibility pp4 = new PatternPossibility();
+ SubPattern pp3 = new SubPattern();
+ SubPattern pp4 = new SubPattern();
Restriction r5 = new LiteralRestriction();
pp3.add(r5);
Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositeRestrictionsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositeRestrictionsTest.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/opposites/OppositeRestrictionsTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -20,301 +20,310 @@
public class OppositeRestrictionsTest extends OppositesBase {
- public void testLiteralRestrictionOpposite() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Restrictions.drl"));
+ public void testLiteralRestrictionOpposite() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Restrictions.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Opposite LiteralRestrictions"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Opposite LiteralRestrictions" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- LiteralRestriction r1 = new LiteralRestriction();
- r1.setFieldId(0);
- r1.setOperator(Operator.EQUAL);
- r1.setValue("1");
+ LiteralRestriction r1 = new LiteralRestriction();
+ r1.setFieldGuid( "0" );
+ r1.setOperator( Operator.EQUAL );
+ r1.setValue( "1" );
- LiteralRestriction r2 = new LiteralRestriction();
- r2.setFieldId(0);
- r2.setOperator(Operator.NOT_EQUAL);
- r2.setValue("1");
+ LiteralRestriction r2 = new LiteralRestriction();
+ r2.setFieldGuid( "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 r3 = new LiteralRestriction();
+ r3.setFieldGuid( "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 r4 = new LiteralRestriction();
+ r4.setFieldGuid( "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 r5 = new LiteralRestriction();
+ r5.setFieldGuid( "0" );
+ r5.setOperator( MatchesEvaluatorsDefinition.MATCHES );
+ r5.setValue( "foo" );
- LiteralRestriction r6 = new LiteralRestriction();
- r6.setFieldId(0);
- r6.setOperator(MatchesEvaluatorsDefinition.NOT_MATCHES);
- r6.setValue("foo");
+ LiteralRestriction r6 = new LiteralRestriction();
+ r6.setFieldGuid( "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);
+ data.add( r1 );
+ data.add( r2 );
+ data.add( r3 );
+ data.add( r4 );
+ data.add( r5 );
+ data.add( r6 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createOppositesMap(CauseType.RESTRICTION,
- sessionResult.iterateObjects());
+ 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)));
+ 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.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More opposites than was expected." );
+ }
+ }
- public void testLiteralRestrictionOppositeWithRangesGreaterOrEqualAndLess()
- throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Restrictions.drl"));
+ 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"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Opposite LiteralRestrictions with ranges, greater or equal - less" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- LiteralRestriction r1 = new LiteralRestriction();
- r1.setFieldId(0);
- r1.setOperator(Operator.GREATER_OR_EQUAL);
- r1.setValue("1");
+ LiteralRestriction r1 = new LiteralRestriction();
+ r1.setFieldGuid( "0" );
+ r1.setOperator( Operator.GREATER_OR_EQUAL );
+ r1.setValue( "1" );
- LiteralRestriction r2 = new LiteralRestriction();
- r2.setFieldId(0);
- r2.setOperator(Operator.LESS);
- r2.setValue("1");
+ LiteralRestriction r2 = new LiteralRestriction();
+ r2.setFieldGuid( "0" );
+ r2.setOperator( Operator.LESS );
+ r2.setValue( "1" );
- data.add(r1);
- data.add(r2);
+ data.add( r1 );
+ data.add( r2 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createOppositesMap(CauseType.RESTRICTION,
- sessionResult.iterateObjects());
+ 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,
+ r1,
+ r2 ) ^ TestBase.causeMapContains( map,
+ r2,
+ r1 )) );
- if (!map.isEmpty()) {
- fail("More opposites than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More opposites than was expected." );
+ }
+ }
- public void testLiteralRestrictionOppositeWithRangesGreaterAndLessOrEqual()
- throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Restrictions.drl"));
+ 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"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Opposite LiteralRestrictions with ranges, greater - less or equal" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- LiteralRestriction r1 = new LiteralRestriction();
- r1.setFieldId(0);
- r1.setOperator(Operator.GREATER);
- r1.setValue("1");
+ LiteralRestriction r1 = new LiteralRestriction();
+ r1.setFieldGuid( "0" );
+ r1.setOperator( Operator.GREATER );
+ r1.setValue( "1" );
- LiteralRestriction r2 = new LiteralRestriction();
- r2.setFieldId(0);
- r2.setOperator(Operator.LESS_OR_EQUAL);
- r2.setValue("1");
+ LiteralRestriction r2 = new LiteralRestriction();
+ r2.setFieldGuid( "0" );
+ r2.setOperator( Operator.LESS_OR_EQUAL );
+ r2.setValue( "1" );
- data.add(r1);
- data.add(r2);
+ data.add( r1 );
+ data.add( r2 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createOppositesMap(CauseType.RESTRICTION,
- sessionResult.iterateObjects());
+ 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,
+ r1,
+ r2 ) ^ TestBase.causeMapContains( map,
+ r2,
+ r1 )) );
- if (!map.isEmpty()) {
- fail("More opposites than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More opposites than was expected." );
+ }
+ }
- public void testLiteralRestrictionOppositeWithRangesLessAndGreaterForIntsAndDates()
- throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Restrictions.drl"));
+ 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"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Opposite LiteralRestrictions with ranges, less - greater for ints and dates" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- LiteralRestriction r1 = new LiteralRestriction();
- r1.setFieldId(0);
- r1.setOperator(Operator.GREATER);
- r1.setValue("0");
+ LiteralRestriction r1 = new LiteralRestriction();
+ r1.setFieldGuid( "0" );
+ r1.setOperator( Operator.GREATER );
+ r1.setValue( "0" );
- LiteralRestriction r2 = new LiteralRestriction();
- r2.setFieldId(0);
- r2.setOperator(Operator.LESS);
- r2.setValue("1");
+ LiteralRestriction r2 = new LiteralRestriction();
+ r2.setFieldGuid( "0" );
+ r2.setOperator( Operator.LESS );
+ r2.setValue( "1" );
- data.add(r1);
- data.add(r2);
+ data.add( r1 );
+ data.add( r2 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createOppositesMap(CauseType.RESTRICTION,
- sessionResult.iterateObjects());
+ 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,
+ r1,
+ r2 ) ^ TestBase.causeMapContains( map,
+ r2,
+ r1 )) );
- if (!map.isEmpty()) {
- fail("More opposites than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More opposites than was expected." );
+ }
+ }
- public void testLiteralRestrictionOppositeWithRangesLessOrEqualAndGreaterOrEqualForIntsAndDates()
- throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Restrictions.drl"));
+ 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"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Opposite LiteralRestrictions with ranges, less or equal - greater or equal for ints and dates" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- LiteralRestriction r1 = new LiteralRestriction();
- r1.setFieldId(0);
- r1.setOperator(Operator.GREATER_OR_EQUAL);
- r1.setValue("1");
+ LiteralRestriction r1 = new LiteralRestriction();
+ r1.setFieldGuid( "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");
+ LiteralRestriction r2 = new LiteralRestriction();
+ r2.setFieldGuid( "0" );
+ r2.setOperator( Operator.LESS_OR_EQUAL );
+ r2.setValue( "0" );
- data.add(r1);
- data.add(r2);
+ data.add( r1 );
+ data.add( r2 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createOppositesMap(CauseType.RESTRICTION,
- sessionResult.iterateObjects());
+ 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,
+ r1,
+ r2 ) ^ TestBase.causeMapContains( map,
+ r2,
+ r1 )) );
- if (!map.isEmpty()) {
- fail("More opposites than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More opposites than was expected." );
+ }
+ }
- public void testVariableRestrictionOpposite() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Restrictions.drl"));
+ public void testVariableRestrictionOpposite() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Restrictions.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Opposite VariableRestrictions"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Opposite VariableRestrictions" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- /*
- * Working pair
- */
- Variable variable1 = new Variable();
- variable1.setObjectId(1);
- variable1.setObjectType(VerifierComponentType.FIELD);
+ /*
+ * Working pair
+ */
+ Variable variable1 = new Variable();
+ variable1.setObjectTypeGuid( "1" );
+ variable1.setObjectTypeType( VerifierComponentType.FIELD.getType() );
- VariableRestriction r1 = new VariableRestriction();
- r1.setPatternId(0);
- r1.setFieldId(0);
- r1.setOperator(Operator.GREATER_OR_EQUAL);
- r1.setVariable(variable1);
+ VariableRestriction r1 = new VariableRestriction();
+ r1.setPatternGuid( "0" );
+ r1.setFieldGuid( "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);
+ VariableRestriction r2 = new VariableRestriction();
+ r1.setPatternGuid( "0" );
+ r2.setFieldGuid( "0" );
+ r2.setOperator( Operator.LESS );
+ r2.setVariable( variable1 );
- String containsOperator = "contains";
+ String containsOperator = "contains";
- Variable variable2 = new Variable();
- variable2.setObjectId(2);
- variable2.setObjectType(VerifierComponentType.FIELD);
+ Variable variable2 = new Variable();
+ variable2.setObjectTypeGuid( "2" );
+ variable2.setObjectTypeType( VerifierComponentType.FIELD.getType() );
- VariableRestriction r3 = new VariableRestriction();
- r3.setPatternId(1);
- r3.setFieldId(1);
- r3.setOperator(Operator.determineOperator(containsOperator, false));
- r3.setVariable(variable2);
+ VariableRestriction r3 = new VariableRestriction();
+ r3.setPatternGuid( "1" );
+ r3.setFieldGuid( "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);
+ VariableRestriction r4 = new VariableRestriction();
+ r4.setPatternGuid( "1" );
+ r4.setFieldGuid( "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);
+ /*
+ * Pair that doesn't work.
+ */
+ Variable variable3 = new Variable();
+ variable3.setObjectTypeGuid( "3" );
+ variable3.setObjectTypeType( VerifierComponentType.FIELD.getType() );
- VariableRestriction r5 = new VariableRestriction();
- r5.setPatternId(2);
- r5.setFieldId(1);
- r5.setOperator(Operator.GREATER_OR_EQUAL);
- r5.setVariable(variable3);
+ VariableRestriction r5 = new VariableRestriction();
+ r5.setPatternGuid( "2" );
+ r5.setFieldGuid( "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);
+ VariableRestriction r6 = new VariableRestriction();
+ r6.setPatternGuid( "2" );
+ r6.setFieldGuid( "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);
+ data.add( r1 );
+ data.add( r2 );
+ data.add( r3 );
+ data.add( r4 );
+ data.add( r5 );
+ data.add( r6 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createOppositesMap(CauseType.RESTRICTION,
- sessionResult.iterateObjects());
+ 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,
+ 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.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More opposites than was expected." );
+ }
+ }
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/optimisation/PatternOrderTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,51 +7,47 @@
import org.drools.StatelessSession;
import org.drools.base.RuleNameMatchesAgendaFilter;
import org.drools.verifier.TestBase;
-import org.drools.verifier.components.VerifierComponent;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.components.RuleComponent;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.VerifierMessage;
import org.drools.verifier.report.components.VerifierMessageBase;
public class PatternOrderTest extends TestBase {
- public void testEvalOrderInsideOperator() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("PatternOrder.drl"));
+ public void testEvalOrderInsideOperator() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "PatternOrder.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Optimise evals inside pattern"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Optimise evals inside pattern" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- Collection<? extends Object> testData = getTestData(this.getClass()
- .getResourceAsStream("OptimisationPatternOrderTest.drl"),
- result.getVerifierData());
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "OptimisationPatternOrderTest.drl" ),
+ result.getVerifierData() );
- session.setGlobal("result", result);
+ session.setGlobal( "result",
+ result );
- session.executeWithResults(testData);
+ session.executeWithResults( testData );
- Iterator<VerifierMessageBase> iter = result.getBySeverity(
- Severity.NOTE).iterator();
+ 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();
+ Collection<String> ruleNames = new ArrayList<String>();
+ while ( iter.hasNext() ) {
+ Object o = (Object) iter.next();
+ if ( o instanceof VerifierMessage ) {
+ String name = ((VerifierMessage) o).getCauses().toArray( new RuleComponent[2] )[0].getRuleName();
- ruleNames.add(name);
- }
- }
+ ruleNames.add( name );
+ }
+ }
- assertTrue(ruleNames.remove("Wrong eval order 1"));
+ assertTrue( ruleNames.remove( "Wrong eval order 1" ) );
- if (!ruleNames.isEmpty()) {
- for (String string : ruleNames) {
- fail("Rule " + string + " caused an error.");
- }
- }
- }
+ 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/optimisation/RestrictionOrderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/optimisation/RestrictionOrderTest.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/optimisation/RestrictionOrderTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -14,9 +14,9 @@
import org.drools.verifier.components.OperatorDescr;
import org.drools.verifier.components.Pattern;
import org.drools.verifier.components.Restriction;
-import org.drools.verifier.components.VerifierComponent;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.components.RuleComponent;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Cause;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.VerifierMessage;
@@ -24,181 +24,169 @@
public class RestrictionOrderTest extends TestBase {
- public void testRestrictionOrderInsideOperator() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("RestrictionOrder.drl"));
+ public void testRestrictionOrderInsideOperator() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "RestrictionOrder.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Optimise restrictions inside operator"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Optimise restrictions inside operator" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- Collection<? extends Object> testData = getTestData(this.getClass()
- .getResourceAsStream("OptimisationRestrictionOrderTest.drl"),
- result.getVerifierData());
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "OptimisationRestrictionOrderTest.drl" ),
+ result.getVerifierData() );
- session.setGlobal("result", result);
+ session.setGlobal( "result",
+ result );
- session.executeWithResults(testData);
+ session.executeWithResults( testData );
- Iterator<VerifierMessageBase> iter = result.getBySeverity(
- Severity.NOTE).iterator();
+ 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 Restriction[2])[0].getRuleName();
+ 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 Restriction[2] )[0].getRuleName();
- ruleNames.add(name);
- }
- }
+ ruleNames.add( name );
+ }
+ }
- assertTrue(ruleNames.remove("Wrong descr order 1"));
+ assertTrue( ruleNames.remove( "Wrong descr order 1" ) );
- if (!ruleNames.isEmpty()) {
- for (String string : ruleNames) {
- fail("Rule " + string + " caused an error.");
- }
- }
- }
+ if ( !ruleNames.isEmpty() ) {
+ for ( String string : ruleNames ) {
+ fail( "Rule " + string + " caused an error." );
+ }
+ }
+ }
- public void testRestrictionOrderInsideConstraint() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("RestrictionOrder.drl"));
+ public void testRestrictionOrderInsideConstraint() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "RestrictionOrder.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Optimise restrictions inside constraint"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Optimise restrictions inside constraint" ) );
- Collection<Object> testData = new ArrayList<Object>();
+ Collection<Object> testData = new ArrayList<Object>();
- /*
- * Case 1
- */
- Pattern pattern1 = new Pattern();
- testData.add(pattern1);
+ /*
+ * Case 1
+ */
+ Pattern pattern1 = new Pattern();
+ testData.add( pattern1 );
- OperatorDescr parent1 = new OperatorDescr(OperatorDescr.Type.AND);
+ OperatorDescr parent1 = new OperatorDescr( OperatorDescr.Type.AND );
- LiteralRestriction r1 = new LiteralRestriction();
- r1.setPatternId(pattern1.getId());
- r1.setParent(parent1);
- r1.setOperator(Operator.GREATER);
- r1.setOrderNumber(1);
- testData.add(r1);
+ LiteralRestriction r1 = new LiteralRestriction();
+ r1.setPatternGuid( pattern1.getGuid() );
+ r1.setParentGuid( parent1.getGuid() );
+ r1.setOperator( Operator.GREATER );
+ r1.setOrderNumber( 1 );
+ testData.add( r1 );
- LiteralRestriction r2 = new LiteralRestriction();
- r2.setPatternId(pattern1.getId());
- r2.setParent(parent1);
- r2.setOperator(Operator.EQUAL);
- r2.setOrderNumber(2);
- testData.add(r2);
+ LiteralRestriction r2 = new LiteralRestriction();
+ r2.setPatternGuid( pattern1.getGuid() );
+ r2.setParentGuid( parent1.getGuid() );
+ r2.setOperator( Operator.EQUAL );
+ r2.setOrderNumber( 2 );
+ testData.add( r2 );
- LiteralRestriction r3 = new LiteralRestriction();
- r3.setPatternId(pattern1.getId());
- r3.setParent(parent1);
- r3.setOperator(Operator.LESS);
- r3.setOrderNumber(3);
- testData.add(r3);
+ LiteralRestriction r3 = new LiteralRestriction();
+ r3.setPatternGuid( pattern1.getGuid() );
+ r3.setParentGuid( parent1.getGuid() );
+ r3.setOperator( Operator.LESS );
+ r3.setOrderNumber( 3 );
+ testData.add( r3 );
- /*
- * Case 2
- */
- Pattern pattern2 = new Pattern();
- testData.add(pattern2);
+ /*
+ * Case 2
+ */
+ Pattern pattern2 = new Pattern();
+ testData.add( pattern2 );
- OperatorDescr parent2 = new OperatorDescr(OperatorDescr.Type.OR);
+ OperatorDescr parent2 = new OperatorDescr( OperatorDescr.Type.OR );
- LiteralRestriction r4 = new LiteralRestriction();
- r4.setPatternId(pattern2.getId());
- r4.setParent(parent2);
- r4.setOperator(Operator.NOT_EQUAL);
- r4.setOrderNumber(1);
- testData.add(r4);
+ LiteralRestriction r4 = new LiteralRestriction();
+ r4.setPatternGuid( pattern2.getGuid() );
+ r4.setParentGuid( parent2.getGuid() );
+ r4.setOperator( Operator.NOT_EQUAL );
+ r4.setOrderNumber( 1 );
+ testData.add( r4 );
- LiteralRestriction r5 = new LiteralRestriction();
- r5.setPatternId(pattern2.getId());
- r5.setParent(parent2);
- r5.setOperator(Operator.LESS_OR_EQUAL);
- r5.setOrderNumber(2);
- testData.add(r5);
+ LiteralRestriction r5 = new LiteralRestriction();
+ r5.setPatternGuid( pattern2.getGuid() );
+ r5.setParentGuid( parent2.getGuid() );
+ r5.setOperator( Operator.LESS_OR_EQUAL );
+ r5.setOrderNumber( 2 );
+ testData.add( r5 );
- LiteralRestriction r6 = new LiteralRestriction();
- r6.setPatternId(pattern2.getId());
- r6.setParent(parent2);
- r6.setOperator(Operator.NOT_EQUAL);
- r6.setOrderNumber(3);
- testData.add(r6);
+ LiteralRestriction r6 = new LiteralRestriction();
+ r6.setPatternGuid( pattern2.getGuid() );
+ r6.setParentGuid( parent2.getGuid() );
+ r6.setOperator( Operator.NOT_EQUAL );
+ r6.setOrderNumber( 3 );
+ testData.add( r6 );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- session.setGlobal("result", result);
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ session.setGlobal( "result",
+ result );
- session.executeWithResults(testData);
+ session.executeWithResults( testData );
- Iterator<VerifierMessageBase> iter = result.getBySeverity(
- Severity.NOTE).iterator();
+ 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 VerifierMessage) {
- Cause left = ((VerifierMessage) o).getCauses().toArray(
- new Cause[2])[0];
- Cause right = ((VerifierMessage) o).getCauses().toArray(
- new Cause[2])[1];
+ Map<Cause, Cause> pairs = new HashMap<Cause, Cause>();
+ while ( iter.hasNext() ) {
+ Object o = (Object) iter.next();
+ if ( o instanceof VerifierMessage ) {
+ Cause left = ((VerifierMessage) o).getCauses().toArray( new Cause[2] )[0];
+ Cause right = ((VerifierMessage) o).getCauses().toArray( new Cause[2] )[1];
- pairs.put(left, right);
- }
- }
+ pairs.put( left,
+ right );
+ }
+ }
- // Check that case 1 is here.
- assertTrue((pairs.containsKey(r1) && pairs.get(r1).equals(r2))
- || pairs.containsKey(r2) && pairs.get(r2).equals(r1));
+ // Check that case 1 is here.
+ assertTrue( (pairs.containsKey( r1 ) && pairs.get( r1 ).equals( r2 )) || pairs.containsKey( r2 ) && pairs.get( r2 ).equals( r1 ) );
- // Check that case 2 is here.
- assertTrue((pairs.containsKey(r4) && pairs.get(r4).equals(r5))
- || pairs.containsKey(r5) && pairs.get(r5).equals(r4));
+ // Check that case 2 is here.
+ assertTrue( (pairs.containsKey( r4 ) && pairs.get( r4 ).equals( r5 )) || pairs.containsKey( r5 ) && pairs.get( r5 ).equals( r4 ) );
- // Check that there is only one pair.
- assertEquals(2, pairs.size());
- }
+ // Check that there is only one pair.
+ assertEquals( 2,
+ pairs.size() );
+ }
- public void testPredicateOrderInsideOperator() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("RestrictionOrder.drl"));
+ public void testPredicateOrderInsideOperator() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "RestrictionOrder.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Optimise predicates inside operator"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Optimise predicates inside operator" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- Collection<? extends Object> testData = getTestData(this.getClass()
- .getResourceAsStream("OptimisationRestrictionOrderTest.drl"),
- result.getVerifierData());
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "OptimisationRestrictionOrderTest.drl" ),
+ result.getVerifierData() );
- session.setGlobal("result", result);
+ session.setGlobal( "result",
+ result );
- session.executeWithResults(testData);
+ session.executeWithResults( testData );
- Iterator<VerifierMessageBase> iter = result.getBySeverity(
- Severity.NOTE).iterator();
+ 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();
+ Collection<String> ruleNames = new ArrayList<String>();
+ while ( iter.hasNext() ) {
+ Object o = (Object) iter.next();
+ if ( o instanceof VerifierMessage ) {
+ String name = ((VerifierMessage) o).getCauses().toArray( new RuleComponent[2] )[0].getRuleName();
- ruleNames.add(name);
- }
- }
+ ruleNames.add( name );
+ }
+ }
- assertTrue(ruleNames.remove("Wrong eval order 1"));
+ assertTrue( ruleNames.remove( "Wrong eval order 1" ) );
- if (!ruleNames.isEmpty()) {
- for (String string : ruleNames) {
- fail("Rule " + string + " caused an error.");
- }
- }
- }
+ 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/overlaps/OverlappingRestrictionsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/overlaps/OverlappingRestrictionsTest.java 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/overlaps/OverlappingRestrictionsTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -10,9 +10,9 @@
import org.drools.verifier.TestBase;
import org.drools.verifier.components.Field;
import org.drools.verifier.components.LiteralRestriction;
-import org.drools.verifier.components.VerifierComponent;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.components.RuleComponent;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.Subsumption;
import org.drools.verifier.report.components.VerifierMessage;
@@ -20,98 +20,97 @@
public class OverlappingRestrictionsTest extends TestBase {
- public void testOverlap() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Restrictions.drl"));
+ public void testOverlap() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Restrictions.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find overlapping restrictions"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Find overlapping restrictions" ) );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- /*
- * There restrictions overlap
- */
- String ruleName1 = "Rule 1";
+ /*
+ * There restrictions overlap
+ */
+ String ruleName1 = "Rule 1";
- Field field1 = new Field();
+ Field field1 = new Field();
- LiteralRestriction lr1 = new LiteralRestriction();
- lr1.setRuleName(ruleName1);
- lr1.setFieldId(field1.getId());
- lr1.setValue("1.0");
- lr1.setOperator(Operator.GREATER);
+ LiteralRestriction lr1 = new LiteralRestriction();
+ lr1.setRuleName( ruleName1 );
+ lr1.setFieldGuid( field1.getGuid() );
+ 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);
+ LiteralRestriction lr2 = new LiteralRestriction();
+ lr2.setRuleName( ruleName1 );
+ lr2.setFieldGuid( field1.getGuid() );
+ lr2.setValue( "2.0" );
+ lr2.setOperator( Operator.GREATER );
- Subsumption s1 = new Subsumption(lr1, lr2);
+ Subsumption s1 = new Subsumption( lr1,
+ lr2 );
- /*
- * There restrictions do not overlap
- */
- String ruleName2 = "Rule 2";
+ /*
+ * There restrictions do not overlap
+ */
+ String ruleName2 = "Rule 2";
- Field field2 = new Field();
+ Field field2 = new Field();
- LiteralRestriction lr3 = new LiteralRestriction();
- lr3.setRuleName(ruleName2);
- lr3.setFieldId(field2.getId());
- lr3.setValue("1.0");
- lr3.setOperator(Operator.GREATER);
+ LiteralRestriction lr3 = new LiteralRestriction();
+ lr3.setRuleName( ruleName2 );
+ lr3.setFieldGuid( field2.getGuid() );
+ lr3.setValue( "1.0" );
+ lr3.setOperator( Operator.GREATER );
- LiteralRestriction lr4 = new LiteralRestriction();
- lr4.setRuleName(ruleName2);
- lr4.setFieldId(field2.getId());
- lr4.setValue("2.0");
- lr4.setOperator(Operator.GREATER);
+ LiteralRestriction lr4 = new LiteralRestriction();
+ lr4.setRuleName( ruleName2 );
+ lr4.setFieldGuid( field2.getGuid() );
+ lr4.setValue( "2.0" );
+ lr4.setOperator( Operator.GREATER );
- LiteralRestriction lr5 = new LiteralRestriction();
- lr5.setRuleName(ruleName2);
- lr5.setFieldId(field2.getId());
- lr5.setValue("1.5");
- lr5.setOperator(Operator.LESS);
+ LiteralRestriction lr5 = new LiteralRestriction();
+ lr5.setRuleName( ruleName2 );
+ lr5.setFieldGuid( field2.getGuid() );
+ lr5.setValue( "1.5" );
+ lr5.setOperator( Operator.LESS );
- Subsumption s2 = new Subsumption(lr3, lr4);
+ 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);
+ 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.setGlobal( "result",
+ result );
- session.executeWithResults(data);
+ session.executeWithResults( data );
- Iterator<VerifierMessageBase> iter = result.getBySeverity(
- Severity.NOTE).iterator();
+ 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();
+ Collection<String> ruleNames = new ArrayList<String>();
+ while ( iter.hasNext() ) {
+ Object o = (Object) iter.next();
+ if ( o instanceof VerifierMessage ) {
+ String name = ((VerifierMessage) o).getCauses().toArray( new RuleComponent[2] )[0].getRuleName();
- ruleNames.add(name);
- }
- }
+ ruleNames.add( name );
+ }
+ }
- assertTrue(ruleNames.remove(ruleName1));
- assertFalse(ruleNames.remove(ruleName2));
+ assertTrue( ruleNames.remove( ruleName1 ) );
+ assertFalse( ruleNames.remove( ruleName2 ) );
- if (!ruleNames.isEmpty()) {
- for (String string : ruleNames) {
- fail("Rule " + string + " caused an error.");
- }
- }
- }
+ 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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/NotesTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,10 +7,10 @@
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.RulePossibility;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.components.SubPattern;
+import org.drools.verifier.components.SubRule;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Redundancy;
import org.drools.verifier.report.components.RedundancyType;
import org.drools.verifier.report.components.Severity;
@@ -34,7 +34,7 @@
Redundancy redundancy = new Redundancy(
RedundancyType.STRONG, left, right);
- PatternPossibility possibility = new PatternPossibility();
+ SubPattern possibility = new SubPattern();
possibility.add(left);
possibility.add(right);
@@ -43,7 +43,7 @@
objects.add(redundancy);
objects.add(possibility);
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
session.setGlobal("result", result);
session.executeWithResults(objects);
@@ -68,14 +68,14 @@
"Find redundant pattern possibilities from rule possibilities"));
Collection<Object> objects = new ArrayList<Object>();
- PatternPossibility left = new PatternPossibility();
+ SubPattern left = new SubPattern();
- PatternPossibility right = new PatternPossibility();
+ SubPattern right = new SubPattern();
Redundancy redundancy = new Redundancy(
RedundancyType.STRONG, left, right);
- RulePossibility possibility = new RulePossibility();
+ SubRule possibility = new SubRule();
possibility.add(left);
possibility.add(right);
@@ -84,7 +84,7 @@
objects.add(redundancy);
objects.add(possibility);
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
session.setGlobal("result", result);
session.executeWithResults(objects);
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundancyTestBase.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -7,7 +7,7 @@
import java.util.Set;
import org.drools.verifier.TestBase;
-import org.drools.verifier.components.VerifierComponent;
+import org.drools.verifier.components.RuleComponent;
import org.drools.verifier.report.components.Cause;
import org.drools.verifier.report.components.CauseType;
import org.drools.verifier.report.components.Redundancy;
@@ -19,97 +19,100 @@
*/
public class RedundancyTestBase extends TestBase {
- /**
- * Creates redundancy map from Redundancy objects, one rule may have several
- * redundancy dependencies.
- *
- * @param iter
- * @return
- */
- protected Map<String, Set<String>> createRedundancyMap(Iterator<Object> iter) {
+ /**
+ * Creates redundancy map from Redundancy objects, one rule may have several
+ * redundancy dependencies.
+ *
+ * @param iter
+ * @return
+ */
+ protected Map<String, Set<String>> createRedundancyMap(Iterator<Object> iter) {
- Map<String, Set<String>> map = new HashMap<String, Set<String>>();
- while (iter.hasNext()) {
- Object o = (Object) iter.next();
- if (o instanceof Redundancy) {
- Redundancy r = (Redundancy) o;
- VerifierComponent left = (VerifierComponent) r.getLeft();
- VerifierComponent right = (VerifierComponent) r.getRight();
+ Map<String, Set<String>> map = new HashMap<String, Set<String>>();
+ while ( iter.hasNext() ) {
+ Object o = (Object) iter.next();
+ if ( o instanceof Redundancy ) {
+ Redundancy r = (Redundancy) o;
+ RuleComponent left = (RuleComponent) r.getLeft();
+ RuleComponent right = (RuleComponent) r.getRight();
- if (map.containsKey(left.getRuleName())) {
- Set<String> set = map.get(left.getRuleName());
- set.add(right.getRuleName());
- } else {
- Set<String> set = new HashSet<String>();
- set.add(right.getRuleName());
- map.put(left.getRuleName(), set);
- }
- }
- }
+ if ( map.containsKey( left.getRuleName() ) ) {
+ Set<String> set = map.get( left.getRuleName() );
+ set.add( right.getRuleName() );
+ } else {
+ Set<String> set = new HashSet<String>();
+ set.add( right.getRuleName() );
+ map.put( left.getRuleName(),
+ set );
+ }
+ }
+ }
- return map;
- }
+ return map;
+ }
- /**
- * Creates redundancy map from Redundancy objects, one rule may have several
- * redundancy dependencies.
- *
- * @param iter
- * @return
- */
- protected Map<Cause, Set<Cause>> createRedundancyCauseMap(
- CauseType type, Iterator<Object> iter) {
+ /**
+ * Creates redundancy map from Redundancy objects, one rule may have several
+ * redundancy dependencies.
+ *
+ * @param iter
+ * @return
+ */
+ protected Map<Cause, Set<Cause>> createRedundancyCauseMap(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 Redundancy) {
- Redundancy r = (Redundancy) o;
+ Map<Cause, Set<Cause>> map = new HashMap<Cause, Set<Cause>>();
+ while ( iter.hasNext() ) {
+ Object o = (Object) iter.next();
+ if ( o instanceof Redundancy ) {
+ Redundancy r = (Redundancy) o;
- if (r.getLeft().getCauseType() == type) {
- Cause left = r.getLeft();
- Cause right = r.getRight();
+ 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);
- }
- }
- }
- }
+ if ( map.containsKey( left ) ) {
+ Set<Cause> set = map.get( left );
+ set.add( right );
+ } else {
+ Set<Cause> set = new HashSet<Cause>();
+ set.add( right );
+ map.put( left,
+ set );
+ }
+ }
+ }
+ }
- return map;
- }
+ return map;
+ }
- public void testDummy() {
- // this is needed as eclipse will try to run this and produce a failure
- // if its not here.
- }
+ public void testDummy() {
+ // this is needed as eclipse will try to run this and produce a failure
+ // if its not here.
+ }
- /**
- * Returns true if map contains redundancy where key is redundant to value.
- *
- * @param map
- * @param key
- * @param value
- * @return True if redundancy exists.
- */
- protected static boolean mapContains(Map<String, Set<Redundancy>> map,
- String key, Object value) {
- if (map.containsKey(key)) {
- Set<Redundancy> set = map.get(key);
- boolean exists = set.remove(value);
+ /**
+ * Returns true if map contains redundancy where key is redundant to value.
+ *
+ * @param map
+ * @param key
+ * @param value
+ * @return True if redundancy exists.
+ */
+ protected static boolean mapContains(Map<String, Set<Redundancy>> map,
+ String key,
+ Object value) {
+ if ( map.containsKey( key ) ) {
+ Set<Redundancy> set = map.get( key );
+ boolean exists = set.remove( value );
- // If set is empty remove key from map.
- if (set.isEmpty()) {
- map.remove(key);
- }
- return exists;
- }
- return false;
- }
+ // If set is empty remove key from map.
+ if ( set.isEmpty() ) {
+ map.remove( key );
+ }
+ return exists;
+ }
+ return false;
+ }
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantConsequencesTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,8 +8,8 @@
import org.drools.StatelessSessionResult;
import org.drools.base.RuleNameMatchesAgendaFilter;
import org.drools.verifier.TestBase;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
public class RedundantConsequencesTest extends RedundancyTestBase {
@@ -20,7 +20,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Find redundant TextConsequences"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> data = getTestData(this.getClass()
.getResourceAsStream("ConsequenceRedundancyTest.drl"), result
.getVerifierData());
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantPossibilitiesTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -11,11 +11,11 @@
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.RulePossibility;
+import org.drools.verifier.components.SubPattern;
+import org.drools.verifier.components.SubRule;
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Cause;
import org.drools.verifier.report.components.CauseType;
import org.drools.verifier.report.components.Redundancy;
@@ -23,175 +23,185 @@
public class RedundantPossibilitiesTest extends RedundancyTestBase {
- public void testPatternPossibilityRedundancy() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Possibilities.drl"));
+ public void testSubPatternRedundancy() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Possibilities.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find pattern possibility redundancy"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Find pattern possibility redundancy" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- session.setGlobal("result", result);
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ session.setGlobal( "result",
+ result );
- String ruleName1 = "Rule 1";
- String ruleName2 = "Rule 2";
+ String ruleName1 = "Rule 1";
+ String ruleName2 = "Rule 2";
- Pattern p1 = new Pattern();
- p1.setRuleName(ruleName1);
- Pattern p2 = new Pattern();
- p2.setRuleName(ruleName2);
+ Pattern p1 = new Pattern();
+ p1.setRuleName( ruleName1 );
+ Pattern p2 = new Pattern();
+ p2.setRuleName( ruleName2 );
- LiteralRestriction lr1 = new LiteralRestriction();
- lr1.setRuleName(ruleName1);
- LiteralRestriction lr2 = new LiteralRestriction();
- lr2.setRuleName(ruleName2);
+ LiteralRestriction lr1 = new LiteralRestriction();
+ lr1.setRuleName( ruleName1 );
+ LiteralRestriction lr2 = new LiteralRestriction();
+ lr2.setRuleName( ruleName2 );
- PatternPossibility pp1 = new PatternPossibility();
- pp1.setPatternId(p1.getId());
- pp1.setRuleName(ruleName1);
- pp1.add(lr1);
+ SubPattern pp1 = new SubPattern();
+ pp1.setPatternGuid( p1.getGuid() );
+ pp1.setRuleName( ruleName1 );
+ pp1.add( lr1 );
- PatternPossibility pp2 = new PatternPossibility();
- pp2.setPatternId(p2.getId());
- pp2.setRuleName(ruleName2);
- pp2.add(lr2);
+ SubPattern pp2 = new SubPattern();
+ pp2.setPatternGuid( p2.getGuid() );
+ pp2.setRuleName( ruleName2 );
+ pp2.add( lr2 );
- Redundancy r1 = new Redundancy(lr1, lr2);
- Redundancy r2 = new Redundancy(p1, p2);
+ Redundancy r1 = new Redundancy( lr1,
+ lr2 );
+ Redundancy r2 = new Redundancy( p1,
+ p2 );
- data.add(p1);
- data.add(p2);
- data.add(lr1);
- data.add(lr2);
- data.add(pp1);
- data.add(pp2);
- data.add(r1);
- data.add(r2);
+ data.add( p1 );
+ data.add( p2 );
+ data.add( lr1 );
+ data.add( lr2 );
+ data.add( pp1 );
+ data.add( pp2 );
+ data.add( r1 );
+ data.add( r2 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<String, Set<String>> map = createRedundancyMap(sessionResult
- .iterateObjects());
+ Map<String, Set<String>> map = createRedundancyMap( sessionResult.iterateObjects() );
- assertTrue(TestBase.mapContains(map, ruleName1, ruleName2));
- assertTrue(TestBase.mapContains(map, ruleName2, ruleName1));
+ assertTrue( TestBase.mapContains( map,
+ ruleName1,
+ ruleName2 ) );
+ assertTrue( TestBase.mapContains( map,
+ ruleName2,
+ ruleName1 ) );
- if (!map.isEmpty()) {
- fail("More redundancies than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More redundancies than was expected." );
+ }
+ }
- public void testRulePossibilityRedundancy() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Possibilities.drl"));
+ public void testSubRuleRedundancy() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Possibilities.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find rule possibility redundancy"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Find rule possibility redundancy" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- session.setGlobal("result", result);
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ session.setGlobal( "result",
+ result );
- /*
- * First rules. These are redundant,
- */
- String ruleName1 = "Rule 1";
- String ruleName2 = "Rule 2";
+ /*
+ * First rules. These are redundant,
+ */
+ String ruleName1 = "Rule 1";
+ String ruleName2 = "Rule 2";
- VerifierRule r1 = new VerifierRule();
- r1.setRuleName(ruleName1);
- VerifierRule r2 = new VerifierRule();
- r2.setRuleName(ruleName2);
+ VerifierRule r1 = new VerifierRule();
+ r1.setRuleName( ruleName1 );
+ VerifierRule r2 = new VerifierRule();
+ r2.setRuleName( ruleName2 );
- PatternPossibility pp1 = new PatternPossibility();
- pp1.setRuleName(ruleName1);
- PatternPossibility pp2 = new PatternPossibility();
- pp2.setRuleName(ruleName2);
+ SubPattern pp1 = new SubPattern();
+ pp1.setRuleName( ruleName1 );
+ SubPattern pp2 = new SubPattern();
+ pp2.setRuleName( ruleName2 );
- RulePossibility rp1 = new RulePossibility();
- rp1.setRuleId(r1.getId());
- rp1.setRuleName(ruleName1);
- rp1.add(pp1);
+ SubRule rp1 = new SubRule();
+ rp1.setRuleGuid( r1.getGuid() );
+ rp1.setRuleName( ruleName1 );
+ rp1.add( pp1 );
- RulePossibility rp2 = new RulePossibility();
- rp2.setRuleId(r2.getId());
- rp2.setRuleName(ruleName2);
- rp2.add(pp2);
+ SubRule rp2 = new SubRule();
+ rp2.setRuleGuid( r2.getGuid() );
+ rp2.setRuleName( ruleName2 );
+ rp2.add( pp2 );
- Redundancy possibilityredundancy = new Redundancy(
- RedundancyType.STRONG, pp1, pp2);
- Redundancy ruleRedundancy = new Redundancy(r1, r2);
+ Redundancy possibilityredundancy = new Redundancy( RedundancyType.STRONG,
+ pp1,
+ pp2 );
+ Redundancy ruleRedundancy = new Redundancy( r1,
+ r2 );
- data.add(r1);
- data.add(r2);
- data.add(pp1);
- data.add(pp2);
- data.add(possibilityredundancy);
- data.add(ruleRedundancy);
- data.add(rp1);
- data.add(rp2);
+ data.add( r1 );
+ data.add( r2 );
+ data.add( pp1 );
+ data.add( pp2 );
+ data.add( possibilityredundancy );
+ data.add( ruleRedundancy );
+ data.add( rp1 );
+ data.add( rp2 );
- /*
- * These two rules are not redundant
- */
- String ruleName3 = "Rule 3";
- String ruleName4 = "Rule 4";
+ /*
+ * These two rules are not redundant
+ */
+ String ruleName3 = "Rule 3";
+ String ruleName4 = "Rule 4";
- VerifierRule r3 = new VerifierRule();
- r3.setRuleName(ruleName3);
- VerifierRule r4 = new VerifierRule();
- r4.setRuleName(ruleName4);
+ VerifierRule r3 = new VerifierRule();
+ r3.setRuleName( ruleName3 );
+ VerifierRule r4 = new VerifierRule();
+ r4.setRuleName( ruleName4 );
- PatternPossibility pp3 = new PatternPossibility();
- pp3.setRuleId(r3.getId());
- pp3.setRuleName(ruleName3);
- PatternPossibility pp4 = new PatternPossibility();
- pp4.setRuleId(r4.getId());
- pp4.setRuleName(ruleName4);
- // This possibility makes them different
- PatternPossibility pp5 = new PatternPossibility();
- pp5.setRuleId(r4.getId());
- pp5.setRuleName(ruleName4);
+ SubPattern pp3 = new SubPattern();
+ pp3.setRuleGuid( r3.getGuid() );
+ pp3.setRuleName( ruleName3 );
+ SubPattern pp4 = new SubPattern();
+ pp4.setRuleGuid( r4.getGuid() );
+ pp4.setRuleName( ruleName4 );
+ // This possibility makes them different
+ SubPattern pp5 = new SubPattern();
+ pp5.setRuleGuid( r4.getGuid() );
+ pp5.setRuleName( ruleName4 );
- RulePossibility rp3 = new RulePossibility();
- rp3.setRuleId(r3.getId());
- rp3.setRuleName(ruleName3);
- rp3.add(pp3);
+ SubRule rp3 = new SubRule();
+ rp3.setRuleGuid( r3.getGuid() );
+ rp3.setRuleName( ruleName3 );
+ rp3.add( pp3 );
- RulePossibility rp4 = new RulePossibility();
- rp4.setRuleId(r4.getId());
- rp4.setRuleName(ruleName4);
- rp4.add(pp4);
- rp4.add(pp5);
+ SubRule rp4 = new SubRule();
+ rp4.setRuleGuid( r4.getGuid() );
+ rp4.setRuleName( ruleName4 );
+ rp4.add( pp4 );
+ rp4.add( pp5 );
- Redundancy possibilityredundancy2 = new Redundancy(
- RedundancyType.STRONG, pp3, pp4);
- Redundancy ruleRedundancy2 = new Redundancy(r3, r4);
+ Redundancy possibilityredundancy2 = new Redundancy( RedundancyType.STRONG,
+ pp3,
+ pp4 );
+ Redundancy ruleRedundancy2 = new Redundancy( r3,
+ r4 );
- data.add(r3);
- data.add(r4);
- data.add(pp3);
- data.add(pp4);
- data.add(pp5);
- data.add(possibilityredundancy2);
- data.add(ruleRedundancy2);
- data.add(rp3);
- data.add(rp4);
+ data.add( r3 );
+ data.add( r4 );
+ data.add( pp3 );
+ data.add( pp4 );
+ data.add( pp5 );
+ data.add( possibilityredundancy2 );
+ data.add( ruleRedundancy2 );
+ data.add( rp3 );
+ data.add( rp4 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createRedundancyCauseMap(
- CauseType.RULE_POSSIBILITY, sessionResult
- .iterateObjects());
+ Map<Cause, Set<Cause>> map = createRedundancyCauseMap( CauseType.RULE_POSSIBILITY,
+ sessionResult.iterateObjects() );
- assertTrue(TestBase.causeMapContains(map, rp1, rp2));
- assertFalse(TestBase.causeMapContains(map, rp3, rp4));
+ assertTrue( TestBase.causeMapContains( map,
+ rp1,
+ rp2 ) );
+ assertFalse( TestBase.causeMapContains( map,
+ rp3,
+ rp4 ) );
- if (!map.isEmpty()) {
- fail("More redundancies than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More redundancies than was expected." );
+ }
+ }
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantRestrictionsTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -8,8 +8,8 @@
import org.drools.StatelessSessionResult;
import org.drools.base.RuleNameMatchesAgendaFilter;
import org.drools.verifier.TestBase;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
public class RedundantRestrictionsTest extends RedundancyTestBase {
@@ -20,7 +20,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Find redundant LiteralRestriction"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> data = getTestData(this.getClass()
.getResourceAsStream("RedundancyLiteralRestrictionTest.drl"),
result.getVerifierData());
@@ -57,7 +57,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Find redundant VariableRestriction"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> data = getTestData(this.getClass()
.getResourceAsStream("SubsumptionVariableRestrictionTest.drl"),
result.getVerifierData());
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/RedundantRulesAndPatternsTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -11,8 +11,8 @@
import org.drools.verifier.TestBase;
import org.drools.verifier.components.TextConsequence;
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Redundancy;
public class RedundantRulesAndPatternsTest extends RedundancyTestBase {
@@ -49,7 +49,7 @@
data.add(r1);
data.add(r2);
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
session.setGlobal("result", result);
StatelessSessionResult sessionResult = session.executeWithResults(data);
@@ -72,7 +72,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Find redundant Patterns with restrictions"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> data = getTestData(this.getClass()
.getResourceAsStream("PatternRedundancyTest.drl"), result
.getVerifierData());
@@ -121,7 +121,7 @@
session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
"Find redundant Patterns without restrictions"));
- VerifierResult result = VerifierResultFactory.createVerifierResult();
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<? extends Object> data = getTestData(this.getClass()
.getResourceAsStream("PatternRedundancyTest.drl"), result
.getVerifierData());
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/redundancy/WarningsTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -6,10 +6,10 @@
import org.drools.StatelessSession;
import org.drools.base.RuleNameMatchesAgendaFilter;
import org.drools.verifier.TestBase;
-import org.drools.verifier.components.RulePossibility;
+import org.drools.verifier.components.SubRule;
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Redundancy;
import org.drools.verifier.report.components.RedundancyType;
import org.drools.verifier.report.components.Severity;
@@ -17,99 +17,102 @@
public class WarningsTest extends TestBase {
- public void testRedundantRules() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Warnings.drl"));
+ public void testRedundantRules() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Warnings.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find redundant rule possibilities from different rules"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Find redundant rule possibilities from different rules" ) );
- Collection<Object> objects = new ArrayList<Object>();
+ Collection<Object> objects = new ArrayList<Object>();
- VerifierRule rule1 = new VerifierRule();
- VerifierRule rule2 = new VerifierRule();
+ VerifierRule rule1 = new VerifierRule();
+ VerifierRule rule2 = new VerifierRule();
- Redundancy ruleRedundancy = new Redundancy(
- RedundancyType.STRONG, rule1, rule2);
+ Redundancy ruleRedundancy = new Redundancy( RedundancyType.STRONG,
+ rule1,
+ rule2 );
- RulePossibility rp1 = new RulePossibility();
- rp1.setRuleId(rule1.getId());
+ SubRule rp1 = new SubRule();
+ rp1.setRuleGuid( rule1.getGuid() );
- RulePossibility rp2 = new RulePossibility();
- rp2.setRuleId(rule2.getId());
+ SubRule rp2 = new SubRule();
+ rp2.setRuleGuid( rule2.getGuid() );
- Redundancy rulePossibilityRedundancy1 = new Redundancy(
- RedundancyType.STRONG, rp1, rp2);
+ Redundancy rulePossibilityRedundancy1 = new Redundancy( RedundancyType.STRONG,
+ rp1,
+ rp2 );
- Redundancy rulePossibilityRedundancy2 = new Redundancy(
- RedundancyType.STRONG, rp2, rp1);
+ Redundancy rulePossibilityRedundancy2 = new Redundancy( RedundancyType.STRONG,
+ rp2,
+ rp1 );
- objects.add(rule1);
- objects.add(rule2);
- objects.add(ruleRedundancy);
- objects.add(rp1);
- objects.add(rp2);
- objects.add(rulePossibilityRedundancy1);
- objects.add(rulePossibilityRedundancy2);
+ objects.add( rule1 );
+ objects.add( rule2 );
+ objects.add( ruleRedundancy );
+ objects.add( rp1 );
+ objects.add( rp2 );
+ objects.add( rulePossibilityRedundancy1 );
+ objects.add( rulePossibilityRedundancy2 );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- session.setGlobal("result", result);
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ session.setGlobal( "result",
+ result );
- session.executeWithResults(objects);
+ session.executeWithResults( objects );
- Collection<VerifierMessageBase> notes = result
- .getBySeverity(Severity.WARNING);
+ Collection<VerifierMessageBase> notes = result.getBySeverity( Severity.WARNING );
- // Has at least one item.
- assertEquals(1, notes.size());
+ // Has at least one item.
+ assertEquals( 1,
+ notes.size() );
- VerifierMessageBase warning = notes.iterator().next();
- assertTrue(warning.getFaulty().equals(rulePossibilityRedundancy1));
- }
+ VerifierMessageBase warning = notes.iterator().next();
+ assertTrue( warning.getFaulty().equals( rulePossibilityRedundancy1 ) );
+ }
- public void testSubsumptantRules() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Warnings.drl"));
+ public void testSubsumptantRules() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Warnings.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find subsumptant rule possibilities from different rules"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Find subsumptant rule possibilities from different rules" ) );
- Collection<Object> objects = new ArrayList<Object>();
+ Collection<Object> objects = new ArrayList<Object>();
- VerifierRule rule1 = new VerifierRule();
- VerifierRule rule2 = new VerifierRule();
+ VerifierRule rule1 = new VerifierRule();
+ VerifierRule rule2 = new VerifierRule();
- Redundancy ruleRedundancy = new Redundancy(
- RedundancyType.STRONG, rule1, rule2);
+ Redundancy ruleRedundancy = new Redundancy( RedundancyType.STRONG,
+ rule1,
+ rule2 );
- RulePossibility rp1 = new RulePossibility();
- rp1.setRuleId(rule1.getId());
+ SubRule rp1 = new SubRule();
+ rp1.setRuleGuid( rule1.getGuid() );
- RulePossibility rp2 = new RulePossibility();
- rp2.setRuleId(rule2.getId());
+ SubRule rp2 = new SubRule();
+ rp2.setRuleGuid( rule2.getGuid() );
- Redundancy rulePossibilityRedundancy1 = new Redundancy(
- RedundancyType.STRONG, rp1, rp2);
+ Redundancy rulePossibilityRedundancy1 = new Redundancy( RedundancyType.STRONG,
+ rp1,
+ rp2 );
- objects.add(rule1);
- objects.add(rule2);
- objects.add(ruleRedundancy);
- objects.add(rp1);
- objects.add(rp2);
- objects.add(rulePossibilityRedundancy1);
+ objects.add( rule1 );
+ objects.add( rule2 );
+ objects.add( ruleRedundancy );
+ objects.add( rp1 );
+ objects.add( rp2 );
+ objects.add( rulePossibilityRedundancy1 );
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- session.setGlobal("result", result);
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ session.setGlobal( "result",
+ result );
- session.executeWithResults(objects);
+ session.executeWithResults( objects );
- Collection<VerifierMessageBase> notes = result
- .getBySeverity(Severity.WARNING);
+ Collection<VerifierMessageBase> notes = result.getBySeverity( Severity.WARNING );
- // Has at least one item.
- assertEquals(1, notes.size());
+ // Has at least one item.
+ assertEquals( 1,
+ notes.size() );
- VerifierMessageBase warning = notes.iterator().next();
- assertTrue(warning.getFaulty().equals(rulePossibilityRedundancy1));
- }
+ VerifierMessageBase warning = notes.iterator().next();
+ assertTrue( warning.getFaulty().equals( rulePossibilityRedundancy1 ) );
+ }
}
Added: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/VerifierReportBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/VerifierReportBuilderTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/report/VerifierReportBuilderTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,88 @@
+package org.drools.verifier.report;
+
+import java.util.Collection;
+
+import org.drools.verifier.data.VerifierData;
+import org.drools.verifier.data.VerifierReport;
+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;
+import org.drools.verifier.report.components.VerifierMessageBase;
+
+import junit.framework.TestCase;
+
+public class VerifierReportBuilderTest extends TestCase {
+
+ public void testHtmlReportTest() {
+
+ // Create report
+ VerifierReport vReport = new VerifierReportMock();
+
+ // Write to disk
+ // Check the files on disk
+ // done
+ assertTrue(true);
+ }
+
+}
+class VerifierReportMock
+ implements
+ VerifierReport {
+
+ public void add(Gap gap) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void add(MissingNumberPattern missingNumberPattern) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void add(VerifierMessageBase note) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public Collection<VerifierMessageBase> getBySeverity(Severity severity) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Collection<Gap> getGapsByFieldId(int fieldId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Collection<RangeCheckCause> getRangeCheckCauses() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Collection<RangeCheckCause> getRangeCheckCausesByFieldId(int id) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public VerifierData getVerifierData(VerifierData data) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public VerifierData getVerifierData() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void remove(Gap gap) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public Collection<RangeCheckCause> getRangeCheckCausesByFieldId(String guid) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/solver/PatternSolverTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/solver/PatternSolverTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/solver/PatternSolverTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,399 @@
+package org.drools.verifier.solver;
+
+import java.util.List;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+import org.drools.verifier.components.LiteralRestriction;
+import org.drools.verifier.components.OperatorDescr;
+import org.drools.verifier.components.Pattern;
+import org.drools.verifier.data.VerifierComponent;
+
+/**
+ *
+ * @author Toni Rikkola
+ *
+ */
+public class PatternSolverTest extends TestCase {
+
+ /**
+ * <pre>
+ * and
+ * / \
+ * descr descr2
+ * </pre>
+ *
+ * result:<br>
+ * descr && descr2
+ */
+ public void testAddBasicAnd() {
+ Pattern pattern = new Pattern();
+
+ LiteralRestriction literalRestriction = new LiteralRestriction();
+ LiteralRestriction literalRestriction2 = new LiteralRestriction();
+
+ PatternSolver solver = new PatternSolver( pattern );
+
+ solver.addOperator( OperatorDescr.Type.AND );
+ solver.add( literalRestriction );
+ solver.add( literalRestriction2 );
+ solver.end();
+
+ List<Set<VerifierComponent>> list = solver.getPossibilityLists();
+ assertEquals( 1,
+ list.size() );
+ assertEquals( 2,
+ list.get( 0 ).size() );
+ }
+
+ /**
+ * <pre>
+ * or
+ * / \
+ * descr descr2
+ * </pre>
+ *
+ * result:<br>
+ * descr<br>
+ * or<br>
+ * descr2
+ */
+ public void testAddBasicOr() {
+ Pattern pattern = new Pattern();
+
+ LiteralRestriction literalRestriction = new LiteralRestriction();
+ LiteralRestriction literalRestriction2 = new LiteralRestriction();
+
+ PatternSolver solver = new PatternSolver( pattern );
+
+ solver.addOperator( OperatorDescr.Type.OR );
+ solver.add( literalRestriction );
+ solver.add( literalRestriction2 );
+ solver.end();
+
+ List<Set<VerifierComponent>> list = solver.getPossibilityLists();
+ assertEquals( 2,
+ list.size() );
+ assertEquals( 1,
+ list.get( 0 ).size() );
+ assertEquals( 1,
+ list.get( 1 ).size() );
+ }
+
+ /**
+ * <pre>
+ * or
+ * / \
+ * descr and
+ * / \
+ * descr2 descr3
+ * </pre>
+ *
+ * result:<br>
+ * descr <br>
+ * or<br>
+ * descr2 && descr3
+ */
+ public void testAddOrAnd() {
+ Pattern pattern = new Pattern();
+
+ LiteralRestriction literalRestriction = new LiteralRestriction();
+ LiteralRestriction literalRestriction2 = new LiteralRestriction();
+ LiteralRestriction literalRestriction3 = new LiteralRestriction();
+
+ PatternSolver solver = new PatternSolver( pattern );
+
+ solver.addOperator( OperatorDescr.Type.OR );
+ solver.add( literalRestriction );
+ solver.addOperator( OperatorDescr.Type.AND );
+ solver.add( literalRestriction2 );
+ solver.add( literalRestriction3 );
+ solver.end();
+ solver.end();
+
+ List<Set<VerifierComponent>> list = solver.getPossibilityLists();
+ assertEquals( 2,
+ list.size() );
+
+ assertEquals( 1,
+ list.get( 0 ).size() );
+ assertTrue( list.get( 0 ).contains( literalRestriction ) );
+
+ assertEquals( 2,
+ list.get( 1 ).size() );
+ assertTrue( list.get( 1 ).contains( literalRestriction2 ) );
+ assertTrue( list.get( 1 ).contains( literalRestriction3 ) );
+ }
+
+ /**
+ * <pre>
+ * and
+ * / \
+ * descr or
+ * / \
+ * descr2 descr3
+ * </pre>
+ *
+ * result:<br>
+ * descr && descr2 <br>
+ * or<br>
+ * descr && descr3
+ */
+ public void testAddAndOr() {
+ Pattern pattern = new Pattern();
+
+ LiteralRestriction literalRestriction = new LiteralRestriction();
+ LiteralRestriction literalRestriction2 = new LiteralRestriction();
+ LiteralRestriction literalRestriction3 = new LiteralRestriction();
+
+ PatternSolver solver = new PatternSolver( pattern );
+
+ solver.addOperator( OperatorDescr.Type.AND );
+ solver.add( literalRestriction );
+ solver.addOperator( OperatorDescr.Type.OR );
+ solver.add( literalRestriction2 );
+ solver.add( literalRestriction3 );
+ solver.end();
+ solver.end();
+
+ List<Set<VerifierComponent>> list = solver.getPossibilityLists();
+ assertEquals( 2,
+ list.size() );
+
+ assertEquals( 2,
+ list.get( 0 ).size() );
+ assertTrue( list.get( 0 ).contains( literalRestriction ) );
+ assertTrue( list.get( 0 ).contains( literalRestriction2 ) );
+
+ assertEquals( 2,
+ list.get( 1 ).size() );
+ assertTrue( list.get( 1 ).contains( literalRestriction ) );
+ assertTrue( list.get( 1 ).contains( literalRestriction3 ) );
+ }
+
+ /**
+ * <pre>
+ * and
+ * / \
+ * or or
+ * / \ / \
+ * descr descr2 descr3 descr4
+ * </pre>
+ *
+ * result:<br>
+ * descr && descr3<br>
+ * or<br>
+ * descr && descr4<br>
+ * or<br>
+ * descr2 && descr3<br>
+ * or<br>
+ * descr2 && descr4
+ */
+ public void testAddAndOrOr() {
+ Pattern pattern = new Pattern();
+
+ LiteralRestriction literalRestriction = new LiteralRestriction();
+ LiteralRestriction literalRestriction2 = new LiteralRestriction();
+ LiteralRestriction literalRestriction3 = new LiteralRestriction();
+ LiteralRestriction literalRestriction4 = new LiteralRestriction();
+
+ PatternSolver solver = new PatternSolver( pattern );
+
+ solver.addOperator( OperatorDescr.Type.AND );
+ solver.addOperator( OperatorDescr.Type.OR );
+ solver.add( literalRestriction );
+ solver.add( literalRestriction2 );
+ solver.end();
+ solver.addOperator( OperatorDescr.Type.OR );
+ solver.add( literalRestriction3 );
+ solver.add( literalRestriction4 );
+ solver.end();
+ solver.end();
+
+ List<Set<VerifierComponent>> list = solver.getPossibilityLists();
+ assertEquals( 4,
+ list.size() );
+
+ assertEquals( 2,
+ list.get( 0 ).size() );
+ assertTrue( list.get( 0 ).contains( literalRestriction ) );
+ assertTrue( list.get( 0 ).contains( literalRestriction3 ) );
+
+ assertEquals( 2,
+ list.get( 1 ).size() );
+ assertTrue( list.get( 1 ).contains( literalRestriction ) );
+ assertTrue( list.get( 1 ).contains( literalRestriction4 ) );
+
+ assertEquals( 2,
+ list.get( 2 ).size() );
+ assertTrue( list.get( 2 ).contains( literalRestriction2 ) );
+ assertTrue( list.get( 2 ).contains( literalRestriction3 ) );
+
+ assertEquals( 2,
+ list.get( 3 ).size() );
+ assertTrue( list.get( 3 ).contains( literalRestriction2 ) );
+ assertTrue( list.get( 3 ).contains( literalRestriction4 ) );
+ }
+
+ /**
+ * <pre>
+ * or
+ * / \
+ * and and
+ * / \ / \
+ * descr descr2 descr3 descr4
+ * </pre>
+ *
+ * result:<br>
+ * descr && descr2<br>
+ * or<br>
+ * descr3 && descr4
+ */
+ public void testAddOrAndAnd() {
+ Pattern pattern = new Pattern();
+
+ LiteralRestriction literalRestriction = new LiteralRestriction();
+ LiteralRestriction literalRestriction2 = new LiteralRestriction();
+ LiteralRestriction literalRestriction3 = new LiteralRestriction();
+ LiteralRestriction literalRestriction4 = new LiteralRestriction();
+
+ PatternSolver solver = new PatternSolver( pattern );
+
+ solver.addOperator( OperatorDescr.Type.OR );
+ solver.addOperator( OperatorDescr.Type.AND );
+ solver.add( literalRestriction );
+ solver.add( literalRestriction2 );
+ solver.end();
+ solver.addOperator( OperatorDescr.Type.AND );
+ solver.add( literalRestriction3 );
+ solver.add( literalRestriction4 );
+ solver.end();
+ solver.end();
+
+ List<Set<VerifierComponent>> list = solver.getPossibilityLists();
+ assertEquals( 2,
+ list.size() );
+
+ assertEquals( 2,
+ list.get( 0 ).size() );
+ assertTrue( list.get( 0 ).contains( literalRestriction ) );
+ assertTrue( list.get( 0 ).contains( literalRestriction2 ) );
+
+ assertEquals( 2,
+ list.get( 1 ).size() );
+ assertTrue( list.get( 1 ).contains( literalRestriction3 ) );
+ assertTrue( list.get( 1 ).contains( literalRestriction4 ) );
+ }
+
+ /**
+ * <pre>
+ * or
+ * / \
+ * and or
+ * / \ / \
+ * descr descr2 descr3 descr4
+ * </pre>
+ *
+ * result:<br>
+ * descr && descr2<br>
+ * or<br>
+ * descr3<br>
+ * or<br>
+ * descr4
+ */
+ public void testAddOrAndOr() {
+ Pattern pattern = new Pattern();
+
+ LiteralRestriction literalRestriction = new LiteralRestriction();
+ LiteralRestriction literalRestriction2 = new LiteralRestriction();
+ LiteralRestriction literalRestriction3 = new LiteralRestriction();
+ LiteralRestriction literalRestriction4 = new LiteralRestriction();
+
+ PatternSolver solver = new PatternSolver( pattern );
+
+ solver.addOperator( OperatorDescr.Type.OR );
+ solver.addOperator( OperatorDescr.Type.AND );
+ solver.add( literalRestriction );
+ solver.add( literalRestriction2 );
+ solver.end();
+ solver.addOperator( OperatorDescr.Type.OR );
+ solver.add( literalRestriction3 );
+ solver.add( literalRestriction4 );
+ solver.end();
+ solver.end();
+
+ List<Set<VerifierComponent>> list = solver.getPossibilityLists();
+ assertEquals( 3,
+ list.size() );
+
+ assertEquals( 2,
+ list.get( 0 ).size() );
+ assertTrue( list.get( 0 ).contains( literalRestriction ) );
+ assertTrue( list.get( 0 ).contains( literalRestriction2 ) );
+
+ assertEquals( 1,
+ list.get( 1 ).size() );
+ assertTrue( list.get( 1 ).contains( literalRestriction3 ) );
+
+ assertEquals( 1,
+ list.get( 2 ).size() );
+ assertTrue( list.get( 2 ).contains( literalRestriction4 ) );
+ }
+
+ /**
+ * <pre>
+ * and
+ * / | \
+ * and or descr5
+ * / \ / \
+ * descr descr2 descr3 descr4
+ * </pre>
+ *
+ * result:<br>
+ * descr && descr2 && descr3 && descr5<br>
+ * or<br>
+ * descr && descr2 && descr4 && descr5<br>
+ */
+ public void testAddOrAndOrDescr() {
+ Pattern pattern = new Pattern();
+
+ LiteralRestriction literalRestriction = new LiteralRestriction();
+ LiteralRestriction literalRestriction2 = new LiteralRestriction();
+ LiteralRestriction literalRestriction3 = new LiteralRestriction();
+ LiteralRestriction literalRestriction4 = new LiteralRestriction();
+ LiteralRestriction literalRestriction5 = new LiteralRestriction();
+
+ PatternSolver solver = new PatternSolver( pattern );
+
+ solver.addOperator( OperatorDescr.Type.AND );
+ solver.addOperator( OperatorDescr.Type.AND );
+ solver.add( literalRestriction );
+ solver.add( literalRestriction2 );
+ solver.end();
+ solver.addOperator( OperatorDescr.Type.OR );
+ solver.add( literalRestriction3 );
+ solver.add( literalRestriction4 );
+ solver.end();
+ solver.add( literalRestriction5 );
+ solver.end();
+
+ List<Set<VerifierComponent>> list = solver.getPossibilityLists();
+ assertEquals( 2,
+ list.size() );
+
+ assertEquals( 4,
+ list.get( 0 ).size() );
+ assertTrue( list.get( 0 ).contains( literalRestriction ) );
+ assertTrue( list.get( 0 ).contains( literalRestriction2 ) );
+ assertTrue( list.get( 0 ).contains( literalRestriction3 ) );
+ assertTrue( list.get( 0 ).contains( literalRestriction5 ) );
+
+ assertEquals( 4,
+ list.get( 1 ).size() );
+ assertTrue( list.get( 1 ).contains( literalRestriction ) );
+ assertTrue( list.get( 1 ).contains( literalRestriction2 ) );
+ assertTrue( list.get( 1 ).contains( literalRestriction4 ) );
+ assertTrue( list.get( 1 ).contains( literalRestriction4 ) );
+ }
+}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantPossibilitiesTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -11,11 +11,11 @@
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.RulePossibility;
+import org.drools.verifier.components.SubPattern;
+import org.drools.verifier.components.SubRule;
import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.dao.VerifierResult;
-import org.drools.verifier.dao.VerifierResultFactory;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Cause;
import org.drools.verifier.report.components.Redundancy;
import org.drools.verifier.report.components.RedundancyType;
@@ -23,285 +23,296 @@
public class SubsumptantPossibilitiesTest extends SubsumptionTestBase {
- public void testPatternPossibilityRedundancy1() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Possibilities.drl"));
+ public void testSubPatternRedundancy1() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Possibilities.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find subsumptant pattern possibilities"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Find subsumptant pattern possibilities" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- session.setGlobal("result", result);
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ session.setGlobal( "result",
+ result );
- /*
- * Redundant patterns
- */
- String ruleName1 = "Rule 1";
- String ruleName2 = "Rule 2";
+ /*
+ * Redundant patterns
+ */
+ String ruleName1 = "Rule 1";
+ String ruleName2 = "Rule 2";
- Pattern p1 = new Pattern();
- p1.setRuleName(ruleName1);
- Pattern p2 = new Pattern();
- p2.setRuleName(ruleName2);
+ Pattern p1 = new Pattern();
+ p1.setRuleName( ruleName1 );
+ Pattern p2 = new Pattern();
+ p2.setRuleName( ruleName2 );
- LiteralRestriction lr1 = new LiteralRestriction();
- lr1.setRuleName(ruleName1);
- lr1.setOrderNumber(0);
- LiteralRestriction lr2 = new LiteralRestriction();
- lr2.setRuleName(ruleName2);
- lr2.setOrderNumber(0);
- LiteralRestriction lr3 = new LiteralRestriction();
- lr3.setRuleName(ruleName2);
- lr3.setOrderNumber(1);
+ LiteralRestriction lr1 = new LiteralRestriction();
+ lr1.setRuleName( ruleName1 );
+ lr1.setOrderNumber( 0 );
+ LiteralRestriction lr2 = new LiteralRestriction();
+ lr2.setRuleName( ruleName2 );
+ lr2.setOrderNumber( 0 );
+ LiteralRestriction lr3 = new LiteralRestriction();
+ lr3.setRuleName( ruleName2 );
+ lr3.setOrderNumber( 1 );
- PatternPossibility pp1 = new PatternPossibility();
- pp1.setPatternId(p1.getId());
- pp1.setRuleName(ruleName1);
- pp1.add(lr1);
+ SubPattern pp1 = new SubPattern();
+ pp1.setPatternGuid( p1.getGuid() );
+ pp1.setRuleName( ruleName1 );
+ pp1.add( lr1 );
- PatternPossibility pp2 = new PatternPossibility();
- pp2.setPatternId(p2.getId());
- pp2.setRuleName(ruleName2);
- pp2.add(lr2);
- pp2.add(lr3);
+ SubPattern pp2 = new SubPattern();
+ pp2.setPatternGuid( p2.getGuid() );
+ pp2.setRuleName( ruleName2 );
+ pp2.add( lr2 );
+ pp2.add( lr3 );
- Redundancy r1 = new Redundancy(lr1, lr2);
- Redundancy r2 = new Redundancy(p1, p2);
+ Redundancy r1 = new Redundancy( lr1,
+ lr2 );
+ Redundancy r2 = new Redundancy( p1,
+ p2 );
- data.add(p1);
- data.add(p2);
- data.add(lr1);
- data.add(lr2);
- data.add(lr3);
- data.add(pp1);
- data.add(pp2);
- data.add(r1);
- data.add(r2);
+ data.add( p1 );
+ data.add( p2 );
+ data.add( lr1 );
+ data.add( lr2 );
+ data.add( lr3 );
+ data.add( pp1 );
+ data.add( pp2 );
+ data.add( r1 );
+ data.add( r2 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createSubsumptionMap(sessionResult
- .iterateObjects());
+ Map<Cause, Set<Cause>> map = createSubsumptionMap( sessionResult.iterateObjects() );
- assertTrue(TestBase.causeMapContains(map, pp1, pp2));
+ assertTrue( TestBase.causeMapContains( map,
+ pp1,
+ pp2 ) );
- if (!map.isEmpty()) {
- fail("More redundancies than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More redundancies than was expected." );
+ }
+ }
- public void testPatternPossibilityRedundancy2() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Possibilities.drl"));
+ public void testSubPatternRedundancy2() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Possibilities.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find subsumptant pattern possibilities"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Find subsumptant pattern possibilities" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- session.setGlobal("result", result);
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ session.setGlobal( "result",
+ result );
- /*
- * Not redundant patterns
- *
- * For example: Pattern ( a==1, b==1, c==1) and Pattern ( a==1, c==1)
- */
- String ruleName1 = "Rule 1";
- String ruleName2 = "Rule 2";
+ /*
+ * Not redundant patterns
+ *
+ * For example: Pattern ( a==1, b==1, c==1) and Pattern ( a==1, c==1)
+ */
+ String ruleName1 = "Rule 1";
+ String ruleName2 = "Rule 2";
- Pattern p1 = new Pattern();
- p1.setRuleName(ruleName1);
- Pattern p2 = new Pattern();
- p2.setRuleName(ruleName2);
+ Pattern p1 = new Pattern();
+ p1.setRuleName( ruleName1 );
+ Pattern p2 = new Pattern();
+ p2.setRuleName( ruleName2 );
- LiteralRestriction lr1 = new LiteralRestriction();
- lr1.setRuleName(ruleName1);
- lr1.setOrderNumber(0);
- LiteralRestriction lr2 = new LiteralRestriction();
- lr2.setRuleName(ruleName2);
- lr2.setOrderNumber(0);
- LiteralRestriction lr3 = new LiteralRestriction();
- lr3.setRuleName(ruleName2);
- lr3.setOrderNumber(1);
+ LiteralRestriction lr1 = new LiteralRestriction();
+ lr1.setRuleName( ruleName1 );
+ lr1.setOrderNumber( 0 );
+ LiteralRestriction lr2 = new LiteralRestriction();
+ lr2.setRuleName( ruleName2 );
+ lr2.setOrderNumber( 0 );
+ LiteralRestriction lr3 = new LiteralRestriction();
+ lr3.setRuleName( ruleName2 );
+ lr3.setOrderNumber( 1 );
- PatternPossibility pp1 = new PatternPossibility();
- pp1.setPatternId(p1.getId());
- pp1.setRuleName(ruleName1);
- pp1.add(lr1);
+ SubPattern pp1 = new SubPattern();
+ pp1.setPatternGuid( p1.getGuid() );
+ pp1.setRuleName( ruleName1 );
+ pp1.add( lr1 );
- PatternPossibility pp2 = new PatternPossibility();
- pp2.setPatternId(p2.getId());
- pp2.setRuleName(ruleName2);
- pp2.add(lr2);
- pp2.add(lr3);
+ SubPattern pp2 = new SubPattern();
+ pp2.setPatternGuid( p2.getGuid() );
+ pp2.setRuleName( ruleName2 );
+ pp2.add( lr2 );
+ pp2.add( lr3 );
- Redundancy r1 = new Redundancy(lr1, lr3);
- Redundancy r2 = new Redundancy(p1, p2);
+ Redundancy r1 = new Redundancy( lr1,
+ lr3 );
+ Redundancy r2 = new Redundancy( p1,
+ p2 );
- data.add(p1);
- data.add(p2);
- data.add(lr1);
- data.add(lr2);
- data.add(lr3);
- data.add(pp1);
- data.add(pp2);
- data.add(r1);
- data.add(r2);
+ data.add( p1 );
+ data.add( p2 );
+ data.add( lr1 );
+ data.add( lr2 );
+ data.add( lr3 );
+ data.add( pp1 );
+ data.add( pp2 );
+ data.add( r1 );
+ data.add( r2 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createSubsumptionMap(sessionResult
- .iterateObjects());
+ Map<Cause, Set<Cause>> map = createSubsumptionMap( sessionResult.iterateObjects() );
- assertFalse(TestBase.causeMapContains(map, pp1, pp2));
+ assertFalse( TestBase.causeMapContains( map,
+ pp1,
+ pp2 ) );
- if (!map.isEmpty()) {
- fail("More redundancies than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More redundancies than was expected." );
+ }
+ }
- public void testRulePossibilityRedundancy1() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Possibilities.drl"));
+ public void testSubRuleRedundancy1() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Possibilities.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find subsumptant rule possibilities"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Find subsumptant rule possibilities" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- session.setGlobal("result", result);
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ session.setGlobal( "result",
+ result );
- /*
- * First rules. These are subsumptant,
- */
- String ruleName1 = "Rule 1";
- String ruleName2 = "Rule 2";
+ /*
+ * First rules. These are subsumptant,
+ */
+ String ruleName1 = "Rule 1";
+ String ruleName2 = "Rule 2";
- VerifierRule r1 = new VerifierRule();
- r1.setRuleName(ruleName1);
- VerifierRule r2 = new VerifierRule();
- r2.setRuleName(ruleName2);
+ VerifierRule r1 = new VerifierRule();
+ r1.setRuleName( ruleName1 );
+ VerifierRule r2 = new VerifierRule();
+ r2.setRuleName( ruleName2 );
- PatternPossibility pp1 = new PatternPossibility();
- pp1.setRuleName(ruleName1);
- PatternPossibility pp2 = new PatternPossibility();
- pp2.setRuleName(ruleName2);
- PatternPossibility pp3 = new PatternPossibility();
- pp3.setRuleName(ruleName2);
+ SubPattern pp1 = new SubPattern();
+ pp1.setRuleName( ruleName1 );
+ SubPattern pp2 = new SubPattern();
+ pp2.setRuleName( ruleName2 );
+ SubPattern pp3 = new SubPattern();
+ pp3.setRuleName( ruleName2 );
- RulePossibility rp1 = new RulePossibility();
- rp1.setRuleId(r1.getId());
- rp1.setRuleName(ruleName1);
- rp1.add(pp1);
+ SubRule rp1 = new SubRule();
+ rp1.setRuleGuid( r1.getGuid() );
+ rp1.setRuleName( ruleName1 );
+ rp1.add( pp1 );
- RulePossibility rp2 = new RulePossibility();
- rp2.setRuleId(r2.getId());
- rp2.setRuleName(ruleName2);
- rp2.add(pp2);
- rp2.add(pp3);
+ SubRule rp2 = new SubRule();
+ rp2.setRuleGuid( r2.getGuid() );
+ rp2.setRuleName( ruleName2 );
+ rp2.add( pp2 );
+ rp2.add( pp3 );
- Redundancy possibilityredundancy = new Redundancy(
- RedundancyType.STRONG, pp1, pp2);
- Redundancy ruleRedundancy = new Redundancy(r1, r2);
+ Redundancy possibilityredundancy = new Redundancy( RedundancyType.STRONG,
+ pp1,
+ pp2 );
+ Redundancy ruleRedundancy = new Redundancy( r1,
+ r2 );
- data.add(r1);
- data.add(r2);
- data.add(pp1);
- data.add(pp2);
- data.add(pp3);
- data.add(possibilityredundancy);
- data.add(ruleRedundancy);
- data.add(rp1);
- data.add(rp2);
+ data.add( r1 );
+ data.add( r2 );
+ data.add( pp1 );
+ data.add( pp2 );
+ data.add( pp3 );
+ data.add( possibilityredundancy );
+ data.add( ruleRedundancy );
+ data.add( rp1 );
+ data.add( rp2 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createSubsumptionMap(sessionResult
- .iterateObjects());
+ Map<Cause, Set<Cause>> map = createSubsumptionMap( sessionResult.iterateObjects() );
- assertTrue(TestBase.causeMapContains(map, rp1, rp2));
+ assertTrue( TestBase.causeMapContains( map,
+ rp1,
+ rp2 ) );
- if (!map.isEmpty()) {
- fail("More redundancies than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More redundancies than was expected." );
+ }
+ }
- public void testRulePossibilityRedundancy2() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Possibilities.drl"));
+ public void testSubRuleRedundancy2() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Possibilities.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find subsumptant rule possibilities"));
-// session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-// "XXX: test rule"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Find subsumptant rule possibilities" ) );
+ // session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+ // "XXX: test rule"));
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- session.setGlobal("result", result);
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ session.setGlobal( "result",
+ result );
- /*
- * First rules. These are subsumptant,
- */
- String ruleName1 = "Rule 1";
- String ruleName2 = "Rule 2";
+ /*
+ * First rules. These are subsumptant,
+ */
+ String ruleName1 = "Rule 1";
+ String ruleName2 = "Rule 2";
- VerifierRule r1 = new VerifierRule();
- r1.setRuleName(ruleName1);
- VerifierRule r2 = new VerifierRule();
- r2.setRuleName(ruleName2);
+ VerifierRule r1 = new VerifierRule();
+ r1.setRuleName( ruleName1 );
+ VerifierRule r2 = new VerifierRule();
+ r2.setRuleName( ruleName2 );
- PatternPossibility pp1 = new PatternPossibility();
- pp1.setRuleName(ruleName1);
- PatternPossibility pp2 = new PatternPossibility();
- pp2.setRuleName(ruleName1);
- PatternPossibility pp3 = new PatternPossibility();
- pp3.setRuleName(ruleName2);
- PatternPossibility pp4 = new PatternPossibility();
- pp4.setRuleName(ruleName2);
+ SubPattern pp1 = new SubPattern();
+ pp1.setRuleName( ruleName1 );
+ SubPattern pp2 = new SubPattern();
+ pp2.setRuleName( ruleName1 );
+ SubPattern pp3 = new SubPattern();
+ pp3.setRuleName( ruleName2 );
+ SubPattern pp4 = new SubPattern();
+ pp4.setRuleName( ruleName2 );
- RulePossibility rp1 = new RulePossibility();
- rp1.setRuleId(r1.getId());
- rp1.setRuleName(ruleName1);
- rp1.add(pp1);
- rp1.add(pp2);
+ SubRule rp1 = new SubRule();
+ rp1.setRuleGuid( r1.getGuid() );
+ rp1.setRuleName( ruleName1 );
+ rp1.add( pp1 );
+ rp1.add( pp2 );
- RulePossibility rp2 = new RulePossibility();
- rp2.setRuleId(r2.getId());
- rp2.setRuleName(ruleName2);
- rp2.add(pp3);
- rp2.add(pp4);
+ SubRule rp2 = new SubRule();
+ rp2.setRuleGuid( r2.getGuid() );
+ rp2.setRuleName( ruleName2 );
+ rp2.add( pp3 );
+ rp2.add( pp4 );
- Redundancy possibilityredundancy = new Redundancy(
- RedundancyType.STRONG, pp1, pp3);
- Subsumption possibilitysubsupmtion = new Subsumption(pp2, pp4);
- Redundancy ruleRedundancy = new Redundancy(r1, r2);
+ Redundancy possibilityredundancy = new Redundancy( RedundancyType.STRONG,
+ pp1,
+ pp3 );
+ Subsumption possibilitysubsupmtion = new Subsumption( pp2,
+ pp4 );
+ Redundancy ruleRedundancy = new Redundancy( r1,
+ r2 );
- data.add(r1);
- data.add(r2);
- data.add(pp1);
- data.add(pp2);
- data.add(pp3);
- data.add(possibilityredundancy);
- data.add(possibilitysubsupmtion);
- data.add(ruleRedundancy);
- data.add(rp1);
- data.add(rp2);
+ data.add( r1 );
+ data.add( r2 );
+ data.add( pp1 );
+ data.add( pp2 );
+ data.add( pp3 );
+ data.add( possibilityredundancy );
+ data.add( possibilitysubsupmtion );
+ data.add( ruleRedundancy );
+ data.add( rp1 );
+ data.add( rp2 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createSubsumptionMap(sessionResult
- .iterateObjects());
+ Map<Cause, Set<Cause>> map = createSubsumptionMap( sessionResult.iterateObjects() );
- assertTrue(TestBase.causeMapContains(map, rp1, rp2));
- assertTrue(TestBase.causeMapContains(map, pp2, pp4));
+ assertTrue( TestBase.causeMapContains( map,
+ rp1,
+ rp2 ) );
+ assertTrue( TestBase.causeMapContains( map,
+ pp2,
+ pp4 ) );
- if (!map.isEmpty()) {
- fail("More redundancies than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More redundancies than was expected." );
+ }
+ }
}
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 2009-10-24 16:58:25 UTC (rev 29798)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/subsumption/SubsumptantRestrictionsTest.java 2009-10-24 18:25:51 UTC (rev 29799)
@@ -12,171 +12,179 @@
import org.drools.verifier.TestBase;
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.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
import org.drools.verifier.report.components.Cause;
public class SubsumptantRestrictionsTest extends SubsumptionTestBase {
- public void testRestrictionRedundancyGreater() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Restrictions.drl"));
+ public void testRestrictionRedundancyGreater() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Restrictions.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find subsumptant restrictions, greater than"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Find subsumptant restrictions, greater than" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- session.setGlobal("result", result);
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ session.setGlobal( "result",
+ result );
- /*
- * Redundant restrictions
- */
- // Doubles
- Field field1 = new Field();
+ /*
+ * Redundant restrictions
+ */
+ // Doubles
+ Field field1 = new Field();
- LiteralRestriction lr1 = new LiteralRestriction();
- lr1.setOrderNumber(0);
- lr1.setFieldId(field1.getId());
- lr1.setValue("1.0");
- lr1.setOperator(Operator.GREATER);
+ LiteralRestriction lr1 = new LiteralRestriction();
+ lr1.setOrderNumber( 0 );
+ lr1.setFieldGuid( field1.getGuid() );
+ lr1.setValue( "1.0" );
+ lr1.setOperator( Operator.GREATER );
- LiteralRestriction lr2 = new LiteralRestriction();
- lr2.setOrderNumber(1);
- lr2.setFieldId(field1.getId());
- lr2.setValue("2.0");
- lr2.setOperator(Operator.GREATER);
+ LiteralRestriction lr2 = new LiteralRestriction();
+ lr2.setOrderNumber( 1 );
+ lr2.setFieldGuid( field1.getGuid() );
+ lr2.setValue( "2.0" );
+ lr2.setOperator( Operator.GREATER );
- // Integers
- Field field2 = new Field();
+ // Integers
+ Field field2 = new Field();
- LiteralRestriction lr3 = new LiteralRestriction();
- lr3.setOrderNumber(0);
- lr3.setFieldId(field2.getId());
- lr3.setValue("1");
- lr3.setOperator(Operator.GREATER);
+ LiteralRestriction lr3 = new LiteralRestriction();
+ lr3.setOrderNumber( 0 );
+ lr3.setFieldGuid( field2.getGuid() );
+ lr3.setValue( "1" );
+ lr3.setOperator( Operator.GREATER );
- LiteralRestriction lr4 = new LiteralRestriction();
- lr4.setOrderNumber(1);
- lr4.setFieldId(field2.getId());
- lr4.setValue("2");
- lr4.setOperator(Operator.GREATER_OR_EQUAL);
+ LiteralRestriction lr4 = new LiteralRestriction();
+ lr4.setOrderNumber( 1 );
+ lr4.setFieldGuid( field2.getGuid() );
+ lr4.setValue( "2" );
+ lr4.setOperator( Operator.GREATER_OR_EQUAL );
- // Dates
- Field field3 = new Field();
+ // Dates
+ Field field3 = new Field();
- LiteralRestriction lr5 = new LiteralRestriction();
- lr5.setOrderNumber(0);
- lr5.setFieldId(field3.getId());
- lr5.setValue("10-dec-2005");
- lr5.setOperator(Operator.GREATER);
+ LiteralRestriction lr5 = new LiteralRestriction();
+ lr5.setOrderNumber( 0 );
+ lr5.setFieldGuid( field3.getGuid() );
+ lr5.setValue( "10-dec-2005" );
+ lr5.setOperator( Operator.GREATER );
- LiteralRestriction lr6 = new LiteralRestriction();
- lr6.setOrderNumber(1);
- lr6.setFieldId(field3.getId());
- lr6.setValue("10-dec-2008");
- lr6.setOperator(Operator.EQUAL);
+ LiteralRestriction lr6 = new LiteralRestriction();
+ lr6.setOrderNumber( 1 );
+ lr6.setFieldGuid( field3.getGuid() );
+ lr6.setValue( "10-dec-2008" );
+ lr6.setOperator( Operator.EQUAL );
- data.add(lr1);
- data.add(lr2);
- data.add(lr3);
- data.add(lr4);
- data.add(lr5);
- data.add(lr6);
+ data.add( lr1 );
+ data.add( lr2 );
+ data.add( lr3 );
+ data.add( lr4 );
+ data.add( lr5 );
+ data.add( lr6 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createSubsumptionMap(sessionResult
- .iterateObjects());
+ Map<Cause, Set<Cause>> map = createSubsumptionMap( sessionResult.iterateObjects() );
- assertTrue(TestBase.causeMapContains(map, lr1, lr2));
- assertTrue(TestBase.causeMapContains(map, lr3, lr4));
- assertTrue(TestBase.causeMapContains(map, lr5, lr6));
+ assertTrue( TestBase.causeMapContains( map,
+ lr1,
+ lr2 ) );
+ assertTrue( TestBase.causeMapContains( map,
+ lr3,
+ lr4 ) );
+ assertTrue( TestBase.causeMapContains( map,
+ lr5,
+ lr6 ) );
- if (!map.isEmpty()) {
- fail("More redundancies than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More redundancies than was expected." );
+ }
+ }
- public void testRestrictionRedundancyLess() throws Exception {
- StatelessSession session = getStatelessSession(this.getClass()
- .getResourceAsStream("Restrictions.drl"));
+ public void testRestrictionRedundancyLess() throws Exception {
+ StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Restrictions.drl" ) );
- session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
- "Find subsumptant restrictions, less than"));
+ session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Find subsumptant restrictions, less than" ) );
- Collection<Object> data = new ArrayList<Object>();
+ Collection<Object> data = new ArrayList<Object>();
- VerifierResult result = VerifierResultFactory.createVerifierResult();
- session.setGlobal("result", result);
+ VerifierReport result = VerifierReportFactory.newVerifierReport();
+ session.setGlobal( "result",
+ result );
- /*
- * Redundant restrictions
- */
- // Doubles
- Field field1 = new Field();
+ /*
+ * Redundant restrictions
+ */
+ // Doubles
+ Field field1 = new Field();
- LiteralRestriction lr1 = new LiteralRestriction();
- lr1.setOrderNumber(0);
- lr1.setFieldId(field1.getId());
- lr1.setValue("2.0");
- lr1.setOperator(Operator.LESS);
+ LiteralRestriction lr1 = new LiteralRestriction();
+ lr1.setOrderNumber( 0 );
+ lr1.setFieldGuid( field1.getGuid() );
+ lr1.setValue( "2.0" );
+ lr1.setOperator( Operator.LESS );
- LiteralRestriction lr2 = new LiteralRestriction();
- lr2.setOrderNumber(1);
- lr2.setFieldId(field1.getId());
- lr2.setValue("1.0");
- lr2.setOperator(Operator.LESS);
+ LiteralRestriction lr2 = new LiteralRestriction();
+ lr2.setOrderNumber( 1 );
+ lr2.setFieldGuid( field1.getGuid() );
+ lr2.setValue( "1.0" );
+ lr2.setOperator( Operator.LESS );
- // Integers
- Field field2 = new Field();
+ // Integers
+ Field field2 = new Field();
- LiteralRestriction lr3 = new LiteralRestriction();
- lr3.setOrderNumber(0);
- lr3.setFieldId(field2.getId());
- lr3.setValue("2");
- lr3.setOperator(Operator.LESS);
+ LiteralRestriction lr3 = new LiteralRestriction();
+ lr3.setOrderNumber( 0 );
+ lr3.setFieldGuid( field2.getGuid() );
+ lr3.setValue( "2" );
+ lr3.setOperator( Operator.LESS );
- LiteralRestriction lr4 = new LiteralRestriction();
- lr4.setOrderNumber(1);
- lr4.setFieldId(field2.getId());
- lr4.setValue("1");
- lr4.setOperator(Operator.LESS_OR_EQUAL);
+ LiteralRestriction lr4 = new LiteralRestriction();
+ lr4.setOrderNumber( 1 );
+ lr4.setFieldGuid( field2.getGuid() );
+ lr4.setValue( "1" );
+ lr4.setOperator( Operator.LESS_OR_EQUAL );
- // Dates
- Field field3 = new Field();
+ // Dates
+ Field field3 = new Field();
- LiteralRestriction lr5 = new LiteralRestriction();
- lr5.setOrderNumber(0);
- lr5.setFieldId(field3.getId());
- lr5.setValue("10-dec-2008");
- lr5.setOperator(Operator.LESS);
+ LiteralRestriction lr5 = new LiteralRestriction();
+ lr5.setOrderNumber( 0 );
+ lr5.setFieldGuid( field3.getGuid() );
+ lr5.setValue( "10-dec-2008" );
+ lr5.setOperator( Operator.LESS );
- LiteralRestriction lr6 = new LiteralRestriction();
- lr6.setOrderNumber(1);
- lr6.setFieldId(field3.getId());
- lr6.setValue("10-dec-2005");
- lr6.setOperator(Operator.EQUAL);
+ LiteralRestriction lr6 = new LiteralRestriction();
+ lr6.setOrderNumber( 1 );
+ lr6.setFieldGuid( field3.getGuid() );
+ lr6.setValue( "10-dec-2005" );
+ lr6.setOperator( Operator.EQUAL );
- data.add(lr1);
- data.add(lr2);
- data.add(lr3);
- data.add(lr4);
- data.add(lr5);
- data.add(lr6);
+ data.add( lr1 );
+ data.add( lr2 );
+ data.add( lr3 );
+ data.add( lr4 );
+ data.add( lr5 );
+ data.add( lr6 );
- StatelessSessionResult sessionResult = session.executeWithResults(data);
+ StatelessSessionResult sessionResult = session.executeWithResults( data );
- Map<Cause, Set<Cause>> map = createSubsumptionMap(sessionResult
- .iterateObjects());
+ Map<Cause, Set<Cause>> map = createSubsumptionMap( sessionResult.iterateObjects() );
- assertTrue(TestBase.causeMapContains(map, lr1, lr2));
- assertTrue(TestBase.causeMapContains(map, lr3, lr4));
- assertTrue(TestBase.causeMapContains(map, lr5, lr6));
+ assertTrue( TestBase.causeMapContains( map,
+ lr1,
+ lr2 ) );
+ assertTrue( TestBase.causeMapContains( map,
+ lr3,
+ lr4 ) );
+ assertTrue( TestBase.causeMapContains( map,
+ lr5,
+ lr6 ) );
- if (!map.isEmpty()) {
- fail("More redundancies than was expected.");
- }
- }
+ if ( !map.isEmpty() ) {
+ fail( "More redundancies than was expected." );
+ }
+ }
}
Added: labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/FindPatterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/FindPatterns.drl (rev 0)
+++ labs/jbossrules/trunk/drools-verifier/src/test/resources/org/drools/verifier/FindPatterns.drl 2009-10-24 18:25:51 UTC (rev 29799)
@@ -0,0 +1,25 @@
+package org.test.findPatterns
+
+import org.drools.verifier.components.Pattern;
+
+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.data.VerifierReport;
+
+global VerifierReport result;
+
+
+
+rule "Find patterns"
+ when
+ $p :Pattern( )
+ then
+ result.add( new VerifierMessage(
+ Severity.NOTE,
+ MessageType.NOT_SPECIFIED,
+ $p,
+ "This pattern was found." ) );
+
+end
More information about the jboss-svn-commits
mailing list