package jadex.bdi.testcases.misc;
import jadex.base.test.TestReport;
import jadex.bdi.runtime.Plan;
/**
* Plan to react to various end elements.
* Type of element is given in content parameter.
*/
public class EndStateWorkerTestPlan extends Plan
{
public void body()
{
String content = (String)getParameter("content").getValue();
TestReport[] reports = (TestReport[])getBeliefbase().getBeliefSet("reports").getFacts();
boolean found = false;
for(int i=0; !found && i<reports.length; i++)
{
if(reports[i].getName().equals(content))
{
found = true;
reports[i].setSucceeded(true);
// Hack!!! Use beliefset.modified(fact?)
startAtomic();
getBeliefbase().getBeliefSet("reports").removeFact(reports[i]);
getBeliefbase().getBeliefSet("reports").addFact(reports[i]);
endAtomic();
}
}
if(!found)
throw new RuntimeException("Unexpected content '"+content+"' in trigger '"+getReason()+"'.");
}
}