[jboss-svn-commits] JBL Code SVN: r12752 - in labs/jbossrules/trunk/drools-compiler/src: main/java/org/drools/xml and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jun 21 15:42:49 EDT 2007


Author: fmeyer
Date: 2007-06-21 15:42:49 -0400 (Thu, 21 Jun 2007)
New Revision: 12752

Added:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PatternProcessorCeDescr.java
   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
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/CollectDescr.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/CollectHandler.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/ExistsHandler.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/LiteralRestrictionHandler.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/QualifiedIdentifierRestrictionHandler.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/VariableRestrictionsHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlDumper.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/XmlPackageReaderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseAccumulate.xml
Log:
JBRULES-881
JBRULES-880
	- support for 'accumulate' Conditional Element
	- refactored AccumulateDercr and CollectDescr to inherit PatternProcessorCeDescr baseclass

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java	2007-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -24,7 +24,7 @@
  */
 public class AccumulateDescr extends BaseDescr
     implements
-    ConditionalElementDescr {
+    PatternProcessorCeDescr {
 
     private static final long serialVersionUID = 2831283873824863255L;
 
@@ -37,10 +37,6 @@
     private String[]          declarations;
     private String            className;
 
-    AccumulateDescr() {
-        super();
-    }
-
     public int getLine() {
         return this.sourcePattern.getLine();
     }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java	2007-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -32,7 +32,16 @@
     private int               column           = -1;
     private int               endLine          = -1;
     private int               endColumn        = -1;
+    private String            text             = "";
 
+    public String getText() {
+        return text;
+    }
+
+    public void setText(String text) {
+        this.text = text;
+    }
+
     public void setLocation(final int line,
                             final int column) {
         this.line = line;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/CollectDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/CollectDescr.java	2007-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/CollectDescr.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -27,7 +27,8 @@
  */
 public class CollectDescr extends BaseDescr
     implements
-    ConditionalElementDescr {
+    PatternProcessorCeDescr
+    {
 
     private static final long serialVersionUID = -78056848363435347L;
 

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PatternProcessorCeDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PatternProcessorCeDescr.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PatternProcessorCeDescr.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -0,0 +1,16 @@
+/**
+ * 
+ */
+package org.drools.lang.descr;
+
+/**
+ * @author fernandomeyer
+ */
+
+public interface PatternProcessorCeDescr
+    extends
+    ConditionalElementDescr {
+
+    void setResultPattern(PatternDescr patternDescr);
+    void setSourcePattern(PatternDescr patternDescr);
+}

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AccumulateHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -0,0 +1,80 @@
+/**
+ * 
+ */
+package org.drools.xml;
+
+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();
+            accumulateDescr.setResultPattern( result );
+
+            final AndDescr andDescr = (AndDescr) ite.previous();
+            andDescr.addDescr( accumulateDescr );
+
+        } else if ( parent instanceof ConditionalElementDescr ) {
+            final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
+            parentDescr.addDescr( accumulateDescr );
+        }
+
+        return null;
+    }
+
+    public Class generateNodeFor() {
+        return AccumulateDescr.class;
+    }
+
+}

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AccumulateHelperHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -0,0 +1,89 @@
+/**
+ * 
+ */
+package org.drools.xml;
+
+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 || 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 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 {
+            //TODO FM: support for external functions
+        }
+
+        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();
+    }
+
+}

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AndHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -16,14 +16,22 @@
  * limitations under the License.
  */
 
-import org.drools.lang.descr.*;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
 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.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
  * 

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/CollectHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -19,8 +19,10 @@
  * @author fernandomeyer
  *
  */
