org.blojsom.dispatcher
Class WebMacroDispatcher

java.lang.Object
  extended byorg.blojsom.dispatcher.WebMacroDispatcher
All Implemented Interfaces:
BlojsomConstants, BlojsomDispatcher

public class WebMacroDispatcher
extends java.lang.Object
implements BlojsomDispatcher

WebMacro dispatcher

Since:
blojsom 2.28
Version:
$Id: WebMacroDispatcher.java,v 1.6 2006/01/04 16:22:22 czarneckid Exp $
Author:
David Czarnecki

Field Summary
 
Fields inherited from interface org.blojsom.util.BlojsomConstants
ADMINISTRATORS_IP, BLOG_ADMIN_URL_IP, BLOG_ADMINISTRATION_LOCALE_IP, BLOG_AUTHORIZATION_IP, BLOG_BASE_URL_IP, BLOG_BLACKLIST_FILE_IP, BLOG_COMMENTS_DIRECTORY_IP, BLOG_COMMENTS_ENABLED_IP, BLOG_COUNTRY_DEFAULT, BLOG_COUNTRY_IP, BLOG_DEFAULT_CATEGORY_EXCLUSION_MAPPING_IP, BLOG_DEFAULT_CATEGORY_MAPPING_IP, BLOG_DEFAULT_FETCHER, BLOG_DEFAULT_FILE_EXTENSION_IP, BLOG_DEFAULT_FLAVOR_IP, BLOG_DEFAULT_PROPERTIES, BLOG_DEPTH_IP, BLOG_DESCRIPTION_IP, BLOG_DIRECTORY_FILTER_IP, BLOG_EMAIL_ENABLED_IP, BLOG_ENTRIES_DISPLAY_DEFAULT, BLOG_ENTRIES_DISPLAY_IP, BLOG_ENTRY_META_DATA_EXTENSION_IP, BLOG_FILE_ENCODING_IP, BLOG_FILE_EXTENSIONS_IP, BLOG_HOME_IP, BLOG_LANGUAGE_DEFAULT, BLOG_LANGUAGE_IP, BLOG_NAME_IP, BLOG_OWNER, BLOG_OWNER_EMAIL, BLOG_PERMISSIONS_IP, BLOG_PINGBACKS_DIRECTORY_IP, BLOG_PINGBACKS_ENABLED_IP, BLOG_PROPERTIES_EXTENSIONS_IP, BLOG_TRACKBACK_DIRECTORY_IP, BLOG_TRACKBACKS_ENABLED_IP, BLOG_URL_IP, BLOJSOM_ALL_CATEGORIES, BLOJSOM_AUTHORIZATION_PROVIDER_IP, BLOJSOM_BLOG, BLOJSOM_BLOG_HOME_IP, BLOJSOM_BROADCASTER_IP, BLOJSOM_CATEGORIES, BLOJSOM_COMMENTS_ENABLED, BLOJSOM_CONFIGURATION_BASE_DIRECTORY_IP, BLOJSOM_CONFIGURATION_IP, BLOJSOM_DATE, BLOJSOM_DATE_ISO8601, BLOJSOM_DATE_OBJECT, BLOJSOM_DATE_UTC, BLOJSOM_DEFAULT_BROADCASTER, BLOJSOM_DEFAULT_CONFIGURATION_BASE_DIRECTORY, BLOJSOM_DEFAULT_RESOURCE_DIRECTORY, BLOJSOM_DEFAULT_RESOURCE_MANAGER, BLOJSOM_DEFAULT_TEMPLATES_DIRECTORY, BLOJSOM_DEFAULT_USER_IP, BLOJSOM_EMAIL_ENABLED, BLOJSOM_ENTRIES, BLOJSOM_FETCHER_IP, BLOJSOM_FLAVOR_CONFIGURATION_IP, BLOJSOM_INSTALLATION_DIRECTORY_IP, BLOJSOM_INSTALLED_LOCALES_IP, BLOJSOM_LAST_MODIFIED, BLOJSOM_LISTENER_CONFIGURATION_IP, BLOJSOM_PERMALINK, BLOJSOM_PERMALINK_NEXT_ENTRY, BLOJSOM_PERMALINK_PREVIOUS_ENTRY, BLOJSOM_PLUGIN_CHAIN, BLOJSOM_PLUGIN_CONFIGURATION_IP, BLOJSOM_PLUGINS, BLOJSOM_REQUESTED_CATEGORY, BLOJSOM_REQUESTED_FLAVOR, BLOJSOM_RESOURCE_DIRECTORY_IP, BLOJSOM_RESOURCE_MANAGER_BUNDLES_IP, BLOJSOM_RESOURCE_MANAGER_CONTEXT_KEY, BLOJSOM_RESOURCE_MANAGER_IP, BLOJSOM_SITE_URL, BLOJSOM_TEMPLATES_DIRECTORY_IP, BLOJSOM_USER, BLOJSOM_USERS_IP, BLOJSOM_VERSION, BLOJSOM_VERSION_NUMBER, CACHE_CONTROL_HTTP_HEADER, CATEGORY_PARAM, COMMENT_EXTENSION, DEFAULT_AUTHORIZATION_PROVIDER, DEFAULT_COMMENTS_DIRECTORY, DEFAULT_DIGEST_ALGORITHM, DEFAULT_DISPATCHER_CONFIGURATION_FILE, DEFAULT_ENTRY_EXTENSION, DEFAULT_FLAVOR_CONFIGURATION_FILE, DEFAULT_FLAVOR_HTML, DEFAULT_METADATA_EXTENSION, DEFAULT_PERMISSIONS_CONFIGURATION_FILE, DEFAULT_PINGBACKS_DIRECTORY, DEFAULT_PLUGIN_CONFIGURATION_FILE, DEFAULT_PROPERTIES_EXTENSIONS, DEFAULT_TRACKBACK_DIRECTORY, DESCRIPTION_KEY, DIGEST_ALGORITHM, FLAVOR_PARAM, HTTP_ETAG, HTTP_LASTMODIFIED, INFINITE_BLOG_DEPTH, ISO_8601_DATE_FORMAT, LINE_SEPARATOR, LINEAR_NAVIGATION_ENABLED_IP, MAX_HASHABLE_LENGTH, NAME_KEY, NO_CACHE_HTTP_HEADER_VALUE, OVERRIDE_LASTMODIFIED_PARAM, PAGE_PARAM, PAGE_PARAM_ARCHIVE, PERMALINK_PARAM, PINGBACK_EXTENSION, PLUGINS_PARAM, PRAGMA_HTTP_HEADER, PREFERRED_SYNDICATION_FLAVOR, RECURSIVE_CATEGORIES, REDIRECT_TO_PARAM, RFC_822_DATE_FORMAT, SHORT_ISO_8601_DATE_FORMAT, TRACKBACK_EXTENSION, USE_ENCRYPTED_PASSWORDS, UTC_DATE_FORMAT, UTF8, WHITESPACE, XMLRPC_ENABLED_IP
 
