    All Packages  Class Hierarchy  This Package  Previous  Next  Index

# Class w3c.jigsaw.resources.FilteredResource

    java.lang.Object
       |
       +----w3c.jigsaw.resources.AttributeHolder
               |
               +----w3c.jigsaw.resources.Resource
                       |
                       +----w3c.jigsaw.resources.HTTPResource
                               |
                               +----w3c.jigsaw.resources.FilteredResource

public class FilteredResource
extends HTTPResource

Filtered resources. A filtered resource is a resource that can be filtered through any filters. Filters are trigered at three points during request processing:

- During the lookup, so that they have a chance to check any access rights,
- Before the request is actually processed by its target resource,
- And optionally, after the request has been processed (depending on the return value of the second stage.).

See Also:
  ResourceFilter

##

filters
  Our list of filters.

##

FilteredResource()

##

definesAttribute(int)
  Does this resource or one of its filters define the given attribute.
getClone(Object[])
  Clone this filtered resource.
getFilters()
  Get our whole list of filters.
getFilters(Class, ResourceFilter[])
  Get the list of filters of this class.
getValue(int, Object)
  Filters can supply part of the attributes value for a resource.
lookup(LookupState, LookupResult)
  Register our filters, if any in the lookup result object.
pickle(DataOutputStream)
  Pickle a filtered resource.
registerFilter(ResourceFilter, Hashtable)
  Register a new filter to this resource.
unpickleInstance(DataInputStream, Hashtable)
  Unpickle a filtered resource.
unregisterFilter(ResourceFilter)
  Unregister a filter to this target.

##

filters

      protected ResourceFilter filters[]

  Our list of filters.

##

FilteredResource

      public FilteredResource()

##

getClone

      public synchronized Object getClone(Object values[])

  Clone this filtered resource. The filters that are plugged on the resource get cloned too.
  Overrides:
    getClone in class AttributeHolder

getFilters

      public synchronized ResourceFilter[] getFilters()

  Get our whole list of filters.

getFilters

      public synchronized int getFilters(Class cls,
                                         ResourceFilter into[])

  Get the list of filters of this class.
  Parameters:
    cls - The class of filters requested.
    into - The array of resource filters to save found filters.
  Returns:
    The number of filters found.

registerFilter

      public synchronized void registerFilter(ResourceFilter filter,
                                              Hashtable defs)

  Register a new filter to this resource. This method register a new filter to the this filtered resource. The provided filter should be an uninitialized ResourceFilter instance.
  Parameters:
    The - uninitialized filter.

unregisterFilter

      public synchronized void unregisterFilter(ResourceFilter filter)

  Unregister a filter to this target.
  Parameters:
    filter - The filter to unregister.

definesAttribute

      public synchronized boolean definesAttribute(int idx) throws IllegalAttributeAccess

  Does this resource or one of its filters define the given attribute.
  Parameters:
    idx - The attribute index.
  Returns:
    A boolean true if attribute is defined.
  Overrides:
    definesAttribute in class AttributeHolder

getValue

      public synchronized Object getValue(int idx,
                                          Object def) throws IllegalAttributeAccess

  Filters can supply part of the attributes value for a resource. This method lookup the current resource for an attribute value, and than examine all its filters, to look for a filter-supplied value.
  Parameters:
    idx - The index of the queried attribute.
    def - The default return value.
  Returns:
    The attribute value, or the provided default value if undef.
  Overrides:
    getValue in class AttributeHolder

lookup

      public boolean lookup(LookupState ls,
                            LookupResult lr) throws HTTPException

  Register our filters, if any in the lookup result object. Sub-classes of the FilteredResource class should either register their filters themselves, or call their super method. The latest way is prefered, of course.
  Parameters:
    ls - The current lookup state.
    lr - The lookup result, being constructed.
  Returns:
    A boolean, true if lookup has found a terminal node, false otherwise. In the latter case, the caller should make sure to continue the lookup process.
  Throws: HTTPException
    If something went wrong.
  Overrides:
    lookup in class HTTPResource

pickle

      public synchronized void pickle(DataOutputStream out) throws IOException

  Pickle a filtered resource. Pickle the resource itself, along with its associated filters.
  Parameters:
    out - The data output stream to pickle to.
  Overrides:
    pickle in class AttributeHolder

unpickleInstance

      public AttributeHolder unpickleInstance(DataInputStream in,
                                              Hashtable defs) throws IOException

  Unpickle a filtered resource.
  Parameters:
    in - The input stream to unpickle from.
    defs - The default attributes for the unpickled resource.
  Overrides:
    unpickleInstance in class AttributeHolder

    All Packages  Class Hierarchy  This Package  Previous  Next  Index