org.apache.velocity.tools.view
Class ViewToolManager

java.lang.Object
  extended by org.apache.velocity.tools.ToolManager
      extended by org.apache.velocity.tools.view.ViewToolManager
Direct Known Subclasses:
VelocityView

public class ViewToolManager
extends ToolManager

Manages tools for web applications. This simplifies the process of getting a tool-populated Velocity context for merging with templates. It allows for both direct configuration by passing in a FactoryConfiguration or having one in the ServletContext attributes under ServletUtils.CONFIGURATION_KEY, as well as configuration via a tools.xml or tools.properties file in either the classpath or the local file system.

Version:
$Id: ToolManager.java 511959 2007-02-26 19:24:39Z nbubna $
Author:
Nathan Bubna

Field Summary
private  boolean appToolsPublished
           
static java.lang.String CREATE_SESSION_PROPERTY
           
private  boolean createSession
           
static java.lang.String DEFAULT_TOOLBOX_KEY
           
static java.lang.String PUBLISH_TOOLBOXES_PROPERTY
           
private  boolean publishToolboxes
           
protected  javax.servlet.ServletContext servletContext
           
private  java.lang.String toolboxKey
           
 
Fields inherited from class org.apache.velocity.tools.ToolManager
factory, velocity
 
Constructor Summary
ViewToolManager(javax.servlet.ServletContext app)
          Constructs an instance already configured to use the ConfigurationUtils.getAutoLoaded()() configuration and any configuration specified via a "org.apache.velocity.tools" system property.
ViewToolManager(javax.servlet.ServletContext app, boolean includeDefaults)
           
