01 /*
02 * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
03 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
04 *
05 * This code is free software; you can redistribute it and/or modify it
06 * under the terms of the GNU General Public License version 2 only, as
07 * published by the Free Software Foundation. Sun designates this
08 * particular file as subject to the "Classpath" exception as provided
09 * by Sun in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25
26 package javax.script;
27
28 import java.util.Map;
29 import java.io.Reader;
30
31 /**
32 * The optional interface implemented by ScriptEngines whose methods compile scripts
33 * to a form that can be executed repeatedly without recompilation.
34 *
35 * @author Mike Grogan
36 * @version 1.0
37 * @since 1.6
38 */
39 public interface Compilable {
40 /**
41 * Compiles the script (source represented as a <code>String</code>) for
42 * later execution.
43 *
44 * @param script The source of the script, represented as a <code>String</code>.
45 *
46 * @return An subclass of <code>CompiledScript</code> to be executed later using one
47 * of the <code>eval</code> methods of <code>CompiledScript</code>.
48 *
49 * @throws ScriptException if compilation fails.
50 * @throws NullPointerException if the argument is null.
51 *
52 */
53
54 public CompiledScript compile(String script) throws ScriptException;
55
56 /**
57 * Compiles the script (source read from <code>Reader</code>) for
58 * later execution. Functionality is identical to
59 * <code>compile(String)</code> other than the way in which the source is
60 * passed.
61 *
62 * @param script The reader from which the script source is obtained.
63 *
64 * @return An implementation of <code>CompiledScript</code> to be executed
65 * later using one of its <code>eval</code> methods of <code>CompiledScript</code>.
66 *
67 * @throws ScriptException if compilation fails.
68 * @throws NullPointerException if argument is null.
69 */
70 public CompiledScript compile(Reader script) throws ScriptException;
71 }
|