[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