public abstract class Condition_Action_Table extends Memory {

        protected Rule[] conditionActionRules;

        public Condition_Action_Table (Rule[] r) {
                conditionActionRules = r;
        }

        public Rule[] getConditionActionRules() {
                return conditionActionRules;
        }

        public Rule ruleMatch(Condition c) {
                for (int i=0; i<conditionActionRules.length; i++)
                        if (c.matches(conditionActionRules[i].fetchCondition()))
                                return conditionActionRules[i];
                return null;
        }

        // Inherited abstract methods
        // No updates
        public void update (Percept p) {};
        public void update (Action a) {};

}