The Spring Framework

org.springframework.scripting.groovy
Class GroovyScriptFactory

java.lang.Object
  extended by org.springframework.scripting.groovy.GroovyScriptFactory
All Implemented Interfaces:
ScriptFactory

public class GroovyScriptFactory
extends Object
implements ScriptFactory

ScriptFactory implementation for a Groovy 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, Rod Johnson
See Also:
ScriptFactoryPostProcessor, GroovyClassLoader

Constructor Summary
GroovyScriptFactory(String scriptSourceLocator)
          Create a new GroovyScriptFactory for the given script source.
GroovyScriptFactory(String scriptSourceLocator, GroovyObjectCustomizer groovyObjectCustomizer)
          Create a new GroovyScriptFactory for the given script source, specifying a strategy interface that can create a custom MetaClass to supply missing methods and otherwise change the behavior of the object.
 
Method Summary
 Object getScriptedObject(ScriptSource actualScriptSource, Class[] actualInterfaces)
          Loads and parses the Groovy script via the GroovyClassLoader.
 Class[] getScriptInterfaces()
          Groovy scripts determine their interfaces themselves, hence we don't need to explicitly expose interfaces here.
 String getScriptSourceLocator()
          Return a locator that points to the source of the script.
 boolean requiresConfigInterface()
          Groovy scripts do not need a config interface, since they expose their setters as public methods.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GroovyScriptFactory

public GroovyScriptFactory(String scriptSourceLocator)
Create a new GroovyScriptFactory for the given script source.

We don't need to specify script interfaces here, since a Groovy script defines its Java interfaces itself.

Parameters:
scriptSourceLocator - a locator that points to the source of the script. Interpreted by the post-processor that actually creates the script.
Throws:
IllegalArgumentException - if the supplied String is empty

GroovyScriptFactory

public GroovyScriptFactory(String scriptSourceLocator,
                           GroovyObjectCustomizer groovyObjectCustomizer)
Create a new GroovyScriptFactory for the given script source, specifying a strategy interface that can create a custom MetaClass to supply missing methods and otherwise change the behavior of the object.

We don't need to specify script interfaces here, since a Groovy script defines its Java interfaces itself.

Parameters:
scriptSourceLocator - a locator that points to the source of the script. Interpreted by the post-processor that actually creates the script.
groovyObjectCustomizer - customizer that can set a custom metaclass or make other changes to the GroovyObject created by this factory
Throws:
IllegalArgumentException - if the supplied String is empty
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()
Groovy scripts determine their interfaces themselves, hence we don't need to explicitly expose interfaces here.

Specified by:
getScriptInterfaces in interface ScriptFactory
Returns:
null always

requiresConfigInterface

public boolean requiresConfigInterface()
Groovy scripts do not need a config interface, since they expose their setters as public methods.

Specified by:
requiresConfigInterface in interface ScriptFactory
Returns:
false always
See Also:
ScriptFactory.getScriptInterfaces()

getScriptedObject

public Object getScriptedObject(ScriptSource actualScriptSource,
                                Class[] actualInterfaces)
                         throws IOException,
                                ScriptCompilationException
Loads and parses the Groovy script via the GroovyClassLoader.

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

The Spring Framework

Copyright © 2002-2007 The Spring Framework.