/* * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package javax.script; import java.util.Map; import java.io.Reader; /** * The optional interface implemented by ScriptEngines whose methods compile scripts * to a form that can be executed repeatedly without recompilation. * * @author Mike Grogan * @since 1.6 */ public interface Compilable { /** * Compiles the script (source represented as a String) for * later execution. * * @param script The source of the script, represented as a String. * * @return An subclass of CompiledScript to be executed later using one * of the eval methods of CompiledScript. * * @throws ScriptException if compilation fails. * @throws NullPointerException if the argument is null. * */ public CompiledScript compile(String script) throws ScriptException; /** * Compiles the script (source read from Reader) for * later execution. Functionality is identical to * compile(String) other than the way in which the source is * passed. * * @param script The reader from which the script source is obtained. * * @return An implementation of CompiledScript to be executed * later using one of its eval methods of CompiledScript. * * @throws ScriptException if compilation fails. * @throws NullPointerException if argument is null. */ public CompiledScript compile(Reader script) throws ScriptException; }