Menu

How to use RuleFiller?

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));
}
Posted by Yan Tang Demey 2012-10-18

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.