Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.script
Class ScriptEngineManager

    java.lang.Object
      javax.script.ScriptEngineManager

    public class ScriptEngineManager

extends Object

The `ScriptEngineManager` implements a discovery and instantiation mechanism for `ScriptEngine` classes and also maintains a collection of key/value pairs storing state shared by all engines created by the Manager. This class uses the service provider mechanism to enumerate all the implementations of `ScriptEngineFactory`.
The `ScriptEngineManager` provides a method to return an array of all these factories as well as utility methods which look up factories on the basis of language name, file extension and mime type.

The `Bindings` of key/value pairs, referred to as the "Global Scope" maintained by the manager is available to all instances of `ScriptEngine` created by the `ScriptEngineManager`. The values in the `Bindings` are generally exposed in all scripts.

Since:
  1.6

Constructor Summary
`ScriptEngineManager()` If the thread context ClassLoader can be accessed by the caller, then the effect of calling this constructor is the same as calling `ScriptEngineManager(Thread.currentThread().getContextClassLoader())`.
`ScriptEngineManager(ClassLoader loader)` This constructor loads the implementations of `ScriptEngineFactory` visible to the given `ClassLoader` using the service provider mechanism. If loader is `null`, the script engine factories that are bundled with the platform and that are in the usual extension directories (installed extensions) are loaded.

Method Summary
`Object` | `get(String key)` Gets the value for the specified key in the Global Scope
`Bindings` | `getBindings()` `getBindings` returns the value of the `globalScope` field.
`ScriptEngine` | `getEngineByExtension(String extension)` Look up and create a `ScriptEngine` for a given extension.
`ScriptEngine` | `getEngineByMimeType(String mimeType)` Look up and create a `ScriptEngine` for a given mime type.
`ScriptEngine` | `getEngineByName(String shortName)` Looks up and creates a `ScriptEngine` for a given name.
`List<ScriptEngineFactory>` | `getEngineFactories()` Returns an array whose elements are instances of all the `ScriptEngineFactory` classes found by the discovery mechanism.
`void` | `put(String key, Object value)` Sets the specified key/value pair in the Global Scope.
`void` | `registerEngineExtension(String extension, ScriptEngineFactory factory)` Registers a `ScriptEngineFactory` to handle an extension.
`void` | `registerEngineMimeType(String type, ScriptEngineFactory factory)` Registers a `ScriptEngineFactory` to handle a mime type.
`void` | `registerEngineName(String name, ScriptEngineFactory factory)` Registers a `ScriptEngineFactory` to handle a language name.
`void` | `setBindings(Bindings bindings)` `setBindings` stores the specified `Bindings` in the `globalScope` field.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ScriptEngineManager

    public ScriptEngineManager()

  If the thread context ClassLoader can be accessed by the caller, then the effect of calling this constructor is the same as calling `ScriptEngineManager(Thread.currentThread().getContextClassLoader())`. Otherwise, the effect is the same as calling `ScriptEngineManager(null)`.

  See Also:
    `Thread.getContextClassLoader()`

### ScriptEngineManager

    public ScriptEngineManager(ClassLoader loader)

  This constructor loads the implementations of `ScriptEngineFactory` visible to the given `ClassLoader` using the service provider mechanism.
  If loader is `null`, the script engine factories that are bundled with the platform and that are in the usual extension directories (installed extensions) are loaded.

  Parameters:
    `loader` - ClassLoader used to discover script engine factories.

Method Detail

### setBindings

    public void setBindings(Bindings bindings)

  `setBindings` stores the specified `Bindings` in the `globalScope` field. ScriptEngineManager sets this `Bindings` as global bindings for `ScriptEngine` objects created by it.

  Parameters:
    `bindings` - The specified `Bindings`
  Throws:
    `IllegalArgumentException` - if bindings is null.

### getBindings

    public Bindings getBindings()

  `getBindings` returns the value of the `globalScope` field. ScriptEngineManager sets this `Bindings` as global bindings for `ScriptEngine` objects created by it.

  Returns:
    The globalScope field.

