RevertingPlanBody.java
Home
/
bdi-jade-extensions /
src /
bdi4jade /
extension /
undo /
RevertingPlanBody.java
package bdi4jade.extension.undo;
import bdi4jade.goal.Goal;
import bdi4jade.plan.planbody.BeliefGoalPlanBody;
public abstract class RevertingPlanBody extends BeliefGoalPlanBody {
private static final long serialVersionUID = -678344739581158097L;
@Override
public boolean dispatchSubgoal(Goal subgoal) {
setParentGoal(subgoal);
return super.dispatchSubgoal(subgoal);
}
@Override
public boolean dispatchSubgoalAndListen(Goal subgoal) {
setParentGoal(subgoal);
return super.dispatchSubgoalAndListen(subgoal);
}
private void setParentGoal(Goal subgoal) {
if (this.getCapability() instanceof RevertingCapability) {
RevertingCapability capability = (RevertingCapability) this.getCapability();
capability.addParentGoal(subgoal, this.getGoal());
}
}
}