Interface ScriptEngineFactory
- All Known Implementing Classes:
NashornScriptEngineFactory
public interface ScriptEngineFactory
ScriptEngineFactory
is used to describe and instantiate ScriptEngines
.
Each class implementing ScriptEngine
has a corresponding factory that exposes metadata describing the engine class.
The ScriptEngineManager
uses the service-provider loader mechanism described in the ServiceLoader
class to obtain instances of ScriptEngineFactory
instances. See ScriptEngineManager()
and ScriptEngineManager(java.lang.ClassLoader)
.
- Since:
- 1.6
Method Summary
Modifier and Type | Method | Description |
---|---|---|
String | getEngineName() | Returns the full name of the |
String | getEngineVersion() | Returns the version of the |
List<String> | getExtensions() | Returns an immutable list of filename extensions, which generally identify scripts written in the language supported by this |
String | getLanguageName() | Returns the name of the scripting language supported by this |
String | getLanguageVersion() | Returns the version of the scripting language supported by this |
String | getMethodCallSyntax(String obj,
String m,
String... args) | Returns a String which can be used to invoke a method of a Java object using the syntax of the supported scripting language. |
List<String> | getMimeTypes() | Returns an immutable list of mimetypes, associated with scripts that can be executed by the engine. |
List<String> | getNames() | Returns an immutable list of short names for the |
String | getOutputStatement(String toDisplay) | Returns a String that can be used as a statement to display the specified String using the syntax of the supported scripting language. |
Object | getParameter(String key) | Returns the value of an attribute whose meaning may be implementation-specific. |
String | getProgram(String... statements) | Returns a valid scripting language executable program with given statements. |
ScriptEngine | getScriptEngine() | Returns an instance of the |
Method Detail
getEngineName
String getEngineName()
Returns the full name of the ScriptEngine
. For instance an implementation based on the Mozilla Rhino Javascript engine might return Rhino Mozilla Javascript Engine.
- Returns:
- The name of the engine implementation.
getEngineVersion
String getEngineVersion()
Returns the version of the ScriptEngine
.
- Returns:
- The
ScriptEngine
implementation version.
getExtensions
List<String> getExtensions()
Returns an immutable list of filename extensions, which generally identify scripts written in the language supported by this ScriptEngine
. The array is used by the ScriptEngineManager
to implement its getEngineByExtension
method.
- Returns:
- The list of extensions.
getMimeTypes
List<String> getMimeTypes()
Returns an immutable list of mimetypes, associated with scripts that can be executed by the engine. The list is used by the ScriptEngineManager
class to implement its getEngineByMimetype
method.
- Returns:
- The list of mime types.
getNames
List<String> getNames()
Returns an immutable list of short names for the ScriptEngine
, which may be used to identify the ScriptEngine
by the ScriptEngineManager
. For instance, an implementation based on the Mozilla Rhino Javascript engine might return list containing {"javascript", "rhino"}.
- Returns:
- an immutable list of short names
getLanguageName
String getLanguageName()
Returns the name of the scripting language supported by this ScriptEngine
.
- Returns:
- The name of the supported language.
getLanguageVersion
String getLanguageVersion()
Returns the version of the scripting language supported by this ScriptEngine
.
- Returns:
- The version of the supported language.
getParameter
Object getParameter(String key)
Returns the value of an attribute whose meaning may be implementation-specific. Keys for which the value is defined in all implementations are:
- ScriptEngine.ENGINE
- ScriptEngine.ENGINE_VERSION
- ScriptEngine.LANGUAGE
- ScriptEngine.LANGUAGE_VERSION
- ScriptEngine.NAME
The values for these keys are the Strings returned by getEngineName
, getEngineVersion
, getLanguageName
, getLanguageVersion
for the first four keys respectively. For NAME, one of the Strings returned by getNames
is returned.
A reserved key, THREADING
, whose value describes the behavior of the engine with respect to concurrent execution of scripts and maintenance of state is also defined. These values for the THREADING
key are:
-
null
- The engine implementation is not thread safe, and cannot be used to execute scripts concurrently on multiple threads. -
"MULTITHREADED"
- The engine implementation is internally thread-safe and scripts may execute concurrently although effects of script execution on one thread may be visible to scripts on other threads. -
"THREAD-ISOLATED"
- The implementation satisfies the requirements of "MULTITHREADED", and also, the engine maintains independent values for symbols in scripts executing on different threads. -
"STATELESS"
- The implementation satisfies the requirements of"THREAD-ISOLATED"
. In addition, script executions do not alter the mappings in theBindings
which is the engine scope of theScriptEngine
. In particular, the keys in theBindings
and their associated values are the same before and after the execution of the script.
Implementations may define implementation-specific keys.
- Parameters:
-
key
- The name of the parameter - Returns:
- The value for the given parameter. Returns
null
if no value is assigned to the key. - Throws:
-
NullPointerException
- if the key is null.
getMethodCallSyntax
String getMethodCallSyntax(String obj, String m, String... args)
Returns a String which can be used to invoke a method of a Java object using the syntax of the supported scripting language. For instance, an implementation for a Javascript engine might be;
public String getMethodCallSyntax(String obj, String m, String... args) { String ret = obj; ret += "." + m + "("; for (int i = 0; i < args.length; i++) { ret += args[i]; if (i < args.length - 1) { ret += ","; } } ret += ")"; return ret; }
- Parameters:
-
obj
- The name representing the object whose method is to be invoked. The name is the one used to create bindings using theput
method ofScriptEngine
, theput
method of anENGINE_SCOPE
Bindings
,or thesetAttribute
method ofScriptContext
. The identifier used in scripts may be a decorated form of the specified one. -
m
- The name of the method to invoke. -
args
- names of the arguments in the method call. - Returns:
- The String used to invoke the method in the syntax of the scripting language.
- Throws:
-
NullPointerException
- if obj or m or args or any of the elements of args is null.
getOutputStatement
String getOutputStatement(String toDisplay)
Returns a String that can be used as a statement to display the specified String using the syntax of the supported scripting language. For instance, the implementation for a Perl engine might be;
public String getOutputStatement(String toDisplay) { return "print(" + toDisplay + ")"; }
- Parameters:
-
toDisplay
- The String to be displayed by the returned statement. - Returns:
- The string used to display the String in the syntax of the scripting language.
getProgram
String getProgram(String... statements)
Returns a valid scripting language executable program with given statements. For instance an implementation for a PHP engine might be:
public String getProgram(String... statements) { String retval = "<?\n"; int len = statements.length; for (int i = 0; i < len; i++) { retval += statements[i] + ";\n"; } return retval += "?>"; }
- Parameters:
-
statements
- The statements to be executed. May be return values of calls to thegetMethodCallSyntax
andgetOutputStatement
methods. - Returns:
- The Program
- Throws:
-
NullPointerException
- if thestatements
array or any of its elements is null
getScriptEngine
ScriptEngine getScriptEngine()
Returns an instance of the ScriptEngine
associated with this ScriptEngineFactory
. A new ScriptEngine is generally returned, but implementations may pool, share or reuse engines.
- Returns:
- A new
ScriptEngine
instance.