The Spring Framework

org.springframework.scripting.bsh
Class BshScriptFactory

java.lang.Object
  extended by org.springframework.scripting.bsh.BshScriptFactory
All Implemented Interfaces:
ScriptFactory

public class BshScriptFactory
extends Object
implements ScriptFactory

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:
ScriptFactoryPostProcessor, BshScriptUtils

Constructor Summary
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[] 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BshScriptFactory

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

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
Throws:
IllegalArgumentException - if either of the supplied arguments is null; or the supplied scriptSourceLocator argument is composed wholly of whitespace; or if the supplied scriptInterfaces argument array has no elements
Method Detail

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
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

requiresConfigInterface

public boolean requiresConfigInterface()
BeanShell scripts do require a config interface.

Specified by:
requiresConfigInterface in interface ScriptFactory
Returns:
true always
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, can be null)
Returns:
the scripted Java object
Throws:
IOException - if script retrieval failed
ScriptCompilationException - if script compilation failed
See Also:
BshScriptUtils.createBshObject(String, Class[])

The Spring Framework

Copyright © 2002-2006 The Spring Framework.