Class AbstractWebScript

  • All Implemented Interfaces:
    WebScript
    Direct Known Subclasses:
    DeclarativeWebScript

    public abstract class AbstractWebScript
    extends java.lang.Object
    implements WebScript
    Abstract implementation of a Web Script
    Author:
    davidc, kevinr
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected static class  AbstractWebScript.ScriptDetails
      The combination of a ScriptContent and a request MIME type.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addModuleBundleToCache​(java.lang.String path, java.util.ResourceBundle bundle)
      Adds a new ResourceBundle into the cache mapped against the path that the bundle was found.
      protected java.util.ResourceBundle checkModuleBundleCache​(java.lang.String path)
      Attempts to retrieve a previously cached ResourceBundle for the supplied path.
      protected java.util.Map<java.lang.String,​java.lang.String> createArgs​(WebScriptRequest req)
      Create a map of arguments from Web Script Request (for scripting)
      protected java.util.Map<java.lang.String,​java.lang.String[]> createArgsM​(WebScriptRequest req)
      Create a map of (array) arguments from Web Script Request (for scripting)
      protected java.util.Map<java.lang.String,​java.lang.String> createHeaders​(WebScriptRequest req)
      Create a map of headers from Web Script Request (for scripting)
      protected java.util.Map<java.lang.String,​java.lang.String[]> createHeadersM​(WebScriptRequest req)
      Create a map of (array) headers from Web Script Request (for scripting)
      protected java.util.Map<java.lang.String,​java.lang.Object> createScriptParameters​(WebScriptRequest req, WebScriptResponse res, AbstractWebScript.ScriptDetails script, java.util.Map<java.lang.String,​java.lang.Object> customParams)
      Create a model for script usage
      protected WebScriptException createStatusException​(java.lang.Throwable e, WebScriptRequest req, WebScriptResponse res)
      Create an exception whose associated message is driven from a status template and model
      protected java.util.Map<java.lang.String,​java.lang.Object> createTemplateParameters​(WebScriptRequest req, WebScriptResponse res, java.util.Map<java.lang.String,​java.lang.Object> customParams)
      Create a model for template usage
      protected void executeScript​(ScriptContent location, java.util.Map<java.lang.String,​java.lang.Object> model)
      Execute a script
      protected Container getContainer()  
      Description getDescription()
      Gets the Service Description
      protected AbstractWebScript.ScriptDetails getExecuteScript​(java.lang.String mimetype)
      Find execute script for given request format Note: This method caches the script to request format mapping
      java.util.ResourceBundle getResources()
      Gets the Service Resources
      protected StatusTemplate getStatusTemplate​(java.lang.String scriptId, int statusCode, java.lang.String format)
      Find status template Note: This method caches template search results
      void init​(Container container, Description description)
      Initialise a WebScript
      protected void renderString​(java.lang.String template, java.util.Map<java.lang.String,​java.lang.Object> model, java.io.Writer writer)
      Render a template (contents as string)
      protected void renderString​(java.lang.String template, java.util.Map<java.lang.String,​java.lang.Object> model, java.io.Writer writer, java.lang.String extension)
      Render a template (contents as string)
      protected void renderTemplate​(java.lang.String templatePath, java.util.Map<java.lang.String,​java.lang.Object> model, java.io.Writer writer)
      Render a template (identified by path)
      protected void sendStatus​(WebScriptRequest req, WebScriptResponse res, Status status, Cache cache, java.lang.String format, java.util.Map<java.lang.String,​java.lang.Object> model)
      Render an explicit response status template
      void setURLModelFactory​(URLModelFactory urlModelFactory)  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.springframework.extensions.webscripts.WebScript

        execute
    • Constructor Detail

      • AbstractWebScript

        public AbstractWebScript()
    • Method Detail

      • 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 java.util.ResourceBundle checkModuleBundleCache​(java.lang.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​(java.lang.String path,
                                              java.util.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 java.util.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​(java.lang.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 java.util.Map<java.lang.String,​java.lang.Object> createScriptParameters​(WebScriptRequest req,
                                                                                                WebScriptResponse res,
                                                                                                AbstractWebScript.ScriptDetails script,
                                                                                                java.util.Map<java.lang.String,​java.lang.Object> customParams)
        Create a model for script usage
        Parameters:
        req - web script request
        res - web script response
        script - script details
        customParams - Map
        Returns:
        script model
      • createTemplateParameters

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

        protected final java.util.Map<java.lang.String,​java.lang.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 java.util.Map<java.lang.String,​java.lang.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 java.util.Map<java.lang.String,​java.lang.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 java.util.Map<java.lang.String,​java.lang.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​(java.lang.String templatePath,
                                            java.util.Map<java.lang.String,​java.lang.Object> model,
                                            java.io.Writer writer)
        Render a template (identified by path)
        Parameters:
        templatePath - template path
        model - model
        writer - output writer
      • renderString

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

        protected final void renderString​(java.lang.String template,
                                          java.util.Map<java.lang.String,​java.lang.Object> model,
                                          java.io.Writer writer,
                                          java.lang.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,
                                        java.lang.String format,
                                        java.util.Map<java.lang.String,​java.lang.Object> model)
                                 throws java.io.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:
        java.io.IOException
      • createStatusException

        protected final WebScriptException createStatusException​(java.lang.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​(java.lang.String scriptId,
                                                   int statusCode,
                                                   java.lang.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,
                                     java.util.Map<java.lang.String,​java.lang.Object> model)
        Execute a script
        Parameters:
        location - script location
        model - model
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object