[jboss-svn-commits] JBL Code SVN: r17142 - in labs/jbossrules/trunk/drools-compiler/src: main/java/org/drools/rule/builder/dialect/java and 9 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Dec 9 22:39:41 EST 2007
Author: mark.proctor at jboss.com
Date: 2007-12-09 22:39:41 -0500 (Sun, 09 Dec 2007)
New Revision: 17142
Added:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/BaseAbstractHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/Configuration.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/DefaultConfiguration.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/DefaultSemanticModule.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ExtensibleXmlParser.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ProcessBuildData.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/SemanticModule.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/SemanticModules.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlProcessReader.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ActionNodeHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ConnectionHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/EndNodeHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/GlobalHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ImportHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ProcessHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/StartNodeHandler.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/ActionNodeTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTestHelper.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/XmlPackageReaderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/processes/
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/processes/ActionNodeTest.xml
Removed:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AccumulateHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AccumulateHelperHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AndHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/BaseAbstractHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/CollectHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/Configuration.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/DefaultConfiguration.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/EvalHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ExistsHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ExpressionHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FieldBindingHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FieldConstraintHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ForallHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FromHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FunctionHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/LhsHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/LiteralRestrictionHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/NotHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/OrHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PackageHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PatternHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PredicateHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/QualifiedIdentifierRestrictionHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/QueryHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/RestrictionConnectiveHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ReturnValueRestrictionHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/RuleHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/VariableRestrictionsHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlPackageReader.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/DumperTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/DumperTestHelper.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/XmlPackageReaderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_Dump.drl
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseAccumulate.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseCollect.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseComplex.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseExists.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseForall.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseFrom.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseFunction.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseGlobal.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseImport.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseLhs.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParsePackageName.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseQuery.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseRhs.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseRule.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_RoundTrip.drl
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_RoundTrip.xml
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_accumulateall.drl
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_complex.drl
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_from.drl
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_simplerule.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/Dialect.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaActionBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/Handler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlDumper.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java
Log:
JBRULES-1375 Create initial ePDL language parser implementation
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/Dialect.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/Dialect.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/Dialect.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -8,6 +8,7 @@
import org.drools.base.TypeResolver;
import org.drools.lang.descr.BaseDescr;
import org.drools.lang.descr.FunctionDescr;
+import org.drools.lang.descr.ProcessDescr;
import org.drools.lang.descr.RuleDescr;
import org.drools.rule.Package;
import org.drools.rule.builder.AccumulateBuilder;
@@ -105,6 +106,8 @@
void init(Package pkg);
void init(RuleDescr ruleDescr);
+
+ void init(ProcessDescr processDescr);
/**
* An interface with the results from the expression/block analysis
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -57,6 +57,7 @@
import org.drools.ruleflow.core.RuleFlowProcess;
import org.drools.ruleflow.core.impl.ActionNodeImpl;
import org.drools.ruleflow.core.impl.DroolsConsequenceAction;
+import org.drools.xml.ExtensibleXmlParser;
import org.drools.xml.XmlPackageReader;
import org.xml.sax.SAXException;
@@ -236,7 +237,24 @@
this.results = this.dialectRegistry.addResults( this.results );
}
+
+ public void addProcess(Process process) {
+ ProcessBuilder processBuilder = new ProcessBuilder( this );
+
+ try {
+ processBuilder.buildProcess( process );
+ this.results.addAll( processBuilder.getErrors() );
+ } catch ( Exception e ) {
+ if ( e instanceof RuntimeException ) {
+ throw (RuntimeException) e;
+ }
+ this.results.add( new RuleFlowLoadError( "Unable to load the rule flow.",
+ e ) );
+ }
+ this.results = this.dialectRegistry.addResults( this.results );
+ }
+
/**
* This adds a package from a Descr/AST This will also trigger a compile, if
* there are any generated classes to compile of course.
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -115,10 +115,10 @@
RuleFlowProcess rfp = (RuleFlowProcess) process;
ProcessDescr processDescr = new ProcessDescr();
- processDescr.setClassName( rfp.getName() );
processDescr.setName( rfp.getPackageName() );
-
+
Dialect dialect = this.packageBuilder.getDialectRegistry().getDialect( "java" );
+ dialect.init( processDescr );
ProcessBuildContext context = new ProcessBuildContext( this.packageBuilder.getPackageBuilderConfiguration(),
this.packageBuilder.getPackage(),
@@ -149,7 +149,7 @@
public void buildAction(Process process, ProcessDescr processDescr, ProcessBuildContext context, ActionNodeImpl actionNode) {
DroolsConsequenceAction action = (DroolsConsequenceAction) actionNode.getAction();
ActionDescr actionDescr = new ActionDescr();
- actionDescr.setText( action.getConsequence() );
+ actionDescr.setText( action.getConsequence() );
Dialect dialect = this.packageBuilder.getDialectRegistry().getDialect( action.getDialect() );
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaActionBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaActionBuilder.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaActionBuilder.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -51,7 +51,7 @@
final ActionNodeImpl actionNode,
final ActionDescr actionDescr) {
- final String className = "action" + context.getNextId();
+ final String className = "action" + context.getNextId();
JavaDialect dialect = (JavaDialect) context.getDialect( "java" );
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -203,9 +203,19 @@
final String ruleClassName = getUniqueLegalName( this.pkg.getName(),
ruleDescr.getName(),
"java",
+ "Rule",
this.src );
ruleDescr.setClassName( StringUtils.ucFirst( ruleClassName ) );
}
+
+ public void init(final ProcessDescr processDescr) {
+ final String processDescrClassName = getUniqueLegalName( this.pkg.getName(),
+ processDescr.getName(),
+ "java",
+ "Process",
+ this.src );
+ processDescr.setClassName( StringUtils.ucFirst( processDescrClassName ) );
+ }
public String getExpressionDialectName() {
return EXPRESSION_DIALECT_NAME;
@@ -611,9 +621,10 @@
public static String getUniqueLegalName(final String packageName,
final String name,
final String ext,
+ final String prefix,
final ResourceReader src) {
// replaces all non alphanumeric or $ chars with _
- String newName = "Rule_" + name.replaceAll( "[[^\\w]$]",
+ String newName = prefix + "_" + name.replaceAll( "[[^\\w]$]",
"_" );
// make sure the class name does not exist, if it does increase the counter
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -32,6 +32,7 @@
import org.drools.lang.descr.NotDescr;
import org.drools.lang.descr.OrDescr;
import org.drools.lang.descr.PatternDescr;
+import org.drools.lang.descr.ProcessDescr;
import org.drools.lang.descr.QueryDescr;
import org.drools.lang.descr.RuleDescr;
import org.drools.rule.Declaration;
@@ -71,46 +72,46 @@
implements
Dialect {
- public final static String ID = "mvel";
+ public final static String ID = "mvel";
- private final static String EXPRESSION_DIALECT_NAME = "MVEL";
+ private final static String EXPRESSION_DIALECT_NAME = "MVEL";
- private final PatternBuilder pattern = new PatternBuilder();
- private final QueryBuilder query = new QueryBuilder();
- private final MVELAccumulateBuilder accumulate = new MVELAccumulateBuilder();
- private final SalienceBuilder salience = new MVELSalienceBuilder();
- private final MVELEvalBuilder eval = new MVELEvalBuilder();
- private final MVELPredicateBuilder predicate = new MVELPredicateBuilder();
- private final MVELReturnValueBuilder returnValue = new MVELReturnValueBuilder();
- private final MVELConsequenceBuilder consequence = new MVELConsequenceBuilder();
- private final MVELActionBuilder actionBuilder = new MVELActionBuilder();
+ private final PatternBuilder pattern = new PatternBuilder();
+ private final QueryBuilder query = new QueryBuilder();
+ private final MVELAccumulateBuilder accumulate = new MVELAccumulateBuilder();
+ private final SalienceBuilder salience = new MVELSalienceBuilder();
+ private final MVELEvalBuilder eval = new MVELEvalBuilder();
+ private final MVELPredicateBuilder predicate = new MVELPredicateBuilder();
+ private final MVELReturnValueBuilder returnValue = new MVELReturnValueBuilder();
+ private final MVELConsequenceBuilder consequence = new MVELConsequenceBuilder();
+ private final MVELActionBuilder actionBuilder = new MVELActionBuilder();
private final MVELReturnValueEvaluatorBuilder returnValueEvaluatorBuilder = new MVELReturnValueEvaluatorBuilder();
//private final JavaRuleClassBuilder rule = new JavaRuleClassBuilder();
- private final MVELFromBuilder from = new MVELFromBuilder();
- private final JavaFunctionBuilder function = new JavaFunctionBuilder();
- private final CollectBuilder collect = new CollectBuilder();
- private final ForallBuilder forall = new ForallBuilder();
+ private final MVELFromBuilder from = new MVELFromBuilder();
+ private final JavaFunctionBuilder function = new JavaFunctionBuilder();
+ private final CollectBuilder collect = new CollectBuilder();
+ private final ForallBuilder forall = new ForallBuilder();
- private Map interceptors;
+ private Map interceptors;
- private List results;
+ private List results;
//private final JavaFunctionBuilder function = new JavaFunctionBuilder();
- private MemoryResourceReader src;
+ private MemoryResourceReader src;
- private Package pkg;
- private MVELDialectConfiguration configuration;
- private TypeResolver typeResolver;
- private ClassFieldExtractorCache classFieldExtractorCache;
- private MVELExprAnalyzer analyzer;
+ private Package pkg;
+ private MVELDialectConfiguration configuration;
+ private TypeResolver typeResolver;
+ private ClassFieldExtractorCache classFieldExtractorCache;
+ private MVELExprAnalyzer analyzer;
- private Map imports;
- private Map packageImports;
+ private Map imports;
+ private Map packageImports;
- private boolean strictMode;
-
- private static Boolean languageSet = new Boolean( false );
+ private boolean strictMode;
+ private static Boolean languageSet = new Boolean( false );
+
public void addFunction(FunctionDescr functionDescr,
TypeResolver typeResolver) {
throw new UnsupportedOperationException( "MVEL does not support functions" );
@@ -122,7 +123,7 @@
public MVELDialect() {
}
-
+
public static void setLanguageLevel(int level) {
synchronized ( languageSet ) {
// this synchronisation is needed as setLanguageLevel is now thread safe
@@ -144,8 +145,8 @@
this.strictMode = this.configuration.isStrict();
// we currently default to reflective optimisation
- OptimizerFactory.setDefaultOptimizer("reflective");
-
+ OptimizerFactory.setDefaultOptimizer( "reflective" );
+
MVEL.setThreadSafe( true );
this.analyzer = new MVELExprAnalyzer();
@@ -208,14 +209,14 @@
this.builders.put( FunctionDescr.class,
this.function );
- }
+ }
public void init(Package pkg) {
this.pkg = pkg;
this.results = new ArrayList();
this.src = new MemoryResourceReader();
- if( this.pkg != null ) {
- this.addImport( this.pkg.getName()+".*" );
+ if ( this.pkg != null ) {
+ this.addImport( this.pkg.getName() + ".*" );
}
}
@@ -223,20 +224,30 @@
//MVEL:test null to Fix failing test on org.drools.rule.builder.dialect.mvel.MVELConsequenceBuilderTest.testImperativeCodeError()
// @todo: why is this here, MVEL doesn't compile anything? mdp
- String pkgName = this.pkg == null? "": this.pkg.getName();
+ String pkgName = this.pkg == null ? "" : this.pkg.getName();
final String ruleClassName = JavaDialect.getUniqueLegalName( pkgName,
- ruleDescr.getName(),
- "mvel",
- this.src );
+ ruleDescr.getName(),
+ "mvel",
+ "Rule",
+ this.src );
ruleDescr.setClassName( StringUtils.ucFirst( ruleClassName ) );
}
+ public void init(final ProcessDescr processDescr) {
+ final String processDescrClassName = JavaDialect.getUniqueLegalName( this.pkg.getName(),
+ processDescr.getName(),
+ "mvel",
+ "Process",
+ this.src );
+ processDescr.setClassName( StringUtils.ucFirst( processDescrClassName ) );
+ }
+
public String getExpressionDialectName() {
return EXPRESSION_DIALECT_NAME;
}
public void addRule(RuleBuildContext context) {
- //MVEL: Compiler change
+ //MVEL: Compiler change
final RuleDescr ruleDescr = context.getRuleDescr();
// setup the line mappins for this rule
@@ -245,24 +256,29 @@
mapping.setStartLine( ruleDescr.getConsequenceLine() );
mapping.setOffset( ruleDescr.getConsequenceOffset() );
- context.getPkg().getPackageCompilationData().getLineMappings().put( name, mapping );
+ context.getPkg().getPackageCompilationData().getLineMappings().put( name,
+ mapping );
}
-
+
public void addProcess(final ProcessBuildContext context) {
// @TODO setup line mappings
}
public void addImport(String importEntry) {
if ( importEntry.endsWith( ".*" ) ) {
- importEntry = importEntry.substring( 0, importEntry.length()-2 );
- this.packageImports.put( importEntry, importEntry );
+ importEntry = importEntry.substring( 0,
+ importEntry.length() - 2 );
+ this.packageImports.put( importEntry,
+ importEntry );
} else {
try {
Class cls = this.typeResolver.resolveType( importEntry );
- this.imports.put( ParseTools.getSimpleClassName( cls ), cls );
+ this.imports.put( ParseTools.getSimpleClassName( cls ),
+ cls );
} catch ( ClassNotFoundException e ) {
- this.results.add( new ImportError( importEntry, 1 ) );
+ this.results.add( new ImportError( importEntry,
+ 1 ) );
}
}
}
@@ -290,12 +306,14 @@
Method[] methods = cls.getDeclaredMethods();
for ( int i = 0; i < methods.length; i++ ) {
if ( methods[i].getName().equals( methodName ) ) {
- this.imports.put( methodName, methods[i] );
+ this.imports.put( methodName,
+ methods[i] );
break;
}
}
} catch ( ClassNotFoundException e ) {
- this.results.add( new ImportError( staticImportEntry, -1 ) );
+ this.results.add( new ImportError( staticImportEntry,
+ -1 ) );
}
}
@@ -327,7 +345,7 @@
final Set[] availableIdentifiers,
Map localTypes) {
//new Set[]{context.getDeclarationResolver().getDeclarations().keySet(), context.getPkg().getGlobals().keySet()},
-
+
Dialect.AnalysisResult result = null;
try {
result = this.analyzer.analyzeExpression( context,
@@ -336,9 +354,9 @@
localTypes );
} catch ( final Exception e ) {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- descr,
- null,
- "Unable to determine the used declarations.\n" + e.getMessage()) );
+ descr,
+ null,
+ "Unable to determine the used declarations.\n" + e.getMessage() ) );
}
return result;
}
@@ -362,7 +380,7 @@
final Set[] availableIdentifiers,
Map localTypes) {
//new Set[]{context.getDeclarationResolver().getDeclarations().keySet(), context.getPkg().getGlobals().keySet()}
-
+
Dialect.AnalysisResult result = null;
try {
result = this.analyzer.analyzeExpression( context,
@@ -371,24 +389,26 @@
localTypes );
} catch ( final Exception e ) {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- descr,
- e,
- "Unable to determine the used declarations.\n" + e.getMessage()) );
+ descr,
+ e,
+ "Unable to determine the used declarations.\n" + e.getMessage() ) );
}
return result;
- }
-
+ }
+
public Serializable compile(final String text,
final Dialect.AnalysisResult analysis,
final Map interceptors,
final Map outerDeclarations,
final PackageBuildContext context) {
- final ParserContext parserContext = getParserContext(analysis, outerDeclarations, context );
+ final ParserContext parserContext = getParserContext( analysis,
+ outerDeclarations,
+ context );
ExpressionCompiler compiler = new ExpressionCompiler( text.trim() );
- if (MVELDebugHandler.isDebugMode()) {
- System.out.println("Source before MVEL Compilation:\n"+text.trim());
+ if ( MVELDebugHandler.isDebugMode() ) {
+ System.out.println( "Source before MVEL Compilation:\n" + text.trim() );
compiler.setDebugSymbols( true );
}
@@ -396,15 +416,16 @@
return expr;
}
- public ParserContext getParserContext(final Dialect.AnalysisResult analysis, final Map outerDeclarations, final PackageBuildContext context) {
+ public ParserContext getParserContext(final Dialect.AnalysisResult analysis,
+ final Map outerDeclarations,
+ final PackageBuildContext context) {
// @todo proper source file name
final ParserContext parserContext = new ParserContext( this.imports,
null,
"xxx" );//context.getPkg().getName()+"."+context.getRuleDescr().getClassName() );
-
for ( Iterator it = this.packageImports.values().iterator(); it.hasNext(); ) {
- String packageImport = ( String ) it.next();
+ String packageImport = (String) it.next();
parserContext.addPackageImport( packageImport );
}
@@ -413,13 +434,13 @@
if ( interceptors != null ) {
parserContext.setInterceptors( interceptors );
}
-
+
List list[] = analysis.getBoundIdentifiers();
-
+
// @TODO yuck, we don't want conditions for configuration :(
if ( context instanceof RuleBuildContext ) {
//FIXME: analysis can be null, throws an NPE
- DeclarationScopeResolver resolver = ((RuleBuildContext)context).getDeclarationResolver();
+ DeclarationScopeResolver resolver = ((RuleBuildContext) context).getDeclarationResolver();
for ( Iterator it = list[0].iterator(); it.hasNext(); ) {
String identifier = (String) it.next();
Class cls = resolver.getDeclaration( identifier ).getExtractor().getExtractToClass();
@@ -485,11 +506,11 @@
public ConsequenceBuilder getConsequenceBuilder() {
return this.consequence;
}
-
+
public ActionBuilder getActionBuilder() {
return this.actionBuilder;
}
-
+
public MVELReturnValueEvaluatorBuilder getReturnValueEvaluatorBuilder() {
return this.returnValueEvaluatorBuilder;
}
@@ -523,12 +544,12 @@
}
public RuleClassBuilder getRuleClassBuilder() {
- throw new UnsupportedOperationException("MVELDialect.getRuleClassBuilder is not supported" );
+ throw new UnsupportedOperationException( "MVELDialect.getRuleClassBuilder is not supported" );
}
-
+
public ProcessClassBuilder getProcessClassBuilder() {
- throw new UnsupportedOperationException("MVELDialect.getProcessClassBuilder is not supported" );
- }
+ throw new UnsupportedOperationException( "MVELDialect.getProcessClassBuilder is not supported" );
+ }
public TypeResolver getTypeResolver() {
return this.typeResolver;
@@ -542,6 +563,4 @@
return ID;
}
-
-
}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AccumulateHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AccumulateHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AccumulateHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,90 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.AccumulateDescr;
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.ConditionalElementDescr;
-import org.drools.lang.descr.FromDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * @author fernandomeyer
- */
-public class AccumulateHandler extends BaseAbstractHandler
- implements
- Handler {
-
- AccumulateHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
-
- this.validParents.add( FromDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
-
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
-
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
- final AccumulateDescr accumulateDesrc = new AccumulateDescr();
- return accumulateDesrc;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
-
- final Configuration config = this.xmlPackageReader.endConfiguration();
- final AccumulateDescr accumulateDescr = (AccumulateDescr) this.xmlPackageReader.getCurrent();
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator ite = parents.listIterator( parents.size() );
- ite.previous();
- final Object parent = ite.previous();
-
- if ( parent.getClass().getName().equals( FromDescr.class.getName() ) ) {
- final PatternDescr result = (PatternDescr) ite.previous();
- result.setSource( accumulateDescr );
-
- } else if ( parent instanceof ConditionalElementDescr ) {
- final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
- parentDescr.addDescr( accumulateDescr );
- }
-
- return null;
- }
-
- public Class generateNodeFor() {
- return AccumulateDescr.class;
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AccumulateHelperHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AccumulateHelperHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AccumulateHelperHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,102 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.AccumulateDescr;
-import org.drools.lang.descr.BaseDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author fernandomeyer
- */
-
-public class AccumulateHelperHandler extends BaseAbstractHandler
- implements
- Handler {
-
- AccumulateHelperHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( AccumulateDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
-
- this.validPeers.add( PatternDescr.class );
- this.validPeers.add( BaseDescr.class );
-
- this.allowNesting = true;
- }
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
-
- final Configuration config = this.xmlPackageReader.endConfiguration();
- final BaseDescr baseDescr = (BaseDescr) this.xmlPackageReader.getCurrent();
-
- final String expression = config.getText();
-
- if ( expression == null) {
- throw new SAXParseException( "<" + localName + "> must have some content",
- this.xmlPackageReader.getLocator() );
- }
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator ite = parents.listIterator( parents.size() );
- ite.previous();
- final Object parent = ite.previous();
-
- final AccumulateDescr accumulate = (AccumulateDescr) parent;
-
- if ( localName.equals( "init" ) ) accumulate.setInitCode( expression.trim() );
- else if ( localName.equals( "action" ) ) accumulate.setActionCode( expression.trim() );
- else if ( localName.equals( "result" ) ) accumulate.setResultCode( expression.trim() );
- else if ( localName.equals( "reverse" ) ) accumulate.setReverseCode( expression.trim() );
- else if ( localName.equals( "external-function" ) ) {
- accumulate.setExternalFunction( true );
- accumulate.setFunctionIdentifier( config.getAttribute( "evaluator" ) );
- accumulate.setExpression( config.getAttribute( "expression" ) );
- }
-
- return null;
- }
-
- public Class generateNodeFor() {
- return BaseDescr.class;
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
-
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- return new BaseDescr();
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AndHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AndHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AndHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,110 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.AccumulateDescr;
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.ConditionalElementDescr;
-import org.drools.lang.descr.EvalDescr;
-import org.drools.lang.descr.ExistsDescr;
-import org.drools.lang.descr.ForallDescr;
-import org.drools.lang.descr.MultiPatternDestinationDescr;
-import org.drools.lang.descr.NotDescr;
-import org.drools.lang.descr.OrDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.drools.lang.descr.QueryDescr;
-import org.drools.lang.descr.RuleDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class AndHandler extends BaseAbstractHandler
- implements
- Handler {
- AndHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( QueryDescr.class );
- this.validParents.add( RuleDescr.class );
- this.validParents.add( OrDescr.class );
- this.validParents.add( LiteralRestrictionHandler.class );
- this.validParents.add( AccumulateDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( AndDescr.class );
- this.validPeers.add( OrDescr.class );
- this.validPeers.add( NotDescr.class );
- this.validPeers.add( ExistsDescr.class );
- this.validPeers.add( EvalDescr.class );
- this.validPeers.add( PatternDescr.class );
- this.validPeers.add( ForallDescr.class );
-
- this.allowNesting = true;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
- final AndDescr andDescr = new AndDescr();
-
- return andDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final AndDescr andDescr = (AndDescr) this.xmlPackageReader.getCurrent();
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
- final Object parent = it.previous();
-
- if ( parent instanceof RuleDescr || parent instanceof QueryDescr ) {
- final RuleDescr ruleDescr = (RuleDescr) parent;
- ruleDescr.setLhs( andDescr );
- } else if ( parent instanceof MultiPatternDestinationDescr) {
- final MultiPatternDestinationDescr mpDescr = (MultiPatternDestinationDescr) parent;
- mpDescr.setInput(andDescr);
- } else if ( parent instanceof ConditionalElementDescr ) {
- final ConditionalElementDescr ceDescr = (ConditionalElementDescr) parent;
- ceDescr.addDescr( andDescr );
- }
-
- return null;
- }
-
- public Class generateNodeFor() {
- return AndDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/BaseAbstractHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/BaseAbstractHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/BaseAbstractHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,42 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.Set;
-
-/**
- * @author mproctor
- *
- */
-abstract class BaseAbstractHandler {
- protected XmlPackageReader xmlPackageReader;
- protected Set validPeers;
- protected Set validParents;
- protected boolean allowNesting;
-
- public Set getValidParents() {
- return this.validParents;
- }
-
- public Set getValidPeers() {
- return this.validPeers;
- }
-
- public boolean allowNesting() {
- return this.allowNesting;
- }
-}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/BaseAbstractHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/BaseAbstractHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/BaseAbstractHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,63 @@
+package org.drools.xml;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.util.Set;
+
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+/**
+ * @author mproctor
+ *
+ */
+public abstract class BaseAbstractHandler {
+ protected Set validPeers;
+ protected Set validParents;
+ protected boolean allowNesting;
+
+ public Set getValidParents() {
+ return this.validParents;
+ }
+
+ public Set getValidPeers() {
+ return this.validPeers;
+ }
+
+ public boolean allowNesting() {
+ return this.allowNesting;
+ }
+
+ public void emptyAttributeCheck(final String element,
+ final String attributeName,
+ final String attribute,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ if ( attribute == null || attribute.trim().equals( "" ) ) {
+ throw new SAXParseException( "<" + element + "> requires a '" + attributeName + "' attribute",
+ xmlPackageReader.getLocator() );
+ }
+ }
+
+ public void emptyContentCheck(final String element,
+ final String content,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ if ( content == null || content.trim().equals( "" ) ) {
+ throw new SAXParseException( "<" + element + "> requires content",
+ xmlPackageReader.getLocator() );
+ }
+ }
+}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/CollectHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/CollectHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/CollectHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,89 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.CollectDescr;
-import org.drools.lang.descr.ConditionalElementDescr;
-import org.drools.lang.descr.FromDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * @author fernandomeyer
- *
- */
-public class CollectHandler extends BaseAbstractHandler
- implements
- Handler {
-
- CollectHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
-
- this.validParents.add( FromDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
-
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
-
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
- final CollectDescr collectDescr = new CollectDescr();
- return collectDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
-
- final Configuration config = this.xmlPackageReader.endConfiguration();
- final CollectDescr collectDescr = (CollectDescr) this.xmlPackageReader.getCurrent();
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator ite = parents.listIterator( parents.size() );
- ite.previous();
- final Object parent = ite.previous();
-
- if ( parent.getClass().getName().equals( FromDescr.class.getName() ) ) {
- final PatternDescr resultPattern = (PatternDescr) ite.previous();
- resultPattern.setSource( collectDescr );
- } else if ( parent instanceof ConditionalElementDescr ) {
- final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
- parentDescr.addDescr( collectDescr );
- }
-
- return null;
- }
-
- public Class generateNodeFor() {
- return CollectDescr.class;
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/Configuration.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/Configuration.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/Configuration.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,103 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Configuration passed to a configurable <code>SemanticComponent</code>.
- *
- * <p>
- * A <code>Configuration</code> may actually form a tree-shaped structure in
- * order to hold complex configuration data. Each node in the tree is
- * represented by a <code>Configuration</code> object that has a name and may
- * contain attributes, children and text.
- * </p>
- *
- * @author <a href="mailto:bob at werken.com">bob mcwhirter </a>
- *
- * @version $Id: Configuration.java,v 1.5 2005/01/23 18:16:20 mproctor Exp $
- */
-public interface Configuration {
- // ----------------------------------------------------------------------
- // Constants
- // ----------------------------------------------------------------------
-
- /** Empty <code>Configuration</code> array. */
- Configuration[] EMPTY_ARRAY = new Configuration[0];
-
- // ----------------------------------------------------------------------
- // Interface
- // ----------------------------------------------------------------------
-
- /**
- * Retrieve the node name.
- *
- * @return The node name.
- */
- String getName();
-
- /**
- * Retrieve the node text.
- *
- * @return The node text.
- */
- String getText();
-
- /**
- * Retrieve an attribute value.
- *
- * @param name The attribute name.
- *
- * @return The attribute value or <code>null</code> if no attribute
- * matches the specified name.
- */
- String getAttribute(String name);
-
- /**
- * Retrieve all attribute names.
- *
- * @return The attribute names.
- */
- String[] getAttributeNames();
-
- /**
- * Retrieve a child node.
- *
- * @param name The child name.
- *
- * @return The first child matching the specified name, otherwise
- * <code>null</code> if none match.
- */
- Configuration getChild(String name);
-
- /**
- * Retrieve children nodes.
- *
- * @param name The child name.
- *
- * @return All children matching the specified name, otherwise an empty
- * array if none match.
- */
- Configuration[] getChildren(String name);
-
- /**
- * Retrieve all children nodes.
- *
- * @return All children nodes, otherwise an empty array if this node
- * contains no children.
- */
- Configuration[] getChildren();
-}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/Configuration.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/Configuration.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/Configuration.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,103 @@
+package org.drools.xml;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Configuration passed to a configurable <code>SemanticComponent</code>.
+ *
+ * <p>
+ * A <code>Configuration</code> may actually form a tree-shaped structure in
+ * order to hold complex configuration data. Each node in the tree is
+ * represented by a <code>Configuration</code> object that has a name and may
+ * contain attributes, children and text.
+ * </p>
+ *
+ * @author <a href="mailto:bob at werken.com">bob mcwhirter </a>
+ *
+ * @version $Id: Configuration.java,v 1.5 2005/01/23 18:16:20 mproctor Exp $
+ */
+public interface Configuration {
+ // ----------------------------------------------------------------------
+ // Constants
+ // ----------------------------------------------------------------------
+
+ /** Empty <code>Configuration</code> array. */
+ Configuration[] EMPTY_ARRAY = new Configuration[0];
+
+ // ----------------------------------------------------------------------
+ // Interface
+ // ----------------------------------------------------------------------
+
+ /**
+ * Retrieve the node name.
+ *
+ * @return The node name.
+ */
+ String getName();
+
+ /**
+ * Retrieve the node text.
+ *
+ * @return The node text.
+ */
+ String getText();
+
+ /**
+ * Retrieve an attribute value.
+ *
+ * @param name The attribute name.
+ *
+ * @return The attribute value or <code>null</code> if no attribute
+ * matches the specified name.
+ */
+ String getAttribute(String name);
+
+ /**
+ * Retrieve all attribute names.
+ *
+ * @return The attribute names.
+ */
+ String[] getAttributeNames();
+
+ /**
+ * Retrieve a child node.
+ *
+ * @param name The child name.
+ *
+ * @return The first child matching the specified name, otherwise
+ * <code>null</code> if none match.
+ */
+ Configuration getChild(String name);
+
+ /**
+ * Retrieve children nodes.
+ *
+ * @param name The child name.
+ *
+ * @return All children matching the specified name, otherwise an empty
+ * array if none match.
+ */
+ Configuration[] getChildren(String name);
+
+ /**
+ * Retrieve all children nodes.
+ *
+ * @return All children nodes, otherwise an empty array if this node
+ * contains no children.
+ */
+ Configuration[] getChildren();
+}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/DefaultConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/DefaultConfiguration.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/DefaultConfiguration.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,175 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Default implementation of <code>Configuration</code>.
- *
- * @author <a href="mailto:bob at werken.com">bob mcwhirter </a>
- *
- * @version $Id: DefaultConfiguration.java,v 1.2 2004/09/17 00:25:09 mproctor
- * Exp $
- */
-public class DefaultConfiguration
- implements
- Configuration {
- // ----------------------------------------------------------------------
- // Class members
- // ----------------------------------------------------------------------
-
- /** Empty <code>String</code> array. */
- private static final String[] EMPTY_STRING_ARRAY = new String[0];
-
- // ----------------------------------------------------------------------
- // Instance members
- // ----------------------------------------------------------------------
-
- /** Node name. */
- private final String name;
-
- /** Node text. */
- private String text = "";
-
- /** Node attributes. */
- private final Map attrs;
-
- /** Children nodes. */
- private final List children;
-
- // ----------------------------------------------------------------------
- // Constructors
- // ----------------------------------------------------------------------
-
- /**
- * Construct.
- *
- * @param name
- * The name of the node.
- */
- public DefaultConfiguration(final String name) {
- this.name = name;
- this.attrs = new HashMap();
- this.children = new ArrayList();
- }
-
- /**
- * @see Configuration
- */
- public String getName() {
- return this.name;
- }
-
- /**
- * Set the node text.
- *
- * @param text
- * The text.
- */
- public void setText(final String text) {
- this.text = text;
- }
-
- /**
- * @see Configuration
- */
- public String getText() {
- return this.text;
- }
-
- /**
- * Set an attribute value.
- *
- * @param name
- * The attribute name.
- * @param value
- * The attribute value.
- */
- public void setAttribute(final String name,
- final String value) {
- this.attrs.put( name,
- value );
- }
-
- /**
- * @see Configuration
- */
- public String getAttribute(final String name) {
- return (String) this.attrs.get( name );
- }
-
- /**
- * @see Configuration
- */
- public String[] getAttributeNames() {
- return (String[]) this.attrs.keySet().toArray( DefaultConfiguration.EMPTY_STRING_ARRAY );
- }
-
- /**
- * Add a child <code>Configuration</code>.
- *
- * @param config
- * The child.
- */
- public void addChild(final Configuration config) {
- this.children.add( config );
- }
-
- /**
- * @see Configuration
- */
- public Configuration getChild(final String name) {
- for ( final Iterator childIter = this.children.iterator(); childIter.hasNext(); ) {
- final Configuration eachConfig = (Configuration) childIter.next();
-
- if ( eachConfig.getName().equals( name ) ) {
- return eachConfig;
- }
- }
-
- return null;
- }
-
- /**
- * @see Configuration
- */
- public Configuration[] getChildren(final String name) {
- final List result = new ArrayList();
-
- for ( final Iterator childIter = this.children.iterator(); childIter.hasNext(); ) {
- final Configuration eachConfig = (Configuration) childIter.next();
-
- if ( eachConfig.getName().equals( name ) ) {
- result.add( eachConfig );
- }
- }
-
- return (Configuration[]) result.toArray( Configuration.EMPTY_ARRAY );
- }
-
- /**
- * @see Configuration
- */
- public Configuration[] getChildren() {
- return (Configuration[]) this.children.toArray( Configuration.EMPTY_ARRAY );
- }
-}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/DefaultConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/DefaultConfiguration.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/DefaultConfiguration.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,176 @@
+package org.drools.xml;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * Default implementation of <code>Configuration</code>.
+ *
+ * @author <a href="mailto:bob at werken.com">bob mcwhirter </a>
+ *
+ * @version $Id: DefaultConfiguration.java,v 1.2 2004/09/17 00:25:09 mproctor
+ * Exp $
+ */
+public class DefaultConfiguration
+ implements
+ Configuration {
+ // ----------------------------------------------------------------------
+ // Class members
+ // ----------------------------------------------------------------------
+
+ /** Empty <code>String</code> array. */
+ private static final String[] EMPTY_STRING_ARRAY = new String[0];
+
+ // ----------------------------------------------------------------------
+ // Instance members
+ // ----------------------------------------------------------------------
+
+ /** Node name. */
+ private final String name;
+
+ /** Node text. */
+ private String text = "";
+
+ /** Node attributes. */
+ private final Map attrs;
+
+ /** Children nodes. */
+ private final List children;
+
+ // ----------------------------------------------------------------------
+ // Constructors
+ // ----------------------------------------------------------------------
+
+ /**
+ * Construct.
+ *
+ * @param name
+ * The name of the node.
+ */
+ public DefaultConfiguration(final String name) {
+ this.name = name;
+ this.attrs = new HashMap();
+ this.children = new ArrayList();
+ }
+
+ /**
+ * @see Configuration
+ */
+ public String getName() {
+ return this.name;
+ }
+
+ /**
+ * Set the node text.
+ *
+ * @param text
+ * The text.
+ */
+ public void setText(final String text) {
+ this.text = text;
+ }
+
+ /**
+ * @see Configuration
+ */
+ public String getText() {
+ return this.text;
+ }
+
+ /**
+ * Set an attribute value.
+ *
+ * @param name
+ * The attribute name.
+ * @param value
+ * The attribute value.
+ */
+ public void setAttribute(final String name,
+ final String value) {
+ this.attrs.put( name,
+ value );
+ }
+
+ /**
+ * @see Configuration
+ */
+ public String getAttribute(final String name) {
+ return (String) this.attrs.get( name );
+ }
+
+ /**
+ * @see Configuration
+ */
+ public String[] getAttributeNames() {
+ return (String[]) this.attrs.keySet().toArray( DefaultConfiguration.EMPTY_STRING_ARRAY );
+ }
+
+ /**
+ * Add a child <code>Configuration</code>.
+ *
+ * @param config
+ * The child.
+ */
+ public void addChild(final Configuration config) {
+ this.children.add( config );
+ }
+
+ /**
+ * @see Configuration
+ */
+ public Configuration getChild(final String name) {
+ for ( final Iterator childIter = this.children.iterator(); childIter.hasNext(); ) {
+ final Configuration eachConfig = (Configuration) childIter.next();
+
+ if ( eachConfig.getName().equals( name ) ) {
+ return eachConfig;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * @see Configuration
+ */
+ public Configuration[] getChildren(final String name) {
+ final List result = new ArrayList();
+
+ for ( final Iterator childIter = this.children.iterator(); childIter.hasNext(); ) {
+ final Configuration eachConfig = (Configuration) childIter.next();
+
+ if ( eachConfig.getName().equals( name ) ) {
+ result.add( eachConfig );
+ }
+ }
+
+ return (Configuration[]) result.toArray( Configuration.EMPTY_ARRAY );
+ }
+
+ /**
+ * @see Configuration
+ */
+ public Configuration[] getChildren() {
+ return (Configuration[]) this.children.toArray( Configuration.EMPTY_ARRAY );
+ }
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/DefaultSemanticModule.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/DefaultSemanticModule.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/DefaultSemanticModule.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,27 @@
+package org.drools.xml;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class DefaultSemanticModule implements SemanticModule {
+ public String uri;
+ public Map<String, Handler> handlers;
+
+ public DefaultSemanticModule(String uri) {
+ this.uri = uri;
+ this.handlers = new HashMap<String, Handler>();
+ }
+
+ public String getUri() {
+ return this.uri;
+ }
+
+ public void addHandler(String name, Handler handler) {
+ this.handlers.put( name, handler );
+ }
+
+ public Handler getHandler(String name) {
+ return this.handlers.get( name );
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/EvalHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/EvalHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/EvalHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,106 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.ConditionalElementDescr;
-import org.drools.lang.descr.EvalDescr;
-import org.drools.lang.descr.ExistsDescr;
-import org.drools.lang.descr.ForallDescr;
-import org.drools.lang.descr.NotDescr;
-import org.drools.lang.descr.OrDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class EvalHandler extends BaseAbstractHandler
- implements
- Handler {
- EvalHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( AndDescr.class );
- this.validParents.add( OrDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( AndDescr.class );
- this.validPeers.add( OrDescr.class );
- this.validPeers.add( NotDescr.class );
- this.validPeers.add( ExistsDescr.class );
- this.validPeers.add( EvalDescr.class );
- this.validPeers.add( PatternDescr.class );
- this.validPeers.add( ForallDescr.class );
-
- this.allowNesting = true;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- final EvalDescr evalDescr = new EvalDescr();
-
- return evalDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final EvalDescr evalDescr = (EvalDescr) this.xmlPackageReader.getCurrent();
-
- final String expression = config.getText();
-
- if ( expression == null || expression.trim().equals( "" ) ) {
- throw new SAXParseException( "<eval> must have some content",
- this.xmlPackageReader.getLocator() );
- }
-
- evalDescr.setContent( expression );
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
- final Object parent = it.previous();
-
- final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
- parentDescr.addDescr( evalDescr );
-
- return null;
- }
-
- public Class generateNodeFor() {
- return EvalDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ExistsHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ExistsHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ExistsHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,102 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.ConditionalElementDescr;
-import org.drools.lang.descr.EvalDescr;
-import org.drools.lang.descr.ExistsDescr;
-import org.drools.lang.descr.ForallDescr;
-import org.drools.lang.descr.NotDescr;
-import org.drools.lang.descr.OrDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class ExistsHandler extends BaseAbstractHandler
- implements
- Handler {
- ExistsHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( AndDescr.class );
- this.validParents.add( OrDescr.class );
- this.validParents.add( NotDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( AndDescr.class );
- this.validPeers.add( OrDescr.class );
- this.validPeers.add( NotDescr.class );
- this.validPeers.add( ExistsDescr.class );
- this.validPeers.add( EvalDescr.class );
- this.validPeers.add( PatternDescr.class );
- this.validPeers.add( ForallDescr.class );
-
- this.allowNesting = true;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
- final ExistsDescr existsDescr = new ExistsDescr();
-
- return existsDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final ExistsDescr existsDescr = (ExistsDescr) this.xmlPackageReader.getCurrent();
-
- if ( (existsDescr.getDescrs().size() != 1) && (existsDescr.getDescrs().get( 0 ).getClass() != PatternDescr.class) ) {
- throw new SAXParseException( "<exists> can only have a single <pattern...> as a child element",
- this.xmlPackageReader.getLocator() );
- }
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
- final Object parent = it.previous();
-
- final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
- parentDescr.addDescr( existsDescr );
-
- return null;
- }
-
- public Class generateNodeFor() {
- return ExistsDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ExpressionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ExpressionHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ExpressionHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,109 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.antlr.runtime.ANTLRStringStream;
-import org.antlr.runtime.CharStream;
-import org.antlr.runtime.CommonTokenStream;
-import org.antlr.runtime.RecognitionException;
-import org.antlr.runtime.TokenStream;
-import org.drools.lang.DRLLexer;
-import org.drools.lang.DRLParser;
-import org.drools.lang.descr.BaseDescr;
-import org.drools.lang.descr.DeclarativeInvokerDescr;
-import org.drools.lang.descr.FromDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author fernandomeyer
- */
-
-public class ExpressionHandler extends BaseAbstractHandler
- implements
- Handler {
-
- ExpressionHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( FromHandler.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( BaseDescr.class );
-
- this.allowNesting = true;
- }
- }
-
- public Class generateNodeFor() {
- return BaseDescr.class;
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
-
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- return new BaseDescr();
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
-
- final Configuration config = this.xmlPackageReader.endConfiguration();
- final BaseDescr baseDescr = (BaseDescr) this.xmlPackageReader.getCurrent();
-
- final String expression = config.getText();
-
- if ( expression == null || expression.trim().equals( "" ) ) {
- throw new SAXParseException( "<" + localName + "> must have some content",
- this.xmlPackageReader.getLocator() );
- }
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator ite = parents.listIterator( parents.size() );
- ite.previous();
- final Object parent = ite.previous();
-
- final FromDescr fromSource = (FromDescr) parent;
- final CharStream charStream = new ANTLRStringStream( expression.trim() );
- final DRLLexer lexer = new DRLLexer( charStream );
- final TokenStream tokenStream = new CommonTokenStream( lexer );
- final DRLParser parser = new DRLParser( tokenStream );
-
- try {
- final DeclarativeInvokerDescr declarativeInvoker = parser.from_source( fromSource );
- fromSource.setDataSource( declarativeInvoker );
- } catch ( final RecognitionException e ) {
- throw new SAXParseException( "<" + localName + "> must have a valid expression content ",
- this.xmlPackageReader.getLocator() );
- }
-
- return null;
- }
-
-}
Copied: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ExtensibleXmlParser.java (from rev 17100, labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlPackageReader.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ExtensibleXmlParser.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ExtensibleXmlParser.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,714 @@
+package org.drools.xml;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.net.URL;
+import java.text.MessageFormat;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.ListIterator;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * <code>RuleSet</code> loader.
+ *
+ * Note you can override the default entity resolver by setting the System property of:
+ * <code>org.drools.io.EntityResolve</code> to your own custom entity resolver.
+ * This can be done using -Dorg.drools.io.EntityResolver=YourClassHere on the command line, for instance.
+ *
+ * @author <a href="mailto:bob at werken.com">bob mcwhirter </a>
+ */
+public class ExtensibleXmlParser extends DefaultHandler {
+ // ----------------------------------------------------------------------
+ // Constants
+ // ----------------------------------------------------------------------
+ public static final String ENTITY_RESOLVER_PROPERTY_NAME = "org.drools.io.EntityResolver";
+
+ /** Namespace URI for the general tags. */
+ public static final String RULES_NAMESPACE_URI = "http://drools.org/rules";
+
+ private static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
+
+ private static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
+
+ // ----------------------------------------------------------------------
+ // Instance members
+ // ----------------------------------------------------------------------
+ /** SAX parser. */
+ private SAXParser parser;
+
+ /** isValidating */
+ private boolean isValidating = true;
+
+ /** Locator for errors. */
+ private Locator locator;
+
+ // private Map repo;
+
+ /** Stack of configurations. */
+ private LinkedList configurationStack;
+
+ /** Current configuration text. */
+ private StringBuilder characters;
+
+ private SemanticModules modules;
+
+ private boolean lastWasEndElement;
+
+ private LinkedList parents;
+
+ private Object peer;
+
+ private Object current;
+
+ private Object data;
+
+ private final MessageFormat message = new MessageFormat( "({0}: {1}, {2}): {3}" );
+
+ private final Map namespaces = new HashMap();
+
+ EntityResolver entityResolver;
+
+ // ----------------------------------------------------------------------
+ // Constructors
+ // ----------------------------------------------------------------------
+
+ /**
+ * Construct.
+ *
+ * <p>
+ * Uses the default JAXP SAX parser and the default classpath-based
+ * <code>DefaultSemanticModule</code>.
+ * </p>
+ */
+ public ExtensibleXmlParser() {
+ // init
+ this.configurationStack = new LinkedList();
+ this.parents = new LinkedList();
+
+ initEntityResolver();
+ }
+
+ public void setSemanticModules(SemanticModules modules) {
+ this.modules = modules;
+ }
+
+ /**
+ * Construct.
+ *
+ * <p>
+ * Uses the default classpath-based <code>DefaultSemanticModule</code>.
+ * </p>
+ *
+ * @param parser
+ * The SAX parser.
+ */
+ public ExtensibleXmlParser(final SAXParser parser) {
+ this();
+ this.parser = parser;
+ }
+
+ // ----------------------------------------------------------------------
+ // Instance methods
+ // ----------------------------------------------------------------------
+
+ /**
+ * Read a <code>RuleSet</code> from a <code>Reader</code>.
+ *
+ * @param reader
+ * The reader containing the rule-set.
+ *
+ * @return The rule-set.
+ */
+ public Object read(final Reader reader) throws SAXException,
+ IOException {
+ return read( new InputSource( reader ) );
+ }
+
+ /**
+ * Read a <code>RuleSet</code> from an <code>InputStream</code>.
+ *
+ * @param inputStream
+ * The input-stream containing the rule-set.
+ *
+ * @return The rule-set.
+ */
+ public Object read(final InputStream inputStream) throws SAXException,
+ IOException {
+ return read( new InputSource( inputStream ) );
+ }
+
+ /**
+ * Read a <code>RuleSet</code> from an <code>InputSource</code>.
+ *
+ * @param in
+ * The rule-set input-source.
+ *
+ * @return The rule-set.
+ */
+ public Object read(final InputSource in) throws SAXException,
+ IOException {
+ SAXParser localParser = null;
+ if ( this.parser == null ) {
+ final SAXParserFactory factory = SAXParserFactory.newInstance();
+ factory.setNamespaceAware( true );
+
+ final String isValidatingString = System.getProperty( "drools.schema.validating" );
+ if ( System.getProperty( "drools.schema.validating" ) != null ) {
+ this.isValidating = Boolean.getBoolean( "drools.schema.validating" );
+ }
+
+ if ( this.isValidating == true ) {
+ factory.setValidating( true );
+ try {
+ localParser = factory.newSAXParser();
+ } catch ( final ParserConfigurationException e ) {
+ throw new RuntimeException( e.getMessage() );
+ }
+
+ try {
+ localParser.setProperty( ExtensibleXmlParser.JAXP_SCHEMA_LANGUAGE,
+ ExtensibleXmlParser.W3C_XML_SCHEMA );
+ } catch ( final SAXNotRecognizedException e ) {
+ boolean hideWarnings = Boolean.getBoolean( "drools.schema.hidewarnings" );
+ if ( !hideWarnings ) {
+ System.err.println( "Your SAX parser is not JAXP 1.2 compliant - turning off validation." );
+ }
+ localParser = null;
+ }
+ }
+
+ if ( localParser == null ) {
+ // not jaxp1.2 compliant so turn off validation
+ try {
+ this.isValidating = false;
+ factory.setValidating( this.isValidating );
+ localParser = factory.newSAXParser();
+ } catch ( final ParserConfigurationException e ) {
+ throw new RuntimeException( e.getMessage() );
+ }
+ }
+ } else {
+ localParser = this.parser;
+ }
+
+ if ( !localParser.isNamespaceAware() ) {
+ throw new RuntimeException( "parser must be namespace-aware" );
+ }
+
+ localParser.parse( in,
+ this );
+
+ return this.data;
+ }
+
+ public void setData(final Object data) {
+ this.data = data;
+ }
+
+ public Object getData() {
+ return this.data;
+ }
+
+ /**
+ * @see org.xml.sax.ContentHandler
+ */
+ public void setDocumentLocator(final Locator locator) {
+ this.locator = locator;
+ }
+
+ /**
+ * Get the <code>Locator</code>.
+ *
+ * @return The locator.
+ */
+ public Locator getLocator() {
+ return this.locator;
+ }
+
+ public void startDocument() {
+ this.isValidating = true;
+ this.current = null;
+ this.peer = null;
+ this.lastWasEndElement = false;
+ this.parents.clear();
+ this.characters = null;
+ this.configurationStack.clear();
+ this.namespaces.clear();
+ }
+
+ private int direction = 0;
+
+ /**
+ * @param uri
+ * @param localName
+ * @param qname
+ * @param attrs
+ * @throws SAXException
+ * @see org.xml.sax.ContentHandler
+ *
+ * @todo: better way to manage unhandled elements
+ */
+ public void startElement(final String uri,
+ final String localName,
+ final String qname,
+ final Attributes attrs) throws SAXException {
+ if ( direction == 1 ) {
+ // going down again, so clear
+ this.peer = null;
+ } else {
+ direction = 1;
+ }
+
+ final Handler handler = getHandler( uri,
+ localName );
+
+ if ( handler == null ) {
+ startConfiguration( localName,
+ attrs );
+ return;
+ }
+
+ validate( uri,
+ localName,
+ handler );
+
+ final Object node = handler.start( uri,
+ localName,
+ attrs,
+ this );
+
+ if ( node == null ) {
+ this.parents.add( Null.instance );
+ } else {
+ this.parents.add( node );
+ }
+ }
+
+ /**
+ * @param uri
+ * @param localName
+ * @param qname
+ * @throws SAXException
+ * @see org.xml.sax.ContentHandler
+ */
+
+ public void endElement(final String uri,
+ final String localName,
+ final String qname) throws SAXException {
+ direction = -1;
+ final Handler handler = getHandler( uri,
+ localName );
+
+ if ( handler == null ) {
+ if ( this.configurationStack.size() >= 1 ) {
+ endConfiguration();
+ }
+ return;
+ }
+
+ this.current = removeParent();
+
+ this.peer = handler.end( uri,
+ localName,
+ this );
+ }
+
+ public static class Null {
+ public static final Null instance = new Null();
+ }
+
+ private void validate(final String uri,
+ final String localName,
+ final Handler handler) throws SAXParseException {
+ boolean validParent = false;
+ boolean validPeer = false;
+ boolean invalidNesting = false;
+
+ final Set validParents = handler.getValidParents();
+ final Set validPeers = handler.getValidPeers();
+ boolean allowNesting = handler.allowNesting();
+
+ // get parent
+ Object parent;
+ if ( this.parents.size() != 0 ) {
+ parent = this.parents.getLast();
+ } else {
+ parent = null;
+ }
+
+ // check valid parents
+ // null parent means localname is rule-set
+ // dont process if elements are the same
+ // instead check for allowed nesting
+ final Class nodeClass = getHandler( uri,
+ localName ).generateNodeFor();
+ if ( nodeClass != null && !nodeClass.isInstance( parent ) ) {
+ Object allowedParent;
+ final Iterator it = validParents.iterator();
+ while ( !validParent && it.hasNext() ) {
+ allowedParent = it.next();
+ if ( parent == null && allowedParent == null ) {
+ validParent = true;
+ } else if ( allowedParent != null && ((Class) allowedParent).isInstance( parent ) ) {
+ validParent = true;
+ }
+ }
+ if ( !validParent ) {
+ throw new SAXParseException( "<" + localName + "> has an invalid parent element [" + parent + "]",
+ getLocator() );
+ }
+ }
+
+ // check valid peers
+ // null peer means localname is rule-set
+ final Object peer = this.peer;
+
+ Object allowedPeer;
+ Iterator it = validPeers.iterator();
+ while ( !validPeer && it.hasNext() ) {
+ allowedPeer = it.next();
+ if ( peer == null && allowedPeer == null ) {
+ validPeer = true;
+ } else if ( allowedPeer != null && ((Class) allowedPeer).isInstance( peer ) ) {
+ validPeer = true;
+ }
+ }
+ if ( !validPeer ) {
+ throw new SAXParseException( "<" + localName + "> is after an invalid element: " + Handler.class.getName(),
+ getLocator() );
+ }
+
+ if ( nodeClass != null && !allowNesting ) {
+ it = this.parents.iterator();
+ while ( !invalidNesting && it.hasNext() ) {
+ if ( nodeClass.isInstance( it.next() ) ) {
+ invalidNesting = true;
+ }
+ }
+ }
+ if ( invalidNesting ) {
+ throw new SAXParseException( "<" + localName + "> may not be nested",
+ getLocator() );
+ }
+
+ }
+
+ /**
+ * Start a configuration node.
+ *
+ * @param name
+ * Tag name.
+ * @param attrs
+ * Tag attributes.
+ */
+ public void startConfiguration(final String name,
+ final Attributes attrs) {
+ this.characters = new StringBuilder();
+
+ final DefaultConfiguration config = new DefaultConfiguration( name );
+
+ final int numAttrs = attrs.getLength();
+
+ for ( int i = 0; i < numAttrs; ++i ) {
+ config.setAttribute( attrs.getLocalName( i ),
+ attrs.getValue( i ) );
+ }
+
+ // lets add the namespaces as attributes
+ for ( final Iterator iter = this.namespaces.entrySet().iterator(); iter.hasNext(); ) {
+ final Map.Entry entry = (Map.Entry) iter.next();
+ String ns = (String) entry.getKey();
+ final String value = (String) entry.getValue();
+ if ( ns == null || ns.length() == 0 ) {
+ ns = "xmlns";
+ } else {
+ ns = "xmlns:" + ns;
+ }
+ config.setAttribute( ns,
+ value );
+ }
+
+ if ( this.configurationStack.isEmpty() ) {
+ this.configurationStack.addLast( config );
+ } else {
+ ((DefaultConfiguration) this.configurationStack.getLast()).addChild( config );
+ this.configurationStack.addLast( config );
+ }
+ }
+
+ Handler getHandler(final String uri,
+ final String localName) {
+ return (Handler) this.modules.getSemanticModule( uri ).getHandler( localName );
+ }
+
+ /**
+ * @param chars
+ * @param start
+ * @param len
+ * @see org.xml.sax.ContentHandler
+ */
+ public void characters(final char[] chars,
+ final int start,
+ final int len) {
+ if ( this.characters != null ) {
+ this.characters.append( chars,
+ start,
+ len );
+ }
+ }
+
+ /**
+ * End a configuration node.
+ *
+ * @return The configuration.
+ */
+ public Configuration endConfiguration() {
+ final DefaultConfiguration config = (DefaultConfiguration) this.configurationStack.removeLast();
+ if ( this.characters != null ) {
+ config.setText( this.characters.toString() );
+ }
+
+ this.characters = null;
+
+ return config;
+ }
+
+ public Object getParent() {
+ return this.parents.getLast();
+ }
+
+ public Object getParent(int index) {
+ ListIterator it = this.parents.listIterator( this.parents.size() );
+ int x = 0;
+ Object parent = null;
+ while ( x++ <= index ) {
+ parent = it.previous();
+ }
+ return parent;
+ }
+
+ public Object removeParent() {
+ Object parent = this.parents.removeLast();
+ while ( parent == null && !this.parents.isEmpty() ) {
+ parent = this.parents.removeLast();
+ }
+ return parent;
+ }
+
+ public LinkedList getParents() {
+ return this.parents;
+ }
+
+ public Object getParent(final Class parent) {
+ final ListIterator it = this.parents.listIterator( this.parents.size() );
+ Object node = null;
+ while ( it.hasPrevious() ) {
+ node = it.previous();
+ if ( parent.isInstance( node ) ) {
+ break;
+ }
+ }
+ return node;
+ }
+
+ public Object getPeer() {
+ return this.peer;
+ }
+
+ public Object getCurrent() {
+ return this.current;
+ }
+
+ public InputSource resolveEntity(final String publicId,
+ final String systemId) throws SAXException {
+ try {
+ final InputSource inputSource = resolveSchema( publicId,
+ systemId );
+ if ( inputSource != null ) {
+ return inputSource;
+ }
+ if ( this.entityResolver != null ) {
+ return this.entityResolver.resolveEntity( publicId,
+ systemId );
+ }
+ } catch ( final IOException ioe ) {
+ }
+ return null;
+ }
+
+ public void startPrefixMapping(final String prefix,
+ final String uri) throws SAXException {
+ super.startPrefixMapping( prefix,
+ uri );
+ this.namespaces.put( prefix,
+ uri );
+ }
+
+ public void endPrefixMapping(final String prefix) throws SAXException {
+ super.endPrefixMapping( prefix );
+ this.namespaces.remove( prefix );
+ }
+
+ private void print(final SAXParseException x) {
+ final String msg = this.message.format( new Object[]{x.getSystemId(), new Integer( x.getLineNumber() ), new Integer( x.getColumnNumber() ), x.getMessage()} );
+ System.out.println( msg );
+ }
+
+ public void warning(final SAXParseException x) {
+ print( x );
+ }
+
+ public void error(final SAXParseException x) {
+ print( x );
+ }
+
+ public void fatalError(final SAXParseException x) throws SAXParseException {
+ print( x );
+ throw x;
+ }
+
+ private InputSource resolveSchema(final String publicId,
+ final String systemId) throws SAXException,
+ IOException {
+ // Schema files must end with xsd
+ if ( !systemId.toLowerCase().endsWith( "xsd" ) ) {
+ return null;
+ }
+
+ // try the actual location given by systemId
+ try {
+ final URL url = new URL( systemId );
+ return new InputSource( url.openStream() );
+ } catch ( final Exception e ) {
+ }
+
+ // Try and get the index for the filename, else return null
+ String xsd;
+ int index = systemId.lastIndexOf( "/" );
+ if ( index == -1 ) {
+ index = systemId.lastIndexOf( "\\" );
+ }
+ if ( index != -1 ) {
+ xsd = systemId.substring( index + 1 );
+ } else {
+ xsd = systemId;
+ }
+
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+
+ if ( cl == null ) {
+ cl = ExtensibleXmlParser.class.getClassLoader();
+ }
+
+ // Try looking in META-INF
+ {
+ final InputStream is = cl.getResourceAsStream( "META-INF/" + xsd );
+ if ( is != null ) {
+ return new InputSource( is );
+ }
+ }
+
+ // Try looking in /META-INF
+ {
+ final InputStream is = cl.getResourceAsStream( "/META-INF/" + xsd );
+ if ( is != null ) {
+ return new InputSource( is );
+ }
+ }
+
+ // Try looking at root of classpath
+ {
+ final InputStream is = cl.getResourceAsStream( "/" + xsd );
+ if ( is != null ) {
+ return new InputSource( is );
+ }
+ }
+
+ // Try current working directory
+ {
+ final File file = new File( xsd );
+ if ( file.exists() ) {
+ return new InputSource( new BufferedInputStream( new FileInputStream( file ) ) );
+ }
+ }
+
+ cl = ClassLoader.getSystemClassLoader();
+
+ // Try looking in META-INF
+ {
+ final InputStream is = cl.getResourceAsStream( "META-INF/" + xsd );
+ if ( is != null ) {
+ return new InputSource( is );
+ }
+ }
+
+ // Try looking in /META-INF
+ {
+ final InputStream is = cl.getResourceAsStream( "/META-INF/" + xsd );
+ if ( is != null ) {
+ return new InputSource( is );
+ }
+ }
+
+ // Try looking at root of classpath
+ {
+ final InputStream is = cl.getResourceAsStream( "/" + xsd );
+ if ( is != null ) {
+ return new InputSource( is );
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Intializes EntityResolver that is configured via system property ENTITY_RESOLVER_PROPERTY_NAME.
+ */
+ private void initEntityResolver() {
+ final String entityResolveClazzName = System.getProperty( ExtensibleXmlParser.ENTITY_RESOLVER_PROPERTY_NAME );
+ if ( entityResolveClazzName != null && entityResolveClazzName.length() > 0 ) {
+ try {
+ final Class entityResolverClazz = Thread.currentThread().getContextClassLoader().loadClass( entityResolveClazzName );
+ this.entityResolver = (EntityResolver) entityResolverClazz.newInstance();
+ } catch ( final Exception ignoreIt ) {
+ }
+ }
+ }
+
+}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FieldBindingHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FieldBindingHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FieldBindingHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,96 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.FieldBindingDescr;
-import org.drools.lang.descr.FieldConstraintDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.drools.lang.descr.PredicateDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- */
-class FieldBindingHandler extends BaseAbstractHandler
- implements
- Handler {
- FieldBindingHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( PatternDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( FieldConstraintDescr.class );
- this.validPeers.add( PredicateDescr.class );
- this.validPeers.add( FieldBindingDescr.class );
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- final String identifier = attrs.getValue( "identifier" );
- if ( identifier == null || identifier.trim().equals( "" ) ) {
- throw new SAXParseException( "<field-binding> requires an 'identifier' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final String fieldName = attrs.getValue( "field-name" );
- if ( fieldName == null || fieldName.trim().equals( "" ) ) {
- throw new SAXParseException( "<field-binding> requires a 'field-name' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final FieldBindingDescr fieldBindingDescr = new FieldBindingDescr( fieldName,
- identifier );
-
- return fieldBindingDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final FieldBindingDescr fieldBindingDescr = (FieldBindingDescr) this.xmlPackageReader.getCurrent();
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
- final PatternDescr patternDescr = (PatternDescr) it.previous();
-
- patternDescr.addConstraint( fieldBindingDescr );
-
- return null;
- }
-
- public Class generateNodeFor() {
- return FieldBindingDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FieldConstraintHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FieldConstraintHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FieldConstraintHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,110 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.ConditionalElementDescr;
-import org.drools.lang.descr.FieldBindingDescr;
-import org.drools.lang.descr.FieldConstraintDescr;
-import org.drools.lang.descr.OrDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.drools.lang.descr.PredicateDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class FieldConstraintHandler extends BaseAbstractHandler
- implements
- Handler {
- FieldConstraintHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( PatternDescr.class );
- this.validParents.add( AndDescr.class );
- this.validParents.add( OrDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( FieldConstraintDescr.class );
- this.validPeers.add( PredicateDescr.class );
- this.validPeers.add( FieldBindingDescr.class );
-
- this.validPeers.add( AndDescr.class );
- this.validPeers.add( OrDescr.class );
-
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- final String fieldName = attrs.getValue( "field-name" );
-
- if ( fieldName == null || fieldName.trim().equals( "" ) ) {
- throw new SAXParseException( "<field-constraint> requires a 'field-name' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final FieldConstraintDescr fieldConstraint = new FieldConstraintDescr( fieldName );
-
- return fieldConstraint;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
-
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final FieldConstraintDescr fieldConstraintDescr = (FieldConstraintDescr) this.xmlPackageReader.getCurrent();
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
- final Object parent = it.previous();
-
- if ( parent instanceof PatternDescr ) {
- final PatternDescr patternDescr = (PatternDescr) parent;
- patternDescr.addConstraint( fieldConstraintDescr );
- } else if ( parent instanceof ConditionalElementDescr ) {
- final ConditionalElementDescr ceDescr = (ConditionalElementDescr) parent;
- final FieldConstraintDescr field = (FieldConstraintDescr) this.xmlPackageReader.getCurrent();
- ceDescr.addOrMerge( field );
- }
-
- return null;
- }
-
- public Class generateNodeFor() {
- return FieldConstraintDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ForallHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ForallHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ForallHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,106 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.ConditionalElementDescr;
-import org.drools.lang.descr.EvalDescr;
-import org.drools.lang.descr.ExistsDescr;
-import org.drools.lang.descr.ForallDescr;
-import org.drools.lang.descr.NotDescr;
-import org.drools.lang.descr.OrDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * @author fernandomeyer
- *
- */
-public class ForallHandler extends BaseAbstractHandler
- implements
- Handler {
-
- ForallHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( AndDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
-
- this.validPeers.add( AndDescr.class );
- this.validPeers.add( OrDescr.class );
- this.validPeers.add( NotDescr.class );
- this.validPeers.add( ExistsDescr.class );
- this.validPeers.add( EvalDescr.class );
- this.validPeers.add( PatternDescr.class );
- this.validPeers.add( ForallDescr.class );
-
- this.allowNesting = true;
- }
- }
-
- /* (non-Javadoc)
- * @see org.drools.xml.Handler#end(java.lang.String, java.lang.String)
- */
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final ForallDescr forallDescr = (ForallDescr) this.xmlPackageReader.getCurrent();
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
- final Object parent = it.previous();
-
- final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
- parentDescr.addDescr( forallDescr );
-
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.drools.xml.Handler#generateNodeFor()
- */
- public Class generateNodeFor() {
- return ForallDescr.class;
- }
-
- /* (non-Javadoc)
- * @see org.drools.xml.Handler#start(java.lang.String, java.lang.String, org.xml.sax.Attributes)
- */
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
-
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- final ForallDescr forallDescr = new ForallDescr();
-
- return forallDescr;
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FromHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FromHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FromHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,90 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.ConditionalElementDescr;
-import org.drools.lang.descr.FieldConstraintDescr;
-import org.drools.lang.descr.FromDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * @author fernandomeyer
- *
- */
-public class FromHandler extends BaseAbstractHandler
- implements
- Handler {
-
- FromHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( PatternDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( FieldConstraintDescr.class );
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
-
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- final FromDescr fromDesctiptor = new FromDescr();
- return fromDesctiptor;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
-
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final FromDescr fromDescr = (FromDescr) this.xmlPackageReader.getCurrent();
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
- Object parent = it.previous();
-
- final PatternDescr patternDescr = (PatternDescr) parent;
-
- final ConditionalElementDescr parentDescr = (ConditionalElementDescr) it.previous();
-
- if ( (config.getChild( "expression" ) != null) ) {
- patternDescr.setSource( fromDescr );
- }
-
- return null;
- }
-
- public Class generateNodeFor() {
- return FromDescr.class;
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FunctionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FunctionHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FunctionHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,120 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-
-import org.drools.lang.descr.FunctionDescr;
-import org.drools.lang.descr.PackageDescr;
-import org.drools.lang.descr.QueryDescr;
-import org.drools.lang.descr.RuleDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class FunctionHandler extends BaseAbstractHandler
- implements
- Handler {
- FunctionHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( PackageDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( FunctionDescr.class );
- this.validPeers.add( RuleDescr.class );
- this.validPeers.add( QueryDescr.class );
-
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
- return null;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final String name = config.getAttribute( "name" );
- if ( name == null || name.trim().equals( "" ) ) {
- throw new SAXParseException( "<function> requires a 'name' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final String returnType = config.getAttribute( "return-type" );
- if ( returnType == null || returnType.trim().equals( "" ) ) {
- throw new SAXParseException( "<function> requires a 'return-type' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final FunctionDescr functionDescr = new FunctionDescr( name,
- returnType );
-
- final Configuration[] parameters = config.getChildren( "parameter" );
-
- for ( int i = 0, length = parameters.length; i < length; i++ ) {
- final String identifier = parameters[i].getAttribute( "identifier" );
- if ( name == null || identifier.trim().equals( "" ) ) {
- throw new SAXParseException( "function's <parameter> requires an 'identifier' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final String type = parameters[i].getAttribute( "type" );
- if ( type == null || type.trim().equals( "" ) ) {
- throw new SAXParseException( "function's <parameter> requires an 'type' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- functionDescr.addParameter( type,
- identifier );
- }
-
- // we allow empty, "", bodies - but make sure that we atleast have a body element
- final Configuration body = config.getChild( "body" );
- if ( body == null ) {
- throw new SAXParseException( "function must have a <body>",
- this.xmlPackageReader.getLocator() );
- }
-
- functionDescr.setText( body.getText() );
-
- final PackageDescr packageDescr = this.xmlPackageReader.getPackageDescr();
-
- packageDescr.addFunction( functionDescr );
-
- return functionDescr;
- }
-
- public Class generateNodeFor() {
- return FunctionDescr.class;
- }
-}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/Handler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/Handler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/Handler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -25,14 +25,16 @@
* @author mproctor
*
*/
-interface Handler {
+public interface Handler {
Object start(String uri,
String localName,
- Attributes attrs) throws SAXException;
+ Attributes attrs,
+ ExtensibleXmlParser xmlPackageReader) throws SAXException;
Object end(String uri,
- String localName) throws SAXException;
+ String localName,
+ ExtensibleXmlParser xmlPackageReader) throws SAXException;
Set getValidParents();
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/LhsHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/LhsHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/LhsHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,118 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-
-import org.drools.lang.descr.FunctionDescr;
-import org.drools.lang.descr.PackageDescr;
-import org.drools.lang.descr.RuleDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class LhsHandler extends BaseAbstractHandler
- implements
- Handler {
- LhsHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( PackageDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( FunctionDescr.class );
- this.validPeers.add( RuleDescr.class );
-
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
- return null;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final String name = config.getAttribute( "name" );
- if ( name == null || name.trim().equals( "" ) ) {
- throw new SAXParseException( "<function> requires a 'name' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final String returnType = config.getAttribute( "return-type" );
- if ( returnType == null || returnType.trim().equals( "" ) ) {
- throw new SAXParseException( "<function> requires a 'return-type' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final FunctionDescr functionDescr = new FunctionDescr( name,
- returnType );
-
- final Configuration[] parameters = config.getChildren( "parameter" );
-
- for ( int i = 0, length = parameters.length; i < length; i++ ) {
- final String identifier = parameters[i].getAttribute( "identifier" );
- if ( name == null || identifier.trim().equals( "" ) ) {
- throw new SAXParseException( "function's <parameter> requires an 'identifier' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final String type = parameters[i].getText();
- if ( type == null || type.trim().equals( "" ) ) {
- throw new SAXParseException( "function's <parameter> must specify a 'type'",
- this.xmlPackageReader.getLocator() );
- }
-
- functionDescr.addParameter( type,
- identifier );
- }
-
- // we allow empty, "", bodies - but make sure that we atleast have a body element
- final Configuration body = config.getChild( "body" );
- if ( body == null ) {
- throw new SAXParseException( "function must have a <body>",
- this.xmlPackageReader.getLocator() );
- }
-
- functionDescr.setText( body.getText() );
-
- final PackageDescr packageDescr = this.xmlPackageReader.getPackageDescr();
-
- packageDescr.addFunction( functionDescr );
-
- return functionDescr;
- }
-
- public Class generateNodeFor() {
- return FunctionDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/LiteralRestrictionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/LiteralRestrictionHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/LiteralRestrictionHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,107 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.FieldConstraintDescr;
-import org.drools.lang.descr.LiteralRestrictionDescr;
-import org.drools.lang.descr.QualifiedIdentifierRestrictionDescr;
-import org.drools.lang.descr.RestrictionConnectiveDescr;
-import org.drools.lang.descr.ReturnValueRestrictionDescr;
-import org.drools.lang.descr.VariableRestrictionDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- * @author fmeyer
- *
- */
-class LiteralRestrictionHandler extends BaseAbstractHandler
- implements
- Handler {
- LiteralRestrictionHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( FieldConstraintDescr.class );
- this.validParents.add( RestrictionConnectiveDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
-
- this.validPeers.add( LiteralRestrictionDescr.class );
- this.validPeers.add( ReturnValueRestrictionDescr.class );
- this.validPeers.add( VariableRestrictionDescr.class );
- this.validPeers.add( RestrictionConnectiveDescr.class );
- this.validPeers.add( QualifiedIdentifierRestrictionDescr.class );
-
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- final String evaluator = attrs.getValue( "evaluator" );
- if ( evaluator == null || evaluator.trim().equals( "" ) ) {
- throw new SAXParseException( "<literal-restriction> requires an 'evaluator' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final String text = attrs.getValue( "value" );
-
- final LiteralRestrictionDescr literalDescr = new LiteralRestrictionDescr( evaluator,
- text );
-
- return literalDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final LiteralRestrictionDescr literalDescr = (LiteralRestrictionDescr) this.xmlPackageReader.getCurrent();
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
-
- final Object parent = it.previous();
-
- if ( parent instanceof FieldConstraintDescr ) {
- final FieldConstraintDescr fieldConstriantDescr = (FieldConstraintDescr) parent;
- fieldConstriantDescr.addRestriction( literalDescr );
- } else if ( parent instanceof RestrictionConnectiveDescr ) {
- final RestrictionConnectiveDescr restrictionDescr = (RestrictionConnectiveDescr) parent;
- restrictionDescr.addRestriction( literalDescr );
- }
- return null;
- }
-
- public Class generateNodeFor() {
- return LiteralRestrictionDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/NotHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/NotHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/NotHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,101 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.ConditionalElementDescr;
-import org.drools.lang.descr.EvalDescr;
-import org.drools.lang.descr.ExistsDescr;
-import org.drools.lang.descr.ForallDescr;
-import org.drools.lang.descr.NotDescr;
-import org.drools.lang.descr.OrDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class NotHandler extends BaseAbstractHandler
- implements
- Handler {
- NotHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( AndDescr.class );
- this.validParents.add( OrDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( AndDescr.class );
- this.validPeers.add( OrDescr.class );
- this.validPeers.add( NotDescr.class );
- this.validPeers.add( ExistsDescr.class );
- this.validPeers.add( EvalDescr.class );
- this.validPeers.add( PatternDescr.class );
- this.validPeers.add( ForallDescr.class );
-
- this.allowNesting = true;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
- final NotDescr notDescr = new NotDescr();
-
- return notDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final NotDescr notDescr = (NotDescr) this.xmlPackageReader.getCurrent();
-
- if ( (notDescr.getDescrs().size() != 1) && (notDescr.getDescrs().get( 0 ).getClass() != PatternDescr.class) ) {
- throw new SAXParseException( "<not> can only have a single <pattern...> as a child element",
- this.xmlPackageReader.getLocator() );
- }
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
- final Object parent = it.previous();
-
- final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
- parentDescr.addDescr( notDescr );
-
- return null;
- }
-
- public Class generateNodeFor() {
- return NotDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/OrHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/OrHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/OrHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,99 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.AccumulateDescr;
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.ConditionalElementDescr;
-import org.drools.lang.descr.EvalDescr;
-import org.drools.lang.descr.ExistsDescr;
-import org.drools.lang.descr.ForallDescr;
-import org.drools.lang.descr.NotDescr;
-import org.drools.lang.descr.OrDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * @author mproctor
- */
-class OrHandler extends BaseAbstractHandler
- implements
- Handler {
- OrHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( AndDescr.class );
- this.validParents.add( PatternDescr.class );
- this.validParents.add( AccumulateDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( AndDescr.class );
- this.validPeers.add( OrDescr.class );
- this.validPeers.add( NotDescr.class );
- this.validPeers.add( ExistsDescr.class );
- this.validPeers.add( EvalDescr.class );
- this.validPeers.add( PatternDescr.class );
- this.validPeers.add( ForallDescr.class );
-
- this.allowNesting = true;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
- final OrDescr orDescr = new OrDescr();
-
- return orDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final OrDescr orDescr = (OrDescr) this.xmlPackageReader.getCurrent();
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
- final Object parent = it.previous();
-
- if ( parent instanceof ConditionalElementDescr ) {
- final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
- parentDescr.addDescr( orDescr );
- } else if ( parent instanceof PatternDescr ) {
- final PatternDescr parentDescr = (PatternDescr) parent;
- parentDescr.addConstraint( orDescr );
- }
-
- return null;
- }
-
- public Class generateNodeFor() {
- return OrDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PackageHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PackageHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PackageHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,131 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-
-import org.drools.lang.descr.FunctionImportDescr;
-import org.drools.lang.descr.GlobalDescr;
-import org.drools.lang.descr.ImportDescr;
-import org.drools.lang.descr.PackageDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class PackageHandler extends BaseAbstractHandler
- implements
- Handler {
- PackageHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( null );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
-
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- final String ruleSetName = attrs.getValue( "name" );
-
- if ( ruleSetName == null || ruleSetName.trim().equals( "" ) ) {
- throw new SAXParseException( "<package> requires a 'name' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final PackageDescr packageDescr = new PackageDescr( ruleSetName.trim() );
-
- this.xmlPackageReader.setPackageDescr( packageDescr );
- return packageDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final PackageDescr packageDescr = this.xmlPackageReader.getPackageDescr();
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final Configuration[] imports = config.getChildren( "import" );
-
- for ( int i = 0, length = imports.length; i < length; i++ ) {
- final String importEntry = imports[i].getAttribute( "name" );
-
- if ( importEntry == null || importEntry.trim().equals( "" ) ) {
- throw new SAXParseException( "<import> cannot be blank",
- this.xmlPackageReader.getLocator() );
- }
- packageDescr.addImport( new ImportDescr( importEntry ) );
- }
-
- final Configuration[] importfunctions = config.getChildren( "importfunction" );
-
- for ( int i = 0, length = importfunctions.length; i < length; i++ ) {
- final String importfunctionEntry = importfunctions[i].getAttribute( "name" );
-
- if ( importfunctionEntry == null || importfunctionEntry.trim().equals( "" ) ) {
- throw new SAXParseException( "<importfunction> cannot be blank",
- this.xmlPackageReader.getLocator() );
- }
-
- FunctionImportDescr funcdescr = new FunctionImportDescr();
- funcdescr.setTarget( importfunctionEntry );
-
- packageDescr.addFunctionImport(funcdescr);
- }
-
-
- final Configuration[] globals = config.getChildren( "global" );
-
- for ( int i = 0, length = globals.length; i < length; i++ ) {
- final String identifier = globals[i].getAttribute( "identifier" );
-
- if ( identifier == null || identifier.trim().equals( "" ) ) {
- throw new SAXParseException( "<global> must have an identifier",
- this.xmlPackageReader.getLocator() );
- }
-
- final String type = globals[i].getAttribute( "type" );
- if ( type == null || type.trim().equals( "" ) ) {
- throw new SAXParseException( "<global> must have specify a type",
- this.xmlPackageReader.getLocator() );
- }
- final GlobalDescr global = new GlobalDescr( identifier,
- type );
- packageDescr.addGlobal( global );
- }
-
- return null;
- }
-
- public Class generateNodeFor() {
- return PackageDescr.class;
- }
-}
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PatternHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PatternHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PatternHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,124 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.AccumulateDescr;
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.CollectDescr;
-import org.drools.lang.descr.ConditionalElementDescr;
-import org.drools.lang.descr.EvalDescr;
-import org.drools.lang.descr.ExistsDescr;
-import org.drools.lang.descr.ForallDescr;
-import org.drools.lang.descr.NotDescr;
-import org.drools.lang.descr.OrDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.drools.lang.descr.PatternDestinationDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class PatternHandler extends BaseAbstractHandler
- implements
- Handler {
- PatternHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( AndDescr.class );
- this.validParents.add( OrDescr.class );
- this.validParents.add( NotDescr.class );
- this.validParents.add( ExistsDescr.class );
- this.validParents.add( CollectDescr.class );
- this.validParents.add( ForallDescr.class );
- this.validParents.add( AccumulateDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( AndDescr.class );
- this.validPeers.add( OrDescr.class );
- this.validPeers.add( NotDescr.class );
- this.validPeers.add( ExistsDescr.class );
- this.validPeers.add( EvalDescr.class );
- this.validPeers.add( PatternDescr.class );
- this.validPeers.add( ForallDescr.class );
-
- this.allowNesting = true;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- final String objectType = attrs.getValue( "object-type" );
-
- if ( objectType == null || objectType.trim().equals( "" ) ) {
- throw new SAXParseException( "<pattern> requires an 'object-type' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- PatternDescr patternDescr = null;
-
- final String identifier = attrs.getValue( "identifier" );
- if ( identifier == null || identifier.trim().equals( "" ) ) {
- patternDescr = new PatternDescr( objectType );
- } else {
- patternDescr = new PatternDescr( objectType,
- identifier );
- }
-
- return patternDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
-
- final Configuration config = this.xmlPackageReader.endConfiguration();
- final PatternDescr patternDescr = (PatternDescr) this.xmlPackageReader.getCurrent();
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator ite = parents.listIterator( parents.size() );
- ite.previous();
- final Object parent = ite.previous();
-
- if ( parent instanceof PatternDestinationDescr ) {
- final PatternDestinationDescr parentDescr = (PatternDestinationDescr) parent;
- parentDescr.setInputPattern( patternDescr );
- } else {
- final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
- parentDescr.addDescr( patternDescr );
- }
- return null;
- }
-
- public Class generateNodeFor() {
- return PatternDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PredicateHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PredicateHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PredicateHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,95 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.FieldBindingDescr;
-import org.drools.lang.descr.FieldConstraintDescr;
-import org.drools.lang.descr.PatternDescr;
-import org.drools.lang.descr.PredicateDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class PredicateHandler extends BaseAbstractHandler
- implements
- Handler {
- PredicateHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( PatternDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( FieldConstraintDescr.class );
- this.validPeers.add( PredicateDescr.class );
- this.validPeers.add( FieldBindingDescr.class );
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- final PredicateDescr predicateDescr = new PredicateDescr();
-
- return predicateDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final PredicateDescr predicateDescr = (PredicateDescr) this.xmlPackageReader.getCurrent();
-
- final String expression = config.getText();
-
- if ( expression == null || expression.trim().equals( "" ) ) {
- throw new SAXParseException( "<predicate> must have some content",
- this.xmlPackageReader.getLocator() );
- }
-
- predicateDescr.setContent( expression );
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
- final PatternDescr patternDescr = (PatternDescr) it.previous();
-
- patternDescr.addConstraint( predicateDescr );
-
- return null;
- }
-
- public Class generateNodeFor() {
- return PredicateDescr.class;
- }
-}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ProcessBuildData.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ProcessBuildData.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ProcessBuildData.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,35 @@
+/**
+ *
+ */
+package org.drools.xml;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.ruleflow.common.core.Process;
+import org.drools.ruleflow.core.Node;
+
+public class ProcessBuildData {
+ private Process process;
+ private Map<String, Node> nodes = new HashMap<String, Node>();
+
+ public Process getProcess() {
+ return process;
+ }
+
+ public void setProcess(Process process) {
+ this.process = process;
+ }
+
+ public Map<String, Node> getNodes() {
+ return nodes;
+ }
+ public boolean addNode(Node node) {
+ return( this.nodes.put( node.getName(),
+ node ) != null );
+ }
+
+ public Node getNode(String name) {
+ return this.nodes.get( name );
+ }
+}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/QualifiedIdentifierRestrictionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/QualifiedIdentifierRestrictionHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/QualifiedIdentifierRestrictionHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,115 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.FieldConstraintDescr;
-import org.drools.lang.descr.LiteralRestrictionDescr;
-import org.drools.lang.descr.QualifiedIdentifierRestrictionDescr;
-import org.drools.lang.descr.RestrictionConnectiveDescr;
-import org.drools.lang.descr.ReturnValueRestrictionDescr;
-import org.drools.lang.descr.VariableRestrictionDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author fmeyer
- */
-
-class QualifiedIdentifierRestrictionHandler extends BaseAbstractHandler
- implements
- Handler {
- QualifiedIdentifierRestrictionHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( FieldConstraintDescr.class );
- this.validParents.add( RestrictionConnectiveDescr.class );
-
- this.validPeers = new HashSet();
-
- this.validPeers.add( null );
- this.validPeers.add( LiteralRestrictionDescr.class );
- this.validPeers.add( ReturnValueRestrictionDescr.class );
- this.validPeers.add( VariableRestrictionDescr.class );
- this.validPeers.add( RestrictionConnectiveDescr.class );
- this.validPeers.add( QualifiedIdentifierRestrictionDescr.class );
-
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- final String evaluator = attrs.getValue( "evaluator" );
- if ( evaluator == null || evaluator.trim().equals( "" ) ) {
- throw new SAXParseException( "<bound-variable> requires an 'evaluator' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
-// qualifiedIdentifierRestricionDescr.set
-
- final QualifiedIdentifierRestrictionDescr qualifiedIdentifierRestricionDescr = new QualifiedIdentifierRestrictionDescr( evaluator,
- null );
-
- return qualifiedIdentifierRestricionDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final QualifiedIdentifierRestrictionDescr qualifiedIdentifierRestricionDescr = (QualifiedIdentifierRestrictionDescr) this.xmlPackageReader.getCurrent();
-
- final String expression = config.getText();
-
- if ( expression == null || expression.trim().equals( "" ) ) {
- throw new SAXParseException( "<qualified-identifier-restriction> must have an expression content",
- this.xmlPackageReader.getLocator() );
- }
-
- qualifiedIdentifierRestricionDescr.setText( expression );
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
-
- final Object parent = it.previous();
-
- if ( parent instanceof FieldConstraintDescr ) {
- final FieldConstraintDescr fieldConstraintDescr = (FieldConstraintDescr) parent;
- fieldConstraintDescr.addRestriction( qualifiedIdentifierRestricionDescr );
- } else if ( parent instanceof RestrictionConnectiveDescr ) {
- final RestrictionConnectiveDescr restrictionConDescr = (RestrictionConnectiveDescr) parent;
- restrictionConDescr.addRestriction( qualifiedIdentifierRestricionDescr );
- }
- return null;
- }
-
- public Class generateNodeFor() {
- return QualifiedIdentifierRestrictionDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/QueryHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/QueryHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/QueryHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,95 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.FunctionDescr;
-import org.drools.lang.descr.PackageDescr;
-import org.drools.lang.descr.QueryDescr;
-import org.drools.lang.descr.RuleDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class QueryHandler extends BaseAbstractHandler
- implements
- Handler {
- QueryHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( PackageDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( FunctionDescr.class );
- this.validPeers.add( RuleDescr.class );
- this.validPeers.add( QueryDescr.class );
-
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- final String queryName = attrs.getValue( "name" );
-
- if ( queryName == null || queryName.trim().equals( "" ) ) {
- throw new SAXParseException( "<query> requires a 'name' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final QueryDescr queryDescr = new QueryDescr( queryName.trim() );
-
- return queryDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final QueryDescr queryDescr = (QueryDescr) this.xmlPackageReader.getCurrent();
-
- final AndDescr lhs = queryDescr.getLhs();
-
- if ( lhs == null || lhs.getDescrs().isEmpty() ) {
- throw new SAXParseException( "<query> requires a LHS",
- this.xmlPackageReader.getLocator() );
- }
-
- this.xmlPackageReader.getPackageDescr().addRule( queryDescr );
-
- return null;
- }
-
- public Class generateNodeFor() {
- return QueryDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/RestrictionConnectiveHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/RestrictionConnectiveHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/RestrictionConnectiveHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,109 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.FieldConstraintDescr;
-import org.drools.lang.descr.LiteralRestrictionDescr;
-import org.drools.lang.descr.QualifiedIdentifierRestrictionDescr;
-import org.drools.lang.descr.RestrictionConnectiveDescr;
-import org.drools.lang.descr.ReturnValueRestrictionDescr;
-import org.drools.lang.descr.VariableRestrictionDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class RestrictionConnectiveHandler extends BaseAbstractHandler
- implements
- Handler {
-
- public final static String AND = "and-restriction-connective";
- public final static String OR = "or-restriction-connective";
-
- RestrictionConnectiveHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( FieldConstraintDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
-
- this.validPeers.add( LiteralRestrictionDescr.class );
- this.validPeers.add( ReturnValueRestrictionDescr.class );
- this.validPeers.add( VariableRestrictionDescr.class );
- this.validPeers.add( RestrictionConnectiveDescr.class );
- this.validPeers.add( QualifiedIdentifierRestrictionDescr.class );
-
- this.allowNesting = true;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- RestrictionConnectiveDescr connectiveDescr = null;
- if ( localName.equals( RestrictionConnectiveHandler.OR ) ) {
- connectiveDescr = new RestrictionConnectiveDescr( RestrictionConnectiveDescr.OR );
- } else if ( localName.equals( RestrictionConnectiveHandler.AND ) ) {
- connectiveDescr = new RestrictionConnectiveDescr( RestrictionConnectiveDescr.AND );
- }
-
- return connectiveDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final RestrictionConnectiveDescr connectiveDescr = (RestrictionConnectiveDescr) this.xmlPackageReader.getCurrent();
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final int size = parents.size();
- final ListIterator ite = parents.listIterator( parents.size() );
-
- ite.previous();
-
- final Object obj = ite.previous();
-
- if ( obj instanceof FieldConstraintDescr ) {
- final FieldConstraintDescr fieldConstriantDescr = (FieldConstraintDescr) obj;
- fieldConstriantDescr.addRestriction( connectiveDescr );
- } else if ( obj instanceof RestrictionConnectiveDescr ) {
- final RestrictionConnectiveDescr restconective = (RestrictionConnectiveDescr) obj;
- restconective.addRestriction( connectiveDescr );
- }
-
- return null;
- }
-
- public Class generateNodeFor() {
- return RestrictionConnectiveDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ReturnValueRestrictionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ReturnValueRestrictionHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ReturnValueRestrictionHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,113 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.FieldConstraintDescr;
-import org.drools.lang.descr.LiteralRestrictionDescr;
-import org.drools.lang.descr.QualifiedIdentifierRestrictionDescr;
-import org.drools.lang.descr.RestrictionConnectiveDescr;
-import org.drools.lang.descr.ReturnValueRestrictionDescr;
-import org.drools.lang.descr.VariableRestrictionDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class ReturnValueRestrictionHandler extends BaseAbstractHandler
- implements
- Handler {
- ReturnValueRestrictionHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( FieldConstraintDescr.class );
- this.validParents.add( RestrictionConnectiveDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
-
- this.validPeers.add( LiteralRestrictionDescr.class );
- this.validPeers.add( ReturnValueRestrictionDescr.class );
- this.validPeers.add( VariableRestrictionDescr.class );
- this.validPeers.add( RestrictionConnectiveDescr.class );
- this.validPeers.add( QualifiedIdentifierRestrictionDescr.class );
-
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
- final String evaluator = attrs.getValue( "evaluator" );
- if ( evaluator == null || evaluator.trim().equals( "" ) ) {
- throw new SAXParseException( "<return-value-restriction> requires an 'evaluator' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final ReturnValueRestrictionDescr returnValueDescr = new ReturnValueRestrictionDescr( evaluator );
-
- return returnValueDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final ReturnValueRestrictionDescr returnValueDescr = (ReturnValueRestrictionDescr) this.xmlPackageReader.getCurrent();
-
- final String expression = config.getText();
-
- if ( expression == null || expression.trim().equals( "" ) ) {
- throw new SAXParseException( "<return-value-restriction> must have some content",
- this.xmlPackageReader.getLocator() );
- }
-
- returnValueDescr.setContent( expression );
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
-
- final Object parent = it.previous();
-
- if ( parent instanceof FieldConstraintDescr ) {
- final FieldConstraintDescr fieldConstraintDescr = (FieldConstraintDescr) parent;
- fieldConstraintDescr.addRestriction( returnValueDescr );
- } else if ( parent instanceof RestrictionConnectiveDescr ) {
- final RestrictionConnectiveDescr rcDescr = (RestrictionConnectiveDescr) parent;
- rcDescr.addRestriction( returnValueDescr );
- }
- return null;
- }
-
- public Class generateNodeFor() {
- return ReturnValueRestrictionDescr.class;
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/RuleHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/RuleHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/RuleHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,118 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.AttributeDescr;
-import org.drools.lang.descr.FunctionDescr;
-import org.drools.lang.descr.PackageDescr;
-import org.drools.lang.descr.QueryDescr;
-import org.drools.lang.descr.RuleDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- *
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class RuleHandler extends BaseAbstractHandler
- implements
- Handler {
- RuleHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( PackageDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( FunctionDescr.class );
- this.validPeers.add( RuleDescr.class );
- this.validPeers.add( QueryDescr.class );
-
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- final String ruleName = attrs.getValue( "name" );
-
- if ( ruleName == null || ruleName.trim().equals( "" ) ) {
- throw new SAXParseException( "<rule> requires a 'name' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final RuleDescr ruleDescr = new RuleDescr( ruleName.trim() );
-
- return ruleDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final RuleDescr ruleDescr = (RuleDescr) this.xmlPackageReader.getCurrent();
-
- final AndDescr lhs = ruleDescr.getLhs();
-
- if ( lhs == null ) {
- throw new SAXParseException( "<rule> requires a LHS",
- this.xmlPackageReader.getLocator() );
- }
-
- final Configuration rhs = config.getChild( "rhs" );
- if ( rhs == null ) {
- throw new SAXParseException( "<rule> requires a <rh> child element",
- this.xmlPackageReader.getLocator() );
- }
-
- ruleDescr.setConsequence( rhs.getText() );
-
- final Configuration[] attributes = config.getChildren( "rule-attribute" );
- for ( int i = 0, length = attributes.length; i < length; i++ ) {
- final String name = attributes[i].getAttribute( "name" );
- if ( name == null || name.trim().equals( "" ) ) {
- throw new SAXParseException( "<rule-attribute> requires a 'name' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final String value = attributes[i].getAttribute( "value" );
-
- ruleDescr.addAttribute( new AttributeDescr( name,
- value ) );
- }
-
- this.xmlPackageReader.getPackageDescr().addRule( ruleDescr );
-
- return null;
- }
-
- public Class generateNodeFor() {
- return RuleDescr.class;
- }
-}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/SemanticModule.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/SemanticModule.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/SemanticModule.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,9 @@
+package org.drools.xml;
+
+public interface SemanticModule {
+ public String getUri();
+
+ public void addHandler(String name, Handler handler);
+
+ public Handler getHandler(String name);
+}
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/SemanticModules.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/SemanticModules.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/SemanticModules.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,167 @@
+package org.drools.xml;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.xml.processes.ActionNodeHandler;
+import org.drools.xml.processes.ConnectionHandler;
+import org.drools.xml.processes.EndNodeHandler;
+import org.drools.xml.processes.GlobalHandler;
+import org.drools.xml.processes.ImportHandler;
+import org.drools.xml.processes.ProcessHandler;
+import org.drools.xml.processes.StartNodeHandler;
+import org.drools.xml.rules.AccumulateHandler;
+import org.drools.xml.rules.AccumulateHelperHandler;
+import org.drools.xml.rules.AndHandler;
+import org.drools.xml.rules.CollectHandler;
+import org.drools.xml.rules.EvalHandler;
+import org.drools.xml.rules.ExistsHandler;
+import org.drools.xml.rules.ExpressionHandler;
+import org.drools.xml.rules.FieldBindingHandler;
+import org.drools.xml.rules.FieldConstraintHandler;
+import org.drools.xml.rules.ForallHandler;
+import org.drools.xml.rules.FromHandler;
+import org.drools.xml.rules.FunctionHandler;
+import org.drools.xml.rules.LiteralRestrictionHandler;
+import org.drools.xml.rules.NotHandler;
+import org.drools.xml.rules.OrHandler;
+import org.drools.xml.rules.PackageHandler;
+import org.drools.xml.rules.PatternHandler;
+import org.drools.xml.rules.PredicateHandler;
+import org.drools.xml.rules.QualifiedIdentifierRestrictionHandler;
+import org.drools.xml.rules.QueryHandler;
+import org.drools.xml.rules.RestrictionConnectiveHandler;
+import org.drools.xml.rules.ReturnValueRestrictionHandler;
+import org.drools.xml.rules.RuleHandler;
+import org.drools.xml.rules.VariableRestrictionsHandler;
+
+public class SemanticModules {
+ public Map<String, SemanticModule> modules;
+
+ public SemanticModules() {
+ this.modules = new HashMap<String, SemanticModule>();
+ initDrl();
+ initProcess();
+ }
+
+ public void addSemanticModule(SemanticModule module) {
+ this.modules.put( module.getUri(),
+ module );
+ }
+
+ public SemanticModule getSemanticModule(String uri) {
+ return this.modules.get( uri );
+ }
+
+ private void initProcess() {
+ SemanticModule module = new DefaultSemanticModule( "http://drools.org/drools-4.0/process" );
+
+ module.addHandler( "process",
+ new ProcessHandler() );
+ module.addHandler( "start",
+ new StartNodeHandler() );
+ module.addHandler( "end",
+ new EndNodeHandler() );
+ module.addHandler( "action",
+ new ActionNodeHandler() );
+ module.addHandler( "connection",
+ new ConnectionHandler() );
+ module.addHandler( "import",
+ new ImportHandler() );
+ module.addHandler( "global",
+ new GlobalHandler() );
+ addSemanticModule( module );
+ }
+
+ private void initDrl() {
+ SemanticModule module = new DefaultSemanticModule( "http://drools.org/drools-4.0" );
+
+ module.addHandler( "package",
+ new PackageHandler() );
+ module.addHandler( "rule",
+ new RuleHandler() );
+ module.addHandler( "query",
+ new QueryHandler() );
+ module.addHandler( "attribute",
+ null );
+ module.addHandler( "function",
+ new FunctionHandler() );
+
+ // Conditional Elements
+ module.addHandler( "lhs",
+ new AndHandler() );
+
+ module.addHandler( "and-restriction-connective",
+ new RestrictionConnectiveHandler() );
+
+ module.addHandler( "or-restriction-connective",
+ new RestrictionConnectiveHandler() );
+
+ module.addHandler( "and-conditional-element",
+ new AndHandler() );
+
+ module.addHandler( "or-conditional-element",
+ new OrHandler() );
+
+ module.addHandler( "and-constraint-connective",
+ new AndHandler() );
+ module.addHandler( "or-constraint-connective",
+ new OrHandler() );
+
+ module.addHandler( "not",
+ new NotHandler() );
+ module.addHandler( "exists",
+ new ExistsHandler() );
+ module.addHandler( "eval",
+ new EvalHandler() );
+ module.addHandler( "pattern",
+ new PatternHandler() );
+
+ module.addHandler( "from",
+ new FromHandler() );
+ module.addHandler( "forall",
+ new ForallHandler() );
+ module.addHandler( "collect",
+ new CollectHandler() );
+ module.addHandler( "accumulate",
+ new AccumulateHandler() );
+
+ // Field Constraints
+ module.addHandler( "field-constraint",
+ new FieldConstraintHandler() );
+ module.addHandler( "literal-restriction",
+ new LiteralRestrictionHandler() );
+ module.addHandler( "variable-restriction",
+ new VariableRestrictionsHandler() );
+ module.addHandler( "predicate",
+ new PredicateHandler() );
+
+ module.addHandler( "return-value-restriction",
+ new ReturnValueRestrictionHandler() );
+ module.addHandler( "qualified-identifier-restriction",
+ new QualifiedIdentifierRestrictionHandler() );
+
+ module.addHandler( "field-binding",
+ new FieldBindingHandler() );
+
+ module.addHandler( "field-binding",
+ new FieldBindingHandler() );
+
+ module.addHandler( "init",
+ new AccumulateHelperHandler() );
+ module.addHandler( "action",
+ new AccumulateHelperHandler() );
+ module.addHandler( "result",
+ new AccumulateHelperHandler() );
+ module.addHandler( "reverse",
+ new AccumulateHelperHandler() );
+
+ module.addHandler( "external-function",
+ new AccumulateHelperHandler() );
+
+ module.addHandler( "expression",
+ new ExpressionHandler() );
+
+ addSemanticModule( module );
+ }
+}
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/VariableRestrictionsHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/VariableRestrictionsHandler.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/VariableRestrictionsHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,108 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-import org.drools.lang.descr.FieldConstraintDescr;
-import org.drools.lang.descr.LiteralRestrictionDescr;
-import org.drools.lang.descr.RestrictionConnectiveDescr;
-import org.drools.lang.descr.ReturnValueRestrictionDescr;
-import org.drools.lang.descr.VariableRestrictionDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author mproctor
- * TODO To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Style - Code Templates
- */
-class VariableRestrictionsHandler extends BaseAbstractHandler
- implements
- Handler {
- VariableRestrictionsHandler(final XmlPackageReader xmlPackageReader) {
- this.xmlPackageReader = xmlPackageReader;
-
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( FieldConstraintDescr.class );
- this.validParents.add( RestrictionConnectiveDescr.class );
-
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( LiteralRestrictionDescr.class );
- this.validPeers.add( ReturnValueRestrictionDescr.class );
- this.validPeers.add( VariableRestrictionDescr.class );
- this.validPeers.add( RestrictionConnectiveDescr.class );
- this.allowNesting = false;
- }
- }
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs) throws SAXException {
- this.xmlPackageReader.startConfiguration( localName,
- attrs );
-
- final String evaluator = attrs.getValue( "evaluator" );
- if ( evaluator == null || evaluator.trim().equals( "" ) ) {
- throw new SAXParseException( "<bound-variable> requires an 'evaluator' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final String identifier = attrs.getValue( "identifier" );
- if ( identifier == null || identifier.trim().equals( "" ) ) {
- throw new SAXParseException( "<bound-variable> requires an 'identifier' attribute",
- this.xmlPackageReader.getLocator() );
- }
-
- final VariableRestrictionDescr variableDescr = new VariableRestrictionDescr( evaluator,
- identifier );
-
- return variableDescr;
- }
-
- public Object end(final String uri,
- final String localName) throws SAXException {
- final Configuration config = this.xmlPackageReader.endConfiguration();
-
- final VariableRestrictionDescr variableDescr = (VariableRestrictionDescr) this.xmlPackageReader.getCurrent();
-
- final LinkedList parents = this.xmlPackageReader.getParents();
- final ListIterator it = parents.listIterator( parents.size() );
- it.previous();
-
- final Object parent = it.previous();
-
- if ( parent instanceof FieldConstraintDescr ) {
- final FieldConstraintDescr fieldConstraintDescr = (FieldConstraintDescr) parent;
- fieldConstraintDescr.addRestriction( variableDescr );
- } else if ( parent instanceof RestrictionConnectiveDescr ) {
- final RestrictionConnectiveDescr restrictionConDescr = (RestrictionConnectiveDescr) parent;
- restrictionConDescr.addRestriction( variableDescr );
- }
-
- return null;
- }
-
- public Class generateNodeFor() {
- return VariableRestrictionDescr.class;
- }
-}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlDumper.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlDumper.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlDumper.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -48,7 +48,9 @@
import org.drools.lang.descr.RuleDescr;
import org.drools.lang.descr.VariableRestrictionDescr;
import org.drools.util.ReflectiveVisitor;
+import org.drools.xml.rules.RestrictionConnectiveHandler;
+
/**
* This utility will take a AST of a rule package, and emit XML.
* This can be used in porting from DRL to XML.
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlPackageReader.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlPackageReader.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlPackageReader.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,784 +0,0 @@
-package org.drools.xml;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.net.URL;
-import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.ListIterator;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.drools.lang.descr.PackageDescr;
-import org.drools.lang.descr.RuleDescr;
-import org.xml.sax.Attributes;
-import org.xml.sax.EntityResolver;
-import org.xml.sax.InputSource;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * <code>RuleSet</code> loader.
- *
- * Note you can override the default entity resolver by setting the System property of:
- * <code>org.drools.io.EntityResolve</code> to your own custom entity resolver.
- * This can be done using -Dorg.drools.io.EntityResolver=YourClassHere on the command line, for instance.
- *
- * @author <a href="mailto:bob at werken.com">bob mcwhirter </a>
- */
-public class XmlPackageReader extends DefaultHandler {
- // ----------------------------------------------------------------------
- // Constants
- // ----------------------------------------------------------------------
- public static final String ENTITY_RESOLVER_PROPERTY_NAME = "org.drools.io.EntityResolver";
-
- /** Namespace URI for the general tags. */
- public static final String RULES_NAMESPACE_URI = "http://drools.org/rules";
-
- private static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
-
- private static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
-
- // ----------------------------------------------------------------------
- // Instance members
- // ----------------------------------------------------------------------
- /** SAX parser. */
- private SAXParser parser;
-
- /** isValidating */
- private boolean isValidating = true;
-
- /** Locator for errors. */
- private Locator locator;
-
- // private Map repo;
-
- /** Stack of configurations. */
- private LinkedList configurationStack;
-
- /** Current configuration text. */
- private StringBuffer characters;
-
- private Map handlers;
-
- private boolean lastWasEndElement;
-
- private LinkedList parents;
-
- private Object peer;
-
- private Object current;
-
- private PackageDescr packageDescr;
-
- private boolean inHandledRuleSubElement;
-
- private final MessageFormat message = new MessageFormat( "({0}: {1}, {2}): {3}" );
-
- private final Map namespaces = new HashMap();
-
- EntityResolver entityResolver;
-
- // ----------------------------------------------------------------------
- // Constructors
- // ----------------------------------------------------------------------
-
- /**
- * Construct.
- *
- * <p>
- * Uses the default JAXP SAX parser and the default classpath-based
- * <code>DefaultSemanticModule</code>.
- * </p>
- */
- public XmlPackageReader() {
- // init
- this.configurationStack = new LinkedList();
- this.parents = new LinkedList();
-
- this.handlers = new HashMap();
-
- this.handlers.put( "package",
- new PackageHandler( this ) );
- this.handlers.put( "rule",
- new RuleHandler( this ) );
- this.handlers.put( "query",
- new QueryHandler( this ) );
- this.handlers.put( "attribute",
- null );
- this.handlers.put( "function",
- new FunctionHandler( this ) );
-
- // Conditional Elements
- this.handlers.put( "lhs",
- new AndHandler( this ) );
-
- this.handlers.put( "and-restriction-connective",
- new RestrictionConnectiveHandler( this ) );
-
- this.handlers.put( "or-restriction-connective",
- new RestrictionConnectiveHandler( this ) );
-
- this.handlers.put( "and-conditional-element",
- new AndHandler( this ) );
-
- this.handlers.put( "or-conditional-element",
- new OrHandler( this ) );
-
- this.handlers.put( "and-constraint-connective",
- new AndHandler( this ) );
- this.handlers.put( "or-constraint-connective",
- new OrHandler( this ) );
-
- this.handlers.put( "not",
- new NotHandler( this ) );
- this.handlers.put( "exists",
- new ExistsHandler( this ) );
- this.handlers.put( "eval",
- new EvalHandler( this ) );
- this.handlers.put( "pattern",
- new PatternHandler( this ) );
-
- this.handlers.put( "from",
- new FromHandler( this ) );
- this.handlers.put( "forall",
- new ForallHandler( this ) );
- this.handlers.put( "collect",
- new CollectHandler( this ) );
- this.handlers.put( "accumulate",
- new AccumulateHandler( this ) );
-
- // Field Constraints
- this.handlers.put( "field-constraint",
- new FieldConstraintHandler( this ) );
- this.handlers.put( "literal-restriction",
- new LiteralRestrictionHandler( this ) );
- this.handlers.put( "variable-restriction",
- new VariableRestrictionsHandler( this ) );
- this.handlers.put( "predicate",
- new PredicateHandler( this ) );
-
- this.handlers.put( "return-value-restriction",
- new ReturnValueRestrictionHandler( this ) );
- this.handlers.put( "qualified-identifier-restriction",
- new QualifiedIdentifierRestrictionHandler( this ) );
-
- this.handlers.put( "field-binding",
- new FieldBindingHandler( this ) );
-
- this.handlers.put( "field-binding",
- new FieldBindingHandler( this ) );
-
- this.handlers.put( "init",
- new AccumulateHelperHandler( this ) );
- this.handlers.put( "action",
- new AccumulateHelperHandler( this ) );
- this.handlers.put( "result",
- new AccumulateHelperHandler( this ) );
- this.handlers.put( "reverse",
- new AccumulateHelperHandler( this ) );
-
- this.handlers.put( "external-function",
- new AccumulateHelperHandler( this ) );
-
- this.handlers.put( "expression",
- new ExpressionHandler( this ) );
-
- initEntityResolver();
- }
-
- /**
- * Construct.
- *
- * <p>
- * Uses the default classpath-based <code>DefaultSemanticModule</code>.
- * </p>
- *
- * @param parser
- * The SAX parser.
- */
- public XmlPackageReader(final SAXParser parser) {
- this.parser = parser;
- }
-
- // ----------------------------------------------------------------------
- // Instance methods
- // ----------------------------------------------------------------------
-
- /**
- * Read a <code>RuleSet</code> from a <code>Reader</code>.
- *
- * @param reader
- * The reader containing the rule-set.
- *
- * @return The rule-set.
- */
- public PackageDescr read(final Reader reader) throws SAXException,
- IOException {
- return read( new InputSource( reader ) );
- }
-
- /**
- * Read a <code>RuleSet</code> from an <code>InputStream</code>.
- *
- * @param inputStream
- * The input-stream containing the rule-set.
- *
- * @return The rule-set.
- */
- public PackageDescr read(final InputStream inputStream) throws SAXException,
- IOException {
- return read( new InputSource( inputStream ) );
- }
-
- /**
- * Read a <code>RuleSet</code> from an <code>InputSource</code>.
- *
- * @param in
- * The rule-set input-source.
- *
- * @return The rule-set.
- */
- public PackageDescr read(final InputSource in) throws SAXException,
- IOException {
- SAXParser localParser = null;
- if ( this.parser == null ) {
- final SAXParserFactory factory = SAXParserFactory.newInstance();
- factory.setNamespaceAware( true );
-
- final String isValidatingString = System.getProperty( "drools.schema.validating" );
- if ( System.getProperty( "drools.schema.validating" ) != null ) {
- this.isValidating = Boolean.getBoolean( "drools.schema.validating" );
- }
-
- if ( this.isValidating == true ) {
- factory.setValidating( true );
- try {
- localParser = factory.newSAXParser();
- } catch ( final ParserConfigurationException e ) {
- throw new RuntimeException( e.getMessage() );
- }
-
- try {
- localParser.setProperty( XmlPackageReader.JAXP_SCHEMA_LANGUAGE,
- XmlPackageReader.W3C_XML_SCHEMA );
- } catch ( final SAXNotRecognizedException e ) {
- boolean hideWarnings = Boolean.getBoolean( "drools.schema.hidewarnings" );
- if ( !hideWarnings ) {
- System.err.println( "Your SAX parser is not JAXP 1.2 compliant - turning off validation." );
- }
- localParser = null;
- }
- }
-
- if ( localParser == null ) {
- // not jaxp1.2 compliant so turn off validation
- try {
- this.isValidating = false;
- factory.setValidating( this.isValidating );
- localParser = factory.newSAXParser();
- } catch ( final ParserConfigurationException e ) {
- throw new RuntimeException( e.getMessage() );
- }
- }
- } else {
- localParser = this.parser;
- }
-
- if ( !localParser.isNamespaceAware() ) {
- throw new RuntimeException( "parser must be namespace-aware" );
- }
-
- localParser.parse( in,
- this );
-
- return this.packageDescr;
- }
-
- void setPackageDescr(final PackageDescr packageDescr) {
- this.packageDescr = packageDescr;
- }
-
- public PackageDescr getPackageDescr() {
- return this.packageDescr;
- }
-
- /**
- * @see org.xml.sax.ContentHandler
- */
- public void setDocumentLocator(final Locator locator) {
- this.locator = locator;
- }
-
- /**
- * Get the <code>Locator</code>.
- *
- * @return The locator.
- */
- public Locator getLocator() {
- return this.locator;
- }
-
- public void startDocument() {
- this.isValidating = true;
- this.packageDescr = null;
- this.current = null;
- this.peer = null;
- this.lastWasEndElement = false;
- this.parents.clear();
- this.characters = null;
- this.configurationStack.clear();
- this.namespaces.clear();
- }
-
- /**
- * @param uri
- * @param localName
- * @param qname
- * @param attrs
- * @throws SAXException
- * @see org.xml.sax.ContentHandler
- *
- * @todo: better way to manage unhandled elements
- */
- public void startElement(final String uri,
- final String localName,
- final String qname,
- final Attributes attrs) throws SAXException {
- // going down so no peer
- if ( !this.lastWasEndElement ) {
- this.peer = null;
- }
-
- final Handler handler = getHandler( localName );
-
- if ( (handler != null) && (!this.parents.isEmpty() && this.parents.getLast() instanceof RuleDescr) ) {
- this.inHandledRuleSubElement = true;
- }
-
- if ( handler == null ) {
- startConfiguration( localName,
- attrs );
- return;
- }
-
- validate( uri,
- localName,
- handler );
-
- final Object node = handler.start( uri,
- localName,
- attrs );
-
- if ( node != null ) {
- this.parents.add( node );
- this.current = node;
- }
- this.lastWasEndElement = false;
- }
-
- /**
- * @param uri
- * @param localName
- * @param qname
- * @throws SAXException
- * @see org.xml.sax.ContentHandler
- */
-
- public void endElement(final String uri,
- final String localName,
- final String qname) throws SAXException {
- final Handler handler = getHandler( localName );
-
- if ( (handler != null) && (!this.parents.isEmpty() && this.parents.getLast() instanceof RuleDescr) ) {
- this.inHandledRuleSubElement = false;
- }
-
- if ( handler == null ) {
- if ( this.configurationStack.size() >= 1 ) {
- endConfiguration();
- }
- return;
- }
-
- this.current = getParent( handler.generateNodeFor() );
-
- final Object node = handler.end( uri,
- localName );
-
- // next
- if ( node != null && !this.lastWasEndElement ) {
- this.peer = node;
- }
- // up or no children
- else if ( this.lastWasEndElement || (this.parents.getLast()).getClass().isInstance( this.current ) ) {
- this.peer = this.parents.removeLast();
- }
-
- this.lastWasEndElement = true;
- }
-
- private void validate(final String uri,
- final String localName,
- final Handler handler) throws SAXParseException {
- boolean validParent = false;
- boolean validPeer = false;
- boolean invalidNesting = false;
-
- final Set validParents = handler.getValidParents();
- final Set validPeers = handler.getValidPeers();
- boolean allowNesting = handler.allowNesting();
-
- // get parent
- Object parent;
- if ( this.parents.size() != 0 ) {
- parent = this.parents.getLast();
- } else {
- parent = null;
- }
-
- // check valid parents
- // null parent means localname is rule-set
- // dont process if elements are the same
- // instead check for allowed nesting
- final Class nodeClass = getHandler( localName ).generateNodeFor();
- if ( !nodeClass.isInstance( parent ) ) {
- Object allowedParent;
- final Iterator it = validParents.iterator();
- while ( !validParent && it.hasNext() ) {
- allowedParent = it.next();
- if ( parent == null && allowedParent == null ) {
- validParent = true;
- } else if ( allowedParent != null && ((Class) allowedParent).isInstance( parent ) ) {
- validParent = true;
- }
- }
- if ( !validParent ) {
- throw new SAXParseException( "<" + localName + "> has an invalid parent element [" + parent + "]",
- getLocator() );
- }
- }
-
- // check valid peers
- // null peer means localname is rule-set
- final Object peer = this.peer;
-
- Object allowedPeer;
- Iterator it = validPeers.iterator();
- while ( !validPeer && it.hasNext() ) {
- allowedPeer = it.next();
- if ( peer == null && allowedPeer == null ) {
- validPeer = true;
- } else if ( allowedPeer != null && ((Class) allowedPeer).isInstance( peer ) ) {
- validPeer = true;
- }
- }
- if ( !validPeer ) {
- throw new SAXParseException( "<" + localName + "> is after an invalid element: " + Handler.class.getName(),
- getLocator() );
- }
-
- if ( !allowNesting ) {
- it = this.parents.iterator();
- while ( !invalidNesting && it.hasNext() ) {
- if ( nodeClass.isInstance( it.next() ) ) {
- invalidNesting = true;
- }
- }
- }
- if ( invalidNesting ) {
- throw new SAXParseException( "<" + localName + "> may not be nested",
- getLocator() );
- }
-
- }
-
- /**
- * Start a configuration node.
- *
- * @param name
- * Tag name.
- * @param attrs
- * Tag attributes.
- */
- protected void startConfiguration(final String name,
- final Attributes attrs) {
- this.characters = new StringBuffer();
-
- final DefaultConfiguration config = new DefaultConfiguration( name );
-
- final int numAttrs = attrs.getLength();
-
- for ( int i = 0; i < numAttrs; ++i ) {
- config.setAttribute( attrs.getLocalName( i ),
- attrs.getValue( i ) );
- }
-
- // lets add the namespaces as attributes
- for ( final Iterator iter = this.namespaces.entrySet().iterator(); iter.hasNext(); ) {
- final Map.Entry entry = (Map.Entry) iter.next();
- String ns = (String) entry.getKey();
- final String value = (String) entry.getValue();
- if ( ns == null || ns.length() == 0 ) {
- ns = "xmlns";
- } else {
- ns = "xmlns:" + ns;
- }
- config.setAttribute( ns,
- value );
- }
-
- if ( this.configurationStack.isEmpty() ) {
- this.configurationStack.addLast( config );
- } else {
- ((DefaultConfiguration) this.configurationStack.getLast()).addChild( config );
- this.configurationStack.addLast( config );
- }
- }
-
- Handler getHandler(final String localName) {
- return (Handler) this.handlers.get( localName );
- }
-
- /**
- * @param chars
- * @param start
- * @param len
- * @see org.xml.sax.ContentHandler
- */
- public void characters(final char[] chars,
- final int start,
- final int len) {
- if ( this.characters != null ) {
- this.characters.append( chars,
- start,
- len );
- }
- }
-
- /**
- * End a configuration node.
- *
- * @return The configuration.
- */
- protected Configuration endConfiguration() {
- final DefaultConfiguration config = (DefaultConfiguration) this.configurationStack.removeLast();
- if ( this.characters != null ) {
- config.setText( this.characters.toString() );
- }
-
- this.characters = null;
-
- return config;
- }
-
- LinkedList getParents() {
- return this.parents;
- }
-
- Object getParent(final Class parent) {
- final ListIterator it = this.parents.listIterator( this.parents.size() );
- Object node = null;
- while ( it.hasPrevious() ) {
- node = it.previous();
- if ( parent.isInstance( node ) ) {
- break;
- }
- }
- return node;
- }
-
- Object getPeer() {
- return this.peer;
- }
-
- Object getCurrent() {
- return this.current;
- }
-
- public InputSource resolveEntity(final String publicId,
- final String systemId) throws SAXException {
- try {
- final InputSource inputSource = resolveSchema( publicId,
- systemId );
- if ( inputSource != null ) {
- return inputSource;
- }
- if ( this.entityResolver != null ) {
- return this.entityResolver.resolveEntity( publicId,
- systemId );
- }
- } catch ( final IOException ioe ) {
- }
- return null;
- }
-
- public void startPrefixMapping(final String prefix,
- final String uri) throws SAXException {
- super.startPrefixMapping( prefix,
- uri );
- this.namespaces.put( prefix,
- uri );
- }
-
- public void endPrefixMapping(final String prefix) throws SAXException {
- super.endPrefixMapping( prefix );
- this.namespaces.remove( prefix );
- }
-
- private void print(final SAXParseException x) {
- final String msg = this.message.format( new Object[]{x.getSystemId(), new Integer( x.getLineNumber() ), new Integer( x.getColumnNumber() ), x.getMessage()} );
- System.out.println( msg );
- }
-
- public void warning(final SAXParseException x) {
- print( x );
- }
-
- public void error(final SAXParseException x) {
- print( x );
- }
-
- public void fatalError(final SAXParseException x) throws SAXParseException {
- print( x );
- throw x;
- }
-
- private InputSource resolveSchema(final String publicId,
- final String systemId) throws SAXException,
- IOException {
- // Schema files must end with xsd
- if ( !systemId.toLowerCase().endsWith( "xsd" ) ) {
- return null;
- }
-
- // try the actual location given by systemId
- try {
- final URL url = new URL( systemId );
- return new InputSource( url.openStream() );
- } catch ( final Exception e ) {
- }
-
- // Try and get the index for the filename, else return null
- String xsd;
- int index = systemId.lastIndexOf( "/" );
- if ( index == -1 ) {
- index = systemId.lastIndexOf( "\\" );
- }
- if ( index != -1 ) {
- xsd = systemId.substring( index + 1 );
- } else {
- xsd = systemId;
- }
-
- ClassLoader cl = Thread.currentThread().getContextClassLoader();
-
- if ( cl == null ) {
- cl = XmlPackageReader.class.getClassLoader();
- }
-
- // Try looking in META-INF
- {
- final InputStream is = cl.getResourceAsStream( "META-INF/" + xsd );
- if ( is != null ) {
- return new InputSource( is );
- }
- }
-
- // Try looking in /META-INF
- {
- final InputStream is = cl.getResourceAsStream( "/META-INF/" + xsd );
- if ( is != null ) {
- return new InputSource( is );
- }
- }
-
- // Try looking at root of classpath
- {
- final InputStream is = cl.getResourceAsStream( "/" + xsd );
- if ( is != null ) {
- return new InputSource( is );
- }
- }
-
- // Try current working directory
- {
- final File file = new File( xsd );
- if ( file.exists() ) {
- return new InputSource( new BufferedInputStream( new FileInputStream( file ) ) );
- }
- }
-
- cl = ClassLoader.getSystemClassLoader();
-
- // Try looking in META-INF
- {
- final InputStream is = cl.getResourceAsStream( "META-INF/" + xsd );
- if ( is != null ) {
- return new InputSource( is );
- }
- }
-
- // Try looking in /META-INF
- {
- final InputStream is = cl.getResourceAsStream( "/META-INF/" + xsd );
- if ( is != null ) {
- return new InputSource( is );
- }
- }
-
- // Try looking at root of classpath
- {
- final InputStream is = cl.getResourceAsStream( "/" + xsd );
- if ( is != null ) {
- return new InputSource( is );
- }
- }
-
- return null;
- }
-
- /**
- * Intializes EntityResolver that is configured via system property ENTITY_RESOLVER_PROPERTY_NAME.
- */
- private void initEntityResolver() {
- final String entityResolveClazzName = System.getProperty( XmlPackageReader.ENTITY_RESOLVER_PROPERTY_NAME );
- if ( entityResolveClazzName != null && entityResolveClazzName.length() > 0 ) {
- try {
- final Class entityResolverClazz = Thread.currentThread().getContextClassLoader().loadClass( entityResolveClazzName );
- this.entityResolver = (EntityResolver) entityResolverClazz.newInstance();
- } catch ( final Exception ignoreIt ) {
- }
- }
- }
-
-}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlProcessReader.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlProcessReader.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlProcessReader.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,108 @@
+package org.drools.xml;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.util.Set;
+
+import javax.xml.parsers.SAXParser;
+
+import org.drools.lang.descr.PackageDescr;
+import org.drools.xml.rules.AccumulateHandler;
+import org.drools.xml.rules.AccumulateHelperHandler;
+import org.drools.xml.rules.AndHandler;
+import org.drools.xml.rules.CollectHandler;
+import org.drools.xml.rules.EvalHandler;
+import org.drools.xml.rules.ExistsHandler;
+import org.drools.xml.rules.ExpressionHandler;
+import org.drools.xml.rules.FieldBindingHandler;
+import org.drools.xml.rules.FieldConstraintHandler;
+import org.drools.xml.rules.ForallHandler;
+import org.drools.xml.rules.FromHandler;
+import org.drools.xml.rules.FunctionHandler;
+import org.drools.xml.rules.LiteralRestrictionHandler;
+import org.drools.xml.rules.NotHandler;
+import org.drools.xml.rules.OrHandler;
+import org.drools.xml.rules.PackageHandler;
+import org.drools.xml.rules.PatternHandler;
+import org.drools.xml.rules.PredicateHandler;
+import org.drools.xml.rules.QualifiedIdentifierRestrictionHandler;
+import org.drools.xml.rules.QueryHandler;
+import org.drools.xml.rules.RestrictionConnectiveHandler;
+import org.drools.xml.rules.ReturnValueRestrictionHandler;
+import org.drools.xml.rules.RuleHandler;
+import org.drools.xml.rules.VariableRestrictionsHandler;
+import org.drools.ruleflow.common.core.Process;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+
+public class XmlProcessReader {
+ private ExtensibleXmlParser parser;
+
+ private Process process;
+
+ public XmlProcessReader() {
+ this( null );
+ }
+
+ public XmlProcessReader(final SAXParser parser) {
+ if ( parser == null ) {
+ this.parser = new ExtensibleXmlParser();
+ } else {
+ this.parser = new ExtensibleXmlParser( parser );
+ }
+ this.parser.setSemanticModules( new SemanticModules() );
+ this.parser.setData( new ProcessBuildData() );
+ }
+
+ /**
+ * Read a <code>RuleSet</code> from a <code>Reader</code>.
+ *
+ * @param reader
+ * The reader containing the rule-set.
+ *
+ * @return The rule-set.
+ */
+ public Process read(final Reader reader) throws SAXException,
+ IOException {
+ this.process = ((ProcessBuildData) this.parser.read( reader )).getProcess();
+ return this.process;
+ }
+
+ /**
+ * Read a <code>RuleSet</code> from an <code>InputStream</code>.
+ *
+ * @param inputStream
+ * The input-stream containing the rule-set.
+ *
+ * @return The rule-set.
+ */
+ public Process read(final InputStream inputStream) throws SAXException,
+ IOException {
+ this.process = ((ProcessBuildData) this.parser.read( inputStream )).getProcess();
+ return this.process;
+ }
+
+ /**
+ * Read a <code>RuleSet</code> from an <code>InputSource</code>.
+ *
+ * @param in
+ * The rule-set input-source.
+ *
+ * @return The rule-set.
+ */
+ public Process read(final InputSource in) throws SAXException,
+ IOException {
+ this.process = ((ProcessBuildData)this.parser.read( in )).getProcess();
+ return this.process;
+ }
+
+ void setProcess(final Process packageDescr) {
+ this.process = process;
+ }
+
+ public Process getProcess() {
+ return this.process;
+ }
+}
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ActionNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ActionNodeHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ActionNodeHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,93 @@
+package org.drools.xml.processes;
+
+import java.util.HashSet;
+
+import org.drools.ruleflow.common.core.impl.ProcessImpl;
+import org.drools.ruleflow.common.core.Process;
+import org.drools.lang.descr.FunctionImportDescr;
+import org.drools.lang.descr.GlobalDescr;
+import org.drools.lang.descr.ImportDescr;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.ruleflow.core.ActionNode;
+import org.drools.ruleflow.core.StartNode;
+import org.drools.ruleflow.core.impl.ActionNodeImpl;
+import org.drools.ruleflow.core.impl.DroolsConsequenceAction;
+import org.drools.ruleflow.core.impl.RuleFlowProcessImpl;
+import org.drools.ruleflow.core.impl.StartNodeImpl;
+import org.drools.xml.BaseAbstractHandler;
+import org.drools.xml.Configuration;
+import org.drools.xml.ExtensibleXmlParser;
+import org.drools.xml.Handler;
+import org.drools.xml.ProcessBuildData;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+public class ActionNodeHandler extends BaseAbstractHandler
+ implements
+ Handler {
+ public ActionNodeHandler() {
+ if ( (this.validParents == null) && (this.validPeers == null) ) {
+ this.validParents = new HashSet();
+ this.validParents.add( Process.class );
+
+ this.validPeers = new HashSet();
+ this.validPeers.add( StartNode.class );
+ this.validPeers.add( ActionNode.class );
+
+ this.allowNesting = false;
+ }
+ }
+
+
+
+ public Object start(final String uri,
+ final String localName,
+ final Attributes attrs,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ xmlPackageReader.startConfiguration( localName,
+ attrs );
+
+ RuleFlowProcessImpl process = ( RuleFlowProcessImpl ) xmlPackageReader.getParent();
+
+ ActionNodeImpl actionNode = new ActionNodeImpl();
+
+ final String name = attrs.getValue( "name" );
+ emptyAttributeCheck( localName, "name", name, xmlPackageReader );
+ actionNode.setName( name );
+
+ process.addNode( actionNode );
+ ((ProcessBuildData)xmlPackageReader.getData()).addNode( actionNode );
+
+ return actionNode;
+ }
+
+ public Object end(final String uri,
+ final String localName,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ final Configuration config = xmlPackageReader.endConfiguration();
+ RuleFlowProcessImpl process = ( RuleFlowProcessImpl ) xmlPackageReader.getParent();
+
+ ActionNodeImpl actionNode = ( ActionNodeImpl ) xmlPackageReader.getCurrent();
+
+ String text = config.getText();
+ if ( text == null ) {
+ throw new SAXParseException( "<action-node> requires content",
+ xmlPackageReader.getLocator() );
+ }
+
+ final String dialect = config.getAttribute( "dialect" );
+ emptyAttributeCheck( localName, "dialect", dialect, xmlPackageReader );
+
+ DroolsConsequenceAction actionText = new DroolsConsequenceAction( dialect, text);
+
+ actionNode.setAction( actionText );
+
+ return actionNode;
+ }
+
+ public Class generateNodeFor() {
+ return ActionNode.class;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ConnectionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ConnectionHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ConnectionHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,87 @@
+package org.drools.xml.processes;
+
+import java.util.HashSet;
+
+import org.drools.ruleflow.common.core.impl.ProcessImpl;
+import org.drools.ruleflow.common.core.Process;
+import org.drools.lang.descr.FunctionImportDescr;
+import org.drools.lang.descr.GlobalDescr;
+import org.drools.lang.descr.ImportDescr;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.ruleflow.core.ActionNode;
+import org.drools.ruleflow.core.Connection;
+import org.drools.ruleflow.core.EndNode;
+import org.drools.ruleflow.core.Node;
+import org.drools.ruleflow.core.StartNode;
+import org.drools.ruleflow.core.impl.ConnectionImpl;
+import org.drools.ruleflow.core.impl.RuleFlowProcessImpl;
+import org.drools.ruleflow.core.impl.StartNodeImpl;
+import org.drools.xml.BaseAbstractHandler;
+import org.drools.xml.Configuration;
+import org.drools.xml.ExtensibleXmlParser;
+import org.drools.xml.Handler;
+import org.drools.xml.ProcessBuildData;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+public class ConnectionHandler extends BaseAbstractHandler
+ implements
+ Handler {
+ public ConnectionHandler() {
+ if ( (this.validParents == null) && (this.validPeers == null) ) {
+ this.validParents = new HashSet();
+ this.validParents.add( Process.class );
+
+ this.validPeers = new HashSet();
+ this.validPeers.add( null );
+ this.validPeers.add( Connection.class );
+
+ this.allowNesting = false;
+ }
+ }
+
+
+
+ public Object start(final String uri,
+ final String localName,
+ final Attributes attrs,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ xmlPackageReader.startConfiguration( localName,
+ attrs );
+
+ String fromName = attrs.getValue( "from" );
+ String toName = attrs.getValue( "to" );
+ emptyAttributeCheck( localName, "from", fromName, xmlPackageReader );
+ emptyAttributeCheck( localName, "to", toName, xmlPackageReader );
+
+ ProcessBuildData buildData = (ProcessBuildData)xmlPackageReader.getData();
+ Node fromNode = buildData.getNode( fromName );
+ Node toNode = buildData.getNode( toName );
+
+ if ( fromNode == null ) {
+ throw new SAXParseException( "from Node connection name '" + fromName + "' cannot be found",
+ xmlPackageReader.getLocator() );
+ }
+ if ( toNode == null ) {
+ throw new SAXParseException( "from Node connection name '" + toName + "' cannot be found",
+ xmlPackageReader.getLocator() );
+ }
+
+ ConnectionImpl connection = new ConnectionImpl(fromNode, toNode, Connection.TYPE_NORMAL);
+
+ return connection;
+ }
+
+ public Object end(final String uri,
+ final String localName,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ final Configuration config = xmlPackageReader.endConfiguration();
+ return xmlPackageReader.getCurrent();
+ }
+
+ public Class generateNodeFor() {
+ return Connection.class;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/EndNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/EndNodeHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/EndNodeHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,77 @@
+package org.drools.xml.processes;
+
+import java.util.HashSet;
+
+import org.drools.ruleflow.common.core.impl.ProcessImpl;
+import org.drools.ruleflow.common.core.Process;
+import org.drools.lang.descr.FunctionImportDescr;
+import org.drools.lang.descr.GlobalDescr;
+import org.drools.lang.descr.ImportDescr;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.ruleflow.core.ActionNode;
+import org.drools.ruleflow.core.EndNode;
+import org.drools.ruleflow.core.StartNode;
+import org.drools.ruleflow.core.impl.EndNodeImpl;
+import org.drools.ruleflow.core.impl.RuleFlowProcessImpl;
+import org.drools.ruleflow.core.impl.StartNodeImpl;
+import org.drools.xml.BaseAbstractHandler;
+import org.drools.xml.Configuration;
+import org.drools.xml.ExtensibleXmlParser;
+import org.drools.xml.Handler;
+import org.drools.xml.ProcessBuildData;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+public class EndNodeHandler extends BaseAbstractHandler
+ implements
+ Handler {
+ public EndNodeHandler() {
+ if ( (this.validParents == null) && (this.validPeers == null) ) {
+ this.validParents = new HashSet();
+ this.validParents.add( Process.class );
+
+ this.validPeers = new HashSet();
+
+ this.validPeers.add( ActionNode.class );
+ this.validPeers.add( StartNode.class );
+
+ this.allowNesting = false;
+ }
+ }
+
+
+
+ public Object start(final String uri,
+ final String localName,
+ final Attributes attrs,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ xmlPackageReader.startConfiguration( localName,
+ attrs );
+
+ RuleFlowProcessImpl process = ( RuleFlowProcessImpl ) xmlPackageReader.getParent();
+
+ final EndNode endNode = new EndNodeImpl();
+
+ final String name = attrs.getValue( "name" );
+ emptyAttributeCheck( localName, "name", name, xmlPackageReader );
+ endNode.setName( name );
+
+ process.addNode( endNode );
+ ((ProcessBuildData)xmlPackageReader.getData()).addNode( endNode );
+
+ return endNode;
+ }
+
+ public Object end(final String uri,
+ final String localName,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ final Configuration config = xmlPackageReader.endConfiguration();
+ return xmlPackageReader.getCurrent();
+ }
+
+ public Class generateNodeFor() {
+ return EndNode.class;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/GlobalHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/GlobalHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/GlobalHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,82 @@
+package org.drools.xml.processes;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+
+import org.drools.ruleflow.common.core.impl.ProcessImpl;
+import org.drools.ruleflow.common.core.Process;
+import org.drools.lang.descr.FunctionImportDescr;
+import org.drools.lang.descr.GlobalDescr;
+import org.drools.lang.descr.ImportDescr;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.ruleflow.core.ActionNode;
+import org.drools.ruleflow.core.StartNode;
+import org.drools.ruleflow.core.impl.ActionNodeImpl;
+import org.drools.ruleflow.core.impl.DroolsConsequenceAction;
+import org.drools.ruleflow.core.impl.RuleFlowProcessImpl;
+import org.drools.ruleflow.core.impl.StartNodeImpl;
+import org.drools.xml.BaseAbstractHandler;
+import org.drools.xml.Configuration;
+import org.drools.xml.ExtensibleXmlParser;
+import org.drools.xml.Handler;
+import org.drools.xml.ProcessBuildData;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+public class GlobalHandler extends BaseAbstractHandler
+ implements
+ Handler {
+ public GlobalHandler() {
+ if ( (this.validParents == null) && (this.validPeers == null) ) {
+ this.validParents = new HashSet();
+ this.validParents.add( Process.class );
+
+ this.validPeers = new HashSet();
+ this.validPeers.add( null );
+ //this.validPeers.add( ImportDescr.class );
+
+ this.allowNesting = false;
+ }
+ }
+
+
+
+ public Object start(final String uri,
+ final String localName,
+ final Attributes attrs,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ xmlPackageReader.startConfiguration( localName,
+ attrs );
+
+ RuleFlowProcessImpl process = ( RuleFlowProcessImpl ) xmlPackageReader.getParent();
+
+ final String identifier = attrs.getValue( "identifier" );
+ final String type = attrs.getValue( "type" );
+
+ emptyAttributeCheck( localName, "identifier", identifier, xmlPackageReader );
+ emptyAttributeCheck( localName, "type", type, xmlPackageReader );
+
+ Map<String, String> map = process.getGlobals();
+ if ( map == null ) {
+ map = new HashMap<String, String>();
+ process.setGlobals( map );
+ }
+ map.put( identifier, type );
+
+ return null;
+ }
+
+ public Object end(final String uri,
+ final String localName,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ final Configuration config = xmlPackageReader.endConfiguration();
+ return null;
+ }
+
+ public Class generateNodeFor() {
+ return null;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ImportHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ImportHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ImportHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,78 @@
+package org.drools.xml.processes;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+
+import org.drools.ruleflow.common.core.impl.ProcessImpl;
+import org.drools.ruleflow.common.core.Process;
+import org.drools.lang.descr.FunctionImportDescr;
+import org.drools.lang.descr.GlobalDescr;
+import org.drools.lang.descr.ImportDescr;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.ruleflow.core.ActionNode;
+import org.drools.ruleflow.core.StartNode;
+import org.drools.ruleflow.core.impl.ActionNodeImpl;
+import org.drools.ruleflow.core.impl.DroolsConsequenceAction;
+import org.drools.ruleflow.core.impl.RuleFlowProcessImpl;
+import org.drools.ruleflow.core.impl.StartNodeImpl;
+import org.drools.xml.BaseAbstractHandler;
+import org.drools.xml.Configuration;
+import org.drools.xml.ExtensibleXmlParser;
+import org.drools.xml.Handler;
+import org.drools.xml.ProcessBuildData;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+public class ImportHandler extends BaseAbstractHandler
+ implements
+ Handler {
+ public ImportHandler() {
+ if ( (this.validParents == null) && (this.validPeers == null) ) {
+ this.validParents = new HashSet();
+ this.validParents.add( Process.class );
+
+ this.validPeers = new HashSet();
+ this.validPeers.add( null );
+ //this.validPeers.add( ImportDescr.class );
+
+ this.allowNesting = false;
+ }
+ }
+
+
+
+ public Object start(final String uri,
+ final String localName,
+ final Attributes attrs,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ xmlPackageReader.startConfiguration( localName,
+ attrs );
+
+ RuleFlowProcessImpl process = ( RuleFlowProcessImpl ) xmlPackageReader.getParent();
+
+ final String name = attrs.getValue( "name" );
+ emptyAttributeCheck( localName, "name", name, xmlPackageReader );
+
+ java.util.List<String> list =process.getImports();
+ if ( list == null ) {
+ list = new ArrayList<String>();
+ process.setImports( list );
+ }
+ list.add( name );
+
+ return null;
+ }
+
+ public Object end(final String uri,
+ final String localName,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ final Configuration config = xmlPackageReader.endConfiguration();
+ return null;
+ }
+
+ public Class generateNodeFor() {
+ return null;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ProcessHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ProcessHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ProcessHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,78 @@
+package org.drools.xml.processes;
+
+import java.util.HashSet;
+
+import org.drools.lang.descr.FunctionImportDescr;
+import org.drools.lang.descr.GlobalDescr;
+import org.drools.lang.descr.ImportDescr;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.ruleflow.core.impl.RuleFlowProcessImpl;
+import org.drools.xml.BaseAbstractHandler;
+import org.drools.xml.Configuration;
+import org.drools.xml.ExtensibleXmlParser;
+import org.drools.xml.Handler;
+import org.drools.xml.ProcessBuildData;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+public class ProcessHandler extends BaseAbstractHandler
+ implements
+ Handler {
+ public ProcessHandler() {
+ if ( (this.validParents == null) && (this.validPeers == null) ) {
+ this.validParents = new HashSet();
+ this.validParents.add( null );
+
+ this.validPeers = new HashSet();
+ this.validPeers.add( null );
+
+ this.allowNesting = false;
+ }
+ }
+
+
+
+ public Object start(final String uri,
+ final String localName,
+ final Attributes attrs,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ xmlPackageReader.startConfiguration( localName,
+ attrs );
+
+ final String id = attrs.getValue( "id" );
+ final String name = attrs.getValue( "name" );
+ final String version = attrs.getValue( "version" );
+ final String type = attrs.getValue( "type" );
+ final String packageName = attrs.getValue( "package-name" );
+
+ emptyAttributeCheck( localName, "id", name, xmlPackageReader );
+ emptyAttributeCheck( localName, "name", name, xmlPackageReader );
+ //emptyAttributeCheck( localName, "version", version, xmlPackageReader );
+ emptyAttributeCheck( localName, "package-name", packageName, xmlPackageReader );
+
+
+ RuleFlowProcessImpl process = new RuleFlowProcessImpl();
+ process.setId( id );
+ process.setName( name );
+ process.setVersion( version );
+ process.setType( type );
+ process.setPackageName( packageName );
+
+ ((ProcessBuildData)xmlPackageReader.getData()).setProcess( process );
+
+ return process;
+ }
+
+ public Object end(final String uri,
+ final String localName,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ final Configuration config = xmlPackageReader.endConfiguration();
+ return xmlPackageReader.getCurrent();
+ }
+
+ public Class generateNodeFor() {
+ return org.drools.ruleflow.common.core.Process.class;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/StartNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/StartNodeHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/StartNodeHandler.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,74 @@
+package org.drools.xml.processes;
+
+import java.util.HashSet;
+
+import org.drools.ruleflow.common.core.impl.ProcessImpl;
+import org.drools.ruleflow.common.core.Process;
+import org.drools.lang.descr.FunctionImportDescr;
+import org.drools.lang.descr.GlobalDescr;
+import org.drools.lang.descr.ImportDescr;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.ruleflow.core.ActionNode;
+import org.drools.ruleflow.core.EndNode;
+import org.drools.ruleflow.core.StartNode;
+import org.drools.ruleflow.core.impl.RuleFlowProcessImpl;
+import org.drools.ruleflow.core.impl.StartNodeImpl;
+import org.drools.xml.BaseAbstractHandler;
+import org.drools.xml.Configuration;
+import org.drools.xml.ExtensibleXmlParser;
+import org.drools.xml.Handler;
+import org.drools.xml.ProcessBuildData;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+public class StartNodeHandler extends BaseAbstractHandler
+ implements
+ Handler {
+ public StartNodeHandler() {
+ if ( (this.validParents == null) && (this.validPeers == null) ) {
+ this.validParents = new HashSet();
+ this.validParents.add( Process.class );
+
+ this.validPeers = new HashSet();
+ this.validPeers.add( null );
+
+ this.allowNesting = false;
+ }
+ }
+
+
+
+ public Object start(final String uri,
+ final String localName,
+ final Attributes attrs,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ xmlPackageReader.startConfiguration( localName,
+ attrs );
+
+ RuleFlowProcessImpl process = ( RuleFlowProcessImpl ) xmlPackageReader.getParent();
+
+ final StartNode startNode = new StartNodeImpl();
+
+ final String name = attrs.getValue( "name" );
+ emptyAttributeCheck( localName, "name", name, xmlPackageReader );
+ startNode.setName( name );
+
+ process.addNode( startNode );
+ ((ProcessBuildData)xmlPackageReader.getData()).addNode( startNode );
+
+ return startNode;
+ }
+
+ public Object end(final String uri,
+ final String localName,
+ final ExtensibleXmlParser xmlPackageReader) throws SAXException {
+ final Configuration config = xmlPackageReader.endConfiguration();
+ return xmlPackageReader.getCurrent();
+ }
+
+ public Class generateNodeFor() {
+ return StartNode.class;
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -18,6 +18,7 @@
import org.drools.lang.descr.FunctionImportDescr;
import org.drools.lang.descr.ImportDescr;
import org.drools.lang.descr.PackageDescr;
+import org.drools.lang.descr.ProcessDescr;
import org.drools.lang.descr.RuleDescr;
import org.drools.rule.Package;
import org.drools.rule.Pattern;
@@ -423,6 +424,11 @@
// TODO Auto-generated method stub
return null;
}
+
+ public void init(ProcessDescr processDescr) {
+ // TODO Auto-generated method stub
+
+ }
}
public static class MockEvalBuilder
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/DumperTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/DumperTest.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/DumperTest.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,90 +0,0 @@
-package org.drools.xml;
-
-import junit.framework.TestCase;
-
-/**
- * Test the dump/convert format utilities.
- *
- * @author Michael Neale
- * @author Fernando Meyer
- */
-
-public class DumperTest extends TestCase {
-
- // Xml Dumper test
-
- public void testRoundTripAccumulateXml() throws Exception {
- DumperTestHelper.XmlFile( "test_ParseAccumulate.xml" );
- }
-
- public void testRoundTripCollectXml() throws Exception {
- DumperTestHelper.XmlFile( "test_ParseCollect.xml" );
- }
-
- public void testRoundTripExistsXml() throws Exception {
- DumperTestHelper.XmlFile( "test_ParseExists.xml" );
- }
-
- public void testRoundTripForallXml() throws Exception {
- DumperTestHelper.XmlFile( "test_ParseForall.xml" );
- }
-
- public void testRoundTripFromXml() throws Exception {
- DumperTestHelper.XmlFile( "test_ParseFrom.xml" );
- }
-
- public void testRoundTripComplexRuleXml() throws Exception {
- DumperTestHelper.XmlFile( "test_RoundTrip.xml" );
- }
-
- // Drl Dumper test
-
- public void testRoundTripComplexRuleDrl() throws Exception {
- DumperTestHelper.DrlFile( "test_RoundTrip.drl" );
- }
-
- public void testRoundTripCollectDrl() throws Exception {
- DumperTestHelper.DrlFile( "../integrationtests/test_Collect.drl" );
- }
-
- public void testRoundTripAccumulateDrl() throws Exception {
- DumperTestHelper.DrlFile( "test_accumulateall.drl" );
- }
-
- public void testRoundTripExistsDrl() throws Exception {
- DumperTestHelper.DrlFile( "../integrationtests/test_exists.drl" );
- }
-
- public void testRoundTripForallDrl() throws Exception {
- DumperTestHelper.DrlFile( "../integrationtests/test_Forall.drl" );
- }
-
- public void testRoundTripFromDrl() throws Exception {
- DumperTestHelper.DrlFile( "test_from.drl" );
- }
-
- public void testRoundTripSimpleRuleDrl() throws Exception {
- DumperTestHelper.DrlFile( "test_simplerule.drl" );
- }
-
- public void testRoundTripPComplexDrl() throws Exception {
- DumperTestHelper.DrlFile( "test_complex.drl" );
- }
-
- public void testRoundTripPComplexXml() throws Exception {
- DumperTestHelper.XmlFile( "test_ParseComplex.xml" );
- }
-
- public static void testStaticMethod1() {
- System.out.println( "testStaticMethod1" ) ;
- }
-
- public static void testStaticMethod2() {
- System.out.println( "testStaticMethod2" ) ;
- }
-
- public static void testStaticMethod3() {
- System.out.println( "testStaticMethod3" ) ;
- }
-
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/DumperTestHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/DumperTestHelper.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/DumperTestHelper.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,75 +0,0 @@
-/**
- *
- */
-package org.drools.xml;
-
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.StringReader;
-
-import junit.framework.Assert;
-
-import org.drools.compiler.DrlParser;
-import org.drools.lang.DrlDumper;
-import org.drools.lang.descr.PackageDescr;
-
-/**
- * Helper Class for both xml and drl Dump Tests
- *
- * @author fernandomeyer
- */
-public class DumperTestHelper extends Assert {
-
- public static void XmlFile(String filename) throws Exception {
-
- XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( DumperTestHelper.class.getResourceAsStream( filename ) ) );
- final PackageDescr pkgOriginal = xmlPackageReader.getPackageDescr();
-
- final XmlDumper dumper = new XmlDumper();
- final String result = dumper.dump( pkgOriginal );
-
- String buffer = readFile( filename );
-
- assertEqualsIgnoreWhitespace( buffer,
- result );
- assertNotNull( result );
- }
-
- public static void DrlFile(String filename) throws Exception {
-
- DrlParser parser = new DrlParser();
- final PackageDescr pkgOriginal = parser.parse( new InputStreamReader( DumperTestHelper.class.getResourceAsStream( filename ) ) );
- final DrlDumper dumper = new DrlDumper();
- String result = dumper.dump( pkgOriginal );
-
- parser = new DrlParser();
- String buffer = readFile( filename );
- assertEqualsIgnoreWhitespace( buffer.toString(),
- result );
- }
-
- private static void assertEqualsIgnoreWhitespace(final String expected,
- final String actual) {
- final String cleanExpected = expected.replaceAll( "\\s+",
- "" );
- final String cleanActual = actual.replaceAll( "\\s+",
- "" );
- assertEquals( cleanExpected,
- cleanActual );
- }
-
- private static String readFile(final String file) throws IOException {
- final InputStreamReader reader = new InputStreamReader( DumperTestHelper.class.getResourceAsStream( file ) );
- final StringBuffer text = new StringBuffer();
- final char[] buf = new char[1024];
- int len = 0;
-
- while ( (len = reader.read( buf )) >= 0 ) {
- text.append( buf,
- 0,
- len );
- }
- return text.toString();
- }
-}
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/XmlPackageReaderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/XmlPackageReaderTest.java 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/XmlPackageReaderTest.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,677 +0,0 @@
-package org.drools.xml;
-
-import java.io.InputStreamReader;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.drools.RuleBase;
-import org.drools.RuleBaseConfiguration;
-import org.drools.RuleBaseFactory;
-import org.drools.lang.descr.AccessorDescr;
-import org.drools.lang.descr.AccumulateDescr;
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.AttributeDescr;
-import org.drools.lang.descr.BaseDescr;
-import org.drools.lang.descr.CollectDescr;
-import org.drools.lang.descr.EvalDescr;
-import org.drools.lang.descr.ExistsDescr;
-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.FunctionDescr;
-import org.drools.lang.descr.FunctionImportDescr;
-import org.drools.lang.descr.GlobalDescr;
-import org.drools.lang.descr.ImportDescr;
-import org.drools.lang.descr.LiteralRestrictionDescr;
-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.PredicateDescr;
-import org.drools.lang.descr.QueryDescr;
-import org.drools.lang.descr.ReturnValueRestrictionDescr;
-import org.drools.lang.descr.RuleDescr;
-import org.drools.lang.descr.VariableRestrictionDescr;
-
-public class XmlPackageReaderTest extends TestCase {
-
- protected RuleBase getRuleBase() throws Exception {
-
- return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
- null );
- }
-
- protected RuleBase getRuleBase(final RuleBaseConfiguration config) throws Exception {
-
- return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
- config );
- }
-
- public void testParseFrom() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseFrom.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
- assertNotNull( packageDescr );
- RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
- PatternDescr patterndescr = (PatternDescr) obj.getLhs().getDescrs().get( 0 );
-
- FromDescr from = (FromDescr) patterndescr.getSource();
-
- AccessorDescr accessordescriptor = (AccessorDescr) from.getDataSource();
- assertEquals( accessordescriptor.getVariableName(), "cheesery" );
-
- assertEquals( patterndescr.getObjectType(), "Cheese" );
- assertEquals( patterndescr.getIdentifier(), "cheese" );
-
- }
-
- public void testAccumulate() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseAccumulate.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
- assertNotNull( packageDescr );
- RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
-
- Object patternobj = obj.getLhs().getDescrs().get( 0 );
- assertTrue( patternobj instanceof PatternDescr );
- final PatternDescr patterncheese = (PatternDescr) patternobj;
- assertEquals( patterncheese.getIdentifier(), "cheese" );
- assertEquals( patterncheese.getObjectType(), "Cheese" );
-
- AccumulateDescr accumulatedescr = (AccumulateDescr) patterncheese.getSource();
- assertEquals( "total += $cheese.getPrice();",
- accumulatedescr.getActionCode() );
- assertEquals( "int total = 0;",
- accumulatedescr.getInitCode() );
- assertEquals( "new Integer( total ) );",
- accumulatedescr.getResultCode() );
-
- patternobj = obj.getLhs().getDescrs().get( 1 );
- assertTrue( patternobj instanceof PatternDescr );
-
- final PatternDescr patternmax = (PatternDescr) patternobj;
- assertEquals( patternmax.getIdentifier(), "max" );
- assertEquals( patternmax.getObjectType(), "Number" );
-
- accumulatedescr = (AccumulateDescr) patternmax.getSource();
-
- assertTrue( accumulatedescr.isExternalFunction() );
-
- assertEquals( "max",
- accumulatedescr.getFunctionIdentifier() );
-
- assertNull( accumulatedescr.getInitCode() );
- assertNull( accumulatedescr.getActionCode() );
- assertNull( accumulatedescr.getResultCode() );
- assertNull( accumulatedescr.getReverseCode());
-
- }
-
-
- public void testAccumulateMultiPattern() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseAccumulate.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
- assertNotNull( packageDescr );
- RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 1 );
-
- Object patternobj = obj.getLhs().getDescrs().get( 0 );
- assertTrue( patternobj instanceof PatternDescr );
- final PatternDescr patterncheese = (PatternDescr) patternobj;
- assertEquals( patterncheese.getIdentifier(), "cheese" );
- assertEquals( patterncheese.getObjectType(), "Cheese" );
-
- AccumulateDescr accumulatedescr = (AccumulateDescr) patterncheese.getSource();
- assertEquals( "total += $cheese.getPrice();",
- accumulatedescr.getActionCode() );
- assertEquals( "int total = 0;",
- accumulatedescr.getInitCode() );
- assertEquals( "new Integer( total ) );",
- accumulatedescr.getResultCode() );
-
- AndDescr anddescr = (AndDescr) accumulatedescr.getInput();
-
- List descrlist = anddescr.getDescrs();
-
- PatternDescr[] listpattern = (PatternDescr[]) descrlist.toArray(new PatternDescr[descrlist.size()]);
-
- assertEquals(listpattern[0].getObjectType(), "Milk");
- assertEquals(listpattern[1].getObjectType(), "Cup");
- }
-
- public void testParseForall() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseForall.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
- assertNotNull( packageDescr );
-
- RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
- ForallDescr forall = (ForallDescr) obj.getLhs().getDescrs().get( 0 );
- List forallPaterns = forall.getDescrs();
-
- PatternDescr pattarnState = (PatternDescr) forallPaterns.get( 0 );
- PatternDescr personState = (PatternDescr) forallPaterns.get( 1 );
- PatternDescr cheeseState = (PatternDescr) forallPaterns.get( 2 );
-
- assertEquals( pattarnState.getObjectType(),
- "State" );
- assertEquals( personState.getObjectType(),
- "Person" );
- assertEquals( cheeseState.getObjectType(),
- "Cheese" );
- }
-
- public void testParseExists() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseExists.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
- assertNotNull( packageDescr );
-
- RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
- Object existdescr = obj.getLhs().getDescrs().get( 0 );
- assertTrue( existdescr instanceof ExistsDescr );
-
- Object patternDescriptor = ((ExistsDescr) existdescr).getDescrs().get( 0 );
- assertTrue( patternDescriptor instanceof PatternDescr );
- assertEquals( ((PatternDescr) patternDescriptor).getObjectType(),
- "Person" );
-
- Object notDescr = obj.getLhs().getDescrs().get( 1 );
-
- assertEquals( notDescr.getClass().getName(),
- NotDescr.class.getName() );
- existdescr = ((NotDescr) notDescr).getDescrs().get( 0 );
- patternDescriptor = ((ExistsDescr) existdescr).getDescrs().get( 0 );
- assertTrue( patternDescriptor instanceof PatternDescr );
- assertEquals( ((PatternDescr) patternDescriptor).getObjectType(),
- "Cheese" );
- }
-
- public void testParseCollect() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseCollect.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
-
- assertNotNull( packageDescr );
-
- RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
- Object objectpattern = obj.getLhs().getDescrs().get( 0 );
- assertTrue( objectpattern instanceof PatternDescr );
-
- PatternDescr patterndescr = (PatternDescr) objectpattern;
-
- assertEquals( patterndescr.getObjectType(),
- "Cheese" );
-
- Object collectobj = patterndescr.getSource();
-
- assertTrue( collectobj instanceof CollectDescr );
-
- CollectDescr collectDescr = (CollectDescr) collectobj;
-
- PatternDescr inputpattern = collectDescr.getInputPattern();
-
- assertEquals( inputpattern.getObjectType(),
- "Person" );
- Object fieldContraintObject = inputpattern.getConstraint().getDescrs().get( 0 );
- assertTrue( fieldContraintObject instanceof FieldConstraintDescr );
- FieldConstraintDescr fieldconstraintdescr = (FieldConstraintDescr) fieldContraintObject;
- assertEquals( fieldconstraintdescr.getFieldName(),
- "hair" );
- Object literal1 = fieldconstraintdescr.getRestrictions().get( 0 );
- assertTrue( literal1 instanceof LiteralRestrictionDescr );
- LiteralRestrictionDescr literalDesc = (LiteralRestrictionDescr) literal1;
- assertEquals( literalDesc.getEvaluator(),
- "==" );
- assertEquals( literalDesc.getText(),
- "pink" );
-
- fieldContraintObject = patterndescr.getConstraint().getDescrs().get( 0 );
- assertTrue( fieldContraintObject instanceof FieldConstraintDescr );
- fieldconstraintdescr = (FieldConstraintDescr) fieldContraintObject;
- assertEquals( fieldconstraintdescr.getFieldName(),
- "type" );
- literal1 = fieldconstraintdescr.getRestrictions().get( 0 );
- assertTrue( literal1 instanceof LiteralRestrictionDescr );
- literalDesc = (LiteralRestrictionDescr) literal1;
- assertEquals( literalDesc.getEvaluator(),
- "==" );
- assertEquals( literalDesc.getText(),
- "1" );
-
- }
-
- public void testParsePackageName() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParsePackageName.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
- assertNotNull( packageDescr );
- assertEquals( "com.sample",
- packageDescr.getName() );
- }
-
- public void testParseImport() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseImport.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
- assertNotNull( packageDescr );
- assertEquals( "com.sample",
- packageDescr.getName() );
-
- final List imports = packageDescr.getImports();
- assertEquals( 2,
- imports.size() );
- assertEquals( "java.util.HashMap",
- ((ImportDescr) imports.get( 0 )).getTarget() );
- assertEquals( "org.drools.*",
- ((ImportDescr) imports.get( 1 )).getTarget() );
-
- final List functionImport = packageDescr.getFunctionImports();
-
- assertEquals("org.drools.function",
- ((FunctionImportDescr) functionImport.get( 0 )).getTarget() );
- }
-
- public void testParseGlobal() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseGlobal.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
- assertNotNull( packageDescr );
- assertEquals( "com.sample",
- packageDescr.getName() );
-
- final List imports = packageDescr.getImports();
- assertEquals( 2,
- imports.size() );
- assertEquals( "java.util.HashMap",
- ((ImportDescr) imports.get( 0 )).getTarget() );
- assertEquals( "org.drools.*",
- ((ImportDescr) imports.get( 1 )).getTarget() );
-
- final List globals = packageDescr.getGlobals();
- assertEquals( 2,
- globals.size() );
- final GlobalDescr x = (GlobalDescr) globals.get( 0 );
- final GlobalDescr yada = (GlobalDescr) globals.get( 1 );
- assertEquals( "com.sample.X",
- x.getType() );
- assertEquals( "x",
- x.getIdentifier() );
- assertEquals( "com.sample.Yada",
- yada.getType() );
- assertEquals( "yada",
- yada.getIdentifier() );
- }
-
- public void testParseFunction() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseFunction.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
- assertNotNull( packageDescr );
- assertEquals( "com.sample",
- packageDescr.getName() );
-
- final List imports = packageDescr.getImports();
- assertEquals( 2,
- imports.size() );
- assertEquals( "java.util.HashMap",
- ((ImportDescr) imports.get( 0 )).getTarget() );
- assertEquals( "org.drools.*",
- ((ImportDescr) imports.get( 1 )).getTarget() );
-
- final List globals = packageDescr.getGlobals();
- assertEquals( 2,
- globals.size() );
- final GlobalDescr x = (GlobalDescr) globals.get( 0 );
- final GlobalDescr yada = (GlobalDescr) globals.get( 1 );
- assertEquals( "com.sample.X",
- x.getType() );
- assertEquals( "x",
- x.getIdentifier() );
- assertEquals( "com.sample.Yada",
- yada.getType() );
- assertEquals( "yada",
- yada.getIdentifier() );
-
- final FunctionDescr functionDescr = (FunctionDescr) packageDescr.getFunctions().get( 0 );
- final List names = functionDescr.getParameterNames();
- assertEquals( "foo",
- names.get( 0 ) );
- assertEquals( "bada",
- names.get( 1 ) );
-
- final List types = functionDescr.getParameterTypes();
- assertEquals( "Bar",
- types.get( 0 ) );
- assertEquals( "Bing",
- types.get( 1 ) );
-
- assertEquals( "System.out.println(\"hello world\");",
- functionDescr.getText().trim() );
- }
-
- public void testParseRule() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseRule.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
- assertNotNull( packageDescr );
- assertEquals( "com.sample",
- packageDescr.getName() );
-
- final List imports = packageDescr.getImports();
- assertEquals( 2,
- imports.size() );
- assertEquals( "java.util.HashMap",
- ((ImportDescr) imports.get( 0 )).getTarget() );
- assertEquals( "org.drools.*",
- ((ImportDescr) imports.get( 1 )).getTarget() );
-
- final List globals = packageDescr.getGlobals();
- assertEquals( 2,
- globals.size() );
- final GlobalDescr x = (GlobalDescr) globals.get( 0 );
- final GlobalDescr yada = (GlobalDescr) globals.get( 1 );
- assertEquals( "com.sample.X",
- x.getType() );
- assertEquals( "x",
- x.getIdentifier() );
- assertEquals( "com.sample.Yada",
- yada.getType() );
- assertEquals( "yada",
- yada.getIdentifier() );
-
- final FunctionDescr functionDescr = (FunctionDescr) packageDescr.getFunctions().get( 0 );
- final List names = functionDescr.getParameterNames();
- assertEquals( "foo",
- names.get( 0 ) );
- assertEquals( "bada",
- names.get( 1 ) );
-
- final List types = functionDescr.getParameterTypes();
- assertEquals( "Bar",
- types.get( 0 ) );
- assertEquals( "Bing",
- types.get( 1 ) );
-
- assertEquals( "System.out.println(\"hello world\");",
- functionDescr.getText().trim() );
-
- final RuleDescr ruleDescr = (RuleDescr) packageDescr.getRules().get( 0 );
- assertEquals( "simple_rule",
- ruleDescr.getName() );
-
- assertEquals( 4,
- ruleDescr.getAttributes().size() );
- final AttributeDescr attributeDescr = (AttributeDescr) ruleDescr.getAttributes().get( 0 );
- assertEquals( "salience",
- attributeDescr.getName() );
- assertEquals( "10",
- attributeDescr.getValue() );
-
- final AndDescr lhs = ruleDescr.getLhs();
- assertEquals( 7,
- lhs.getDescrs().size() );
- final PatternDescr patternDescr = (PatternDescr) lhs.getDescrs().get( 0 );
- assertEquals( "Bar",
- patternDescr.getObjectType() );
-
- final String consequence = (String) ruleDescr.getConsequence();
- assertNotNull( consequence );
- }
-
- public void testParseLhs() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseLhs.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
- assertNotNull( packageDescr );
- assertEquals( "com.sample",
- packageDescr.getName() );
-
- final List imports = packageDescr.getImports();
- assertEquals( 2,
- imports.size() );
- assertEquals( "java.util.HashMap",
- ((ImportDescr) imports.get( 0 )).getTarget() );
- assertEquals( "org.drools.*",
- ((ImportDescr) imports.get( 1 )).getTarget() );
-
- final List globals = packageDescr.getGlobals();
- assertEquals( 2,
- globals.size() );
- final GlobalDescr x = (GlobalDescr) globals.get( 0 );
- final GlobalDescr yada = (GlobalDescr) globals.get( 1 );
- assertEquals( "com.sample.X",
- x.getType() );
- assertEquals( "x",
- x.getIdentifier() );
- assertEquals( "com.sample.Yada",
- yada.getType() );
- assertEquals( "yada",
- yada.getIdentifier() );
-
- final FunctionDescr functionDescr = (FunctionDescr) packageDescr.getFunctions().get( 0 );
- final List names = functionDescr.getParameterNames();
- assertEquals( "foo",
- names.get( 0 ) );
- assertEquals( "bada",
- names.get( 1 ) );
-
- final List types = functionDescr.getParameterTypes();
- assertEquals( "Bar",
- types.get( 0 ) );
- assertEquals( "Bing",
- types.get( 1 ) );
-
- assertEquals( "System.out.println(\"hello world\");",
- functionDescr.getText().trim() );
-
- final RuleDescr ruleDescr = (RuleDescr) packageDescr.getRules().get( 0 );
- assertEquals( "my rule",
- ruleDescr.getName() );
-
- final AndDescr lhsDescr = ruleDescr.getLhs();
-
- AndDescr andDescr = (AndDescr) lhsDescr.getDescrs().get( 0 );
- OrDescr orDescr = (OrDescr) lhsDescr.getDescrs().get( 1 );
- final PatternDescr pattern1 = (PatternDescr) lhsDescr.getDescrs().get( 2 );
- assertNull( pattern1.getIdentifier() );
- assertEquals( "Foo",
- pattern1.getObjectType() );
-
- final PatternDescr pattern2 = (PatternDescr) lhsDescr.getDescrs().get( 3 );
- assertEquals( "Bar",
- pattern2.getObjectType() );
- assertEquals( "bar",
- pattern2.getIdentifier() );
-
- final PatternDescr pattern3 = (PatternDescr) lhsDescr.getDescrs().get( 4 );
- //final LiteralDescr literalDescr = (LiteralDescr) pattern3.getDescrs().get( 0 );
- final FieldConstraintDescr fieldConstraintDescr = (FieldConstraintDescr) pattern3.getDescrs().get( 0 );
- final LiteralRestrictionDescr literalDescr = (LiteralRestrictionDescr) fieldConstraintDescr.getRestrictions().get( 0 );
- assertEquals( "field1",
- fieldConstraintDescr.getFieldName() );
- assertEquals( "==",
- literalDescr.getEvaluator() );
- assertEquals( "value1",
- literalDescr.getText() );
-
- final ReturnValueRestrictionDescr returnValueDescr = (ReturnValueRestrictionDescr) fieldConstraintDescr.getRestrictions().get( 1 );
- assertEquals( "==",
- returnValueDescr.getEvaluator() );
- assertEquals( "1==1",
- returnValueDescr.getContent() );
-
- final VariableRestrictionDescr variableDescr = (VariableRestrictionDescr) fieldConstraintDescr.getRestrictions().get( 2 );
- assertEquals( "==",
- variableDescr.getEvaluator() );
- assertEquals( "var1",
- variableDescr.getIdentifier() );
-
- final PredicateDescr predicateDescr = (PredicateDescr) pattern3.getDescrs().get( 1 );
- assertEquals( "1==1",
- predicateDescr.getContent() );
-
- final FieldBindingDescr fieldBindingDescr = (FieldBindingDescr) pattern3.getDescrs().get( 2 );
- assertEquals( "field1",
- fieldBindingDescr.getFieldName() );
- assertEquals( "var1",
- fieldBindingDescr.getIdentifier() );
-
- final NotDescr notDescr = (NotDescr) lhsDescr.getDescrs().get( 5 );
- assertEquals( 1,
- notDescr.getDescrs().size() );
- PatternDescr patternDescr = (PatternDescr) notDescr.getDescrs().get( 0 );
- assertEquals( "Bar",
- patternDescr.getObjectType() );
-
- final ExistsDescr existsDescr = (ExistsDescr) lhsDescr.getDescrs().get( 6 );
- assertEquals( 1,
- existsDescr.getDescrs().size() );
- patternDescr = (PatternDescr) existsDescr.getDescrs().get( 0 );
- assertEquals( "Bar",
- patternDescr.getObjectType() );
-
- andDescr = (AndDescr) lhsDescr.getDescrs().get( 7 );
- assertEquals( 2,
- andDescr.getDescrs().size() );
- orDescr = (OrDescr) andDescr.getDescrs().get( 1 );
- patternDescr = (PatternDescr) orDescr.getDescrs().get( 0 );
- assertEquals( "Bar",
- patternDescr.getObjectType() );
- patternDescr = (PatternDescr) andDescr.getDescrs().get( 0 );
- assertEquals( "Yada",
- patternDescr.getObjectType() );
-
- orDescr = (OrDescr) lhsDescr.getDescrs().get( 8 );
- assertEquals( 2,
- orDescr.getDescrs().size() );
- andDescr = (AndDescr) orDescr.getDescrs().get( 1 );
- patternDescr = (PatternDescr) andDescr.getDescrs().get( 0 );
- assertEquals( "Foo",
- patternDescr.getObjectType() );
- patternDescr = (PatternDescr) orDescr.getDescrs().get( 0 );
- assertEquals( "Zaa",
- patternDescr.getObjectType() );
-
- final EvalDescr evalDescr = (EvalDescr) lhsDescr.getDescrs().get( 9 );
- assertEquals( "1==1",
- evalDescr.getContent() );
- }
-
- public void testParseRhs() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseRhs.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
- assertNotNull( packageDescr );
- assertEquals( "com.sample",
- packageDescr.getName() );
-
- final List imports = packageDescr.getImports();
- assertEquals( 2,
- imports.size() );
- assertEquals( "java.util.HashMap",
- ((ImportDescr) imports.get( 0 )).getTarget() );
- assertEquals( "org.drools.*",
- ((ImportDescr) imports.get( 1 )).getTarget() );
-
- final List globals = packageDescr.getGlobals();
- assertEquals( 2,
- globals.size() );
- final GlobalDescr x = (GlobalDescr) globals.get( 0 );
- final GlobalDescr yada = (GlobalDescr) globals.get( 1 );
- assertEquals( "com.sample.X",
- x.getType() );
- assertEquals( "x",
- x.getIdentifier() );
- assertEquals( "com.sample.Yada",
- yada.getType() );
- assertEquals( "yada",
- yada.getIdentifier() );
-
- final FunctionDescr functionDescr = (FunctionDescr) packageDescr.getFunctions().get( 0 );
- final List names = functionDescr.getParameterNames();
- assertEquals( "foo",
- names.get( 0 ) );
- assertEquals( "bada",
- names.get( 1 ) );
-
- final List types = functionDescr.getParameterTypes();
- assertEquals( "Bar",
- types.get( 0 ) );
- assertEquals( "Bing",
- types.get( 1 ) );
-
- assertEquals( "System.out.println(\"hello world\");",
- functionDescr.getText().trim() );
-
- final RuleDescr ruleDescr = (RuleDescr) packageDescr.getRules().get( 0 );
- assertEquals( "my rule",
- ruleDescr.getName() );
-
- final String consequence = (String) ruleDescr.getConsequence();
- assertNotNull( consequence );
- assertEquals( "System.out.println( \"hello\" );",
- consequence.trim() );
- }
-
- public void testParseQuery() throws Exception {
- final XmlPackageReader xmlPackageReader = new XmlPackageReader();
- xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseQuery.xml" ) ) );
- final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
- assertNotNull( packageDescr );
- assertEquals( "com.sample",
- packageDescr.getName() );
-
- final List imports = packageDescr.getImports();
- assertEquals( 2,
- imports.size() );
- assertEquals( "java.util.HashMap",
- ((ImportDescr) imports.get( 0 )).getTarget() );
- assertEquals( "org.drools.*",
- ((ImportDescr) imports.get( 1 )).getTarget() );
-
- final List globals = packageDescr.getGlobals();
- assertEquals( 2,
- globals.size() );
- final GlobalDescr x = (GlobalDescr) globals.get( 0 );
- final GlobalDescr yada = (GlobalDescr) globals.get( 1 );
- assertEquals( "com.sample.X",
- x.getType() );
- assertEquals( "x",
- x.getIdentifier() );
- assertEquals( "com.sample.Yada",
- yada.getType() );
- assertEquals( "yada",
- yada.getIdentifier() );
-
- final FunctionDescr functionDescr = (FunctionDescr) packageDescr.getFunctions().get( 0 );
- final List names = functionDescr.getParameterNames();
- assertEquals( "foo",
- names.get( 0 ) );
- assertEquals( "bada",
- names.get( 1 ) );
-
- final List types = functionDescr.getParameterTypes();
- assertEquals( "Bar",
- types.get( 0 ) );
- assertEquals( "Bing",
- types.get( 1 ) );
-
- assertEquals( "System.out.println(\"hello world\");",
- functionDescr.getText().trim() );
-
- final QueryDescr queryDescr = (QueryDescr) packageDescr.getRules().get( 0 );
- assertEquals( "my query",
- queryDescr.getName() );
-
- final AndDescr lhs = queryDescr.getLhs();
- assertEquals( 1,
- lhs.getDescrs().size() );
- final PatternDescr patternDescr = (PatternDescr) lhs.getDescrs().get( 0 );
- assertEquals( "Foo",
- patternDescr.getObjectType() );
-
- }
-}
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/ActionNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/ActionNodeTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/ActionNodeTest.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,39 @@
+package org.drools.xml.processes;
+
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.compiler.PackageBuilder;
+import org.drools.ruleflow.common.core.Process;
+import org.drools.xml.XmlProcessReader;
+
+public class ActionNodeTest extends TestCase {
+ public void testSingleActionNode() throws Exception {
+ XmlProcessReader reader = new XmlProcessReader( );
+ Process process = reader.read( new InputStreamReader( ActionNodeTest.class.getResourceAsStream( "ActionNodeTest.xml" ) ) );
+
+ PackageBuilder builder = new PackageBuilder();
+ builder.addProcess( process );
+
+ System.out.println( builder.getErrors() );
+
+ RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
+
+ StatefulSession session = ruleBase.newStatefulSession();
+ List list = new ArrayList();
+ session.setGlobal( "list", list );
+
+ session.startProcess( "process name" );
+
+ assertEquals( 1, list.size() );
+ assertEquals( "action node was here", list.get(0) );
+
+ }
+}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTest.java (from rev 17100, labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/DumperTest.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTest.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,90 @@
+package org.drools.xml.rules;
+
+import junit.framework.TestCase;
+
+/**
+ * Test the dump/convert format utilities.
+ *
+ * @author Michael Neale
+ * @author Fernando Meyer
+ */
+
+public class DumperTest extends TestCase {
+
+ // Xml Dumper test
+
+ public void testRoundTripAccumulateXml() throws Exception {
+ DumperTestHelper.XmlFile( "test_ParseAccumulate.xml" );
+ }
+
+ public void testRoundTripCollectXml() throws Exception {
+ DumperTestHelper.XmlFile( "test_ParseCollect.xml" );
+ }
+
+ public void testRoundTripExistsXml() throws Exception {
+ DumperTestHelper.XmlFile( "test_ParseExists.xml" );
+ }
+
+ public void testRoundTripForallXml() throws Exception {
+ DumperTestHelper.XmlFile( "test_ParseForall.xml" );
+ }
+
+ public void testRoundTripFromXml() throws Exception {
+ DumperTestHelper.XmlFile( "test_ParseFrom.xml" );
+ }
+
+ public void testRoundTripComplexRuleXml() throws Exception {
+ DumperTestHelper.XmlFile( "test_RoundTrip.xml" );
+ }
+
+ // Drl Dumper test
+
+ public void testRoundTripComplexRuleDrl() throws Exception {
+ DumperTestHelper.DrlFile( "test_RoundTrip.drl" );
+ }
+
+ public void testRoundTripCollectDrl() throws Exception {
+ DumperTestHelper.DrlFile( "../../integrationtests/test_Collect.drl" );
+ }
+
+ public void testRoundTripAccumulateDrl() throws Exception {
+ DumperTestHelper.DrlFile( "test_accumulateall.drl" );
+ }
+
+ public void testRoundTripExistsDrl() throws Exception {
+ DumperTestHelper.DrlFile( "../../integrationtests/test_exists.drl" );
+ }
+
+ public void testRoundTripForallDrl() throws Exception {
+ DumperTestHelper.DrlFile( "../../integrationtests/test_Forall.drl" );
+ }
+
+ public void testRoundTripFromDrl() throws Exception {
+ DumperTestHelper.DrlFile( "test_from.drl" );
+ }
+
+ public void testRoundTripSimpleRuleDrl() throws Exception {
+ DumperTestHelper.DrlFile( "test_simplerule.drl" );
+ }
+
+ public void testRoundTripPComplexDrl() throws Exception {
+ DumperTestHelper.DrlFile( "test_complex.drl" );
+ }
+
+ public void testRoundTripPComplexXml() throws Exception {
+ DumperTestHelper.XmlFile( "test_ParseComplex.xml" );
+ }
+
+ public static void testStaticMethod1() {
+ System.out.println( "testStaticMethod1" ) ;
+ }
+
+ public static void testStaticMethod2() {
+ System.out.println( "testStaticMethod2" ) ;
+ }
+
+ public static void testStaticMethod3() {
+ System.out.println( "testStaticMethod3" ) ;
+ }
+
+}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTestHelper.java (from rev 17100, labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/DumperTestHelper.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTestHelper.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTestHelper.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,77 @@
+/**
+ *
+ */
+package org.drools.xml.rules;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.StringReader;
+
+import junit.framework.Assert;
+
+import org.drools.compiler.DrlParser;
+import org.drools.lang.DrlDumper;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.xml.XmlDumper;
+import org.drools.xml.XmlPackageReader;
+
+/**
+ * Helper Class for both xml and drl Dump Tests
+ *
+ * @author fernandomeyer
+ */
+public class DumperTestHelper extends Assert {
+
+ public static void XmlFile(String filename) throws Exception {
+
+ XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( DumperTestHelper.class.getResourceAsStream( filename ) ) );
+ final PackageDescr pkgOriginal = xmlPackageReader.getPackageDescr();
+
+ final XmlDumper dumper = new XmlDumper();
+ final String result = dumper.dump( pkgOriginal );
+
+ String buffer = readFile( filename );
+
+ assertEqualsIgnoreWhitespace( buffer,
+ result );
+ assertNotNull( result );
+ }
+
+ public static void DrlFile(String filename) throws Exception {
+
+ DrlParser parser = new DrlParser();
+ final PackageDescr pkgOriginal = parser.parse( new InputStreamReader( DumperTestHelper.class.getResourceAsStream( filename ) ) );
+ final DrlDumper dumper = new DrlDumper();
+ String result = dumper.dump( pkgOriginal );
+
+ parser = new DrlParser();
+ String buffer = readFile( filename );
+ assertEqualsIgnoreWhitespace( buffer.toString(),
+ result );
+ }
+
+ private static void assertEqualsIgnoreWhitespace(final String expected,
+ final String actual) {
+ final String cleanExpected = expected.replaceAll( "\\s+",
+ "" );
+ final String cleanActual = actual.replaceAll( "\\s+",
+ "" );
+ assertEquals( cleanExpected,
+ cleanActual );
+ }
+
+ private static String readFile(final String file) throws IOException {
+ final InputStreamReader reader = new InputStreamReader( DumperTestHelper.class.getResourceAsStream( file ) );
+ final StringBuffer text = new StringBuffer();
+ final char[] buf = new char[1024];
+ int len = 0;
+
+ while ( (len = reader.read( buf )) >= 0 ) {
+ text.append( buf,
+ 0,
+ len );
+ }
+ return text.toString();
+ }
+}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/XmlPackageReaderTest.java (from rev 17100, labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/XmlPackageReaderTest.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/XmlPackageReaderTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/XmlPackageReaderTest.java 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,678 @@
+package org.drools.xml.rules;
+
+import java.io.InputStreamReader;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseConfiguration;
+import org.drools.RuleBaseFactory;
+import org.drools.lang.descr.AccessorDescr;
+import org.drools.lang.descr.AccumulateDescr;
+import org.drools.lang.descr.AndDescr;
+import org.drools.lang.descr.AttributeDescr;
+import org.drools.lang.descr.BaseDescr;
+import org.drools.lang.descr.CollectDescr;
+import org.drools.lang.descr.EvalDescr;
+import org.drools.lang.descr.ExistsDescr;
+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.FunctionDescr;
+import org.drools.lang.descr.FunctionImportDescr;
+import org.drools.lang.descr.GlobalDescr;
+import org.drools.lang.descr.ImportDescr;
+import org.drools.lang.descr.LiteralRestrictionDescr;
+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.PredicateDescr;
+import org.drools.lang.descr.QueryDescr;
+import org.drools.lang.descr.ReturnValueRestrictionDescr;
+import org.drools.lang.descr.RuleDescr;
+import org.drools.lang.descr.VariableRestrictionDescr;
+import org.drools.xml.XmlPackageReader;
+
+public class XmlPackageReaderTest extends TestCase {
+
+ protected RuleBase getRuleBase() throws Exception {
+
+ return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
+ null );
+ }
+
+ protected RuleBase getRuleBase(final RuleBaseConfiguration config) throws Exception {
+
+ return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
+ config );
+ }
+
+ public void testParseFrom() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseFrom.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+ assertNotNull( packageDescr );
+ RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
+ PatternDescr patterndescr = (PatternDescr) obj.getLhs().getDescrs().get( 0 );
+
+ FromDescr from = (FromDescr) patterndescr.getSource();
+
+ AccessorDescr accessordescriptor = (AccessorDescr) from.getDataSource();
+ assertEquals( accessordescriptor.getVariableName(), "cheesery" );
+
+ assertEquals( patterndescr.getObjectType(), "Cheese" );
+ assertEquals( patterndescr.getIdentifier(), "cheese" );
+
+ }
+
+ public void testAccumulate() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseAccumulate.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+ assertNotNull( packageDescr );
+ RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
+
+ Object patternobj = obj.getLhs().getDescrs().get( 0 );
+ assertTrue( patternobj instanceof PatternDescr );
+ final PatternDescr patterncheese = (PatternDescr) patternobj;
+ assertEquals( patterncheese.getIdentifier(), "cheese" );
+ assertEquals( patterncheese.getObjectType(), "Cheese" );
+
+ AccumulateDescr accumulatedescr = (AccumulateDescr) patterncheese.getSource();
+ assertEquals( "total += $cheese.getPrice();",
+ accumulatedescr.getActionCode() );
+ assertEquals( "int total = 0;",
+ accumulatedescr.getInitCode() );
+ assertEquals( "new Integer( total ) );",
+ accumulatedescr.getResultCode() );
+
+ patternobj = obj.getLhs().getDescrs().get( 1 );
+ assertTrue( patternobj instanceof PatternDescr );
+
+ final PatternDescr patternmax = (PatternDescr) patternobj;
+ assertEquals( patternmax.getIdentifier(), "max" );
+ assertEquals( patternmax.getObjectType(), "Number" );
+
+ accumulatedescr = (AccumulateDescr) patternmax.getSource();
+
+ assertTrue( accumulatedescr.isExternalFunction() );
+
+ assertEquals( "max",
+ accumulatedescr.getFunctionIdentifier() );
+
+ assertNull( accumulatedescr.getInitCode() );
+ assertNull( accumulatedescr.getActionCode() );
+ assertNull( accumulatedescr.getResultCode() );
+ assertNull( accumulatedescr.getReverseCode());
+
+ }
+
+
+ public void testAccumulateMultiPattern() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseAccumulate.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+ assertNotNull( packageDescr );
+ RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 1 );
+
+ Object patternobj = obj.getLhs().getDescrs().get( 0 );
+ assertTrue( patternobj instanceof PatternDescr );
+ final PatternDescr patterncheese = (PatternDescr) patternobj;
+ assertEquals( patterncheese.getIdentifier(), "cheese" );
+ assertEquals( patterncheese.getObjectType(), "Cheese" );
+
+ AccumulateDescr accumulatedescr = (AccumulateDescr) patterncheese.getSource();
+ assertEquals( "total += $cheese.getPrice();",
+ accumulatedescr.getActionCode() );
+ assertEquals( "int total = 0;",
+ accumulatedescr.getInitCode() );
+ assertEquals( "new Integer( total ) );",
+ accumulatedescr.getResultCode() );
+
+ AndDescr anddescr = (AndDescr) accumulatedescr.getInput();
+
+ List descrlist = anddescr.getDescrs();
+
+ PatternDescr[] listpattern = (PatternDescr[]) descrlist.toArray(new PatternDescr[descrlist.size()]);
+
+ assertEquals(listpattern[0].getObjectType(), "Milk");
+ assertEquals(listpattern[1].getObjectType(), "Cup");
+ }
+
+ public void testParseForall() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseForall.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+ assertNotNull( packageDescr );
+
+ RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
+ ForallDescr forall = (ForallDescr) obj.getLhs().getDescrs().get( 0 );
+ List forallPaterns = forall.getDescrs();
+
+ PatternDescr pattarnState = (PatternDescr) forallPaterns.get( 0 );
+ PatternDescr personState = (PatternDescr) forallPaterns.get( 1 );
+ PatternDescr cheeseState = (PatternDescr) forallPaterns.get( 2 );
+
+ assertEquals( pattarnState.getObjectType(),
+ "State" );
+ assertEquals( personState.getObjectType(),
+ "Person" );
+ assertEquals( cheeseState.getObjectType(),
+ "Cheese" );
+ }
+
+ public void testParseExists() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseExists.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+ assertNotNull( packageDescr );
+
+ RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
+ Object existdescr = obj.getLhs().getDescrs().get( 0 );
+ assertTrue( existdescr instanceof ExistsDescr );
+
+ Object patternDescriptor = ((ExistsDescr) existdescr).getDescrs().get( 0 );
+ assertTrue( patternDescriptor instanceof PatternDescr );
+ assertEquals( ((PatternDescr) patternDescriptor).getObjectType(),
+ "Person" );
+
+ Object notDescr = obj.getLhs().getDescrs().get( 1 );
+
+ assertEquals( notDescr.getClass().getName(),
+ NotDescr.class.getName() );
+ existdescr = ((NotDescr) notDescr).getDescrs().get( 0 );
+ patternDescriptor = ((ExistsDescr) existdescr).getDescrs().get( 0 );
+ assertTrue( patternDescriptor instanceof PatternDescr );
+ assertEquals( ((PatternDescr) patternDescriptor).getObjectType(),
+ "Cheese" );
+ }
+
+ public void testParseCollect() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseCollect.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+
+ assertNotNull( packageDescr );
+
+ RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
+ Object objectpattern = obj.getLhs().getDescrs().get( 0 );
+ assertTrue( objectpattern instanceof PatternDescr );
+
+ PatternDescr patterndescr = (PatternDescr) objectpattern;
+
+ assertEquals( patterndescr.getObjectType(),
+ "Cheese" );
+
+ Object collectobj = patterndescr.getSource();
+
+ assertTrue( collectobj instanceof CollectDescr );
+
+ CollectDescr collectDescr = (CollectDescr) collectobj;
+
+ PatternDescr inputpattern = collectDescr.getInputPattern();
+
+ assertEquals( inputpattern.getObjectType(),
+ "Person" );
+ Object fieldContraintObject = inputpattern.getConstraint().getDescrs().get( 0 );
+ assertTrue( fieldContraintObject instanceof FieldConstraintDescr );
+ FieldConstraintDescr fieldconstraintdescr = (FieldConstraintDescr) fieldContraintObject;
+ assertEquals( fieldconstraintdescr.getFieldName(),
+ "hair" );
+ Object literal1 = fieldconstraintdescr.getRestrictions().get( 0 );
+ assertTrue( literal1 instanceof LiteralRestrictionDescr );
+ LiteralRestrictionDescr literalDesc = (LiteralRestrictionDescr) literal1;
+ assertEquals( literalDesc.getEvaluator(),
+ "==" );
+ assertEquals( literalDesc.getText(),
+ "pink" );
+
+ fieldContraintObject = patterndescr.getConstraint().getDescrs().get( 0 );
+ assertTrue( fieldContraintObject instanceof FieldConstraintDescr );
+ fieldconstraintdescr = (FieldConstraintDescr) fieldContraintObject;
+ assertEquals( fieldconstraintdescr.getFieldName(),
+ "type" );
+ literal1 = fieldconstraintdescr.getRestrictions().get( 0 );
+ assertTrue( literal1 instanceof LiteralRestrictionDescr );
+ literalDesc = (LiteralRestrictionDescr) literal1;
+ assertEquals( literalDesc.getEvaluator(),
+ "==" );
+ assertEquals( literalDesc.getText(),
+ "1" );
+
+ }
+
+ public void testParsePackageName() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParsePackageName.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+ assertNotNull( packageDescr );
+ assertEquals( "com.sample",
+ packageDescr.getName() );
+ }
+
+ public void testParseImport() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseImport.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+ assertNotNull( packageDescr );
+ assertEquals( "com.sample",
+ packageDescr.getName() );
+
+ final List imports = packageDescr.getImports();
+ assertEquals( 2,
+ imports.size() );
+ assertEquals( "java.util.HashMap",
+ ((ImportDescr) imports.get( 0 )).getTarget() );
+ assertEquals( "org.drools.*",
+ ((ImportDescr) imports.get( 1 )).getTarget() );
+
+ final List functionImport = packageDescr.getFunctionImports();
+
+ assertEquals("org.drools.function",
+ ((FunctionImportDescr) functionImport.get( 0 )).getTarget() );
+ }
+
+ public void testParseGlobal() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseGlobal.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+ assertNotNull( packageDescr );
+ assertEquals( "com.sample",
+ packageDescr.getName() );
+
+ final List imports = packageDescr.getImports();
+ assertEquals( 2,
+ imports.size() );
+ assertEquals( "java.util.HashMap",
+ ((ImportDescr) imports.get( 0 )).getTarget() );
+ assertEquals( "org.drools.*",
+ ((ImportDescr) imports.get( 1 )).getTarget() );
+
+ final List globals = packageDescr.getGlobals();
+ assertEquals( 2,
+ globals.size() );
+ final GlobalDescr x = (GlobalDescr) globals.get( 0 );
+ final GlobalDescr yada = (GlobalDescr) globals.get( 1 );
+ assertEquals( "com.sample.X",
+ x.getType() );
+ assertEquals( "x",
+ x.getIdentifier() );
+ assertEquals( "com.sample.Yada",
+ yada.getType() );
+ assertEquals( "yada",
+ yada.getIdentifier() );
+ }
+
+ public void testParseFunction() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseFunction.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+ assertNotNull( packageDescr );
+ assertEquals( "com.sample",
+ packageDescr.getName() );
+
+ final List imports = packageDescr.getImports();
+ assertEquals( 2,
+ imports.size() );
+ assertEquals( "java.util.HashMap",
+ ((ImportDescr) imports.get( 0 )).getTarget() );
+ assertEquals( "org.drools.*",
+ ((ImportDescr) imports.get( 1 )).getTarget() );
+
+ final List globals = packageDescr.getGlobals();
+ assertEquals( 2,
+ globals.size() );
+ final GlobalDescr x = (GlobalDescr) globals.get( 0 );
+ final GlobalDescr yada = (GlobalDescr) globals.get( 1 );
+ assertEquals( "com.sample.X",
+ x.getType() );
+ assertEquals( "x",
+ x.getIdentifier() );
+ assertEquals( "com.sample.Yada",
+ yada.getType() );
+ assertEquals( "yada",
+ yada.getIdentifier() );
+
+ final FunctionDescr functionDescr = (FunctionDescr) packageDescr.getFunctions().get( 0 );
+ final List names = functionDescr.getParameterNames();
+ assertEquals( "foo",
+ names.get( 0 ) );
+ assertEquals( "bada",
+ names.get( 1 ) );
+
+ final List types = functionDescr.getParameterTypes();
+ assertEquals( "Bar",
+ types.get( 0 ) );
+ assertEquals( "Bing",
+ types.get( 1 ) );
+
+ assertEquals( "System.out.println(\"hello world\");",
+ functionDescr.getText().trim() );
+ }
+
+ public void testParseRule() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseRule.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+ assertNotNull( packageDescr );
+ assertEquals( "com.sample",
+ packageDescr.getName() );
+
+ final List imports = packageDescr.getImports();
+ assertEquals( 2,
+ imports.size() );
+ assertEquals( "java.util.HashMap",
+ ((ImportDescr) imports.get( 0 )).getTarget() );
+ assertEquals( "org.drools.*",
+ ((ImportDescr) imports.get( 1 )).getTarget() );
+
+ final List globals = packageDescr.getGlobals();
+ assertEquals( 2,
+ globals.size() );
+ final GlobalDescr x = (GlobalDescr) globals.get( 0 );
+ final GlobalDescr yada = (GlobalDescr) globals.get( 1 );
+ assertEquals( "com.sample.X",
+ x.getType() );
+ assertEquals( "x",
+ x.getIdentifier() );
+ assertEquals( "com.sample.Yada",
+ yada.getType() );
+ assertEquals( "yada",
+ yada.getIdentifier() );
+
+ final FunctionDescr functionDescr = (FunctionDescr) packageDescr.getFunctions().get( 0 );
+ final List names = functionDescr.getParameterNames();
+ assertEquals( "foo",
+ names.get( 0 ) );
+ assertEquals( "bada",
+ names.get( 1 ) );
+
+ final List types = functionDescr.getParameterTypes();
+ assertEquals( "Bar",
+ types.get( 0 ) );
+ assertEquals( "Bing",
+ types.get( 1 ) );
+
+ assertEquals( "System.out.println(\"hello world\");",
+ functionDescr.getText().trim() );
+
+ final RuleDescr ruleDescr = (RuleDescr) packageDescr.getRules().get( 0 );
+ assertEquals( "simple_rule",
+ ruleDescr.getName() );
+
+ assertEquals( 4,
+ ruleDescr.getAttributes().size() );
+ final AttributeDescr attributeDescr = (AttributeDescr) ruleDescr.getAttributes().get( 0 );
+ assertEquals( "salience",
+ attributeDescr.getName() );
+ assertEquals( "10",
+ attributeDescr.getValue() );
+
+ final AndDescr lhs = ruleDescr.getLhs();
+ assertEquals( 7,
+ lhs.getDescrs().size() );
+ final PatternDescr patternDescr = (PatternDescr) lhs.getDescrs().get( 0 );
+ assertEquals( "Bar",
+ patternDescr.getObjectType() );
+
+ final String consequence = (String) ruleDescr.getConsequence();
+ assertNotNull( consequence );
+ }
+
+ public void testParseLhs() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseLhs.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+ assertNotNull( packageDescr );
+ assertEquals( "com.sample",
+ packageDescr.getName() );
+
+ final List imports = packageDescr.getImports();
+ assertEquals( 2,
+ imports.size() );
+ assertEquals( "java.util.HashMap",
+ ((ImportDescr) imports.get( 0 )).getTarget() );
+ assertEquals( "org.drools.*",
+ ((ImportDescr) imports.get( 1 )).getTarget() );
+
+ final List globals = packageDescr.getGlobals();
+ assertEquals( 2,
+ globals.size() );
+ final GlobalDescr x = (GlobalDescr) globals.get( 0 );
+ final GlobalDescr yada = (GlobalDescr) globals.get( 1 );
+ assertEquals( "com.sample.X",
+ x.getType() );
+ assertEquals( "x",
+ x.getIdentifier() );
+ assertEquals( "com.sample.Yada",
+ yada.getType() );
+ assertEquals( "yada",
+ yada.getIdentifier() );
+
+ final FunctionDescr functionDescr = (FunctionDescr) packageDescr.getFunctions().get( 0 );
+ final List names = functionDescr.getParameterNames();
+ assertEquals( "foo",
+ names.get( 0 ) );
+ assertEquals( "bada",
+ names.get( 1 ) );
+
+ final List types = functionDescr.getParameterTypes();
+ assertEquals( "Bar",
+ types.get( 0 ) );
+ assertEquals( "Bing",
+ types.get( 1 ) );
+
+ assertEquals( "System.out.println(\"hello world\");",
+ functionDescr.getText().trim() );
+
+ final RuleDescr ruleDescr = (RuleDescr) packageDescr.getRules().get( 0 );
+ assertEquals( "my rule",
+ ruleDescr.getName() );
+
+ final AndDescr lhsDescr = ruleDescr.getLhs();
+
+ AndDescr andDescr = (AndDescr) lhsDescr.getDescrs().get( 0 );
+ OrDescr orDescr = (OrDescr) lhsDescr.getDescrs().get( 1 );
+ final PatternDescr pattern1 = (PatternDescr) lhsDescr.getDescrs().get( 2 );
+ assertNull( pattern1.getIdentifier() );
+ assertEquals( "Foo",
+ pattern1.getObjectType() );
+
+ final PatternDescr pattern2 = (PatternDescr) lhsDescr.getDescrs().get( 3 );
+ assertEquals( "Bar",
+ pattern2.getObjectType() );
+ assertEquals( "bar",
+ pattern2.getIdentifier() );
+
+ final PatternDescr pattern3 = (PatternDescr) lhsDescr.getDescrs().get( 4 );
+ //final LiteralDescr literalDescr = (LiteralDescr) pattern3.getDescrs().get( 0 );
+ final FieldConstraintDescr fieldConstraintDescr = (FieldConstraintDescr) pattern3.getDescrs().get( 0 );
+ final LiteralRestrictionDescr literalDescr = (LiteralRestrictionDescr) fieldConstraintDescr.getRestrictions().get( 0 );
+ assertEquals( "field1",
+ fieldConstraintDescr.getFieldName() );
+ assertEquals( "==",
+ literalDescr.getEvaluator() );
+ assertEquals( "value1",
+ literalDescr.getText() );
+
+ final ReturnValueRestrictionDescr returnValueDescr = (ReturnValueRestrictionDescr) fieldConstraintDescr.getRestrictions().get( 1 );
+ assertEquals( "==",
+ returnValueDescr.getEvaluator() );
+ assertEquals( "1==1",
+ returnValueDescr.getContent() );
+
+ final VariableRestrictionDescr variableDescr = (VariableRestrictionDescr) fieldConstraintDescr.getRestrictions().get( 2 );
+ assertEquals( "==",
+ variableDescr.getEvaluator() );
+ assertEquals( "var1",
+ variableDescr.getIdentifier() );
+
+ final PredicateDescr predicateDescr = (PredicateDescr) pattern3.getDescrs().get( 1 );
+ assertEquals( "1==1",
+ predicateDescr.getContent() );
+
+ final FieldBindingDescr fieldBindingDescr = (FieldBindingDescr) pattern3.getDescrs().get( 2 );
+ assertEquals( "field1",
+ fieldBindingDescr.getFieldName() );
+ assertEquals( "var1",
+ fieldBindingDescr.getIdentifier() );
+
+ final NotDescr notDescr = (NotDescr) lhsDescr.getDescrs().get( 5 );
+ assertEquals( 1,
+ notDescr.getDescrs().size() );
+ PatternDescr patternDescr = (PatternDescr) notDescr.getDescrs().get( 0 );
+ assertEquals( "Bar",
+ patternDescr.getObjectType() );
+
+ final ExistsDescr existsDescr = (ExistsDescr) lhsDescr.getDescrs().get( 6 );
+ assertEquals( 1,
+ existsDescr.getDescrs().size() );
+ patternDescr = (PatternDescr) existsDescr.getDescrs().get( 0 );
+ assertEquals( "Bar",
+ patternDescr.getObjectType() );
+
+ andDescr = (AndDescr) lhsDescr.getDescrs().get( 7 );
+ assertEquals( 2,
+ andDescr.getDescrs().size() );
+ orDescr = (OrDescr) andDescr.getDescrs().get( 1 );
+ patternDescr = (PatternDescr) orDescr.getDescrs().get( 0 );
+ assertEquals( "Bar",
+ patternDescr.getObjectType() );
+ patternDescr = (PatternDescr) andDescr.getDescrs().get( 0 );
+ assertEquals( "Yada",
+ patternDescr.getObjectType() );
+
+ orDescr = (OrDescr) lhsDescr.getDescrs().get( 8 );
+ assertEquals( 2,
+ orDescr.getDescrs().size() );
+ andDescr = (AndDescr) orDescr.getDescrs().get( 1 );
+ patternDescr = (PatternDescr) andDescr.getDescrs().get( 0 );
+ assertEquals( "Foo",
+ patternDescr.getObjectType() );
+ patternDescr = (PatternDescr) orDescr.getDescrs().get( 0 );
+ assertEquals( "Zaa",
+ patternDescr.getObjectType() );
+
+ final EvalDescr evalDescr = (EvalDescr) lhsDescr.getDescrs().get( 9 );
+ assertEquals( "1==1",
+ evalDescr.getContent() );
+ }
+
+ public void testParseRhs() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseRhs.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+ assertNotNull( packageDescr );
+ assertEquals( "com.sample",
+ packageDescr.getName() );
+
+ final List imports = packageDescr.getImports();
+ assertEquals( 2,
+ imports.size() );
+ assertEquals( "java.util.HashMap",
+ ((ImportDescr) imports.get( 0 )).getTarget() );
+ assertEquals( "org.drools.*",
+ ((ImportDescr) imports.get( 1 )).getTarget() );
+
+ final List globals = packageDescr.getGlobals();
+ assertEquals( 2,
+ globals.size() );
+ final GlobalDescr x = (GlobalDescr) globals.get( 0 );
+ final GlobalDescr yada = (GlobalDescr) globals.get( 1 );
+ assertEquals( "com.sample.X",
+ x.getType() );
+ assertEquals( "x",
+ x.getIdentifier() );
+ assertEquals( "com.sample.Yada",
+ yada.getType() );
+ assertEquals( "yada",
+ yada.getIdentifier() );
+
+ final FunctionDescr functionDescr = (FunctionDescr) packageDescr.getFunctions().get( 0 );
+ final List names = functionDescr.getParameterNames();
+ assertEquals( "foo",
+ names.get( 0 ) );
+ assertEquals( "bada",
+ names.get( 1 ) );
+
+ final List types = functionDescr.getParameterTypes();
+ assertEquals( "Bar",
+ types.get( 0 ) );
+ assertEquals( "Bing",
+ types.get( 1 ) );
+
+ assertEquals( "System.out.println(\"hello world\");",
+ functionDescr.getText().trim() );
+
+ final RuleDescr ruleDescr = (RuleDescr) packageDescr.getRules().get( 0 );
+ assertEquals( "my rule",
+ ruleDescr.getName() );
+
+ final String consequence = (String) ruleDescr.getConsequence();
+ assertNotNull( consequence );
+ assertEquals( "System.out.println( \"hello\" );",
+ consequence.trim() );
+ }
+
+ public void testParseQuery() throws Exception {
+ final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+ xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseQuery.xml" ) ) );
+ final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
+ assertNotNull( packageDescr );
+ assertEquals( "com.sample",
+ packageDescr.getName() );
+
+ final List imports = packageDescr.getImports();
+ assertEquals( 2,
+ imports.size() );
+ assertEquals( "java.util.HashMap",
+ ((ImportDescr) imports.get( 0 )).getTarget() );
+ assertEquals( "org.drools.*",
+ ((ImportDescr) imports.get( 1 )).getTarget() );
+
+ final List globals = packageDescr.getGlobals();
+ assertEquals( 2,
+ globals.size() );
+ final GlobalDescr x = (GlobalDescr) globals.get( 0 );
+ final GlobalDescr yada = (GlobalDescr) globals.get( 1 );
+ assertEquals( "com.sample.X",
+ x.getType() );
+ assertEquals( "x",
+ x.getIdentifier() );
+ assertEquals( "com.sample.Yada",
+ yada.getType() );
+ assertEquals( "yada",
+ yada.getIdentifier() );
+
+ final FunctionDescr functionDescr = (FunctionDescr) packageDescr.getFunctions().get( 0 );
+ final List names = functionDescr.getParameterNames();
+ assertEquals( "foo",
+ names.get( 0 ) );
+ assertEquals( "bada",
+ names.get( 1 ) );
+
+ final List types = functionDescr.getParameterTypes();
+ assertEquals( "Bar",
+ types.get( 0 ) );
+ assertEquals( "Bing",
+ types.get( 1 ) );
+
+ assertEquals( "System.out.println(\"hello world\");",
+ functionDescr.getText().trim() );
+
+ final QueryDescr queryDescr = (QueryDescr) packageDescr.getRules().get( 0 );
+ assertEquals( "my query",
+ queryDescr.getName() );
+
+ final AndDescr lhs = queryDescr.getLhs();
+ assertEquals( 1,
+ lhs.getDescrs().size() );
+ final PatternDescr patternDescr = (PatternDescr) lhs.getDescrs().get( 0 );
+ assertEquals( "Foo",
+ patternDescr.getObjectType() );
+
+ }
+}
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/processes/ActionNodeTest.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/processes/ActionNodeTest.xml (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/processes/ActionNodeTest.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -0,0 +1,32 @@
+<process xmlns="http://drools.org/drools-4.0/process"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+ xs:schemaLocation="http://drools.org/drools-4.0/process drools-processes-4.0.xsd"
+ name="process name" id="process name" package-name="org.domain" >
+ <header>
+ <imports>
+ <import name="java.util.List" />
+ </imports>
+
+ <globals>
+ <global identifier="list" type="List" />
+ </globals>
+ </header>
+
+ <nodes>
+ <start name="start node">
+ </start>
+
+ <action name="action node" dialect="java">
+ list.add( "action node was here" );
+ </action>
+
+ <end name="end node">
+ </end>
+ </nodes>
+
+ <connections>
+ <connection from="start node" to="action node" />
+ <connection from="action node" to="end node" />
+ </connections>
+
+</process>
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_Dump.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_Dump.drl 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_Dump.drl 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,24 +0,0 @@
-package foo;
-
-rule "simple_rule"
- salience 10
- no-loop true
- agenda-group "agenda-group"
- activation-group "activation-group"
- when
- foo2 : Bar( a ( > 60 && < 70 ) || ( > 50 && < 55 ) && a3 == "black" || a == 40 && a3 == "pink" || a == 12 && a3 == "yellow" || a3 == "blue")
- foo3 : Bar( a == 3 || == 4, a3 == "hello", a4 == null )
- foo4 : Bar( a4 : a != 4 && != 5)
- foo5 : Bar( b == (a4 + 1) || > a4)
- foo6 : Bar( a4 : a, b == 6)
- foo7 : Bar( a4 : a, b4 : b)
- $cheeseList : ArrayList(size > 2) from collect( Cheese( type == $likes ) );
- Baz()
- then
- if ( a == b ) {
- assert( foo3 );
- } else {
- retract( foo4 );
- }
- System.out.println( a4 );
-end
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseAccumulate.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseAccumulate.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseAccumulate.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package name="com.sample"
- xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
-
- <import name="import java.util.List"/>
- <import name="org.drools.Person" />
- <import name="org.drools.Cheese" />
- <import name="org.drools.Cheesery" />
-
- <global identifier="cheesery" type="Cheesery" />
- <global identifier="list1" type="List" />
-
- <rule name="simple_rule">
- <rule-attribute name="salience" value="10" />
- <rule-attribute name="no-loop" value="true" />
- <rule-attribute name="agenda-group" value="agenda-group" />
- <rule-attribute name="activation-group" value="activation-group" />
-
- <lhs>
- <pattern identifier="cheese" object-type="Cheese">
- <from>
- <accumulate>
- <pattern object-type="Person"></pattern>
- <init>
- int total = 0;
- </init>
- <action>
- total += $cheese.getPrice();
- </action>
- <result>
- new Integer( total ) );
- </result>
- </accumulate>
- </from>
- </pattern>
-
- <pattern identifier="max" object-type="Number">
- <from>
- <accumulate>
- <pattern identifier="cheese" object-type="Cheese"></pattern>
- <external-function evaluator="max" expression="$price"/>
- </accumulate>
- </from>
- </pattern>
- </lhs>
- <rhs>
- list1.add( $cheese );
- </rhs>
- </rule>
-
- <rule name="multipatternaccumulate_rule">
- <rule-attribute name="salience" value="10" />
- <lhs>
- <pattern identifier="cheese" object-type="Cheese">
- <from>
- <accumulate>
- <and-conditional-element>
- <pattern object-type="Milk"></pattern>
- <pattern object-type="Cup"></pattern>
- </and-conditional-element>
-
- <init>
- int total = 0;
- </init>
- <action>
- total += $cheese.getPrice();
- </action>
- <result>
- new Integer( total ) );
- </result>
- </accumulate>
- </from>
- </pattern>
- </lhs>
- <rhs>
- list1.add( $cheese );
- </rhs>
- </rule>
-
-
-
-</package>
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseCollect.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseCollect.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseCollect.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package name="com.sample" xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
-
- <import name="import java.util.List"/>
- <import name="org.drools.Cheese"/>
- <import name="org.drools.Cheesery"/>
-
- <global identifier="cheesery" type="Cheesery"/>
- <global identifier="list" type="List"/>
-
- <rule name="simple_rule">
- <rule-attribute name="salience" value="10"/>
- <rule-attribute name="no-loop" value="true"/>
- <rule-attribute name="agenda-group" value="agenda-group"/>
- <rule-attribute name="activation-group" value="activation-group"/>
-
- <lhs>
- <pattern identifier="cheese" object-type="Cheese" >
- <field-constraint field-name="type">
- <literal-restriction evaluator="==" value="1"/>
- </field-constraint>
- <from>
- <collect>
- <pattern object-type="Person">
- <field-constraint field-name="hair">
- <literal-restriction evaluator="==" value="pink" />
- </field-constraint>
- </pattern>
- </collect>
- </from>
- </pattern>
- </lhs>
- <rhs> list.add( $cheese ); </rhs>
- </rule>
-
-</package>
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseComplex.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseComplex.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseComplex.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,175 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package name="pt.inescporto.cec.rules"
- xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
- <import name="pt.inescporto.cec.entities.SetupInUse"/>
- <import name="pt.inescporto.cec.entities.SetupUse"/>
- <import name="pt.inescporto.cec.entities.ArtigoProducao"/>
- <import name="pt.inescporto.cec.entities.Parameter"/>
- <import name="pt.inescporto.cec.entities.BestParms"/>
- <import name="pt.inescporto.cec.entities.AccaoInspeccaoOperacao"/>
- <import name="pt.inescporto.cec.entities.MelhorEmNaoConformidades"/>
- <import name="pt.inescporto.cec.entities.OtherInspectionMethod"/>
- <import name="pt.inescporto.cec.entities.AccaoInspeccao"/>
- <rule name="ruleBestProductionOrderCreator">
- <lhs>
- <pattern object-type="AccaoInspeccao">
- <field-binding field-name="recursoID" identifier="resource"/>
- <field-constraint field-name="artigoID">
- <literal-restriction evaluator="==" value="3"/>
- </field-constraint>
- <field-binding field-name="operacaoID" identifier="operation"/>
- <field-binding field-name="ordemProducaoID" identifier="ProductionOrder"/>
- <field-binding field-name="recursoID" identifier="resourceID"/>
- <field-binding field-name="accaoInspeccaoID" identifier="InspectionAction"/>
- </pattern>
- <pattern object-type="AccaoInspeccaoOperacao">
- <field-binding field-name="inspAccaoOperacaoID" identifier="inspectionActionOperation"/>
- <field-constraint field-name="inspectionActionID">
- <variable-restriction evaluator="==" identifier="InspectionAction"/>
- </field-constraint>
- </pattern>
- <pattern object-type="OtherInspectionMethod">
- <field-binding field-name="numeroNaoConformidades" identifier="NCNumber"/>
- <field-constraint field-name="inspAccaoOperacaoID">
- <variable-restriction evaluator="==" identifier="inspectionActionOperation"/>
- </field-constraint>
- </pattern>
- <not>
- <pattern object-type="MelhorEmNaoConformidades">
- <field-constraint field-name="operacaoID">
- <variable-restriction evaluator="==" identifier="operation"/>
- </field-constraint>
- <field-constraint field-name="recursoID">
- <variable-restriction evaluator="==" identifier="resource"/>
- </field-constraint>
- </pattern>
- </not>
- </lhs>
- <rhs>insert(new MelhorEmNaoConformidades(ProductionOrder,NCNumber,operation,resource));</rhs>
- </rule>
- <rule name="Best Checker">
- <lhs>
- <pattern object-type="AccaoInspeccao">
- <field-constraint field-name="artigoID">
- <literal-restriction evaluator="==" value="3"/>
- </field-constraint>
- <field-binding field-name="recursoID" identifier="resource"/>
- <field-binding field-name="operacaoID" identifier="operation"/>
- <field-binding field-name="ordemProducaoID" identifier="ProductionOrder"/>
- <field-binding field-name="recursoID" identifier="resourceID"/>
- <field-binding field-name="accaoInspeccaoID" identifier="InspectionAction"/>
- </pattern>
- <pattern object-type="AccaoInspeccaoOperacao">
- <field-binding field-name="inspAccaoOperacaoID" identifier="inspectionActionOperation"/>
- <field-constraint field-name="inspectionActionID">
- <variable-restriction evaluator="==" identifier="InspectionAction"/>
- </field-constraint>
- </pattern>
- <pattern object-type="OtherInspectionMethod">
- <field-binding field-name="numeroNaoConformidades" identifier="NCNumber"/>
- <field-constraint field-name="inspAccaoOperacaoID">
- <variable-restriction evaluator="==" identifier="inspectionActionOperation"/>
- </field-constraint>
- </pattern>
- <pattern identifier="TheBest" object-type="MelhorEmNaoConformidades">
- <field-constraint field-name="operacaoID">
- <variable-restriction evaluator="==" identifier="operation"/>
- </field-constraint>
- <field-constraint field-name="recursoID">
- <variable-restriction evaluator="==" identifier="resource"/>
- </field-constraint>
- <field-constraint field-name="numeroDefeitos">
- <variable-restriction evaluator=">" identifier="NCNumber"/>
- </field-constraint>
- </pattern>
- </lhs>
- <rhs>TheBest.setNumeroDefeitos(NCNumber);
-TheBest.setOrdemProducaoID(ProductionOrder);
-update(TheBest);
-</rhs>
- </rule>
- <rule name="ruleBestParametersCreator">
- <rule-attribute name="salience" value="-100"/>
- <lhs>
- <pattern object-type="MelhorEmNaoConformidades">
- <field-binding field-name="ordemProducaoID" identifier="$poID"/>
- <field-binding field-name="numeroDefeitos" identifier="$NC"/>
- </pattern>
- <pattern object-type="SetupInUse">
- <field-binding field-name="setupUseID" identifier="$setup"/>
- <field-constraint field-name="productionOrderID">
- <variable-restriction evaluator="==" identifier="$poID"/>
- </field-constraint>
- </pattern>
- <pattern identifier="$p" object-type="Parameter">
- <field-binding field-name="parameterID" identifier="$parID"/>
- <field-constraint field-name="setupUseID">
- <variable-restriction evaluator="==" identifier="$setup"/>
- </field-constraint>
- </pattern>
- <not>
- <pattern object-type="BestParms">
- <field-constraint field-name="parameterID">
- <variable-restriction evaluator="==" identifier="$parID"/>
- </field-constraint>
- </pattern>
- </not>
- </lhs>
- <rhs>BestParms newBest=new BestParms();
-newBest.setParameterID($parID);
-newBest.setNominalValue(new Float($p.getNominalValue()));
-newBest.setMaxLimit(new Float($p.getMaxLimit()));
-newBest.setMinLimit(new Float($p.getMinLimit()));
-newBest.setMaxLimitAlarm(new Float($p.getMaxLimitAlarm()));
-newBest.setMinLimitAlarm(new Float($p.getMinLimitAlarm()));
-newBest.setNonConformities(new Float($NC));
-insert(newBest);
-</rhs>
- </rule>
- <rule name="ruleBestParametersChecker">
- <rule-attribute name="salience" value="-100"/>
- <lhs>
- <pattern object-type="MelhorEmNaoConformidades">
- <field-binding field-name="ordemProducaoID" identifier="$poID"/>
- <field-binding field-name="numeroDefeitos" identifier="$NC"/>
- </pattern>
- <pattern object-type="SetupInUse">
- <field-binding field-name="setupUseID" identifier="$setup"/>
- <field-constraint field-name="productionOrderID">
- <variable-restriction evaluator="==" identifier="$poID"/>
- </field-constraint>
- </pattern>
- <pattern identifier="$p" object-type="Parameter">
- <field-binding field-name="parameterID" identifier="$parID"/>
- <field-constraint field-name="setupUseID">
- <variable-restriction evaluator="==" identifier="$setup"/>
- </field-constraint>
- </pattern>
- <pattern identifier="$newBest" object-type="Parameter">
- <field-constraint field-name="parameterID">
- <variable-restriction evaluator="==" identifier="$parID"/>
- </field-constraint>
- <field-constraint field-name="nonConformities">
- <variable-restriction evaluator=">" identifier="$NC"/>
- </field-constraint>
- </pattern>
- </lhs>
- <rhs>$newBest.setNominalValue(new Float(p.getNominalValue()));
-$newBest.setMaxLimit(new Float(p.getMaxLimit()));
-$newBest.setMinLimit(new Float(p.getMinLimit()));
-$newBest.setMaxLimitAlarm(new Float(p.getMaxLimitAlarm()));
-$newBest.setMinLimitAlarm(new Float(p.getMinLimitAlarm()));
-$newBest.setNonConformities(new Float($NC));
-update($newBest);
-</rhs>
- </rule>
- <rule name="print">
- <rule-attribute name="salience" value="-110"/>
- <lhs>
- <pattern identifier="bp" object-type="BestParms"> </pattern>
- </lhs>
- <rhs>System.out.println("Parameter: "+bp.getParameterID()+" Value: "+bp.getNominalValue()+" NC: "+bp.getNonConformities());
-</rhs>
- </rule>
-</package>
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseExists.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseExists.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseExists.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package name="com.sample" xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
-
- <rule name="simple_rule">
- <lhs>
- <exists>
- <pattern object-type="Person">
- <field-constraint field-name="likes">
- <variable-restriction evaluator="==" identifier="type"/>
- </field-constraint>
- </pattern>
- </exists>
-
- <not>
- <exists>
- <pattern object-type="Cheese">
- <field-constraint field-name="likes">
- <variable-restriction evaluator="==" identifier="type"/>
- </field-constraint>
- </pattern>
- </exists>
- </not>
- </lhs>
- <rhs> list.add( $cheese ); </rhs>
- </rule>
-
-</package>
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseForall.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseForall.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseForall.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package name="com.sample"
- xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
-
- <global identifier="results" type="java.util.List" />
-
-<rule name="simple_rule">
- <rule-attribute name="salience" value="10" />
- <rule-attribute name="no-loop" value="true" />
- <rule-attribute name="agenda-group" value="agenda-group" />
- <rule-attribute name="activation-group" value="activation-group" />
-
- <lhs>
- <forall>
- <pattern object-type="State">
- <field-binding field-name="state" identifier="state" />
- </pattern>
-
- <pattern object-type="Person">
- <field-constraint field-name="status">
- <variable-restriction evaluator="==" identifier="state" />
- </field-constraint>
- <field-binding field-name="likes" identifier="likes" />
- </pattern>
-
- <pattern object-type="Cheese">
- <field-binding field-name="type" identifier="likes" />
- </pattern>
- </forall>
-
- </lhs>
- <rhs>
- results.add("OK");
- </rhs>
-</rule>
-</package>
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseFrom.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseFrom.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseFrom.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package name="com.sample"
- xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
-
- <import name="import java.util.List"/>
- <import name="org.drools.Cheese" />
- <import name="org.drools.Cheesery" />
-
- <global identifier="cheesery" type="Cheesery" />
- <global identifier="list1" type="List" />
-
-<rule name="simple_rule">
- <rule-attribute name="salience" value="10" />
- <rule-attribute name="no-loop" value="true" />
- <rule-attribute name="agenda-group" value="agenda-group" />
- <rule-attribute name="activation-group" value="activation-group" />
-
- <lhs>
- <pattern identifier="cheese" object-type="Cheese" >
- <from>
- <expression>
- cheesery.getCheeses(i+4)
- </expression>
- </from>
- </pattern>
- </lhs>
- <rhs>
- list1.add( $cheese );
- </rhs>
-</rule>
-
-</package>
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseFunction.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseFunction.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseFunction.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package name="com.sample"
- xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
-
- <import name="java.util.HashMap" />
- <import name="org.drools.*" />
-
- <global identifier="x" type="com.sample.X" />
- <global identifier="yada" type="com.sample.Yada" />
-
- <function return-type="void" name="myFunc">
- <parameter identifier="foo" type="Bar" />
- <parameter identifier="bada" type="Bing" />
-
- <body>
- System.out.println("hello world");
- </body>
- </function>
-</package>
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseGlobal.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseGlobal.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseGlobal.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package name="com.sample"
- xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
-
- <import name="java.util.HashMap" />
- <import name="org.drools.*" />
-
-
- <global identifier="x" type="com.sample.X" />
- <global identifier="yada" type="com.sample.Yada" />
-</package>
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseImport.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseImport.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseImport.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package name="com.sample"
- xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
-
- <import name="java.util.HashMap" />
- <import name="org.drools.*" />
- <importfunction name="org.drools.function" />
-
-</package>
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseLhs.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseLhs.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseLhs.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package name="com.sample"
- xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
-
- <import name="java.util.HashMap" />
- <import name="org.drools.*" />
-
- <global identifier="x" type="com.sample.X" />
- <global identifier="yada" type="com.sample.Yada" />
-
- <function return-type="void" name="myFunc">
- <parameter identifier="foo" type="Bar" />
- <parameter identifier="bada" type="Bing" />
-
- <body>
- System.out.println("hello world");
- </body>
- </function>
-
- <rule name="my rule">
- <lhs>
-
- <and-conditional-element></and-conditional-element>
-
- <or-conditional-element></or-conditional-element>
-
- <pattern object-type="Foo" >
- </pattern>
-
- <pattern identifier="bar" object-type="Bar" >
- </pattern>
-
- <pattern object-type="Foo">
- <field-constraint field-name="field1">
- <literal-restriction evaluator="==" value="value1" />
- <return-value-restriction evaluator="==">1==1</return-value-restriction>
- <variable-restriction evaluator="==" identifier="var1" />
- </field-constraint>
-
- <predicate field-name="field1" identifier="var1">1==1</predicate>
-
- <field-binding field-name="field1" identifier="var1" />
- </pattern>
-
- <not>
- <pattern object-type="Bar" />
- </not>
-
- <exists>
- <pattern object-type="Bar" />
- </exists>
-
- <and-conditional-element>
- <pattern object-type="Yada"/>
- <or-conditional-element>
- <pattern object-type="Bar"/>
- </or-conditional-element>
-
- </and-conditional-element>
-
- <or-conditional-element>
- <pattern object-type="Zaa"/>
- <and-conditional-element>
- <pattern object-type="Foo"/>
- </and-conditional-element>
- </or-conditional-element>
- <eval>1==1</eval>
- </lhs>
-
- <rhs>
- </rhs>
- </rule>
-</package>
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParsePackageName.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParsePackageName.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParsePackageName.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package name="com.sample"
- xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
-</package>
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseQuery.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseQuery.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseQuery.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package name="com.sample"
- xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
- <import name="java.util.HashMap" />
- <import name="org.drools.*" />
-
- <global identifier="x" type="com.sample.X" />
- <global identifier="yada" type="com.sample.Yada" />
-
- <function return-type="void" name="myFunc">
- <parameter identifier="foo" type="Bar" />
- <parameter identifier="bada" type="Bing" />
-
- <body>
- System.out.println("hello world");
- </body>
- </function>
-
- <query name="my query">
- <lhs>
- <pattern object-type="Foo" />
- </lhs>
- </query>
-</package>
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseRhs.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseRhs.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseRhs.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package name="com.sample"
- xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
-
- <import name="java.util.HashMap" />
- <import name="org.drools.*" />
-
- <global identifier="x" type="com.sample.X" />
- <global identifier="yada" type="com.sample.Yada" />
-
- <function return-type="void" name="myFunc">
- <parameter identifier="foo" type="Bar" />
- <parameter identifier="bada" type="Bing" />
-
- <body>
- System.out.println("hello world");
- </body>
- </function>
-
- <rule name="my rule">
- <lhs>
- </lhs>
-
- <rhs>
- System.out.println( "hello" );
- </rhs>
- </rule>
-</package>
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseRule.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseRule.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseRule.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,182 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<package name="com.sample"
- xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
-
- <import name="java.util.HashMap" />
- <import name="org.drools.*" />
-
- <global identifier="x" type="com.sample.X" />
- <global identifier="yada" type="com.sample.Yada" />
-
- <function return-type="void" name="myFunc">
- <parameter identifier="foo" type="Bar" />
- <parameter identifier="bada" type="Bing" />
-
- <body>
- System.out.println("hello world");
- </body>
- </function>
-
-<rule name="simple_rule">
- <rule-attribute name="salience" value="10" />
- <rule-attribute name="no-loop" value="true" />
- <rule-attribute name="agenda-group" value="agenda-group" />
- <rule-attribute name="activation-group" value="activation-group" />
-
- <lhs>
- <pattern identifier="foo2" object-type="Bar" >
- <or-constraint-connective>
- <and-constraint-connective>
- <field-constraint field-name="a">
- <or-restriction-connective>
- <and-restriction-connective>
- <literal-restriction evaluator=">" value="60" />
- <literal-restriction evaluator="<" value="70" />
- </and-restriction-connective>
- <and-restriction-connective>
- <literal-restriction evaluator="<" value="50" />
- <literal-restriction evaluator=">" value="55" />
- </and-restriction-connective>
- </or-restriction-connective>
- </field-constraint>
-
- <field-constraint field-name="a3">
- <literal-restriction evaluator="==" value="black" />
- </field-constraint>
- </and-constraint-connective>
-
- <and-constraint-connective>
- <field-constraint field-name="a">
- <literal-restriction evaluator="==" value="40" />
- </field-constraint>
-
- <field-constraint field-name="a3">
- <literal-restriction evaluator="==" value="pink" />
- </field-constraint>
- </and-constraint-connective>
-
- <and-constraint-connective>
- <field-constraint field-name="a">
- <literal-restriction evaluator="==" value="12"/>
- </field-constraint>
-
- <field-constraint field-name="a3">
- <or-restriction-connective>
- <literal-restriction evaluator="==" value="yellow"/>
- <literal-restriction evaluator="==" value="blue" />
- </or-restriction-connective>
- </field-constraint>
- </and-constraint-connective>
- </or-constraint-connective>
- </pattern>
-
- <not>
- <pattern object-type="Person">
- <field-constraint field-name="likes">
- <variable-restriction evaluator="==" identifier="type"/>
- </field-constraint>
- </pattern>
-
- <exists>
- <pattern object-type="Person">
- <field-constraint field-name="likes">
- <variable-restriction evaluator="==" identifier="type"/>
- </field-constraint>
- </pattern>
- </exists>
- </not>
-
- <or-conditional-element>
- <pattern identifier="foo3" object-type="Bar" >
- <field-constraint field-name="a">
- <or-restriction-connective>
- <literal-restriction evaluator="==" value="3" />
- <literal-restriction evaluator="==" value="4" />
- </or-restriction-connective>
- </field-constraint>
- <field-constraint field-name="a3">
- <literal-restriction evaluator="==" value="hello" />
- </field-constraint>
- <field-constraint field-name="a4">
- <literal-restriction evaluator="==" value="null" />
- </field-constraint>
- </pattern>
-
- <pattern identifier="foo4" object-type="Bar" >
- <field-binding field-name="a" identifier="a4" />
- <field-constraint field-name="a">
- <literal-restriction evaluator="!=" value="4" />
- <literal-restriction evaluator="!=" value="5" />
- </field-constraint>
- </pattern>
- </or-conditional-element>
-
- <pattern identifier="foo5" object-type="Bar" >
- <field-constraint field-name="b">
- <or-restriction-connective>
- <return-value-restriction evaluator="==" >a4 + 1</return-value-restriction>
- <variable-restriction evaluator=">" identifier="a4" />
- <qualified-identifier-restriction evaluator="==">
- org.drools.Bar.BAR_ENUM_VALUE
- </qualified-identifier-restriction>
- </or-restriction-connective>
- </field-constraint>
- </pattern>
-
- <pattern identifier="foo6" object-type="Bar" >
- <field-binding field-name="a" identifier="a4" />
- <field-constraint field-name="b">
- <literal-restriction evaluator="==" value="6" />
- </field-constraint>
- </pattern>
-
- <pattern identifier="foo7" object-type="Bar" >
- <field-binding field-name="a" identifier="a4" />
- <field-binding field-name="b" identifier="b4" />
- </pattern>
- <pattern object-type="Baz" > </pattern>
- </lhs>
- <rhs>
- if ( a == b ) {
- assert( foo3 );
- } else {
- retract( foo4 );
- }
- System.out.println( a4 );
- </rhs>
-</rule>
-
-<rule name="Check_NotNullof_rfqId">
-
-<rule-attribute name="agenda-group" value="Check" />
-
-<lhs><pattern object-type="RFQBean" >
-
-<or-constraint-connective><field-constraint field-name="m_rfqId">
-
-<literal-restriction evaluator="==" value="null" />
-
-</field-constraint>
-
-<field-constraint field-name="m_rfqId">
-
-<literal-restriction evaluator="==" value="" />
-
-</field-constraint>
-
-</or-constraint-connective>
-
-</pattern>
-
-</lhs><rhs> response.setStatus("For RFQ Bean: The value of m_rfqId is null.");
-
-System.out.println(response.getStatus());
-
-</rhs>
-
-</rule>
-
-</package>
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_RoundTrip.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_RoundTrip.drl 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_RoundTrip.drl 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,61 +0,0 @@
-package foo;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.utilArrayList;
-
-global HashMap m;
-global HashSet s;
-global org.drools.Person p;
-
-import function org.drools.xml.DumperTest.testStaticMethod1;
-import function org.drools.xml.DumperTest.testStaticMethod2;
-import function org.drools.xml.DumperTest.testStaticMethod3;
-
-rule "simple_rule"
- salience 10
- no-loop true
- agenda-group "agenda-group"
- activation-group "activation-group"
- ruleflow-group "xxx"
- lock-on-active true
- auto-focus true
- date-effective "01-Jan-2007"
- date-expires "01-Feb-2007"
- when
- foo2 : Bar( a ( > 60 && < 70 ) || ( > 50 && < 55 ) && a3 == "black" || a == 40 && a3 == "pink" || a == 12 && a3 == "yellow" || a3 == "blue")
- foo3 : Bar( a == 3 || == 4, a3 == "hello", a4 == null )
- foo4 : Bar( a4 : a != 4 && != 5)
- foo5 : Bar( b == (a4 + 1) || > a4)
- foo6 : Bar( a4 : a, b == 6)
- foo7 : Bar( a4 : a, b4 : b)
- $cheeseList : ArrayList(size > 2) from collect( Cheese( type == $likes ) );
- Baz()
- then
- if ( a == b ) {
- assert( foo3 );
- } else {
- retract( foo4 );
- }
- System.out.println( a4 );
- testStaticMethod1();
- testStaticMethod2();
- testStaticMethod3();
-end
-
-rule "simple_rule2"
- salience (10 + a)
- dialect "mvel"
- when
- foo4 : Bar( a4 : a != 4 && != 5)
- then
- if ( a == b ) {
- assert( foo3 );
- } else {
- retract( foo4 );
- }
- System.out.println( a4 );
- testStaticMethod1();
- testStaticMethod2();
- testStaticMethod3();
-end
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_RoundTrip.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_RoundTrip.xml 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_RoundTrip.xml 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,217 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<package name="foo"
- xmlns="http://drools.org/drools-4.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
- xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
-<import name="java.util.HashMap" />
-<import name="java.util.HashSet" />
-<import name="java.utilArrayList" />
-
-<global identifier="m" type="HashMap" />
-<global identifier="s" type="HashSet" />
-<global identifier="p" type="org.drools.Person" />
-
-<importfunction name="org.drools.xml.DumperTest.testStaticMethod1"/>
-<importfunction name="org.drools.xml.DumperTest.testStaticMethod2"/>
-<importfunction name="org.drools.xml.DumperTest.testStaticMethod3"/>
-
-
-<rule name="simple_rule">
-<rule-attribute name="salience" value="10" />
-<rule-attribute name="no-loop" value="true" />
-<rule-attribute name="agenda-group" value="agenda-group" />
-<rule-attribute name="activation-group" value="activation-group" />
-<rule-attribute name="ruleflow-group" value="xxx" />
-<rule-attribute name="lock-on-active" value="true" />
-<rule-attribute name="auto-focus" value="true" />
-<rule-attribute name="date-effective" value="01-Jan-2007" />
-<rule-attribute name="date-expires" value="01-Feb-2007" />
-
-<lhs><pattern identifier="foo2" object-type="Bar" >
-<or-constraint-connective><and-constraint-connective><field-constraint field-name="a">
-<or-restriction-connective><and-restriction-connective><literal-restriction evaluator=">" value="60" />
-
-<literal-restriction evaluator="<" value="70" />
-
-
-</and-restriction-connective>
-<and-restriction-connective><literal-restriction evaluator=">" value="50" />
-
-<literal-restriction evaluator="<" value="55" />
-
-
-</and-restriction-connective>
-
-</or-restriction-connective>
-</field-constraint>
-<field-constraint field-name="a3">
-<literal-restriction evaluator="==" value="black" />
-
-</field-constraint>
-
-</and-constraint-connective>
-<and-constraint-connective><field-constraint field-name="a">
-<literal-restriction evaluator="==" value="40" />
-
-</field-constraint>
-<field-constraint field-name="a3">
-<literal-restriction evaluator="==" value="pink" />
-
-</field-constraint>
-
-</and-constraint-connective>
-<and-constraint-connective><field-constraint field-name="a">
-<literal-restriction evaluator="==" value="12" />
-
-</field-constraint>
-<field-constraint field-name="a3">
-<literal-restriction evaluator="==" value="yellow" />
-
-</field-constraint>
-
-</and-constraint-connective>
-<field-constraint field-name="a3">
-<literal-restriction evaluator="==" value="blue" />
-
-</field-constraint>
-
-</or-constraint-connective>
-
-
-</pattern>
-
-<pattern identifier="foo3" object-type="Bar" >
-<field-constraint field-name="a">
-<or-restriction-connective><literal-restriction evaluator="==" value="3" />
-
-<literal-restriction evaluator="==" value="4" />
-
-
-</or-restriction-connective>
-</field-constraint>
-<field-constraint field-name="a3">
-<literal-restriction evaluator="==" value="hello" />
-
-</field-constraint>
-<field-constraint field-name="a4">
-<literal-restriction evaluator="==" value="null" />
-
-</field-constraint>
-
-
-</pattern>
-
-<pattern identifier="foo4" object-type="Bar" >
-<field-binding field-name="a" identifier="a4" />
-
-<field-constraint field-name="a">
-<literal-restriction evaluator="!=" value="4" />
-<literal-restriction evaluator="!=" value="5" />
-
-</field-constraint>
-
-
-</pattern>
-
-<pattern identifier="foo5" object-type="Bar" >
-<field-constraint field-name="b">
-<or-restriction-connective><return-value-restriction evaluator="==" >a4 + 1</return-value-restriction>
-
-<variable-restriction evaluator=">" identifier="a4" />
-
-
-</or-restriction-connective>
-</field-constraint>
-
-
-</pattern>
-
-<pattern identifier="foo6" object-type="Bar" >
-<field-binding field-name="a" identifier="a4" />
-
-<field-constraint field-name="b">
-<literal-restriction evaluator="==" value="6" />
-
-</field-constraint>
-
-
-</pattern>
-
-<pattern identifier="foo7" object-type="Bar" >
-<field-binding field-name="a" identifier="a4" />
-
-<field-binding field-name="b" identifier="b4" />
-
-
-
-</pattern>
-
-<pattern identifier="$cheeseList" object-type="ArrayList" >
-<field-constraint field-name="size">
-<literal-restriction evaluator=">" value="2" />
-
-</field-constraint>
-
-
-<from> <collect><pattern object-type="Cheese" >
-<field-constraint field-name="type">
-<variable-restriction evaluator="==" identifier="$likes" />
-
-</field-constraint>
-
-
-</pattern>
- </collect> </from> </pattern>
-
-<pattern object-type="Baz" >
-
-
-</pattern>
-
-
-</lhs>
-
-<rhs> if ( a == b ) {
- assert( foo3 );
- } else {
- retract( foo4 );
- }
- System.out.println( a4 );
- testStaticMethod1();
- testStaticMethod2();
- testStaticMethod3();
-</rhs>
-
-
-</rule>
-
-<rule name="simple_rule2">
-<rule-attribute name="salience" value="(10 + a)" />
-<rule-attribute name="dialect" value="mvel" />
-
-<lhs><pattern identifier="foo4" object-type="Bar" >
-<field-binding field-name="a" identifier="a4" />
-
-<field-constraint field-name="a">
-<literal-restriction evaluator="!=" value="4" />
-<literal-restriction evaluator="!=" value="5" />
-
-</field-constraint>
-
-
-</pattern>
-
-
-</lhs><rhs> if ( a == b ) {
- assert( foo3 );
- } else {
- retract( foo4 );
- }
- System.out.println( a4 );
- testStaticMethod1();
- testStaticMethod2();
- testStaticMethod3();
-</rhs>
-</rule>
-</package>
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_accumulateall.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_accumulateall.drl 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_accumulateall.drl 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,79 +0,0 @@
-package org.drools.test;
-
-import org.drools.Cheese;
-import org.drools.Person;
-import org.drools.Cheesery;
-
-global java.util.List results;
-
-rule "AccumulateTest" salience 100
- when
- $totalAmount : Integer() from accumulate( $cheese : Cheese( ),
- init( int total = 0; ),
- action( total += $cheese.getPrice(); ),
- result( new Integer( total ) ) );
- then
- //System.out.println("Total amount = US$ "+$totalAmount );
- results.add($totalAmount);
-end
-
-rule "Accumulate with Bindings" salience 90
- when
- $person : Person( name == "Bob", $likes : likes )
- $totalAmount : Integer() from accumulate( $cheese : Cheese( type == $likes ),
- init( int total = 0; ),
- action( total += $cheese.getPrice(); ),
- result( new Integer( total ) ) );
- then
- //System.out.println($person.getName() +" will spend US$ "+ $totalAmount + " buying cheese");
- results.add($totalAmount);
-end
-
-rule "Constraints everywhere" salience 80
- when
- $person : Person( $likes : likes )
- $cheesery : Cheesery( totalAmount > 100 )
- from accumulate( $cheese : Cheese( type == $likes ),
- init( Cheesery cheesery = new Cheesery(); ),
- action( cheesery.addCheese( $cheese ); ),
- result( cheesery ) );
- then
- //System.out.println($person.getName() +" is spending a lot buying cheese ( US$ "+$cheesery.getTotalAmount()+" )!");
- results.add(new Integer($cheesery.getTotalAmount()));
-end
-
-rule "Source pattern binds" salience 70
- when
- $person : Person( name == "Bob", $likes : likes )
- $totalAmount : Integer() from accumulate( $cheese : Cheese( type == $likes, $price: price ),
- init( int total = 0; ),
- action( total += $price; ),
- result( new Integer( total ) ) );
- then
- //System.out.println($person.getName() +" will spend US$ "+ $totalAmount + " buying cheese");
- results.add($totalAmount);
-end
-
-rule "Accumulate with previous Bindings" salience 60
- when
- $person : Person( name == "Bob", $likes : likes, $age : age )
- $totalAmount : Integer() from accumulate( $cheese : Cheese( type == $likes, $price : price ),
- init( int total = $age * 10; ),
- action( total += $price; ),
- result( new Integer( total ) ) );
- then
- results.add($totalAmount);
-end
-
-
-rule "External Function" salience 80
- when
- $person : Person( $likes : likes )
- $max : Number( intValue >= 5 )
- from accumulate( $cheese : Cheese( type == $likes, $price : price ),
- max( $price ) );
- then
- results.add( $max );
-end
-
-
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_complex.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_complex.drl 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_complex.drl 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,83 +0,0 @@
-package rules;
-
-
-import pt.inescporto.cec.entities.SetupUse;
-import pt.inescporto.cec.entities.SetupInUse;
-import pt.inescporto.cec.entities.Parameter;
-import pt.inescporto.cec.entities.OrdemFabrico;
-import pt.inescporto.cec.entities.AccaoInspeccao;
-import pt.inescporto.cec.entities.AccaoInspeccaoOperacao;
-import pt.inescporto.cec.entities.MelhorEmNaoConformidades;
-import pt.inescporto.cec.entities.OtherInspectionMethod;
-import pt.inescporto.cec.entities.BestParms;
-
-
-rule "ruleBestProductionOrderCreator"
-when
- AccaoInspeccao( artigoID == 3 , $operID: operacaoID , $resourceID: recursoID, $ProdOrderID: ordemProducaoID, $IAID: accaoInspeccaoID )
- AccaoInspeccaoOperacao( inspectionActionID == $IAID, $tmp: inspAccaoOperacaoID )
- OtherInspectionMethod(inspActionOperacaoID == $tmp, $NCNumber: numeroNaoConformidades )
- not (MelhorEmNaoConformidades( operacaoID == $operID, recursoID == $resourceID ) )
- then
- insert(new MelhorEmNaoConformidades($ProdOrderID,$NCNumber,$operID,$resourceID));
-end
-
-rule "ruleBestProductionOrderChecker"
-when
- AccaoInspeccao( artigoID ==3 , $operID: operacaoID, $resourceID: recursoID, $ProdOrderID: ordemProducaoID, $IAID: accaoInspeccaoID )
- AccaoInspeccaoOperacao( inspectionActionID == $IAID, $tmp: inspAccaoOperacaoID )
- OtherInspectionMethod( inspActionOperacaoID == $tmp, $NCNumber: numeroNaoConformidades )
- $t: MelhorEmNaoConformidades( operacaoID == $operID, recursoID == $resourceID, numeroDefeitos > $NCNumber )
- then
- $t.setNumeroDefeitos($NCNumber);
- $t.setOrdemProducaoID($ProdOrderID);
- update($t);
-end
-
-rule "ruleBestParametersCreator"
-salience -100
-when
- MelhorEmNaoConformidades($poID: ordemProducaoID, $nonConformities: numeroDefeitos )
- SetupInUse( $setup: setupUseID , productionOrderID == $poID )
- p: Parameter( $parID: parameterID, setupUseID == $setup )
- not (BestParms( parameterID == $parID ))
-then
- BestParms newBest=new BestParms();
- newBest.setParameterID($parID);
- newBest.setNominalValue(new Float(p.getNominalValue()));
- newBest.setMaxLimit(new Float(p.getMaxLimit()));
- newBest.setMinLimit(new Float(p.getMinLimit()));
- newBest.setMaxLimitAlarm(new Float(p.getMaxLimitAlarm()));
- newBest.setMinLimitAlarm(new Float(p.getMinLimitAlarm()));
- newBest.setNonConformities($nonConformities);
- insert(newBest);
-end
-
-rule "ruleBestParametersChecker"
-salience -10
-when
- MelhorEmNaoConformidades($poID: ordemProducaoID, $NC: numeroDefeitos )
- SetupInUse( $setup: setupUseID , productionOrderID == $poID )
- p: Parameter( $parID: parameterID, setupUseID == $setup )
- newBest: BestParms( parameterID == $parID, nonConformities > $NC )
-then
- newBest.setNominalValue(new Float(p.getNominalValue()));
- newBest.setMaxLimit(new Float(p.getMaxLimit()));
- newBest.setMinLimit(new Float(p.getMinLimit()));
- newBest.setMaxLimitAlarm(new Float(p.getMaxLimitAlarm()));
- newBest.setMinLimitAlarm(new Float(p.getMinLimitAlarm()));
- newBest.setNonConformities($NC);
- update(newBest);
-end
-
-rule "print"
-salience -20
-when
- bp: BestParms( )
-then
- System.out.println("Parameter: "+bp.getParameterID()+" Value: "+bp.getNominalValue()+" NC: "+bp.getNonConformities());
-end
-
-query "get results"
- mnc: BestParms( )
-end
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_from.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_from.drl 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_from.drl 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,25 +0,0 @@
-package org.drools.test;
-
-import org.drools.Cheese;
-import org.drools.Cheesery;
-import java.util.List;
-
-global List list1;
-global List list2;
-global List list3;
-global Cheesery cheesery;
-
-rule "test from using a global"
- when
- $cheese : Cheese() from cheesery.getCheeses()
- then
- list1.add( $cheese );
-end
-
-rule "test from using a global against a map lookup"
- when
- Person( $stilton : type == "stilton" )
- $cheese : Cheese( type == $stilton ) from cheesery.getCheeseMap["stilton"]
- then
- list1.add( $cheese );
-end
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_simplerule.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_simplerule.drl 2007-12-10 03:38:35 UTC (rev 17141)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_simplerule.drl 2007-12-10 03:39:41 UTC (rev 17142)
@@ -1,15 +0,0 @@
-package foo;
-
-rule "simple_rule"
- when
- foo3 : Bar(a==3)
- foo4 : Bar(a4:a==4)
- Baz()
- then
- if ( a == b ) {
- assert( foo3 );
- } else {
- retract( foo4 );
- }
- System.out.println( a4 );
-end
\ No newline at end of file
More information about the jboss-svn-commits
mailing list