ViewToolManager(javax.servlet.ServletContext app, boolean autoConfig, boolean includeDefaults)
           
 
Method Summary
protected  void addToolboxes(ToolContext context)
           
 void autoConfigure(boolean includeDefaults)
           
 void configure(FactoryConfiguration config)
           
 ViewToolContext createContext(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
           
 ToolContext createContext(java.util.Map<java.lang.String,java.lang.Object> toolProps)
           
protected  FactoryConfiguration findConfig(java.lang.String path)
           
 boolean getCreateSession()
           
 boolean getPublishToolboxes()
           
protected  Toolbox getSessionToolbox()
           
 java.lang.String getToolboxKey()
           
protected  boolean hasSessionTools()
           
 void prepareContext(ViewToolContext context, javax.servlet.http.HttpServletRequest request)
           
private  void publishToolbox(javax.servlet.ServletRequest request)
           
 void publishToolboxes(javax.servlet.http.HttpServletRequest request)
          Places the Scope.REQUEST Toolbox (if any) into the HttpServletRequest attributes using Toolbox.KEY as the key, places the Scope.SESSION Toolbox (if any) into the attributes of the HttpSession (if any) then ensures that the Scope.APPLICATION Toolbox (if any) has been placed in the ServletContext attributes.
 void publishToolboxes(javax.servlet.ServletRequest request)
          Places the Scope.REQUEST Toolbox (if any) into the ServletRequest attributes using Toolbox.KEY as the key.
 void setCreateSession(boolean create)
          Sets whether or not a new HttpSession should be created when there are session scoped tools to be stored in the session, but no session has been created yet.
 void setPublishToolboxes(boolean publish)
          Sets whether or not the creation of a new ViewToolContext should make the various scoped Toolbox instances available publically via the HttpServletRequest/HttpSession/ServletContext attributes or simply add the Toolbox instances directly to the context.
 void setToolboxKey(java.lang.String key)
          Sets a new attribute key to be used for publishing each Toolbox.
protected  void unpublishApplicationTools()
          Removes any published Scope.APPLICATION Toolbox.
protected  void updateGlobalProperties()
          Checks the internal ToolboxFactory for any changes to the createSession or publishToolboxes settings.
 
Methods inherited from class org.apache.velocity.tools.ToolManager
configure, createContext, createToolbox, debug, getApplicationToolbox, getLog, getRequestToolbox, getToolboxFactory, getUserCanOverwriteTools, getVelocityEngine, hasApplicationTools, hasRequestTools, hasTools, prepareContext, setToolboxFactory, setUserCanOverwriteTools, setVelocityEngine
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CREATE_SESSION_PROPERTY

public static final java.lang.String CREATE_SESSION_PROPERTY
See Also:
Constant Field Values

PUBLISH_TOOLBOXES_PROPERTY

public static final java.lang.String PUBLISH_TOOLBOXES_PROPERTY
See Also:
Constant Field Values

DEFAULT_TOOLBOX_KEY

public static final java.lang.String DEFAULT_TOOLBOX_KEY

servletContext

protected javax.servlet.ServletContext servletContext

createSession

private boolean createSession

publishToolboxes

private boolean publishToolboxes

appToolsPublished

private boolean appToolsPublished

toolboxKey

private java.lang.String toolboxKey
Constructor Detail

ViewToolManager

public ViewToolManager(javax.servlet.ServletContext app)
Constructs an instance already configured to use the ConfigurationUtils.getAutoLoaded()() configuration and any configuration specified via a "org.apache.velocity.tools" system property.


ViewToolManager

public ViewToolManager(javax.servlet.ServletContext app,
                       boolean includeDefaults)

ViewToolManager

public ViewToolManager(javax.servlet.ServletContext app,
                       boolean autoConfig,
                       boolean includeDefaults)
Method Detail

autoConfigure

public void autoConfigure(boolean includeDefaults)
Overrides:
autoConfigure in class ToolManager

setPublishToolboxes

public void setPublishToolboxes(boolean publish)
Sets whether or not the creation of a new ViewToolContext should make the various scoped Toolbox instances available publically via the HttpServletRequest/HttpSession/ServletContext attributes or simply add the Toolbox instances directly to the context. It is important to note that if this is set to false, session-scoped tools will NOT be stored in the session, but instead be recreated for each request.

See Also:
publishToolboxes, setToolboxKey(java.lang.String)

getPublishToolboxes

public boolean getPublishToolboxes()

setToolboxKey

public void setToolboxKey(java.lang.String key)
Sets a new attribute key to be used for publishing each Toolbox.

See Also:
setPublishToolboxes(boolean), publishToolboxes

getToolboxKey

public java.lang.String getToolboxKey()

setCreateSession

public void setCreateSession(boolean create)
Sets whether or not a new HttpSession should be created when there are session scoped tools to be stored in the session, but no session has been created yet.

See Also:
publishToolboxes

getCreateSession

public boolean getCreateSession()

updateGlobalProperties

protected void updateGlobalProperties()
Checks the internal ToolboxFactory for any changes to the createSession or publishToolboxes settings.


unpublishApplicationTools

protected void unpublishApplicationTools()
Removes any published Scope.APPLICATION Toolbox.


configure

public void configure(FactoryConfiguration config)
Overrides:
configure in class ToolManager

findConfig

protected FactoryConfiguration findConfig(java.lang.String path)
Overrides:
findConfig in class ToolManager

addToolboxes

protected void addToolboxes(ToolContext context)
Overrides:
addToolboxes in class ToolManager

createContext

public ToolContext createContext(java.util.Map<java.lang.String,java.lang.Object> toolProps)
Overrides:
createContext in class ToolManager

createContext

public ViewToolContext createContext(javax.servlet.http.HttpServletRequest request,
                                     javax.servlet.http.HttpServletResponse response)

prepareContext

public void prepareContext(ViewToolContext context,
                           javax.servlet.http.HttpServletRequest request)

hasSessionTools

protected boolean hasSessionTools()

getSessionToolbox

protected Toolbox getSessionToolbox()

publishToolboxes

public void publishToolboxes(javax.servlet.ServletRequest request)
Places the Scope.REQUEST Toolbox (if any) into the ServletRequest attributes using Toolbox.KEY as the key.


publishToolbox

private void publishToolbox(javax.servlet.ServletRequest request)

publishToolboxes

public void publishToolboxes(javax.servlet.http.HttpServletRequest request)
Places the Scope.REQUEST Toolbox (if any) into the HttpServletRequest attributes using Toolbox.KEY as the key, places the Scope.SESSION Toolbox (if any) into the attributes of the HttpSession (if any) then ensures that the Scope.APPLICATION Toolbox (if any) has been placed in the ServletContext attributes.



Copyright (c) 2003-2007 Apache Software Foundation