package net.codjo.segmentation.server.blackboard.message;
import net.codjo.test.common.LogString;
/**
*
*/
public class BlackboardActionStringifier implements BlackboardActionVisitor {
protected LogString log = new LogString();
public BlackboardActionStringifier(LogString log) {
this.log = log;
}
public void logify(BlackboardAction action) {
// todo a mettre un comportement intelligent dans acceptVisitor des actions
if (action.hasBlackBoardActionBuilder()) {
action.then().visit(this);
}
else {
action.acceptVisitor(this);
}
}
public void visit(Write write) {
log.call("write", toString(write.getTodo()), toString(write.getLevel()));
}
public void visit(GetTodo getTodo) {
log.call("getTodo", toString(getTodo.getLevel()));
}
public void visit(Erase erase) {
log.call("erase", toString(erase.getTodo()), toString(erase.getLevel()));
}
public void visit(InformOfFailure failure) {
log.call("informOfFailure", toString(failure.getLevel()), toString(failure.getTodo()));
}
protected String toString(Todo todo) {
return "Todo{" + todo.getId() + "}";
}
protected String toString(Level level) {
return level.toString();
}
}