|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.springframework.scripting.bsh.BshScriptFactory
public class BshScriptFactory
ScriptFactory implementation
for a BeanShell script.
Typically used in combination with a
ScriptFactoryPostProcessor;
see the latter's javadoc for a configuration example.
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 scriptSource,
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. |
boolean |
requiresScriptedObjectRefresh(ScriptSource scriptSource)
Determine whether a refresh is required (e.g. |
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 |
|---|
public BshScriptFactory(String scriptSourceLocator)
With this BshScriptFactory variant, the script needs to
declare a full class or return an actual instance of the scripted object.
scriptSourceLocator - a locator that points to the source of the script.
Interpreted by the post-processor that actually creates the script.
public BshScriptFactory(String scriptSourceLocator,
Class[] scriptInterfaces)
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).
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 |
|---|
public void setBeanClassLoader(ClassLoader classLoader)
BeanClassLoaderAwareclass 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.
setBeanClassLoader in interface BeanClassLoaderAwareclassLoader - the owning class loader; may be null in
which case a default ClassLoader must be used, for example
the ClassLoader obtained via
ClassUtils.getDefaultClassLoader()public String getScriptSourceLocator()
ScriptFactoryTypical supported locators are Spring resource locations (such as "file:C:/myScript.bsh" or "classpath:myPackage/myScript.bsh") and inline scripts ("inline:myScriptText...").
getScriptSourceLocator in interface ScriptFactoryScriptFactoryPostProcessor.convertToScriptSource(java.lang.String, java.lang.String, org.springframework.core.io.ResourceLoader),
ResourceLoaderpublic Class[] getScriptInterfaces()
ScriptFactoryCan return null if the script itself determines
its Java interfaces (such as in the case of Groovy).
getScriptInterfaces in interface ScriptFactorypublic boolean requiresConfigInterface()
requiresConfigInterface in interface ScriptFactoryScriptFactory.getScriptInterfaces()
public Object getScriptedObject(ScriptSource scriptSource,
Class[] actualInterfaces)
throws IOException,
ScriptCompilationException
BshScriptUtils.
getScriptedObject in interface ScriptFactoryscriptSource - 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)
IOException - if script retrieval failed
ScriptCompilationException - if script compilation failedBshScriptUtils.createBshObject(String, Class[], ClassLoader)
public Class getScriptedObjectType(ScriptSource scriptSource)
throws IOException,
ScriptCompilationException
ScriptFactoryImplementations 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.
getScriptedObjectType in interface ScriptFactoryscriptSource - the actual ScriptSource to retrieve
the script source text from (never null)
null
if none could be determined
IOException - if script retrieval failed
ScriptCompilationException - if script compilation failedpublic boolean requiresScriptedObjectRefresh(ScriptSource scriptSource)
ScriptFactoryisModified() method).
requiresScriptedObjectRefresh in interface ScriptFactoryscriptSource - the actual ScriptSource to retrieve
the script source text from (never null)
ScriptFactory.getScriptedObject(org.springframework.scripting.ScriptSource, java.lang.Class[]) call is requiredScriptSource.isModified()public String toString()
toString in class Object
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||