## org.springframework.scripting.support
Class ResourceScriptSource

    java.lang.Object
      org.springframework.scripting.support.ResourceScriptSource

All Implemented Interfaces:
  ScriptSource

    public class ResourceScriptSource

extends Object
implements ScriptSource

`ScriptSource` implementation based on Spring's `Resource` abstraction. Loads the script text from the underlying Resource's `File` or `InputStream`, and tracks the last-modified timestamp of the file (if possible).

Since:
  2.0
Author:
  Rob Harrop, Juergen Hoeller
See Also:
  `InputStreamSource.getInputStream()`, `Resource.getFile()`, `ResourceLoader`

Field Summary
`protected Log` `logger` Logger available to subclasses

Constructor Summary
`ResourceScriptSource(Resource resource)` Create a new ResourceScriptSource for the given resource.

Method Summary
`Resource` `getResource()` Return the `Resource` to load the script from.
`String` `getScriptAsString()` Retrieve the current script source text as String.
`boolean` `isModified()` Indicate whether the underlying script data has been modified since the last time `ScriptSource.getScriptAsString()` was called.
`protected long` `retrieveLastModifiedTime()` Retrieve the current last-modified timestamp of the underlying resource.
`void` `setEncoding(String encoding)` Sets the encoding used for reading the script resource.
`String` `suggestedClassName()` Determine a class name for the underlying script.
`String` `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### logger

    protected final Log logger

  Logger available to subclasses

Constructor Detail

### ResourceScriptSource

    public ResourceScriptSource(Resource resource)

  Create a new ResourceScriptSource for the given resource.

  Parameters:
    `resource` - the Resource to load the script from

Method Detail

### getResource

    public final Resource getResource()

  Return the `Resource` to load the script from.

### getScriptAsString

    public String getScriptAsString()
                             throws IOException

  Description copied from interface: `ScriptSource`
  Retrieve the current script source text as String.

  Specified by:
    `getScriptAsString` in interface `ScriptSource`
  Returns:
    the script text
  Throws:
    `IOException` - if script retrieval failed

### isModified

    public boolean isModified()

  Description copied from interface: `ScriptSource`
  Indicate whether the underlying script data has been modified since the last time `ScriptSource.getScriptAsString()` was called. Returns `true` if the script has not been read yet.

  Specified by:
    `isModified` in interface `ScriptSource`
  Returns:
    whether the script data has been modified

### retrieveLastModifiedTime

    protected long retrieveLastModifiedTime()

  Retrieve the current last-modified timestamp of the underlying resource.

  Returns:
    the current timestamp, or 0 if not determinable

### suggestedClassName

    public String suggestedClassName()

  Description copied from interface: `ScriptSource`
  Determine a class name for the underlying script.

  Specified by:
    `suggestedClassName` in interface `ScriptSource`
  Returns:
    the suggested class name, or `null` if none available

### setEncoding

    public void setEncoding(String encoding)

  Sets the encoding used for reading the script resource. The default value is "UTF-8". A null value, implies the platform default.

  Parameters:
    `encoding` - charset encoding used for reading the script.

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`