[jboss-svn-commits] JBL Code SVN: r17151 - in labs/jbossrules/trunk/drools-compiler: src/main/java/org/drools/compiler and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Dec 10 03:37:39 EST 2007
Author: mark.proctor at jboss.com
Date: 2007-12-10 03:37:39 -0500 (Mon, 10 Dec 2007)
New Revision: 17151
Added:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlPackageReader.java
Modified:
labs/jbossrules/trunk/drools-compiler/.classpath
labs/jbossrules/trunk/drools-compiler/pom.xml
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlProcessReader.java
Log:
JBRULES-1375 Create initial ePDL language parser implementation
-moving SemanticModules to allow them to be user configurable
Modified: labs/jbossrules/trunk/drools-compiler/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-compiler/.classpath 2007-12-10 07:20:25 UTC (rev 17150)
+++ labs/jbossrules/trunk/drools-compiler/.classpath 2007-12-10 08:37:39 UTC (rev 17151)
@@ -5,14 +5,14 @@
<classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/>
<classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/1.2.8/mvel-1.2.8.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/mail/mail/1.4/mail-1.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
<classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
- <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/1.2.8/mvel-1.2.8.jar"/>
<classpathentry kind="src" path="/drools-core"/>
+ <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.jar"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/pom.xml 2007-12-10 07:20:25 UTC (rev 17150)
+++ labs/jbossrules/trunk/drools-compiler/pom.xml 2007-12-10 08:37:39 UTC (rev 17151)
@@ -46,6 +46,17 @@
<artifactId>xstream</artifactId>
<optional>true</optional>
</dependency>
+
+ <dependency>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ </dependency>
</dependencies>
</project>
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 07:20:25 UTC (rev 17150)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2007-12-10 08:37:39 UTC (rev 17151)
@@ -58,6 +58,7 @@
import org.drools.ruleflow.core.impl.ActionNodeImpl;
import org.drools.ruleflow.core.impl.DroolsConsequenceAction;
import org.drools.xml.ExtensibleXmlParser;
+import org.drools.xml.SemanticModules;
import org.drools.xml.XmlPackageReader;
import org.drools.xml.XmlProcessReader;
import org.xml.sax.SAXException;
@@ -90,6 +91,8 @@
private Dialect dialect;
private DialectRegistry dialectRegistry;
+
+ private SemanticModules semanticModules;
/**
* Use this when package is starting from scratch.
@@ -187,7 +190,10 @@
*/
public void addPackageFromXml(final Reader reader) throws DroolsParserException,
IOException {
- final XmlPackageReader xmlReader = new XmlPackageReader();
+ if ( semanticModules == null ) {
+ semanticModules = new SemanticModules();
+ }
+ final XmlPackageReader xmlReader = new XmlPackageReader( semanticModules );
try {
xmlReader.read( reader );
@@ -240,8 +246,12 @@
}
public void addProcessFromXml(Reader reader) {
+ if ( semanticModules == null ) {
+ semanticModules = new SemanticModules();
+ }
+
ProcessBuilder processBuilder = new ProcessBuilder( this );
- XmlProcessReader xmlReader = new XmlProcessReader( );
+ XmlProcessReader xmlReader = new XmlProcessReader( semanticModules );
try {
Process process = xmlReader.read( reader );
processBuilder.buildProcess( process );
@@ -256,6 +266,10 @@
this.results = this.dialectRegistry.addResults( this.results );
}
+
+ private void addSemanticModules() {
+ //this.configuration.getSemanticModules();
+ }
/**
* This adds a package from a Descr/AST This will also trigger a compile, if
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlPackageReader.java 2007-12-10 08:37:39 UTC (rev 17151)
@@ -0,0 +1,107 @@
+package org.drools.xml;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.util.HashMap;
+import java.util.Map;
+
+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.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+
+public class XmlPackageReader {
+ private ExtensibleXmlParser parser;
+
+ private PackageDescr packageDescr;
+
+ public XmlPackageReader(final SemanticModules modules) {
+ this( modules, null );
+ }
+
+ public XmlPackageReader(final SemanticModules modules, final SAXParser parser) {
+ if ( parser == null ) {
+ this.parser = new ExtensibleXmlParser();
+ } else {
+ this.parser = new ExtensibleXmlParser( parser );
+ }
+ this.parser.setSemanticModules( modules );
+ }
+
+ /**
+ * 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 {
+ this.packageDescr = (PackageDescr) this.parser.read( reader );
+ return this.packageDescr;
+ }
+
+ /**
+ * 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 {
+ this.packageDescr = (PackageDescr) this.parser.read( inputStream );
+ return this.packageDescr;
+ }
+
+ /**
+ * 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 {
+ this.packageDescr = (PackageDescr) this.parser.read( in );
+ return this.packageDescr;
+ }
+
+ void setPackageDescr(final PackageDescr packageDescr) {
+ this.packageDescr = packageDescr;
+ }
+
+ public PackageDescr getPackageDescr() {
+ return this.packageDescr;
+ }
+}
Modified: 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 2007-12-10 07:20:25 UTC (rev 17150)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlProcessReader.java 2007-12-10 08:37:39 UTC (rev 17151)
@@ -42,17 +42,17 @@
private Process process;
- public XmlProcessReader() {
- this( null );
+ public XmlProcessReader(final SemanticModules modules) {
+ this( modules, null );
}
- public XmlProcessReader(final SAXParser parser) {
+ public XmlProcessReader(final SemanticModules modules, final SAXParser parser) {
if ( parser == null ) {
this.parser = new ExtensibleXmlParser();
} else {
this.parser = new ExtensibleXmlParser( parser );
}
- this.parser.setSemanticModules( new SemanticModules() );
+ this.parser.setSemanticModules( modules );
this.parser.setData( new ProcessBuildData() );
}
More information about the jboss-svn-commits
mailing list