[jboss-svn-commits] JBL Code SVN: r17331 - 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 Dec 19 19:06:52 EST 2007
Author: michael.neale at jboss.com
Date: 2007-12-19 19:06:51 -0500 (Wed, 19 Dec 2007)
New Revision: 17331
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-1396
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-12-19 23:37:32 UTC (rev 17330)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/BRDRLPersistence.java 2007-12-20 00:06:51 UTC (rev 17331)
@@ -155,15 +155,9 @@
buf.append( ">" );
}
if ( CompositeFactPattern.COMPOSITE_TYPE_EXISTS.equals( pattern.type ) ) {
- buf.append( pattern.type );
- buf.append( " " );
- renderSubPattern( pattern, 0 );
- buf.append( "\n" );
+ renderCompositeFOL(pattern);
} else if ( CompositeFactPattern.COMPOSITE_TYPE_NOT.equals( pattern.type ) ) {
- buf.append( pattern.type );
- buf.append( " " );
- renderSubPattern( pattern, 0 );
- buf.append( "\n" );
+ renderCompositeFOL(pattern);
} else if ( CompositeFactPattern.COMPOSITE_TYPE_OR.equals( pattern.type ) ) {
buf.append( "( " );
if (pattern.patterns != null ) {
@@ -180,6 +174,24 @@
}
}
+ private void renderCompositeFOL(CompositeFactPattern pattern) {
+ buf.append( pattern.type );
+ if (pattern.patterns != null && pattern.patterns.length > 1) {
+ buf.append(" (");
+ for (int i = 0; i < pattern.patterns.length; i++) {
+ renderSubPattern(pattern, i);
+ if (i != pattern.patterns.length -1) {
+ buf.append(" and ");
+ }
+ }
+ buf.append(") \n");
+ } else {
+ buf.append( " " );
+ renderSubPattern( pattern, 0 );
+ buf.append( "\n" );
+ }
+ }
+
private void renderSubPattern(CompositeFactPattern pattern, int subIndex) {
if (pattern.patterns == null || pattern.patterns.length == 0) return;
this.generateFactPattern( pattern.patterns[subIndex] );
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-12-19 23:37:32 UTC (rev 17330)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/BRDRLPersistenceTest.java 2007-12-20 00:06:51 UTC (rev 17331)
@@ -206,6 +206,65 @@
}
+ public void testExistsMultiPatterns() throws Exception {
+ String result = getCompositeFOL(CompositeFactPattern.COMPOSITE_TYPE_EXISTS);
+ assertTrue(result.indexOf("exists (Person( age == 42 ) and Person( age == 43 ))") > 0);
+ }
+
+ public void testNotMultiPatterns() throws Exception {
+ String result = getCompositeFOL(CompositeFactPattern.COMPOSITE_TYPE_NOT);
+ assertTrue(result.indexOf("not (Person( age == 42 ) and Person( age == 43 ))") > 0);
+ }
+
+ public void testSingleExists() throws Exception {
+ RuleModel m = new RuleModel();
+ m.name = "or";
+ CompositeFactPattern cp = new CompositeFactPattern(CompositeFactPattern.COMPOSITE_TYPE_EXISTS);
+ FactPattern p1 = new FactPattern("Person");
+ SingleFieldConstraint sf1 = new SingleFieldConstraint("age");
+ sf1.operator = "==";
+ sf1.value = "42";
+ p1.addConstraint(sf1);
+
+ cp.addFactPattern(p1);
+
+
+ m.addLhsItem(cp);
+
+ String result = BRDRLPersistence.getInstance().marshal(m);
+
+ assertTrue(result.indexOf("exists Person( age == 42 )") > 0);
+
+ }
+
+
+ private String getCompositeFOL(String type) {
+ RuleModel m = new RuleModel();
+ m.name = "or";
+ CompositeFactPattern cp = new CompositeFactPattern(type);
+ 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);
+
+ return result;
+ }
+
// public void testLoadEmpty() {
// RuleModel m = BRXMLPersistence.getInstance().unmarshal( null );
// assertNotNull( m );
@@ -498,7 +557,7 @@
String result = BRDRLPersistence.getInstance().marshal( m );
assertTrue(result.indexOf( ">insert" ) > -1);
- System.err.println(result);
+
assertTrue(result.indexOf( ">insertLogical" ) > -1);
}
More information about the jboss-svn-commits
mailing list