org.red5.server.script.groovy
Class GroovyScriptFactory

java.lang.Object
  extended by org.red5.server.script.groovy.GroovyScriptFactory
All Implemented Interfaces:
org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.scripting.ScriptFactory

public class GroovyScriptFactory
extends Object
implements org.springframework.scripting.ScriptFactory, org.springframework.beans.factory.BeanClassLoaderAware

ScriptFactory implementation for a Groovy script.

Typically used in combination with a org.springframework.scripting.support.ScriptFactoryPostProcessor; see the latter's Javadoc for a configuration example.

Since:
2.0
Author:
Juergen Hoeller, Rob Harrop
See Also:
org.springframework.scripting.support.ScriptFactoryPostProcessor, GroovyClassLoader

Constructor Summary
GroovyScriptFactory(String scriptSourceLocator)
          Create a new GroovyScriptFactory for the given script source.
GroovyScriptFactory(String scriptSourceLocator, Class[] scriptInterfaces)
           
GroovyScriptFactory(String scriptSourceLocator, org.springframework.scripting.groovy.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
protected  Object executeScript(Class<?> scriptClass)
          Instantiate the given Groovy script class and run it if necessary.
 Object getScriptedObject(org.springframework.scripting.ScriptSource scriptSource, Class[] actualInterfaces)
          Loads and parses the Groovy script via the GroovyClassLoader.
 Class<?> getScriptedObjectType(org.springframework.scripting.ScriptSource scriptSource)
           
 Class[] getScriptInterfaces()
          Groovy scripts determine their interfaces themselves, hence we don't need to explicitly expose interfaces here.
 String getScriptSourceLocator()
           
 boolean requiresConfigInterface()
          Groovy scripts do not need a config interface, since they expose their setters as public methods.
 boolean requiresScriptedObjectRefresh(org.springframework.scripting.ScriptSource src)
           
 void setBeanClassLoader(ClassLoader classLoader)
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, 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.

GroovyScriptFactory

public GroovyScriptFactory(String scriptSourceLocator,
                           org.springframework.scripting.groovy.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 - a customizer that can set a custom metaclass or make other changes to the GroovyObject created by this factory (may be null)

GroovyScriptFactory

public GroovyScriptFactory(String scriptSourceLocator,
                           Class[] scriptInterfaces)
Method Detail

setBeanClassLoader

public void setBeanClassLoader(ClassLoader classLoader)
Specified by:
setBeanClassLoader in interface org.springframework.beans.factory.BeanClassLoaderAware

getScriptSourceLocator

public String getScriptSourceLocator()
Specified by:
getScriptSourceLocator in interface org.springframework.scripting.ScriptFactory

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 org.springframework.scripting.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 org.springframework.scripting.ScriptFactory

getScriptedObject

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

Specified by:
getScriptedObject in interface org.springframework.scripting.ScriptFactory
Throws:
IOException
org.springframework.scripting.ScriptCompilationException
See Also:
GroovyClassLoader

getScriptedObjectType

public Class<?> getScriptedObjectType(org.springframework.scripting.ScriptSource scriptSource)
                               throws IOException,
                                      org.springframework.scripting.ScriptCompilationException
Specified by:
getScriptedObjectType in interface org.springframework.scripting.ScriptFactory
Throws:
IOException
org.springframework.scripting.ScriptCompilationException

executeScript

protected Object executeScript(Class<?> scriptClass)
                        throws org.springframework.scripting.ScriptCompilationException
Instantiate the given Groovy script class and run it if necessary.

Parameters:
scriptClass - the Groovy script class
Returns:
the result object (either an instance of the script class or the result of running the script instance)
Throws:
org.springframework.scripting.ScriptCompilationException - in case of instantiation failure

requiresScriptedObjectRefresh

public boolean requiresScriptedObjectRefresh(org.springframework.scripting.ScriptSource src)
Specified by:
requiresScriptedObjectRefresh in interface org.springframework.scripting.ScriptFactory

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2006-2010 The Red5 Project