[jboss-svn-commits] JBL Code SVN: r12903 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/xml and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jun 27 20:07:57 EDT 2007


Author: fmeyer
Date: 2007-06-27 20:07:57 -0400 (Wed, 27 Jun 2007)
New Revision: 12903

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AccumulateHandler.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/FromHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PatternHandler.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/XmlPackageReaderTest.java
Log:
JBRULES-546 - corrected XML parser to handle with the new descriptors design.

Modified: 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-06-28 00:03:23 UTC (rev 12902)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/AccumulateHandler.java	2007-06-28 00:07:57 UTC (rev 12903)
@@ -73,11 +73,8 @@
 
         if ( parent.getClass().getName().equals( FromDescr.class.getName() ) ) {
             final PatternDescr result = (PatternDescr) ite.previous();
-            accumulateDescr.setInputPattern( result );
+            result.setSource( accumulateDescr );
 
-            final AndDescr andDescr = (AndDescr) ite.previous();
-            andDescr.addDescr( accumulateDescr );
-
         } else if ( parent instanceof ConditionalElementDescr ) {
             final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
             parentDescr.addDescr( accumulateDescr );

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-28 00:03:23 UTC (rev 12902)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/CollectHandler.java	2007-06-28 00:07:57 UTC (rev 12903)
@@ -20,7 +20,6 @@
 import java.util.LinkedList;
 import java.util.ListIterator;
 
-import org.drools.lang.descr.AndDescr;
 import org.drools.lang.descr.CollectDescr;
 import org.drools.lang.descr.ConditionalElementDescr;
 import org.drools.lang.descr.FromDescr;
@@ -65,7 +64,6 @@
                       final String localName) throws SAXException {
 
         final Configuration config = this.xmlPackageReader.endConfiguration();
-
         final CollectDescr collectDescr = (CollectDescr) this.xmlPackageReader.getCurrent();
 
         final LinkedList parents = this.xmlPackageReader.getParents();
@@ -75,11 +73,7 @@
 
         if ( parent.getClass().getName().equals( FromDescr.class.getName() ) ) {
             final PatternDescr resultPattern = (PatternDescr) ite.previous();
-            collectDescr.setInputPattern( resultPattern );
-
-            final AndDescr andDescr = (AndDescr) ite.previous();
-            andDescr.addDescr( collectDescr );
-
+            resultPattern.setSource( collectDescr );
         } else if ( parent instanceof ConditionalElementDescr ) {
             final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
             parentDescr.addDescr( collectDescr );

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-28 00:03:23 UTC (rev 12902)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/FromHandler.java	2007-06-28 00:07:57 UTC (rev 12903)
@@ -73,13 +73,12 @@
         Object parent = it.previous();
 
         final PatternDescr patternDescr = (PatternDescr) parent;
-        //fromDescr.setOutputPattern( patternDescr );
-        parent = it.previous();
 
-        final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
+        final ConditionalElementDescr parentDescr = (ConditionalElementDescr) it.previous();
 
-        if ( (config.getChild( "accumulate" ) == null) && (config.getChild( "collect" ) == null) ) 
-            ((ConditionalElementDescr) parent).addDescr( fromDescr );
+        if ( (config.getChild( "expression" ) != null) ) {
+            patternDescr.setSource( fromDescr );    
+        }
 
         return null;
     }

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-28 00:03:23 UTC (rev 12902)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/PatternHandler.java	2007-06-28 00:07:57 UTC (rev 12903)
@@ -99,8 +99,8 @@
 
     public Object end(final String uri,
                       final String localName) throws SAXException {
-        final Configuration config = this.xmlPackageReader.endConfiguration();
 
+        final Configuration config = this.xmlPackageReader.endConfiguration();
         final PatternDescr patternDescr = (PatternDescr) this.xmlPackageReader.getCurrent();
 
         final LinkedList parents = this.xmlPackageReader.getParents();
@@ -112,10 +112,8 @@
             final PatternDestinationDescr parentDescr = (PatternDestinationDescr) parent;
             parentDescr.setInputPattern( patternDescr );
         } else {
-            if ( config.getChild( "from" ) == null ) { 
-                final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
-                parentDescr.addDescr( patternDescr );
-            }
+            final ConditionalElementDescr parentDescr = (ConditionalElementDescr) parent;
+            parentDescr.addDescr( patternDescr );
         }
         return null;
     }

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-28 00:03:23 UTC (rev 12902)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/XmlPackageReaderTest.java	2007-06-28 00:07:57 UTC (rev 12903)
@@ -53,16 +53,16 @@
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
         RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
