## org.w3c.tools.resources
Class ResourceFilter

    java.lang.Object
      |
      +--org.w3c.tools.resources.AttributeHolder
            |
            +--org.w3c.tools.resources.Resource
                  |
                  +--org.w3c.tools.resources.FramedResource
                        |
                        +--org.w3c.tools.resources.ResourceFrame
                              |
                              +--org.w3c.tools.resources.ResourceFilter

Direct Known Subclasses:
  AccessLimitFilter, AclFilter, AuthFilter, CacheFilter, CookieFilter, CounterFilter, DebugFilter, ErrorFilter, GZIPFilter, HeaderFilter, HourLimiterFilter, LogFilter, NoCacheFilter, PICSFilter, ProcessFilter, PutFilter, PutSizeFilter, RegexRedirectFilter, ResourceStateFilter, SimpleCacheFilter, SimpleGrepFilter, TEFilter, TidyPutFilter, URISizeLimiterFilter, UseProxyFilter

public class ResourceFilter
extends ResourceFrame
implements FilterInterface

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, unsafeGetIdentifier, 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, 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
  Tags copied from 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.
    `fidx` - 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.