Class AbstractWebScript

java.lang.Object
org.springframework.extensions.webscripts.AbstractWebScript
All Implemented Interfaces:
WebScript
Direct Known Subclasses:
DeclarativeWebScript

public abstract class AbstractWebScript extends Object implements WebScript
Abstract implementation of a Web Script
Author:
davidc, kevinr
  • Constructor Details

    • AbstractWebScript

      public AbstractWebScript()
  • Method Details

    • init

      public void init(Container container, Description description)
      Initialise a WebScript
      Specified by:
      init in interface WebScript
      Parameters:
      container - Parent container
      description - Description of the WebScript provided by the registry
    • getContainer

      protected final Container getContainer()
      Returns:
      web script container
    • getDescription

      public final Description getDescription()
      Description copied from interface: WebScript
      Gets the Service Description
      Specified by:
      getDescription in interface WebScript
      Returns:
      the service description
    • checkModuleBundleCache

      protected ResourceBundle checkModuleBundleCache(String path)

      Attempts to retrieve a previously cached ResourceBundle for the supplied path.

      Parameters:
      path - The path to retrieve a cached bundle for.
      Returns:
      A previously cached bundle or null if it cannot be found.
    • addModuleBundleToCache

      protected void addModuleBundleToCache(String path, ResourceBundle bundle)

      Adds a new ResourceBundle into the cache mapped against the path that the bundle was found.

      Parameters:
      path - The path to map the ResourceBundle against.
      bundle - The ResourceBundle to cache.
    • getResources

      public final ResourceBundle getResources()
      Description copied from interface: WebScript
      Gets the Service Resources
      Specified by:
      getResources in interface WebScript
      Returns:
      the services resources or null if none present
    • getExecuteScript

      protected AbstractWebScript.ScriptDetails getExecuteScript(String mimetype)
      Find execute script for given request format Note: This method caches the script to request format mapping
      Parameters:
      mimetype - String
      Returns:
      execute script
    • createScriptParameters

      protected Map<String,Object> createScriptParameters(WebScriptRequest req, WebScriptResponse res, AbstractWebScript.ScriptDetails script, Map<String,Object> customParams)
      Create a model for script usage
      Parameters:
      req - web script request
      res - web script response
      script - script details
      customParams - Map<String, Object>
      Returns:
      script model
    • setURLModelFactory

      public void setURLModelFactory(URLModelFactory urlModelFactory)
      Specified by:
      setURLModelFactory in interface WebScript
    • createTemplateParameters

      protected Map<String,Object> createTemplateParameters(WebScriptRequest req, WebScriptResponse res, Map<String,Object> customParams)
      Create a model for template usage
      Parameters:
      req - web script request
      res - web script response
      customParams - Map<String, Object>
      Returns:
      template model
    • createArgs

      protected final Map<String,String> createArgs(WebScriptRequest req)
      Create a map of arguments from Web Script Request (for scripting)
      Parameters:
      req - Web Script Request
      Returns:
      argument map
    • createArgsM

      protected final Map<String,String[]> createArgsM(WebScriptRequest req)
      Create a map of (array) arguments from Web Script Request (for scripting)
      Parameters:
      req - Web Script Request
      Returns:
      argument map
    • createHeaders

      protected final Map<String,String> createHeaders(WebScriptRequest req)
      Create a map of headers from Web Script Request (for scripting)
      Parameters:
      req - Web Script Request
      Returns:
      header map
    • createHeadersM

      protected final Map<String,String[]> createHeadersM(WebScriptRequest req)
      Create a map of (array) headers from Web Script Request (for scripting)
      Parameters:
      req - Web Script Request
      Returns:
      argument map
    • renderTemplate

      protected final void renderTemplate(String templatePath, Map<String,Object> model, Writer writer)
      Render a template (identified by path)
      Parameters:
      templatePath - template path
      model - model
      writer - output writer
    • renderString

      protected final void renderString(String template, Map<String,Object> model, Writer writer)
      Render a template (contents as string)
      Parameters:
      template - the template
      model - model
      writer - output writer
    • renderString

      protected final void renderString(String template, Map<String,Object> model, Writer writer, String extension)
      Render a template (contents as string)
      Parameters:
      template - the template
      model - model
      writer - output writer
      extension - optional template extension type (i.e. ftl, php)
    • sendStatus

      protected final void sendStatus(WebScriptRequest req, WebScriptResponse res, Status status, Cache cache, String format, Map<String,Object> model) throws IOException
      Render an explicit response status template
      Parameters:
      req - web script request
      res - web script response
      status - web script status
      format - format
      model - model
      Throws:
      IOException
    • createStatusException

      protected final WebScriptException createStatusException(Throwable e, WebScriptRequest req, WebScriptResponse res)
      Create an exception whose associated message is driven from a status template and model
      Parameters:
      e - exception
      req - web script request
      res - web script response
      Returns:
      web script exception with associated template message and model
    • getStatusTemplate

      protected StatusTemplate getStatusTemplate(String scriptId, int statusCode, String format)
      Find status template Note: This method caches template search results
      Parameters:
      scriptId - String
      statusCode - int
      format - String
      Returns:
      status template (or null if not found)
    • executeScript

      protected void executeScript(ScriptContent location, Map<String,Object> model)
      Execute a script
      Parameters:
      location - script location
      model - model
    • toString

      public String toString()
      Overrides:
      toString in class Object