33 lines
850 B
Java
33 lines
850 B
Java
package ctbrec.event;
|
|
|
|
import ctbrec.Model;
|
|
import ctbrec.Model.State;
|
|
import ctbrec.event.EventHandlerConfiguration.PredicateConfiguration;
|
|
|
|
public class ModelStatePredicate extends EventPredicate {
|
|
|
|
private Model.State state;
|
|
|
|
public ModelStatePredicate() {}
|
|
|
|
public ModelStatePredicate(Model.State state) {
|
|
this.state = state;
|
|
}
|
|
|
|
@Override
|
|
public boolean test(Event evt) {
|
|
if(evt instanceof ModelStateChangedEvent) {
|
|
ModelStateChangedEvent modelEvent = (ModelStateChangedEvent) evt;
|
|
Model.State newState = modelEvent.getNewState();
|
|
return newState == state;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void configure(PredicateConfiguration pc) {
|
|
state = State.valueOf((String) pc.getConfiguration().get("state"));
|
|
}
|
|
}
|