### put

    public void put(String key,
                    Object value)

  Sets the specified key/value pair in the Global Scope.

  Parameters:
    `key` - Key to set
    `value` - Value to set.
  Throws:
    `NullPointerException` - if key is null.
    `IllegalArgumentException` - if key is empty string.

### get

    public Object get(String key)

  Gets the value for the specified key in the Global Scope

  Parameters:
    `key` - The key whose value is to be returned.
  Returns:
    The value for the specified key.

### getEngineByName

    public ScriptEngine getEngineByName(String shortName)

  Looks up and creates a `ScriptEngine` for a given name. The algorithm first searches for a `ScriptEngineFactory` that has been registered as a handler for the specified name using the `registerEngineName` method.
  If one is not found, it searches the array of `ScriptEngineFactory` instances stored by the constructor for one with the specified name. If a `ScriptEngineFactory` is found by either method, it is used to create instance of `ScriptEngine`.

  Parameters:
    `shortName` - The short name of the `ScriptEngine` implementation. returned by the `getNames` method of its `ScriptEngineFactory`.
  Returns:
    A `ScriptEngine` created by the factory located in the search. Returns null if no such factory was found. The `ScriptEngineManager` sets its own `globalScope` `Bindings` as the `GLOBAL_SCOPE` `Bindings` of the newly created `ScriptEngine`.
  Throws:
    `NullPointerException` - if shortName is null.

### getEngineByExtension

    public ScriptEngine getEngineByExtension(String extension)

  Look up and create a `ScriptEngine` for a given extension. The algorithm used by `getEngineByName` is used except that the search starts by looking for a `ScriptEngineFactory` registered to handle the given extension using `registerEngineExtension`.

  Parameters:
    `extension` - The given extension
  Returns:
    The engine to handle scripts with this extension. Returns `null` if not found.
  Throws:
    `NullPointerException` - if extension is null.

### getEngineByMimeType

    public ScriptEngine getEngineByMimeType(String mimeType)

  Look up and create a `ScriptEngine` for a given mime type. The algorithm used by `getEngineByName` is used except that the search starts by looking for a `ScriptEngineFactory` registered to handle the given mime type using `registerEngineMimeType`.

  Parameters:
    `mimeType` - The given mime type
  Returns:
    The engine to handle scripts with this mime type. Returns `null` if not found.
  Throws:
    `NullPointerException` - if mimeType is null.

### getEngineFactories

    public List<ScriptEngineFactory> getEngineFactories()

  Returns an array whose elements are instances of all the `ScriptEngineFactory` classes found by the discovery mechanism.

  Returns:
    List of all discovered `ScriptEngineFactory`s.

### registerEngineName

    public void registerEngineName(String name,
                                   ScriptEngineFactory factory)

  Registers a `ScriptEngineFactory` to handle a language name. Overrides any such association found using the Discovery mechanism.

  Parameters:
    `name` - The name to be associated with the `ScriptEngineFactory`.
    `factory` - The class to associate with the given name.
  Throws:
    `NullPointerException` - if any of the parameters is null.

### registerEngineMimeType

    public void registerEngineMimeType(String type,
                                       ScriptEngineFactory factory)

  Registers a `ScriptEngineFactory` to handle a mime type. Overrides any such association found using the Discovery mechanism.

  Parameters:
    `type` - The mime type to be associated with the `ScriptEngineFactory`.
    `factory` - The class to associate with the given mime type.
  Throws:
    `NullPointerException` - if any of the parameters is null.

### registerEngineExtension

    public void registerEngineExtension(String extension,
                                        ScriptEngineFactory factory)

  Registers a `ScriptEngineFactory` to handle an extension. Overrides any such association found using the Discovery mechanism.

  Parameters:
    `extension` - The extension type to be associated with the `ScriptEngineFactory`.
    `factory` - The class to associate with the given extension.
  Throws:
    `NullPointerException` - if any of the parameters is null.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.