-        FromDescr from = (FromDescr) obj.getLhs().getDescrs().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" );
         
-        //PatternDescr patterndescr = from.getOutputPattern();
-        
-//        assertEquals( patterndescr.getObjectType(), "Cheese" );
-//        assertEquals( patterndescr.getIdentifier(), "cheese" );
-        
     }
 
     public void testAccumulate() throws Exception {
@@ -72,9 +72,13 @@
         assertNotNull( packageDescr );
         RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
 
-        Object accumulateobj = obj.getLhs().getDescrs().get( 0 );
-        assertTrue( accumulateobj instanceof AccumulateDescr );
-        AccumulateDescr accumulatedescr = (AccumulateDescr) accumulateobj;
+        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;",
@@ -82,17 +86,25 @@
         assertEquals( "new Integer( total ) );",
                       accumulatedescr.getResultCode() );
 
-        PatternDescr sourcePattern = accumulatedescr.getInputPattern();
-//        PatternDescr resultPattern = accumulatedescr.getOutputPattern();
-
-        assertNotNull( sourcePattern );
-//        assertNotNull( resultPattern );
-
-//        assertEquals( "Cheese",
-//                      resultPattern.getObjectType() );
-        assertEquals( "Person",
-                      sourcePattern.getObjectType() );
-
+        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 testParseForall() throws Exception {
@@ -101,9 +113,6 @@
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
 
-        XmlDumper xmldumper = new XmlDumper();
-        String str = xmldumper.dump( packageDescr );
-
         RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
         ForallDescr forall = (ForallDescr) obj.getLhs().getDescrs().get( 0 );
         List forallPaterns = forall.getDescrs();
@@ -154,20 +163,25 @@
         assertNotNull( packageDescr );
 
         RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
-        Object objectCollect = obj.getLhs().getDescrs().get( 0 );
-        assertTrue( objectCollect instanceof CollectDescr );
+        Object objectpattern = obj.getLhs().getDescrs().get( 0 );
+        assertTrue( objectpattern instanceof PatternDescr );
 
-        CollectDescr collectDescr = (CollectDescr) objectCollect;
-
-        //PatternDescr sourcePattern = collectDescr.getOutputPattern();
-        PatternDescr resultPattern = collectDescr.getInputPattern();
-
-        //assertEquals( sourcePattern.getObjectType(),
-        //              "Cheese" );
-        assertEquals( resultPattern.getObjectType(),
-                      "Person" );
-
-        Object fieldContraintObject = resultPattern.getConstraint().getDescrs().get( 0 );
+        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(),
@@ -180,7 +194,7 @@
         assertEquals( literalDesc.getText(),
                       "pink" );
 
-        //fieldContraintObject = sourcePattern.getConstraint().getDescrs().get( 0 );
+        fieldContraintObject = patterndescr.getConstraint().getDescrs().get( 0 );
         assertTrue( fieldContraintObject instanceof FieldConstraintDescr );
         fieldconstraintdescr = (FieldConstraintDescr) fieldContraintObject;
         assertEquals( fieldconstraintdescr.getFieldName(),
@@ -192,6 +206,7 @@
                       "==" );
         assertEquals( literalDesc.getText(),
                       "1" );
+        
     }
 
     public void testParsePackageName() throws Exception {




More information about the jboss-svn-commits mailing list