package commons.application.core;

import java.util.Collection;
import java.util.List;
import java.util.concurrent.Callable;
import basics.unexpected.Problem;
import commons.application.ctx.Context;
import commons.application.ctx.ContextParameterChangedListener;

public interface EngineInterface
{
public boolean isRegistered(String id);

public Command lookup(String id) throws Problem;

public void call(String id, Context ctx, Collection<Callable<Void>> tasks, String docid);

public void callBack(String id, Context ctx, Collection<Callable<Void>> tasks, String docid);

public List<String> getList();

public List<String> getList(String filter);

public String constantsToString();

public boolean isStopped();

public void resume();

public void contextParamsChanged();

public void registerContextParameterChangedListener(ContextParameterChangedListener e);
}
