org.w3c.tools.resources
Class ResourceFilter

java.lang.Object
  extended by org.w3c.tools.resources.AttributeHolder
      extended by org.w3c.tools.resources.Resource
          extended by org.w3c.tools.resources.FramedResource
              extended by org.w3c.tools.resources.ResourceFrame
                  extended by org.w3c.tools.resources.ResourceFilter
All Implemented Interfaces:
java.lang.Cloneable, java.util.EventListener, AttributeChangedListener, FrameEventListener, FilterInterface
Direct Known Subclasses:
AccessLimitFilter, AclFilter, AuthFilter, CacheFilter, CookieFilter, CounterFilter, DebugFilter, ErrorFilter, GZIPFilter, HeaderFilter, HourLimiterFilter, LogFilter, NoCacheFilter, PICSFilter, ProcessFilter, PutFilter, PutSizeFilter, RegexRedirectFilter, RequestedHeaderFilter, ResourceStateFilter, SimpleCacheFilter, SimpleGrepFilter, TEFilter, TidyPutFilter, URISizeLimiterFilter, UseProxyFilter

public class ResourceFilter
extends ResourceFrame
implements FilterInterface


Field Summary
 
Fields inherited from class org.w3c.tools.resources.ResourceFrame
filterClass, frameListener, resource
 
Fields inherited from class org.w3c.tools.resources.FramedResource
ATTR_OID, attrListener, debugEvent, event_disabled, framesRef, structListener
 
Fields inherited from class org.w3c.tools.resources.Resource
ATTR_CONTEXT, ATTR_HELP_URL, ATTR_IDENTIFIER, ATTR_LAST_MODIFIED, ATTR_PARENT, ATTR_RESOURCE_FRAMES, ATTR_STORE_ENTRY, ATTR_URL, co, id
 
Fields inherited from class org.w3c.tools.resources.AttributeHolder
attributes, values
 
Constructor Summary
ResourceFilter()
           
 
Method Summary
 ReplyInterface exceptionFilter(RequestInterface request, ProtocolException ex, FilterInterface[] filters, int i)
           
 Resource getTargetResource()
          Get our target resource.
 ReplyInterface ingoingFilter(RequestInterface request)
          Simplified ingoingFilter API.
 ReplyInterface ingoingFilter(RequestInterface request, FilterInterface[] filters, int i)
          The ingoingFilter method.
 void initialize(java.util.Hashtable defs)
          Initialization method for attribute holders.
 boolean lookup(LookupState ls, LookupResult lr)
          Lookup time filtering.
 ReplyInterface outgoingFilter(RequestInterface request, ReplyInterface reply)
          Simplified API to the outgoing filter metho.
 ReplyInterface outgoingFilter(RequestInterface request, ReplyInterface reply, FilterInterface[] filters, int fidx)
          The outgoingFilter method.
 java.io.OutputStream outputFilter(RequestInterface request, ReplyInterface reply, java.io.OutputStream output)
           
 void pickleValues(java.util.Hashtable defs)
          Set the values.
 
Methods inherited from class org.w3c.tools.resources.ResourceFrame
addFrameEventListener, attributeChanged, checkRequest, eventDisabled, fireFrameEvent, frameModified, getFilters, getFilters, getFrameReference, getResource, getResourceReference, getSpaceEntry, getURLPath, lookupFilters, lookupFrames, perform, postFrameEvent, processEvent, registerResource, removeFrameEventListener, setValue, unregisterResource, updateDefaultChildAttributes
 
Methods inherited from class org.w3c.tools.resources.FramedResource
addAttributeChangedListener, addStructureChangedListener, collectFramesReference, delete, disableEvent, displayEvent, enableEvent, fireAttributeChangeEvent, fireStructureChangedEvent, fireStructureChangedEvent, frameAdded, frameRemoved, getClone, getFrame, getFrame, getFrameReference, getFrameReference, getFramesReference, getOid, initialize, markModified, notifyUnload, performFrames, postAttributeChangeEvent, postEvent, postStructureChangedEvent, postStructureChangedEvent, registerFrame, registerFrameIfNone, removeAttributeChangedListener, removeStructureChangedListener, setSilentValue, setSilentValue, unregisterFrame
 
Methods inherited from class org.w3c.tools.resources.Resource
acceptUnload, checkMultipleLock, collectFrames, getContext, getFrame, getFrames, getHelpURL, getHelpURL, getIdentifier, getLastModified, getParent, getServer, getSpace, getStoreEntry, getValue, getValue, isInitialized, isUnloaded, setContext, setContext, setValue, unsafeGetContext, unsafeGetFrame, unsafeGetFrames, unsafeGetIdentifier, unsafeGetResourceReference, unsafeGetURLPath, unsafeGetValue, updateAttributes
 
