[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