The Spring Framework

org.springframework.scripting.jruby
Class JRubyScriptFactory

java.lang.Object
  extended by org.springframework.scripting.jruby.JRubyScriptFactory
All Implemented Interfaces:
ScriptFactory

public class JRubyScriptFactory
extends Object
implements ScriptFactory

ScriptFactory implementation for a JRuby 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, JRubyScriptUtils

Constructor Summary
JRubyScriptFactory(String scriptSourceLocator, Class[] scriptInterfaces)
          Create a new JRubyScriptFactory for the given script source.
 
Method Summary
 Object getScriptedObject(ScriptSource actualScriptSource, Class[] actualInterfaces)
          Load and parse the JRuby script via JRubyScriptUtils.
 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()
          JRuby 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

JRubyScriptFactory

public JRubyScriptFactory(String scriptSourceLocator,
                          Class[] scriptInterfaces)
Create a new JRubyScriptFactory 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()
JRuby 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 JRuby script via JRubyScriptUtils.

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:
JRubyScriptUtils.createJRubyObject(String, Class[])

The Spring Framework

Copyright © 2002-2006 The Spring Framework.