[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