package jadex.bdi.planlib.cms;
import jadex.bdi.runtime.Plan;
import jadex.bridge.IComponentIdentifier;
import jadex.bridge.IComponentManagementService;
import jadex.commons.service.SServiceProvider;
/**
* Shutdown the platform.
*/
// Todo: remove from CMS?
public class CMSLocalShutdownPlatformPlan extends Plan
{
/**
* The plan body.
*/
public void body()
{
IComponentManagementService cms = (IComponentManagementService)SServiceProvider
.getService(getScope().getServiceProvider(), IComponentManagementService.class).get(this);
IComponentIdentifier root = getScope().getComponentIdentifier();
boolean foundroot = false;
while(!foundroot)
{
IComponentIdentifier parent = (IComponentIdentifier)cms.getParent(root).get(this);
if(parent==null)
foundroot = true;
else
root = parent;
}
cms.resumeComponent(root).get(this);
cms.destroyComponent(root);
}
}