-public class CollectHandler  extends BaseAbstractHandler implements Handler  {
-    
+public class CollectHandler extends BaseAbstractHandler
+    implements
+    Handler {
+
     CollectHandler(final XmlPackageReader xmlPackageReader) {
         this.xmlPackageReader = xmlPackageReader;
 
@@ -35,11 +37,10 @@
             this.allowNesting = false;
         }
     }
-    
 
-    public Object start(String uri,
-                        String localName,
-                        Attributes attrs) throws SAXException {
+    public Object start(final String uri,
+                        final String localName,
+                        final Attributes attrs) throws SAXException {
 
         this.xmlPackageReader.startConfiguration( localName,
                                                   attrs );
@@ -47,9 +48,9 @@
         return collectDescr;
     }
 
-    public Object end(String uri,
-                      String localName) throws SAXException {
-        
+    public Object end(final String uri,
+                      final String localName) throws SAXException {
+
         final Configuration config = this.xmlPackageReader.endConfiguration();
 
         final CollectDescr collectDescr = (CollectDescr) this.xmlPackageReader.getCurrent();
@@ -58,18 +59,18 @@
         final ListIterator ite = parents.listIterator( parents.size() );
         ite.previous();
         final Object parent = ite.previous();
-        
+
         if ( parent.getClass().getName().equals( FromDescr.class.getName() ) ) {
-            final PatternDescr source = (PatternDescr) ite.previous();
-            collectDescr.setSourcePattern( source );
-            
-            AndDescr andDescr = (AndDescr) ite.previous();
+            final PatternDescr resultPattern = (PatternDescr) ite.previous();
+            collectDescr.setResultPattern( resultPattern );
+
+            final AndDescr andDescr = (AndDescr) ite.previous();
             andDescr.addDescr( collectDescr );
-            
+
         } else if ( parent instanceof ConditionalElementDescr ) {
             final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
             parentDescr.addDescr( collectDescr );
-        } 
+        }
 
         return null;
     }

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/DefaultConfiguration.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -45,16 +45,16 @@
     // ----------------------------------------------------------------------
 
     /** Node name. */
-    private String                name;
+    private final String          name;
 
     /** Node text. */
     private String                text               = "";
 
     /** Node attributes. */
-    private Map                   attrs;
+    private final Map             attrs;
 
     /** Children nodes. */
-    private List                  children;
+    private final List            children;
 
     // ----------------------------------------------------------------------
     //     Constructors

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ExistsHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -16,15 +16,21 @@
  * limitations under the License.
  */
 
-import org.drools.lang.descr.*;
+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.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;
 
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
 /**
  * @author mproctor
  * 

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FieldConstraintHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -16,15 +16,21 @@
  * limitations under the License.
  */
 
-import org.drools.lang.descr.*;
+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;
 
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
 /**
  * @author mproctor
  * 
@@ -48,10 +54,10 @@
             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;
         }
     }
@@ -76,7 +82,7 @@
 
     public Object end(final String uri,
                       final String localName) throws SAXException {
-        
+
         final Configuration config = this.xmlPackageReader.endConfiguration();
 
         final FieldConstraintDescr fieldConstraintDescr = (FieldConstraintDescr) this.xmlPackageReader.getCurrent();
@@ -85,13 +91,13 @@
         final ListIterator it = parents.listIterator( parents.size() );
         it.previous();
         final Object parent = it.previous();
-        
-        if ( parent instanceof PatternDescr )  { 
+
+        if ( parent instanceof PatternDescr ) {
             final PatternDescr patternDescr = (PatternDescr) parent;
             patternDescr.addConstraint( fieldConstraintDescr );
         } else if ( parent instanceof ConditionalElementDescr ) {
             final ConditionalElementDescr ceDescr = (ConditionalElementDescr) parent;
-            FieldConstraintDescr field = (FieldConstraintDescr) this.xmlPackageReader.getCurrent();
+            final FieldConstraintDescr field = (FieldConstraintDescr) this.xmlPackageReader.getCurrent();
             ceDescr.addOrMerge( field );
         }
 

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ForallHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -3,25 +3,24 @@
  */
 package org.drools.xml;
 
+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.ExistsDescr;
 import org.drools.lang.descr.ForallDescr;
-import org.drools.lang.descr.AndDescr;
-import org.drools.lang.descr.PatternDescr;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
 
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
 /**
  * @author fernandomeyer
  *
  */
-public class ForallHandler extends BaseAbstractHandler implements Handler {
-    
+public class ForallHandler extends BaseAbstractHandler
+    implements
+    Handler {
+
     ForallHandler(final XmlPackageReader xmlPackageReader) {
         this.xmlPackageReader = xmlPackageReader;
 
@@ -31,19 +30,18 @@
 
             this.validPeers = new HashSet();
             this.validPeers.add( null );
-            
+
             this.allowNesting = true;
         }
     }
-    
 
     /* (non-Javadoc)
      * @see org.drools.xml.Handler#end(java.lang.String, java.lang.String)
      */
-    public Object end(String uri,
-                      String localName) throws SAXException {
+    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();
@@ -67,15 +65,15 @@
     /* (non-Javadoc)
      * @see org.drools.xml.Handler#start(java.lang.String, java.lang.String, org.xml.sax.Attributes)
      */
-    public Object start(String uri,
-                        String localName,
-                        Attributes attrs) throws SAXException {
+    public Object start(final String uri,
+                        final String localName,
+                        final Attributes attrs) throws SAXException {
 
         this.xmlPackageReader.startConfiguration( localName,
                                                   attrs );
-        
-        ForallDescr forallDescr = new ForallDescr();
 
+        final ForallDescr forallDescr = new ForallDescr();
+
         return forallDescr;
     }
 

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FromHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -15,8 +15,10 @@
  * @author fernandomeyer
  *
  */
-public class FromHandler  extends BaseAbstractHandler implements Handler  {
-    
+public class FromHandler extends BaseAbstractHandler
+    implements
+    Handler {
+
     FromHandler(final XmlPackageReader xmlPackageReader) {
         this.xmlPackageReader = xmlPackageReader;
 
@@ -28,24 +30,36 @@
             this.validPeers.add( null );
             this.validPeers.add( FieldConstraintDescr.class );
             this.allowNesting = false;
-            
         }
     }
 
-    public Object start(String uri,
-                        String localName,
-                        Attributes attrs) throws SAXException {
-        
+    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 {
 
-    public Object end(String uri,
-                      String localName) throws SAXException {
+//        final Configuration config = this.xmlPackageReader.endConfiguration();
+//        final BaseDescr baseDescr = (BaseDescr) this.xmlPackageReader.getCurrent();
+//        
+//        final String expression = config.getText();
+//
+//        final LinkedList parents = this.xmlPackageReader.getParents();
+//        final ListIterator ite = parents.listIterator( parents.size() );
+//        ite.previous();
+//        ite.previous();
+//        final Object parent = ite.previous();
+//        
+//        AccumulateDescr accumulate = (AccumulateDescr) parent;
+
         return null;
 
     }
@@ -54,5 +68,4 @@
         return FromDescr.class;
     }
 
-
 }

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/LiteralRestrictionHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -16,15 +16,20 @@
  * limitations under the License.
  */
 
-import org.drools.lang.descr.*;
+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;
 
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
 /**
  * @author mproctor
  * @author fmeyer
@@ -43,13 +48,13 @@
 
             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.validPeers.add( QualifiedIdentifierRestrictionDescr.class );
+
             this.allowNesting = false;
         }
     }
@@ -87,19 +92,19 @@
         final LinkedList parents = this.xmlPackageReader.getParents();
         final ListIterator it = parents.listIterator( parents.size() );
         it.previous();
-        
-        Object parent = it.previous();
 
-        if (parent instanceof FieldConstraintDescr) {
+        final Object parent = it.previous();
+
+        if ( parent instanceof FieldConstraintDescr ) {
             final FieldConstraintDescr fieldConstriantDescr = (FieldConstraintDescr) parent;
             fieldConstriantDescr.addRestriction( literalDescr );
-        } else if ( parent instanceof RestrictionConnectiveDescr )  { 
+        } else if ( parent instanceof RestrictionConnectiveDescr ) {
             final RestrictionConnectiveDescr restrictionDescr = (RestrictionConnectiveDescr) parent;
             restrictionDescr.addRestriction( literalDescr );
         }
         return null;
     }
-    
+
     public Class generateNodeFor() {
         return LiteralRestrictionDescr.class;
     }

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/OrHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -16,14 +16,20 @@
  * limitations under the License.
  */
 
-import org.drools.lang.descr.*;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
 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.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
  */
@@ -37,7 +43,7 @@
             this.validParents = new HashSet();
             this.validParents.add( AndDescr.class );
             this.validParents.add( PatternDescr.class );
-            
+
             this.validPeers = new HashSet();
             this.validPeers.add( null );
             this.validPeers.add( AndDescr.class );
@@ -47,7 +53,6 @@
             this.validPeers.add( EvalDescr.class );
             this.validPeers.add( PatternDescr.class );
 
-            
             this.allowNesting = true;
         }
     }
@@ -72,15 +77,15 @@
         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 );
+
+        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;
     }
 

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PackageHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -100,7 +100,7 @@
                                              this.xmlPackageReader.getLocator() );
             }
             final GlobalDescr global = new GlobalDescr( identifier,
-                                                  type );
+                                                        type );
             packageDescr.addGlobal( global );
         }
 

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PatternHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -16,17 +16,27 @@
  * limitations under the License.
  */
 
-import org.drools.lang.descr.*;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 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.PatternProcessorCeDescr;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
 /**
  * @author mproctor
  * 
@@ -47,7 +57,7 @@
             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 );
@@ -82,7 +92,7 @@
             patternDescr = new PatternDescr( objectType );
         } else {
             patternDescr = new PatternDescr( objectType,
-                                           identifier );
+                                             identifier );
         }
 
         return patternDescr;
@@ -99,23 +109,17 @@
         ite.previous();
         final Object parent = ite.previous();
 
-        if ( parent.getClass().getName().equals( CollectDescr.class.getName() ) ) {
-            final CollectDescr parentDescr = (CollectDescr) parent;
-            parentDescr.setResultPattern( patternDescr );
-        } else if ( parent instanceof ConditionalElementDescr ) {
+        if ( parent instanceof PatternProcessorCeDescr ) {
+            final PatternProcessorCeDescr parentDescr = (PatternProcessorCeDescr) parent;
+            parentDescr.setSourcePattern( patternDescr );
+        } else {
             final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
-            List conditionalDescriptors = parentDescr.getDescrs();
-            
-            if ( !conditionalDescriptors.isEmpty() ) {
-                for ( Iterator iterator = conditionalDescriptors.iterator(); iterator.hasNext(); ) {
-                    Object obj = iterator.next();
-                    
-                    if ( obj.getClass().getName().intern().equals( CollectDescr.class.getName().intern() )) {
-                        return null;
-                    }
-                }
+            final List conditionalDescriptors = parentDescr.getDescrs();
+            for ( final Iterator iterator = conditionalDescriptors.iterator(); iterator.hasNext(); ) {
+                final Object obj = iterator.next();
+                if ( obj instanceof PatternProcessorCeDescr ) return null;
             }
-            parentDescr.addDescr( patternDescr );            
+            parentDescr.addDescr( patternDescr );
         }
         return null;
     }

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/QualifiedIdentifierRestrictionHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -70,10 +70,9 @@
             throw new SAXParseException( "<bound-variable> requires an 'evaluator' attribute",
                                          this.xmlPackageReader.getLocator() );
         }
-        
+
 //        qualifiedIdentifierRestricionDescr.set
 
-
         final QualifiedIdentifierRestrictionDescr qualifiedIdentifierRestricionDescr = new QualifiedIdentifierRestrictionDescr( evaluator,
                                                                                                                                 null );
 
@@ -84,10 +83,8 @@
                       final String localName) throws SAXException {
         final Configuration config = this.xmlPackageReader.endConfiguration();
 
-        final QualifiedIdentifierRestrictionDescr qualifiedIdentifierRestricionDescr = 
-            (QualifiedIdentifierRestrictionDescr) this.xmlPackageReader.getCurrent();
-        
-        
+        final QualifiedIdentifierRestrictionDescr qualifiedIdentifierRestricionDescr = (QualifiedIdentifierRestrictionDescr) this.xmlPackageReader.getCurrent();
+
         final String expression = config.getText();
 
         if ( expression == null || expression.trim().equals( "" ) ) {
@@ -96,13 +93,12 @@
         }
 
         qualifiedIdentifierRestricionDescr.setText( expression );
-        
-        
+
         final LinkedList parents = this.xmlPackageReader.getParents();
         final ListIterator it = parents.listIterator( parents.size() );
         it.previous();
 
-        Object parent = it.previous();
+        final Object parent = it.previous();
 
         if ( parent instanceof FieldConstraintDescr ) {
             final FieldConstraintDescr fieldConstraintDescr = (FieldConstraintDescr) parent;

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/RestrictionConnectiveHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -38,11 +38,10 @@
 class RestrictionConnectiveHandler extends BaseAbstractHandler
     implements
     Handler {
-    
-    public final static String   AND              = "and-restriction-connective";
-    public final static String   OR               = "or-restriction-connective";
 
-    
+    public final static String AND = "and-restriction-connective";
+    public final static String OR  = "or-restriction-connective";
+
     RestrictionConnectiveHandler(final XmlPackageReader xmlPackageReader) {
         this.xmlPackageReader = xmlPackageReader;
 
@@ -58,7 +57,7 @@
             this.validPeers.add( VariableRestrictionDescr.class );
             this.validPeers.add( RestrictionConnectiveDescr.class );
             this.validPeers.add( QualifiedIdentifierRestrictionDescr.class );
-            
+
             this.allowNesting = true;
         }
     }
@@ -72,10 +71,10 @@
         RestrictionConnectiveDescr connectiveDescr = null;
         if ( localName.equals( RestrictionConnectiveHandler.OR ) ) {
             connectiveDescr = new RestrictionConnectiveDescr( RestrictionConnectiveDescr.OR );
-        } else if (localName.equals( RestrictionConnectiveHandler.AND )) {
+        } else if ( localName.equals( RestrictionConnectiveHandler.AND ) ) {
             connectiveDescr = new RestrictionConnectiveDescr( RestrictionConnectiveDescr.AND );
         }
-        
+
         return connectiveDescr;
     }
 
@@ -86,21 +85,21 @@
         final RestrictionConnectiveDescr connectiveDescr = (RestrictionConnectiveDescr) this.xmlPackageReader.getCurrent();
 
         final LinkedList parents = this.xmlPackageReader.getParents();
-        int size = parents.size();
+        final int size = parents.size();
         final ListIterator ite = parents.listIterator( parents.size() );
-        
+
         ite.previous();
 
-        Object obj = ite.previous();
+        final Object obj = ite.previous();
 
         if ( obj instanceof FieldConstraintDescr ) {
             final FieldConstraintDescr fieldConstriantDescr = (FieldConstraintDescr) obj;
             fieldConstriantDescr.addRestriction( connectiveDescr );
-        } else if (obj instanceof RestrictionConnectiveDescr ) {
+        } else if ( obj instanceof RestrictionConnectiveDescr ) {
             final RestrictionConnectiveDescr restconective = (RestrictionConnectiveDescr) obj;
             restconective.addRestriction( connectiveDescr );
         }
-        
+
         return null;
     }
 

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ReturnValueRestrictionHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -20,10 +20,8 @@
 import java.util.LinkedList;
 import java.util.ListIterator;
 
-import org.drools.lang.descr.AndDescr;
 import org.drools.lang.descr.FieldConstraintDescr;
 import org.drools.lang.descr.LiteralRestrictionDescr;
-import org.drools.lang.descr.OrDescr;
 import org.drools.lang.descr.QualifiedIdentifierRestrictionDescr;
 import org.drools.lang.descr.RestrictionConnectiveDescr;
 import org.drools.lang.descr.ReturnValueRestrictionDescr;
@@ -57,7 +55,7 @@
             this.validPeers.add( VariableRestrictionDescr.class );
             this.validPeers.add( RestrictionConnectiveDescr.class );
             this.validPeers.add( QualifiedIdentifierRestrictionDescr.class );
-            
+
             this.allowNesting = false;
         }
     }
@@ -96,12 +94,12 @@
         final LinkedList parents = this.xmlPackageReader.getParents();
         final ListIterator it = parents.listIterator( parents.size() );
         it.previous();
-        
-        Object parent = it.previous();
-        
-        if (parent instanceof FieldConstraintDescr) {
-	        final FieldConstraintDescr fieldConstraintDescr = (FieldConstraintDescr) parent;
-	        fieldConstraintDescr.addRestriction( returnValueDescr );
+
+        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 );

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/VariableRestrictionsHandler.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -20,10 +20,8 @@
 import java.util.LinkedList;
 import java.util.ListIterator;
 
-import org.drools.lang.descr.AndDescr;
 import org.drools.lang.descr.FieldConstraintDescr;
 import org.drools.lang.descr.LiteralRestrictionDescr;
-import org.drools.lang.descr.OrDescr;
 import org.drools.lang.descr.RestrictionConnectiveDescr;
 import org.drools.lang.descr.ReturnValueRestrictionDescr;
 import org.drools.lang.descr.VariableRestrictionDescr;
@@ -46,7 +44,7 @@
             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 );
@@ -90,13 +88,13 @@
         final LinkedList parents = this.xmlPackageReader.getParents();
         final ListIterator it = parents.listIterator( parents.size() );
         it.previous();
-        
-        Object parent = 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 FieldConstraintDescr fieldConstraintDescr = (FieldConstraintDescr) parent;
+            fieldConstraintDescr.addRestriction( variableDescr );
+        } else if ( parent instanceof RestrictionConnectiveDescr ) {
             final RestrictionConnectiveDescr restrictionConDescr = (RestrictionConnectiveDescr) parent;
             restrictionConDescr.addRestriction( variableDescr );
         }

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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlDumper.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -109,28 +109,28 @@
         }
     }
 
-
     public void visitCollectDescr(final CollectDescr descr) {
         String tmpstr = new String();
         visitPatternDescr( descr.getResultPattern() );
 
-        this.template =  this.template.substring( 0, this.template.indexOf( "</pattern>" ) );
+        this.template = this.template.substring( 0,
+                                                 this.template.indexOf( "</pattern>" ) );
         tmpstr += this.template + " <from> <collect> ";
         visitPatternDescr( descr.getSourcePattern() );
         tmpstr += this.template;
         this.template = tmpstr + " </collect> </from> ";
         this.template += "</pattern>";
     }
-    
+
     //TODO FM: FIXME
     public void visitAccumulateDescr() {
-        System.out.println("Collect Descr");
+        System.out.println( "Collect Descr" );
     }
-    
+
     //TODO FM: FIXME
     public void visitForallDescr(final ForallDescr descr) {
         this.template = "<forall>" + processDescrList( descr.getDescrs() ) + "</forall>";
-    }    
+    }
 
     public void visitEvalDescr(final EvalDescr descr) {
         this.template = new String();
@@ -254,8 +254,8 @@
 
     public void visitRestrictionConnectiveDescr(final RestrictionConnectiveDescr descr) {
         this.template = new String();
-        List restrictions = descr.getRestrictions();
-        String xmlTag = descr.getConnective() == RestrictionConnectiveDescr.OR ? RestrictionConnectiveHandler.OR : RestrictionConnectiveHandler.AND;
+        final List restrictions = descr.getRestrictions();
+        final String xmlTag = descr.getConnective() == RestrictionConnectiveDescr.OR ? RestrictionConnectiveHandler.OR : RestrictionConnectiveHandler.AND;
 
         if ( restrictions != Collections.EMPTY_LIST ) {
             this.template = "<" + xmlTag + ">";

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlPackageReader.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -147,21 +147,18 @@
 
         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-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",
@@ -170,12 +167,16 @@
                            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( "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 ) );
@@ -194,6 +195,18 @@
         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 ) );
+
         initEntityResolver();
     }
 

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/XmlPackageReaderTest.java	2007-06-21 19:42:49 UTC (rev 12752)
@@ -8,7 +8,7 @@
 import org.drools.RuleBase;
 import org.drools.RuleBaseConfiguration;
 import org.drools.RuleBaseFactory;
-import org.drools.lang.DrlDumper;
+import org.drools.lang.descr.AccumulateDescr;
 import org.drools.lang.descr.AndDescr;
 import org.drools.lang.descr.AttributeDescr;
 import org.drools.lang.descr.CollectDescr;
@@ -44,31 +44,71 @@
         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 );
+        assertEquals( "com.sample",
+                      packageDescr.getName() );
+    }
+
+    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 accumulateobj = obj.getLhs().getDescrs().get( 0 );
+        assertTrue( accumulateobj instanceof AccumulateDescr );
+        AccumulateDescr accumulatedescr = (AccumulateDescr) accumulateobj;
+        assertEquals( "total += $cheese.getPrice();",
+                      accumulatedescr.getActionCode() );
+        assertEquals( "int total = 0;",
+                      accumulatedescr.getInitCode() );
+        assertEquals( "new Integer( total ) );",
+                      accumulatedescr.getResultCode() );
+
+        PatternDescr sourcePattern = accumulatedescr.getSourcePattern();
+        PatternDescr resultPattern = accumulatedescr.getResultPattern();
+
+        assertNotNull( sourcePattern );
+        assertNotNull( resultPattern );
+
+        assertEquals( "Cheese",
+                      resultPattern.getObjectType() );
+        assertEquals( "Person",
+                      sourcePattern.getObjectType() );
+
+    }
+
     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 );
-        
+
         XmlDumper xmldumper = new XmlDumper();
-        String str =  xmldumper.dump( packageDescr );
+        String str = xmldumper.dump( packageDescr );
 
-        System.out.println(str);
-
         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" );
+        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" ) ) );
@@ -81,38 +121,40 @@
 
         Object patternDescriptor = ((ExistsDescr) existdescr).getDescrs().get( 0 );
         assertTrue( patternDescriptor instanceof PatternDescr );
-        assertEquals( ((PatternDescr) patternDescriptor).getObjectType(), "Person" );
+        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 );
+
+        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" );
+        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 objectCollect = obj.getLhs().getDescrs().get( 0 );
         assertTrue( objectCollect instanceof CollectDescr );
 
         CollectDescr collectDescr = (CollectDescr) objectCollect;
 
-        PatternDescr resultPattern = collectDescr.getResultPattern();
-        PatternDescr sourcePattern = collectDescr.getSourcePattern();
+        PatternDescr sourcePattern = collectDescr.getResultPattern();
+        PatternDescr resultPattern = collectDescr.getSourcePattern();
 
+        assertEquals( sourcePattern.getObjectType(),
+                      "Cheese" );
         assertEquals( resultPattern.getObjectType(),
                       "Person" );
-        assertEquals( sourcePattern.getObjectType(),
-                      "Cheese" );
 
         Object fieldContraintObject = resultPattern.getConstraint().getDescrs().get( 0 );
         assertTrue( fieldContraintObject instanceof FieldConstraintDescr );
@@ -141,29 +183,6 @@
                       "1" );
     }
 
-    
-//
-//    //TODO: FM FIXME
-//    public void testAccumulate() 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 );
-//        assertEquals( obj.getLhs().getDescrs().size(),
-//                      3 );
-//    }
-//       
-    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 );
-        assertEquals( "com.sample",
-                      packageDescr.getName() );
-    }
-    
     public void testParsePackageName() throws Exception {
         final XmlPackageReader xmlPackageReader = new XmlPackageReader();
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParsePackageName.xml" ) ) );
@@ -171,9 +190,7 @@
         assertNotNull( packageDescr );
         assertEquals( "com.sample",
                       packageDescr.getName() );
-    }    
-    
-    
+    }
 
     public void testParseImport() throws Exception {
         final XmlPackageReader xmlPackageReader = new XmlPackageReader();

Modified: 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-06-21 18:05:35 UTC (rev 12751)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/xml/test_ParseAccumulate.xml	2007-06-21 19:42:49 UTC (rev 12752)
@@ -21,7 +21,7 @@
             <pattern identifier="cheese" object-type="Cheese">
                 <from>
                     <accumulate>
-                        <pattern object-type="Cheese"></pattern>
+                        <pattern object-type="Person"></pattern>
                         <init>
                             int total = 0;
                         </init>
@@ -29,7 +29,7 @@
                             total += $cheese.getPrice();
                         </action>
                         <result>
-                            new Integer( total ) )
+                            new Integer( total ) );
                         </result>
                     </accumulate>
                 </from>




More information about the jboss-svn-commits mailing list