/*
* 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;
}