package de.gaalop.maple.engine; import java.io.InputStream; /** * This interface defines what a Maple engine has to provide * to the Maple plugin. * * @author Sebastian */ public interface MapleEngine { /** * Evaluates a maple command and returns the resulting output. * * @param command The maple command that should be evaluated. * @return A string containing the output maple produced after the command was evaluated. */ String evaluate(String command) throws MapleEngineException; /** * Resets this Maple engine for beginning a new calculation. */ void reset() throws MapleEngineException; /** * Loads a module into this maple engine. * * @param stream An input stream that wraps the content of the module to be loaded. It is the * responsibility of the caller to close this stream. */ void loadModule(InputStream stream) throws MapleEngineException; }