org.springframework.scripting.support
Class ResourceScriptSource

java.lang.Object
  extended by 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