private static Set<Rule> getRuleSet() {
// Note: Using a LinkedHashSet so that the iteration order (i.e. implied
// precedence) of rules can be guaranteed.
Set<Rule> rules = new LinkedHashSet<Rule>();
rules.add(new Rule(new ANDCondition(new EQUALCondition(
ATTRIBUTE_STATE_LOCATION_A,
VacuumEnvironment.LocationState.Clean), new EQUALCondition(
ATTRIBUTE_STATE_LOCATION_B,
VacuumEnvironment.LocationState.Clean)), NoOpAction.NO_OP));
rules.add(new Rule(new EQUALCondition(ATTRIBUTE_CURRENT_STATE,
VacuumEnvironment.LocationState.Dirty),
VacuumEnvironment.ACTION_SUCK));
rules.add(new Rule(new EQUALCondition(ATTRIBUTE_CURRENT_LOCATION,
VacuumEnvironment.LOCATION_A),
VacuumEnvironment.ACTION_MOVE_RIGHT));
rules.add(new Rule(new EQUALCondition(ATTRIBUTE_CURRENT_LOCATION,
VacuumEnvironment.LOCATION_B),
VacuumEnvironment.ACTION_MOVE_LEFT));
return rules;
}