## org.springframework.scripting
Interface ScriptFactory

All Known Implementing Classes:
  BshScriptFactory, GroovyScriptFactory, JRubyScriptFactory

    public interface ScriptFactory

Script definition interface, encapsulating the configuration of a specific script as well as a factory method for creating the actual scripted Java `Object`.

Since:
  2.0
Author:
  Juergen Hoeller, Rob Harrop
See Also:
  `getScriptSourceLocator()`, `getScriptedObject(org.springframework.scripting.ScriptSource, java.lang.Class[])`

Method Summary
`Object` `getScriptedObject(ScriptSource scriptSource, Class[] actualInterfaces)` Factory method for creating the scripted Java object.
`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()` Return whether the script requires a config interface to be generated for it.
`boolean` `requiresScriptedObjectRefresh(ScriptSource scriptSource)` Determine whether a refresh is required (e.g.

Method Detail

### getScriptSourceLocator

    String getScriptSourceLocator()

  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...").

  Returns:
    the script source locator
  See Also:
    `ScriptFactoryPostProcessor.convertToScriptSource(java.lang.String, java.lang.String, org.springframework.core.io.ResourceLoader)`, `ResourceLoader`

### getScriptInterfaces

    Class[] getScriptInterfaces()

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

  Returns:
    the interfaces for the script

### requiresConfigInterface

    boolean requiresConfigInterface()

  Return whether the script requires a config interface to be generated for it. This is typically the case for scripts that do not determine Java signatures themselves, with no appropriate config interface specified in `getScriptInterfaces()`.

  Returns:
    whether the script requires a generated config interface
  See Also:
    `getScriptInterfaces()`

### getScriptedObject

    Object getScriptedObject(ScriptSource scriptSource,
                             Class[] actualInterfaces)
                             throws IOException,
                                    ScriptCompilationException

  Factory method for creating the scripted Java object.

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

  Parameters:
    `scriptSource` - 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`)
  Returns:
    the scripted Java object
  Throws:
    `IOException` - if script retrieval failed
    `ScriptCompilationException` - if script compilation failed

### getScriptedObjectType

    Class getScriptedObjectType(ScriptSource scriptSource)
                                throws IOException,
                                       ScriptCompilationException

  Determine the type of the scripted Java object.

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

  Parameters:
    `scriptSource` - the actual ScriptSource to retrieve the script source text from (never `null`)
  Returns:
    the type of the scripted Java object, or `null` if none could be determined
  Throws:
    `IOException` - if script retrieval failed
    `ScriptCompilationException` - if script compilation failed
  Since:
    2.0.3

### requiresScriptedObjectRefresh

    boolean requiresScriptedObjectRefresh(ScriptSource scriptSource)

  Determine whether a refresh is required (e.g. through ScriptSource's `isModified()` method).

  Parameters:
    `scriptSource` - the actual ScriptSource to retrieve the script source text from (never `null`)
  Returns:
    whether a fresh `getScriptedObject(org.springframework.scripting.ScriptSource, java.lang.Class[])` call is required
  Since:
    2.5.2
  See Also:
    `ScriptSource.isModified()`