diff --git a/bdi-jade-extensions/src/bdi4jade/extension/remediation/reasoning/RemediationOptionGenerationFunction.java b/bdi-jade-extensions/src/bdi4jade/extension/remediation/reasoning/RemediationOptionGenerationFunction.java
index 4e62f0e..d02928d 100644
--- a/bdi-jade-extensions/src/bdi4jade/extension/remediation/reasoning/RemediationOptionGenerationFunction.java
+++ b/bdi-jade-extensions/src/bdi4jade/extension/remediation/reasoning/RemediationOptionGenerationFunction.java
@@ -24,19 +24,19 @@ import bdi4jade.extension.remediation.logics.Fact;
import bdi4jade.extension.remediation.logics.Predicate;
import bdi4jade.extension.undo.GoalAchievementMetadata;
import bdi4jade.extension.undo.RevertingCapability;
+import bdi4jade.extension.undo.reasoning.RevertingOptionGenerationFunction;
import bdi4jade.goal.Goal;
import bdi4jade.goal.GoalStatus;
import bdi4jade.goal.NestedGoal;
import bdi4jade.goal.PredicateGoal;
-import bdi4jade.reasoning.OptionGenerationFunction;
-public class RemediationOptionGenerationFunction implements OptionGenerationFunction {
+public class RemediationOptionGenerationFunction extends RevertingOptionGenerationFunction {
private Capability capability;
private final Map<Goal, CauseEffectProblem> causeEffectProblems;
public RemediationOptionGenerationFunction(Capability capability) {
- setCapability(capability);
+ super(capability);
this.causeEffectProblems = new HashMap<>();
}
@@ -72,7 +72,6 @@ public class RemediationOptionGenerationFunction implements OptionGenerationFunc
@Override
public void generateGoals(GoalUpdateSet goalUpdateSet) {
-
// Algorithm 1 - lines 2-5
for (GoalDescription goalDescription : goalUpdateSet.getCurrentGoals()) {
Goal goal = goalDescription.getGoal();
@@ -158,6 +157,7 @@ public class RemediationOptionGenerationFunction implements OptionGenerationFunc
}
}
+ super.generateGoals(goalUpdateSet);
}
private Boolean knownCause(CauseEffectProblem cep, CauseEffectRelationship cer) {
@@ -270,14 +270,14 @@ public class RemediationOptionGenerationFunction implements OptionGenerationFunc
}
}
}
-
+
private void updateReversionTrigger(CauseEffectProblem cep) {
ArrayList<Predicate> reversionTrigger = new ArrayList<>();
for (CauseFactorStatus causeFactor : cep.getCauseFactorStatus()) {
reversionTrigger.add(causeFactor.getFact().getPredicate());
}
- GoalAchievementMetadata gam = ((RevertingCapability) this.capability)
- .getGoalAchievementMetadata().get(cep.getEffectGoal());
+ GoalAchievementMetadata gam = ((RevertingCapability) this.capability).getGoalAchievementMetadata()
+ .get(cep.getEffectGoal());
gam.setReversionTrigger(reversionTrigger);
}
diff --git a/bdi-jade-extensions/src/bdi4jade/extension/remediation/RemediationCapability.java b/bdi-jade-extensions/src/bdi4jade/extension/remediation/RemediationCapability.java
index d133d6e..d95f41b 100644
--- a/bdi-jade-extensions/src/bdi4jade/extension/remediation/RemediationCapability.java
+++ b/bdi-jade-extensions/src/bdi4jade/extension/remediation/RemediationCapability.java
@@ -1,12 +1,12 @@
package bdi4jade.extension.remediation;
import bdi4jade.annotation.Belief;
-import bdi4jade.core.Capability;
import bdi4jade.extension.remediation.graph.CauseEffectKnowledgeModel;
import bdi4jade.extension.remediation.reasoning.RemediationOptionGenerationFunction;
import bdi4jade.extension.remediation.reasoning.RemediationPlanSelectionStrategy;
+import bdi4jade.extension.undo.RevertingCapability;
-public class RemediationCapability extends Capability {
+public class RemediationCapability extends RevertingCapability {
private static final long serialVersionUID = -1818834346847016992L;