All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jadex.bdi.testcases.plans.WaitForBeliefSetPlan Maven / Gradle / Ivy

Go to download

The Jadex BDI applications package contain several example applications, benchmarks and testcases using BDI agents.

There is a newer version: 2.4
Show newest version
package jadex.bdi.testcases.plans;

import jadex.base.test.TestReport;
import jadex.bdi.runtime.Plan;

/**
 *  Wait endlessly for belief changes.
 */
public class WaitForBeliefSetPlan extends Plan
{
	//-------- attributes --------

	/** The test report. */
	protected TestReport tr;

	//-------- constructors --------


	/**
	 * The body method is called on the
	 * instatiated plan instance from the scheduler.
	 */
	public void body()
	{
		for(int i=0; i<3; i++)
		{
			tr = new TestReport("#"+i, "Tests if a beliefchange is detected.");
			getLogger().info("Now waiting for a change of belief set 'some_numbers': ");
			Object val = waitForFactAdded("some_numbers", 3000);
			getLogger().info("Fact added: "+val);
			//Object val = waitForFactRemoved("some_numbers", 5000);
			//getLogger().info("Fact removed: "+val);
			tr.setSucceeded(true);
			getLogger().info("Belief changed: "+getBeliefbase().getBeliefSet("some_numbers").getFacts());
			getBeliefbase().getBeliefSet("testcap.reports").addFact(tr);
		}
	}

	/**
	 *  Called on plan failure.
	 */
	public void failed()
	{
		getLogger().info("No belief set update detected. Plan failed.");
		if(tr==null)
			tr = new TestReport("", "Plan failure occurred before test was created.");
		tr.setReason("No belief set update detected");
		getBeliefbase().getBeliefSet("testcap.reports").addFact(tr);
	}

}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy