[jboss-svn-commits] JBL Code SVN: r15721 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/brms/server/util and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Oct 10 10:42:36 EDT 2007
Author: michael.neale at jboss.com
Date: 2007-10-10 10:42:36 -0400 (Wed, 10 Oct 2007)
New Revision: 15721
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/BRDRLPersistence.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/BRDRLPersistenceTest.java
Log:
JBRULES-1266 Fix for rendering OR, AND to DRL
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/BRDRLPersistence.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/BRDRLPersistence.java 2007-10-10 14:11:58 UTC (rev 15720)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/BRDRLPersistence.java 2007-10-10 14:42:36 UTC (rev 15721)
@@ -157,12 +157,12 @@
if ( CompositeFactPattern.COMPOSITE_TYPE_EXISTS.equals( pattern.type ) ) {
buf.append( pattern.type );
buf.append( " " );
- renderSubPattern( pattern );
+ renderSubPattern( pattern, 0 );
buf.append( "\n" );
} else if ( CompositeFactPattern.COMPOSITE_TYPE_NOT.equals( pattern.type ) ) {
buf.append( pattern.type );
buf.append( " " );
- renderSubPattern( pattern );
+ renderSubPattern( pattern, 0 );
buf.append( "\n" );
} else if ( CompositeFactPattern.COMPOSITE_TYPE_OR.equals( pattern.type ) ) {
buf.append( "( " );
@@ -173,16 +173,16 @@
buf.append( pattern.type );
buf.append( " " );
}
- renderSubPattern( pattern );
+ renderSubPattern( pattern, i );
}
}
buf.append( " )\n" );
}
}
- private void renderSubPattern(CompositeFactPattern pattern) {
+ private void renderSubPattern(CompositeFactPattern pattern, int subIndex) {
if (pattern.patterns == null || pattern.patterns.length == 0) return;
- this.generateFactPattern( pattern.patterns[0] );
+ this.generateFactPattern( pattern.patterns[subIndex] );
}
public void visitDSLSentence(final DSLSentence sentence) {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/BRDRLPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/BRDRLPersistenceTest.java 2007-10-10 14:11:58 UTC (rev 15720)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/BRDRLPersistenceTest.java 2007-10-10 14:42:36 UTC (rev 15721)
@@ -178,6 +178,34 @@
return m;
}
+ public void testOrComposite() throws Exception {
+ RuleModel m = new RuleModel();
+ m.name = "or";
+ CompositeFactPattern cp = new CompositeFactPattern(CompositeFactPattern.COMPOSITE_TYPE_OR);
+ FactPattern p1 = new FactPattern("Person");
+ SingleFieldConstraint sf1 = new SingleFieldConstraint("age");
+ sf1.operator = "==";
+ sf1.value = "42";
+ p1.addConstraint(sf1);
+
+ cp.addFactPattern(p1);
+
+ FactPattern p2 = new FactPattern("Person");
+ SingleFieldConstraint sf2 = new SingleFieldConstraint("age");
+ sf2.operator = "==";
+ sf2.value = "43";
+ p2.addConstraint(sf2);
+
+ cp.addFactPattern(p2);
+
+ m.addLhsItem(cp);
+
+ String result = BRDRLPersistence.getInstance().marshal(m);
+ assertTrue(result.indexOf("( Person( age == 42 ) or Person( age == 43 ) )") > 0);
+
+
+ }
+
// public void testLoadEmpty() {
// RuleModel m = BRXMLPersistence.getInstance().unmarshal( null );
// assertNotNull( m );
More information about the jboss-svn-commits
mailing list