package org.jactr.scripting.action; import org.jactr.core.production.CannotInstantiateException; import org.jactr.core.production.IInstantiation; import org.jactr.core.production.VariableBindings; import org.jactr.scripting.IScriptableFactory; import org.jactr.scripting.ScriptSupport; /* * default logging */ public interface IActionScript { /** * return the actual script * * @return */ public String getScript(); /** * return an instanceof this action script that has been fully bound. If a new * instanceof of the script is not required (that is, it can be reused) this * can be returned. * * @param variableBindings * @return */ public IActionScript bind(VariableBindings variableBindings) throws CannotInstantiateException; /** * Actually execute the script, returning the time it takes to complete (which * is added to the production firing time) * * @param scriptSupport * @param instantiation * @param firedAt * @return additional time it takes to fire this condition (typically 0) */ public double fire(ScriptSupport scriptSupport, IInstantiation instantiation, double firedAt); public void dispose(); public IScriptableFactory getFactory(); }