[jboss-svn-commits] JBL Code SVN: r9445 - labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Feb 12 06:23:25 EST 2007
Author: stevearoonie
Date: 2007-02-12 06:23:25 -0500 (Mon, 12 Feb 2007)
New Revision: 9445
Modified:
labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/DefaultTemplateContainer.java
labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/DefaultTemplateRuleBase.java
Log:
Add comments
Modified: labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/DefaultTemplateContainer.java
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/DefaultTemplateContainer.java 2007-02-12 07:40:13 UTC (rev 9444)
+++ labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/DefaultTemplateContainer.java 2007-02-12 11:23:25 UTC (rev 9445)
@@ -24,6 +24,14 @@
import java.util.List;
import java.util.Map;
+/**
+ *
+ * @author <a href="mailto:stevearoonie at gmail.com">Steven Williams</a>
+ *
+ * Container for a set of templates (residing in one file).
+ * This class will parse the template file.
+ *
+ */
public class DefaultTemplateContainer implements TemplateContainer {
private String header;
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-02-12 07:40:13 UTC (rev 9444)
+++ labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/decisiontable/parser/DefaultTemplateRuleBase.java 2007-02-12 11:23:25 UTC (rev 9445)
@@ -35,6 +35,20 @@
import org.drools.decisiontable.model.SnippetBuilder;
import org.drools.rule.Package;
+/**
+ *
+ * @author <a href="mailto:stevearoonie at gmail.com">Steven Williams</a>
+ *
+ * Create a rule base for the set of rule templates in the
+ * TemplateContainer. These rules are used internally by the
+ * engine to generate the actual decision table rules based on
+ * which columns have been filled in.
+ *
+ * Basically, if a rule template requires columns A and B then
+ * the template rule base will generate a rule with columns A and B
+ * as the LHS and a RHS which triggers the rule to be generated.
+ *
+ */
public class DefaultTemplateRuleBase implements TemplateRuleBase {
private RuleBase ruleBase;
@@ -62,21 +76,7 @@
for (Iterator it = templates.values().iterator(); it.hasNext();) {
RuleTemplate template = (RuleTemplate) it.next();
- Rule rule = new Rule(template.getName(), null, i++);
- Condition condition = new Condition();
- condition.setSnippet("r : Row()");
- rule.addCondition(condition);
- List templateColumns = template.getColumns();
- for (Iterator it1 = templateColumns.iterator(); it1.hasNext();) {
- String column = (String) it1.next();
- rule.addCondition(createCondition(column));
- }
- String[] templateNotColumns = template.getNotColumns();
- for (int j = 0; j < templateNotColumns.length; j++) {
- rule.addCondition(createNotCondition(templateNotColumns[j]));
- }
- rule.addConsequence(createConsequence(template));
- p.addRule(rule);
+ createTemplateRule(p, i++, template);
}
DRLOutput out = new DRLOutput();
p.renderDRL(out);
@@ -84,7 +84,33 @@
}
+ private void createTemplateRule(org.drools.decisiontable.model.Package p, int index, RuleTemplate template) {
+ Rule rule = new Rule(template.getName(), null, index);
+ Condition condition = new Condition();
+ condition.setSnippet("r : Row()");
+ rule.addCondition(condition);
+ createColumnConditions(template, rule);
+ createNotColumnConditions(template, rule);
+ rule.addConsequence(createConsequence(template));
+ p.addRule(rule);
+ }
+ private void createNotColumnConditions(RuleTemplate template, Rule rule) {
+ String[] templateNotColumns = template.getNotColumns();
+ for (int j = 0; j < templateNotColumns.length; j++) {
+ rule.addCondition(createNotCondition(templateNotColumns[j]));
+ }
+ }
+
+ private void createColumnConditions(RuleTemplate template, Rule rule) {
+ List templateColumns = template.getColumns();
+ for (Iterator it1 = templateColumns.iterator(); it1.hasNext();) {
+ String column = (String) it1.next();
+ rule.addCondition(createCondition(column));
+ }
+ }
+
+
private void addGlobals(org.drools.decisiontable.model.Package p) {
Global global = new Global();
global.setClassName(DefaultGenerator.class.getName());
@@ -129,7 +155,7 @@
}
private RuleBase readRule(String drl) {
try {
-// System.out.println(drl);
+ System.out.println(drl);
// read in the source
Reader source = new StringReader(drl);
PackageBuilder builder = new PackageBuilder();
More information about the jboss-svn-commits
mailing list