Constructor Summary
WebMacroDispatcher()
          Construct a new instance of the WebMacro dispatcher
 
Method Summary
 void dispatch(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, BlogUser user, java.util.Map context, java.lang.String flavorTemplate, java.lang.String flavorContentType)
          Dispatch a request and response.
protected  java.lang.String getWebMacroGlobalTemplatePath()
          Return a path appropriate for the WebMacro file resource loader
protected  java.lang.String getWebMacroTemplatePathForBlog(java.lang.String blogID)
          Return a path appropriate for the WebMacro file resource loader for a given blog
 void init(javax.servlet.ServletConfig servletConfig, BlojsomConfiguration blojsomConfiguration)
          Initialization method for blojsom dispatchers
protected  void populateWebMacroContext(javax.servlet.http.HttpServletRequest httpServletRequest, java.util.Map context)
          Populate the WebMacro context with the request and session attributes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WebMacroDispatcher

public WebMacroDispatcher()
Construct a new instance of the WebMacro dispatcher

Method Detail

init

public void init(javax.servlet.ServletConfig servletConfig,
                 BlojsomConfiguration blojsomConfiguration)
          throws BlojsomException
Initialization method for blojsom dispatchers

Specified by:
init in interface BlojsomDispatcher
Parameters:
servletConfig - ServletConfig for obtaining any initialization parameters
blojsomConfiguration - BlojsomConfiguration for blojsom-specific configuration information
Throws:
BlojsomException - If there is an error initializing the dispatcher

getWebMacroTemplatePathForBlog

protected java.lang.String getWebMacroTemplatePathForBlog(java.lang.String blogID)
Return a path appropriate for the WebMacro file resource loader for a given blog

Parameters:
blogID - Blog ID
Returns:
blojsom installation directory + base configuration directory + Blog ID + templates directory

getWebMacroGlobalTemplatePath

protected java.lang.String getWebMacroGlobalTemplatePath()
Return a path appropriate for the WebMacro file resource loader

Returns:
blojsom installation directory + base configuration directory + templates directory

populateWebMacroContext

protected void populateWebMacroContext(javax.servlet.http.HttpServletRequest httpServletRequest,
                                       java.util.Map context)
Populate the WebMacro context with the request and session attributes

Parameters:
httpServletRequest - Request
context - Context

dispatch

public void dispatch(javax.servlet.http.HttpServletRequest httpServletRequest,
                     javax.servlet.http.HttpServletResponse httpServletResponse,
                     BlogUser user,
                     java.util.Map context,
                     java.lang.String flavorTemplate,
                     java.lang.String flavorContentType)
              throws java.io.IOException,
                     javax.servlet.ServletException
Dispatch a request and response. A context map is provided for the BlojsomServlet to pass any required information for use by the dispatcher. The dispatcher is also provided with the template for the requested flavor along with the content type for the specific flavor.

Specified by:
dispatch in interface BlojsomDispatcher
Parameters:
httpServletRequest - Request
httpServletResponse - Response
user - BlogUser instance
context - Context map
flavorTemplate - Template to dispatch to for the requested flavor
flavorContentType - Content type for the requested flavor
Throws:
java.io.IOException - If there is an exception during IO
javax.servlet.ServletException - If there is an exception in dispatching the request