[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