[jboss-svn-commits] JBL Code SVN: r11555 - in labs/jbossrules/trunk/drools-decisiontables/src: test/java/org/drools/decisiontable and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue May 1 09:34:29 EDT 2007
Author: stevearoonie
Date: 2007-05-01 09:34:29 -0400 (Tue, 01 May 2007)
New Revision: 11555
Modified:
labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/Cell.java
labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/DefaultTemplateRuleBase.java
labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/ExternalSheetListener.java
labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/Row.java
labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/RuleTemplate.java
labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/ExternalSpreadsheetCompilerIntegrationTest.java
labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/parser/DefaultGeneratorTest.java
labs/jbossrules/trunk/drools-decisiontables/src/test/resources/templates/test_template2.drl
Log:
Fix template decision tables to work with MVEL
Modified: labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/Cell.java
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/Cell.java 2007-05-01 13:06:39 UTC (rev 11554)
+++ labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/Cell.java 2007-05-01 13:34:29 UTC (rev 11555)
@@ -33,11 +33,14 @@
public Cell() {
}
- Cell(Row r, Column c, String v) {
+ Cell(Row r, Column c) {
row = r;
column = c;
- value = c.getValue(v);
}
+
+ public void setValue(String v) {
+ value = column.getValue(v);
+ }
public String toString() {
return "Cell[" + column + ": " + value + "]";
Modified: labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/DefaultTemplateRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/DefaultTemplateRuleBase.java 2007-05-01 13:06:39 UTC (rev 11554)
+++ labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/DefaultTemplateRuleBase.java 2007-05-01 13:34:29 UTC (rev 11555)
@@ -25,8 +25,6 @@
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.StatefulSession;
-import org.drools.StatelessSession;
-import org.drools.WorkingMemory;
import org.drools.compiler.PackageBuilder;
import org.drools.decisiontable.model.Condition;
import org.drools.decisiontable.model.Consequence;
Modified: labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/ExternalSheetListener.java
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/ExternalSheetListener.java 2007-05-01 13:06:39 UTC (rev 11554)
+++ labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/ExternalSheetListener.java 2007-05-01 13:34:29 UTC (rev 11555)
@@ -19,8 +19,6 @@
import java.util.Properties;
import org.drools.StatefulSession;
-import org.drools.StatelessSession;
-import org.drools.WorkingMemory;
import org.drools.decisiontable.model.DRLOutput;
/**
@@ -94,25 +92,28 @@
if (currentRow != null && column >= startCol && value != null
&& value.trim().length() > 0) {
+ int columnIndex = column - startCol;
// System.out.println("asserting cell " + row + ", " + column + ": "
// + value);
- Column col = columns[column - startCol];
- Cell cell = new Cell(currentRow, col, value);
- currentRow.addCell(cell);
+ //Column col = columns[columnIndex];
+ //Cell cell = new Cell(currentRow, col, value);
+ //currentRow.addCell(cell);
+ Cell cell = currentRow.getCell(columnIndex);
+ cell.setValue(value);
session.assertObject(cell);
}
}
- public void newRow(int rowNumber, int columns) {
+ public void newRow(int rowNumber, int columnCount) {
if (!tableFinished && rowNumber >= startRow) {
- if (currentRow != null && currentRow.cells.isEmpty()) {
+ if (currentRow != null && currentRow.isEmpty()) {
currentRow = null;
tableFinished = true;
} else {
if (currentRow != null)
session.assertObject(currentRow);
- currentRow = new Row(rowNumber);
+ currentRow = new Row(rowNumber, columns);
}
}
}
Modified: labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/Row.java
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/Row.java 2007-05-01 13:06:39 UTC (rev 11554)
+++ labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/Row.java 2007-05-01 13:34:29 UTC (rev 11555)
@@ -16,6 +16,7 @@
* limitations under the License.
*/
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
/**
* @author <a href="mailto:stevearoonie at gmail.com">Steven Williams</a>
@@ -30,18 +31,33 @@
}
- Row(int r) {
+ Row(int r, Column[] columns) {
rowNum = r;
+ for (int i = 0; i < columns.length; i++) {
+ cells.add(new Cell(this, columns[i]));
+ }
}
public int getRowNumber() {
return rowNum;
}
- void addCell(Cell cell) {
- cells.add( cell );
+ Cell getCell(int columnIndex)
+ {
+ return (Cell) cells.get(columnIndex);
}
+ boolean isEmpty() {
+ for (Iterator it = cells.iterator(); it.hasNext();) {
+ Cell cell = (Cell) it.next();
+ if (cell.getValue() != null)
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
public List getCells() {
return cells;
}
Modified: labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/RuleTemplate.java
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/RuleTemplate.java 2007-05-01 13:06:39 UTC (rev 11554)
+++ labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/RuleTemplate.java 2007-05-01 13:34:29 UTC (rev 11555)
@@ -92,11 +92,10 @@
/*
* Replace the optional columns in the rule contents with an if statement.
* if (column is empty) do not show the line.
- * This is based on antlr StringTemplate and should be replaced with MVEL.
*/
private String replaceOptionals(String contents) {
try {
- final Pattern pattern = Pattern.compile("\\$(.[^\\$]*)\\$");
+ final Pattern pattern = Pattern.compile("@\\{(.[^}]*)\\}");
final List columns = new ArrayList(getColumns());
columns.add("row.rowNumber");
final BufferedReader reader = new BufferedReader(new StringReader(
@@ -109,16 +108,16 @@
while (matcher.find()) {
final String c = matcher.group(1);
if (!columns.contains(c)) {
- newLine.append("$if(").append(matcher.group(1)).append(
- ")$");
+ newLine.append("@if{").append(matcher.group(1)).append(
+ " != null} ");
optCols++;
}
}
newLine.append(line);
- newLine.append(StringUtils.repeat("$endif$", optCols));
+ newLine.append(StringUtils.repeat(" @end{}", optCols));
newLine.append("\n");
}
- // System.out.println("newLine: " + newLine);
+// System.out.println("newLine: " + newLine);
return newLine.toString();
} catch (IOException e) {
Modified: labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/ExternalSpreadsheetCompilerIntegrationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/ExternalSpreadsheetCompilerIntegrationTest.java 2007-05-01 13:06:39 UTC (rev 11554)
+++ labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/ExternalSpreadsheetCompilerIntegrationTest.java 2007-05-01 13:34:29 UTC (rev 11555)
@@ -30,7 +30,6 @@
import org.drools.compiler.DroolsError;
import org.drools.compiler.PackageBuilder;
import org.drools.decisiontable.parser.ExternalSheetListener;
-import org.drools.decisiontable.parser.DefaultTemplateContainer;
import org.drools.rule.Package;
/**
* @author <a href="mailto:stevearoonie at gmail.com">Steven Williams</a> Some basic unit tests for converter utility.
@@ -39,7 +38,6 @@
*/
public class ExternalSpreadsheetCompilerIntegrationTest extends TestCase
{
-
public void testIntegration() throws Exception
{
final ExternalSpreadsheetCompiler converter = new ExternalSpreadsheetCompiler();
@@ -76,8 +74,7 @@
}
- // @FIXME
- public void FIXME_testPricing() throws Exception
+ public void testPricing() throws Exception
{
final ExternalSpreadsheetCompiler converter = new ExternalSpreadsheetCompiler();
final List listeners = new ArrayList();
Modified: labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/parser/DefaultGeneratorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/parser/DefaultGeneratorTest.java 2007-05-01 13:06:39 UTC (rev 11554)
+++ labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/parser/DefaultGeneratorTest.java 2007-05-01 13:34:29 UTC (rev 11555)
@@ -38,9 +38,12 @@
}
public void testAddColumns() {
- Row r = new Row(1);
- r.addCell(new Cell(r, new Column("col1"), "value1"));
- r.addCell(new Cell(r, new Column("col2"), "value2"));
+ Column[] columns = {new Column("col1"), new Column("col2")};
+ Row r = new Row(1, columns);
+ r.getCell(0).setValue("value1");
+ r.getCell(1).setValue("value2");
+// r.addCell(new Cell(r, new Column("col1"), "value1"));
+// r.addCell(new Cell(r, new Column("col2"), "value2"));
g.generate("rt3", r);
String drl = g.getDrl();
assertEquals("1 value1 value2\n\n", drl);
Modified: labs/jbossrules/trunk/drools-decisiontables/src/test/resources/templates/test_template2.drl
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/src/test/resources/templates/test_template2.drl 2007-05-01 13:06:39 UTC (rev 11554)
+++ labs/jbossrules/trunk/drools-decisiontables/src/test/resources/templates/test_template2.drl 2007-05-01 13:34:29 UTC (rev 11555)
@@ -18,8 +18,8 @@
rule "some stuff @{row.rowNumber}"
when
Foo(myObject.getColour().equals(@{colour}),
- myObject.size () > @{minSize@},
- myObject.size () < @{maxSize@})
+ myObject.size () > @{minSize},
+ myObject.size () < @{maxSize})
then
myObject.setIsValid(@{valida});
myObject.setIsValid(@{validb0}, @{validb1});
More information about the jboss-svn-commits
mailing list