package bdi4jade.extension.remediation;

import bdi4jade.annotation.Belief;
import bdi4jade.core.BDIAgent;
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 RevertingCapability {

	private static final long serialVersionUID = -1818834346847016992L;

	@Belief(name = CauseEffectKnowledgeModel.NAME)
	protected CauseEffectKnowledgeModel causeEffectKnowledgeModel = new CauseEffectKnowledgeModel();

	@Belief(name = ResourcePreferences.NAME)
	protected ResourcePreferences preferences = new ResourcePreferences();

	public RemediationCapability(BDIAgent agent) {
		super(agent);
		setOptionGenerationFunction(new RemediationOptionGenerationFunction(this));
		setPlanSelectionStrategy(new RemediationPlanSelectionStrategy(this));
	}

}
