org.w3c.jigsaw.filters
Class ErrorFilter

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
                      extended by org.w3c.jigsaw.filters.ErrorFilter
All Implemented Interfaces:
java.lang.Cloneable, java.util.EventListener, AttributeChangedListener, FrameEventListener, FilterInterface

public class ErrorFilter
extends ResourceFilter

The ErroFilter class allows you to customize and enhance error messages. This filter will catch all errors on their way back to the client, and use internal requests to provide a nice customizable error message.

You can use any resources (including server side includes, content negotiated resources, etc) to deliver error messages.


Field Summary
protected static int ATTR_BASEURL
          Attribute index - The base URL for error messages.
protected static int ATTR_EXTENSION
          Attribute index - The common extension for error messages (can be null).
protected static java.lang.String ERRED
          A request state, to avoid looping on errors about errors.
 
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
ErrorFilter()
           
 
Method Summary
 ReplyInterface exceptionFilter(RequestInterface request, ProtocolException ex, FilterInterface[] filters, int idx)
          We do catch exceptions, just in case we can customize the error.
 java.lang.String getBaseURL()
          Get the base URL describing the error directory.
 java.lang.String getErrorResource(int status)
          Compute the path for the given status code.
 java.lang.String getExtension()
          Get the value of the extension attribute.
 ReplyInterface ingoingFilter(RequestInterface request)
          This one just makes sure the outgoing filter gets called.
 void initialize(java.lang.Object[] values)
          Initialize the frames of that framed resource.
 ReplyInterface outgoingFilter(RequestInterface req, ReplyInterface rep)
          Re-compute error message.
 
Methods inherited from class org.w3c.tools.resources.ResourceFilter
getTargetResource, ingoingFilter, initialize, lookup, outgoingFilter, outputFilter, pickleValues
 
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, 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
 

Field Detail

ERRED

protected static final java.lang.String ERRED
A request state, to avoid looping on errors about errors.

See Also:
Constant Field Values

ATTR_BASEURL

protected static int ATTR_BASEURL
Attribute index - The base URL for error messages.


ATTR_EXTENSION

protected static int ATTR_EXTENSION
Attribute index - The common extension for error messages (can be null).

Constructor Detail

ErrorFilter

public ErrorFilter()
Method Detail

getBaseURL

public java.lang.String getBaseURL()
Get the base URL describing the error directory.

Returns:
The base URL.

getExtension

public java.lang.String getExtension()
Get the value of the extension attribute.

Returns:
A String, for the common extension to error messages, or null if undefined.

getErrorResource

public java.lang.String getErrorResource(int status)
Compute the path for the given status code.

Returns:
A path leading to the customizable error message for the given status code.

ingoingFilter

public ReplyInterface ingoingFilter(RequestInterface request)
                             throws ProtocolException
This one just makes sure the outgoing filter gets called.

Overrides:
ingoingFilter in class ResourceFilter
Parameters:
request - The original request to be handled.
Returns:
A Reply instance, or null if processing should continue normally.
Throws:
ProtocolException - If processing should be interrupted, because an abnormal situation occured.

outgoingFilter

public ReplyInterface outgoingFilter(RequestInterface req,
                                     ReplyInterface rep)
                              throws ProtocolException
Re-compute error message. This filter uses internal redirection to get the error message body. In case of failure, the original reply is returned, otherwise, a new reply is gotten from the appropriate error resource, and is returned.

Overrides:
outgoingFilter in class ResourceFilter
Parameters:
request - The request that has been handled.
reply - The reply, as emited by the original resource.
Returns:
A new error reply, having the same status code, and authentication information then the given reply, but enhanced with the error resource body.
Throws:
ProtocolException - If processing should be interrupted, because an abnormal situation occured.

exceptionFilter

public ReplyInterface exceptionFilter(RequestInterface request,
                                      ProtocolException ex,
                                      FilterInterface[] filters,
                                      int idx)
We do catch exceptions, just in case we can customize the error.

Specified by:
exceptionFilter in interface FilterInterface
Overrides:
exceptionFilter in class ResourceFilter
Parameters:
request - The request tha triggered the exception.
ex - The exception.
filters - Remaining filters to be called.
idx - Current filter index within above array.

initialize

public void initialize(java.lang.Object[] values)
Description copied from class: FramedResource
Initialize the frames of that framed resource.

Overrides:
initialize in class FramedResource
Parameters:
values - Default attribute values.