Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| The Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.scripting.bsh
Class BshScriptFactory

    java.lang.Object
      org.springframework.scripting.bsh.BshScriptFactory

All Implemented Interfaces:
  BeanClassLoaderAware, ScriptFactory

    public class BshScriptFactory

extends Object
implements ScriptFactory, BeanClassLoaderAware

`ScriptFactory` implementation for a BeanShell script.

Typically used in combination with a `ScriptFactoryPostProcessor`; see the latter's javadoc for a configuration example.

Since:
  2.0
Author:
  Juergen Hoeller, Rob Harrop
See Also:
  `BshScriptUtils`, `ScriptFactoryPostProcessor`

Constructor Summary
`BshScriptFactory(String scriptSourceLocator)` Create a new BshScriptFactory for the given script source.
`BshScriptFactory(String scriptSourceLocator, Class[] scriptInterfaces)` Create a new BshScriptFactory for the given script source.

Method Summary
`Object` | `getScriptedObject(ScriptSource actualScriptSource, Class[] actualInterfaces)` Load and parse the BeanShell script via `BshScriptUtils`.
`Class` | `getScriptedObjectType(ScriptSource scriptSource)` Determine the type of the scripted Java object.
`Class[]` | `getScriptInterfaces()` Return the business interfaces that the script is supposed to implement.
`String` | `getScriptSourceLocator()` Return a locator that points to the source of the script.
`boolean` | `requiresConfigInterface()` BeanShell scripts do require a config interface.
`void` | `setBeanClassLoader(ClassLoader classLoader)` Callback that supplies the bean `class loader` to a bean instance.
`String` | `toString()`

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

Constructor Detail

### BshScriptFactory

    public BshScriptFactory(String scriptSourceLocator)

  Create a new BshScriptFactory for the given script source.

  With this `BshScriptFactory` variant, the script needs to declare a full class or return an actual instance of the scripted object.

  Parameters:
    `scriptSourceLocator` - a locator that points to the source of the script. Interpreted by the post-processor that actually creates the script.

### BshScriptFactory

    public BshScriptFactory(String scriptSourceLocator,
                            Class[] scriptInterfaces)

  Create a new BshScriptFactory for the given script source.

  The script may either be a simple script that needs a corresponding proxy generated (implementing the specified interfaces), or declare a full class or return an actual instance of the scripted object (in which case the specified interfaces, if any, need to be implemented by that class/instance).

  Parameters:
    `scriptSourceLocator` - a locator that points to the source of the script. Interpreted by the post-processor that actually creates the script.
    `scriptInterfaces` - the Java interfaces that the scripted object is supposed to implement (may be `null`)

Method Detail

### setBeanClassLoader

    public void setBeanClassLoader(ClassLoader classLoader)

  Description copied from interface: `BeanClassLoaderAware`
  Callback that supplies the bean `class loader` to a bean instance.

  Invoked after the population of normal bean properties but before an initialization callback such as `InitializingBean's` `InitializingBean.afterPropertiesSet()` method or a custom init-method.

  Specified by:
    `setBeanClassLoader` in interface `BeanClassLoaderAware`
  Parameters:
    `classLoader` - the owning class loader; may be `null` in which case a default `ClassLoader` must be used, for example the `ClassLoader` obtained via `ClassUtils.getDefaultClassLoader()`

### getScriptSourceLocator

    public String getScriptSourceLocator()

  Description copied from interface: `ScriptFactory`
  Return a locator that points to the source of the script. Interpreted by the post-processor that actually creates the script.

  Typical supported locators are Spring resource locations (such as "file:C:/myScript.bsh" or "classpath:myPackage/myScript.bsh") and inline scripts ("inline:myScriptText...").

  Specified by:
    `getScriptSourceLocator` in interface `ScriptFactory`
  Returns:
    the script source locator
  See Also:
    `ScriptFactoryPostProcessor.convertToScriptSource(java.lang.String, org.springframework.core.io.ResourceLoader)`, `ResourceLoader`

### getScriptInterfaces

    public Class[] getScriptInterfaces()

  Description copied from interface: `ScriptFactory`
  Return the business interfaces that the script is supposed to implement.

  Can return `null` if the script itself determines its Java interfaces (such as in the case of Groovy).

  Specified by:
    `getScriptInterfaces` in interface `ScriptFactory`
  Returns:
    the interfaces for the script

### requiresConfigInterface

    public boolean requiresConfigInterface()

  BeanShell scripts do require a config interface.

  Specified by:
    `requiresConfigInterface` in interface `ScriptFactory`
  Returns:
    whether the script requires a generated config interface
  See Also:
    `ScriptFactory.getScriptInterfaces()`

### getScriptedObject

    public Object getScriptedObject(ScriptSource actualScriptSource,
                                    Class[] actualInterfaces)
                             throws IOException,
                                    ScriptCompilationException

  Load and parse the BeanShell script via `BshScriptUtils`.

  Specified by:
    `getScriptedObject` in interface `ScriptFactory`
  Parameters:
    `actualScriptSource` - the actual ScriptSource to retrieve the script source text from (never `null`)
    `actualInterfaces` - the actual interfaces to expose, including script interfaces as well as a generated config interface (if applicable; may be `null`)
  Returns:
    the scripted Java object
  Throws:
    `IOException` - if script retrieval failed
    `ScriptCompilationException` - if script compilation failed
  See Also:
    `BshScriptUtils.createBshObject(String, Class[], ClassLoader)`

### getScriptedObjectType

    public Class getScriptedObjectType(ScriptSource scriptSource)
                                throws IOException,
                                       ScriptCompilationException

  Description copied from interface: `ScriptFactory`
  Determine the type of the scripted Java object.

  Implementations are encouraged to cache script metadata such as a generated script class. Note that this method may be invoked concurrently and must be implemented in a thread-safe fashion.

  Specified by:
    `getScriptedObjectType` in interface `ScriptFactory`
  Parameters:
    `scriptSource` - the actual ScriptSource to retrieve the script source text from (never `null`)
  Returns:
    the type of the scripted Java object, or `null` if none could be determined
  Throws:
    `IOException` - if script retrieval failed
    `ScriptCompilationException` - if script compilation failed

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| The Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2007 The Spring Framework.