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:
  • Field Details

    • logger

      protected final Log logger
      Logger available to subclasses.
  • Constructor Details

    • ResourceScriptSource

      public ResourceScriptSource(EncodedResource resource)
      Create a new ResourceScriptSource for the given resource.
      Parameters:
      resource - the EncodedResource to load the script from
    • ResourceScriptSource

      public ResourceScriptSource(Resource resource)
      Create a new ResourceScriptSource for the given resource.
      Parameters:
      resource - the Resource to load the script from (using UTF-8 encoding)
  • Method Details

    • getResource

      public final Resource getResource()
      Return the Resource to load the script from.
    • setEncoding

      public void setEncoding(@Nullable String encoding)
      Set the encoding used for reading the script resource.

      The default value for regular Resources is "UTF-8". A null value implies the platform default.

    • 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

      @Nullable 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
    • toString

      public String toString()
      Overrides:
      toString in class Object