jrun.servlet
Class FilterManager

java.lang.Object
  |
  +--jrun.servlet.FilterManager

public class FilterManager
extends java.lang.Object

Manages filter objects and filter chains.

FilterManager instances are created via a factory method, create(), which will return a FilterManager for the current webapp filters or null indicating that there are no filters to be managed.

Author:
Karl Moss

Field Summary
protected  WebAppSecurity appSecurity
           
protected  javax.servlet.ServletContext context
           
protected  int count
           
protected  java.util.Vector filterChains
           
protected  java.util.Vector filterMappings
           
protected  java.util.Hashtable filterObjects
           
protected  java.lang.ClassLoader loader
           
protected  Logger logger
           
static int MASK_BUCKET_SIZE
           
protected  WebAppMetaData webAppMetaData
           
 
Constructor Summary
protected FilterManager(javax.servlet.ServletContext context, Logger logger, java.lang.ClassLoader loader)
           
 
Method Summary
protected  void clearChainCache()
           
 int count()
          Returns the number of Filter objects under the control of this FilterManager
static FilterManager create(javax.servlet.ServletContext context, WebAppMetaData metadata, WebAppSecurity appSecurity, Logger logger, java.lang.ClassLoader loader)
          Factory method for creating a FilterManager object.
protected  void createMapping(java.lang.String map, int mapType, FilterObject fo)
           
 void destroy()
          Destroys all filter chains and filters
protected  void destroyFilters()
           
 jrun.servlet.Servlet getFilterChain(jrun.servlet.Servlet servlet, javax.servlet.http.HttpServletRequest request)
          Gets the filter chain for the request
protected  void init(WebAppMetaData metadata, WebAppSecurity appSecurity)
           
protected  FilterObject loadFilter(java.lang.String name, java.lang.String className, FilterMetaData filterMetadata)
           
 void reload(java.lang.ClassLoader loader)
          Reloads the current filters.
protected  long setMask(long shortMask, java.util.BitSet longMask, int index)
          Sets the bit on for the given index.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected Logger logger

loader

protected java.lang.ClassLoader loader

context

protected javax.servlet.ServletContext context

webAppMetaData

protected WebAppMetaData webAppMetaData

appSecurity

protected WebAppSecurity appSecurity

filterObjects

protected java.util.Hashtable filterObjects

filterMappings

protected java.util.Vector filterMappings

count

protected int count

MASK_BUCKET_SIZE

public static final int MASK_BUCKET_SIZE

filterChains

protected java.util.Vector filterChains
Constructor Detail

FilterManager

protected FilterManager(javax.servlet.ServletContext context,
                        Logger logger,
                        java.lang.ClassLoader loader)
Method Detail

create

public static FilterManager create(javax.servlet.ServletContext context,
                                   WebAppMetaData metadata,
                                   WebAppSecurity appSecurity,
                                   Logger logger,
                                   java.lang.ClassLoader loader)

Factory method for creating a FilterManager object. If there are no filters for the current webapp this method will return null so that the servlet engine can optimize the call stack.

Parameters:
context - The servlet context ` * @param metadata The WebAppMetaData as read from web.xml
appSecurity - WebAppSecurity to get SecurityFilters from
logger - The logger
loader - The class loader to use

count

public int count()
Returns the number of Filter objects under the control of this FilterManager

init

protected void init(WebAppMetaData metadata,
                    WebAppSecurity appSecurity)

createMapping

protected void createMapping(java.lang.String map,
                             int mapType,
                             FilterObject fo)

loadFilter

protected FilterObject loadFilter(java.lang.String name,
                                  java.lang.String className,
                                  FilterMetaData filterMetadata)

getFilterChain

public jrun.servlet.Servlet getFilterChain(jrun.servlet.Servlet servlet,
                                           javax.servlet.http.HttpServletRequest request)
Gets the filter chain for the request
Parameters:
servlet - The servlet to invoke
request - The request
Returns:
The servlet to invoke which may be a wrapped filter chain

setMask

protected long setMask(long shortMask,
                       java.util.BitSet longMask,
                       int index)
Sets the bit on for the given index.

reload

public void reload(java.lang.ClassLoader loader)
Reloads the current filters. This may happen, for example, if the class loader changes
Parameters:
loader - The new class loader to use

destroy

public void destroy()
Destroys all filter chains and filters

clearChainCache

protected void clearChainCache()

destroyFilters

protected void destroyFilters()


Copyright � 2002 Macromedia Corporation. All Rights Reserved.