to fill empty decision columns based on known rules
/**
* Make example.
* @author: Yan Tang, VUB, 2009
* @return the vector
*/
private static Vector<DecisionRule> makeExample() {
// Originally first c1 then c2, start building a decision table
Vector<DecisionRule> rules = new Vector<DecisionRule>();
// column 1
DecisionRule rule = new DecisionRule();
rule.addCondition(new ConditionPair("C1", "Y"));
rule.addCondition(new ConditionPair("C2", "N"));
rule.addAction(new ActionPair("A1", "*"));
rule.addAction(new ActionPair("A2", "/"));
rules.add(rule);
// column 2
rule = new DecisionRule();
rule.addCondition(new ConditionPair("C1", "Y"));
rule.addCondition(new ConditionPair("C2", "Y"));
rule.addAction(new ActionPair("A1", "/"));
rule.addAction(new ActionPair("A2", "/"));
rules.add(rule);
// column 3
rule = new DecisionRule();
rule.addCondition(new ConditionPair("C1", "N"));
rule.addCondition(new ConditionPair("C2", "N"));
rule.addAction(new ActionPair("A1", "*"));
rule.addAction(new ActionPair("A2", "/"));
rules.add(rule);
// column 4
rule = new DecisionRule();
rule.addCondition(new ConditionPair("C1", "N"));
rule.addCondition(new ConditionPair("C2", "Y"));
rule.addAction(new ActionPair("A1", "*"));
rule.addAction(new ActionPair("A2", "/"));
rules.add(rule);
// finish building the decision table
DecisionTable dt = new DecisionTable();
String[][] content = dt.getTableContent(rules);
System.out.println("-----------Table Example-------------");
System.out.println(dt.getInfo(content));
return rules;
}
/**
* The main method.
*
* @param args the arguments
*/
public static void main(String[] args) {
Vector<DecisionRule> rules = makeExample();
EmptyTableGetter getter = new EmptyTableGetter(rules);
Vector<DTCondition> conditions = new Vector<DTCondition>();
DTCondition c = new DTCondition("C2", new String[] { "Y", "N" });
conditions.add(c);
c = new DTCondition("C1", new String[] { "Y", "N" });
conditions.add(c);
// get an empty table according to a new condition vector
String[][] empty = getter.getEmptyTableLayout(conditions);
System.out.println("----------empty table----------\n"
+ getter.getInfo(empty));
RuleFiller filler = new RuleFiller(rules);
String[][] shiftedTable = filler.fillInRules(empty);
System.err.println(filler.getInfo(shiftedTable));
}