Methods inherited from class org.w3c.tools.resources.AttributeHolder
definesAttribute, definesAttribute, getAttributes, getBoolean, getChar, getClone, getClone, getDouble, getFloat, getInt, getLong, getString, getValue, lookupAttribute, print, setBoolean, setChar, setDouble, setFloat, setInt, setLong, setString, setValue, unsafeDefinesAttribute, unsafeGetDouble, unsafeGetString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResourceFilter

public ResourceFilter()
Method Detail

getTargetResource

public Resource getTargetResource()
Get our target resource.


lookup

public boolean lookup(LookupState ls,
                      LookupResult lr)
               throws ProtocolException
Lookup time filtering. This method is called while Jigsaw performs resource lookup. Each time a lookup end up on the target resource of that filter, this method will be called.

Specified by:
lookup in interface FilterInterface
Overrides:
lookup in class ResourceFrame
Parameters:
ls - The current lookup state.
lr - The current lookup result.
Returns:
A boolean, true if this filter has performed the whole lookup, and side-effect the lookup result appropriatelly, false otherwise.
Throws:
ProtocolException - If processing should be interrupted, because an abnormal situation occured.

ingoingFilter

public ReplyInterface ingoingFilter(RequestInterface request)
                             throws ProtocolException
Simplified ingoingFilter API. This is a default, simplified API to the ingoing filter method.

Parameters:
request - The request to filter.
Returns:
A Reply instance, or null if processing should continue normally.
Throws:
ProtocolException - If processing should be interrupted, because an abnormal situation occured.

ingoingFilter

public ReplyInterface ingoingFilter(RequestInterface request,
                                    FilterInterface[] filters,
                                    int i)
                             throws ProtocolException
The ingoingFilter method. This is the method that really gets called by Jigsaw core. By default it will invoke the simpler ingoingFilter method, taking only the request has a parameter.

Specified by:
ingoingFilter in interface FilterInterface
Parameters:
request - The request that is about to be handled.
filters - The whole filter list to be applied to the resource.
i - A pointer into the above array, indicating which filters have already been triggered (the one whose index are lower than i), and what filters have to be triggered (the one whose index are greater or equal to i+1).
Returns:
A Reply instance, if the filter did know how to answer the request without further processing, null otherwise.
Throws:
ProtocolException - If processing should be interrupted, because an abnormal situation occured.

outgoingFilter

public ReplyInterface outgoingFilter(RequestInterface request,
                                     ReplyInterface reply)
                              throws ProtocolException
Simplified API to the outgoing filter metho. This is a simplified API to the ougoing filter method, you can either overide this method, or the more powerfull one.

Parameters:
request - The original request.
reply - It's original reply.
Returns:
A Reply instance, or null if processing should continue normally.
Throws:
ProtocolException - If processing should be interrupted, because an abnormal situation occured.

exceptionFilter

public ReplyInterface exceptionFilter(RequestInterface request,
                                      ProtocolException ex,
                                      FilterInterface[] filters,
                                      int i)
Specified by:
exceptionFilter in interface FilterInterface
Parameters:
request - The request being processed.
ex - The exception that occured during processing the request. and which has already been processed by the first filters.
filters - The whole array of filters to be applied before actually continuing the process.
i - The index in the above array of the filter being called.

outgoingFilter

public ReplyInterface outgoingFilter(RequestInterface request,
                                     ReplyInterface reply,
                                     FilterInterface[] filters,
                                     int fidx)
                              throws ProtocolException
The outgoingFilter method. This method is the one that gets called by Jigsaw core. By default it will call the simpler outgoingFilter method that takes only the request and the reply as parameters.

Specified by:
outgoingFilter in interface FilterInterface
Parameters:
request - The request that has been processed.
reply - The original reply as emitted by the resource.
filters - The whole filter that applies to the resource.
i - The current index of filters. The i filter is ourself, filters with lower indexes have already been applied, and filters with greater indexes are still to be applied.
Returns:
A Reply instance, if that filter know how to complete the request processing, or null if reminaing filters are to be called by Jigsaw engine.
Throws:
ProtocolException - If processing should be interrupted, because an abnormal situation occured.

outputFilter

public java.io.OutputStream outputFilter(RequestInterface request,
                                         ReplyInterface reply,
                                         java.io.OutputStream output)
Specified by:
outputFilter in interface FilterInterface

pickleValues

public void pickleValues(java.util.Hashtable defs)
Set the values. (MUST be called before initialize).

Overrides:
pickleValues in class Resource
Parameters:
defs - The Hashtable containing the values.

initialize

public void initialize(java.util.Hashtable defs)
Initialization method for attribute holders. This method allows to initialize an attribute holder by providing its attributes values through a Hashtable mapping attribute names to attribute values.

Overrides:
initialize in class Resource
Parameters:
defs - The Hashtable containing the default values.