org.glassfish.grizzly.filterchain
Interface Filter

All Known Subinterfaces:
CodecFilter<K,L>
All Known Implementing Classes:
AbstractCodecFilter, ActivityCheckFilter, BaseFilter, ChunkingFilter, DelayFilter, EchoFilter, GZipFilter, IdleTimeoutFilter, LogFilter, LZMAFilter, SilentConnectionFilter, SSLFilter, StringFilter, TCPNIOTransportFilter, TransportFilter, UDPNIOTransportFilter

public interface Filter

A Filter encapsulates a unit of processing work to be performed, whose purpose is to examine and/or modify the state of a transaction that is represented by a FilterChainContext. Individual Filter can be assembled into a FilterChain, which allows them to either complete the required processing or delegate further processing to the next Filter in the FilterChain. Filter implementations should be designed in a thread-safe manner, suitable for inclusion in multiple FilterChain that might be processed by different threads simultaneously. In general, this implies that Filter classes should not maintain state information in instance variables. Instead, state information should be maintained via suitable modifications to the attributes of the FilterChainContext that is passed to the appropriate Filter processing methods. Filter implementations typically retrieve and store state information in the FilterChainContext instance that is passed as a parameter to the appropriate Filter processing methods, using particular Attributes that can be acquired via Attribute.get(org.glassfish.grizzly.attributes.AttributeStorage) method.

Author:
Jeanfrancois Arcand, Alexey Stashok
See Also:
FilterChain, Attribute

Method Summary
 void exceptionOccurred(FilterChainContext ctx, java.lang.Throwable error)
          Notification about exception, occurred on the FilterChain
 NextAction handleAccept(FilterChainContext ctx)
          Execute a unit of processing work to be performed, when server channel has accepted the client connection.
 NextAction handleClose(FilterChainContext ctx)
          Execute a unit of processing work to be performed, when connection has been closed.
 NextAction handleConnect(FilterChainContext ctx)
          Execute a unit of processing work to be performed, when channel gets connected.
 NextAction handleEvent(FilterChainContext ctx, FilterChainEvent event)
          Handle custom event associated with the Connection.
 NextAction handleRead(FilterChainContext ctx)
          Execute a unit of processing work to be performed, when channel will become available for reading.
 NextAction handleWrite(FilterChainContext ctx)
          Execute a unit of processing work to be performed, when some data should be written on channel.
 void onAdded(FilterChain filterChain)
          Method is called, when the Filter has been added to the passed FilterChain.
 void onFilterChainChanged(FilterChain filterChain)
          Method is called, when the FilterChain this Filter is part of, has been changed.
 void onRemoved(FilterChain filterChain)
          Method is called, when the Filter has been removed from the passed FilterChain.
 

Method Detail

onAdded

void onAdded(FilterChain filterChain)
Method is called, when the Filter has been added to the passed FilterChain.

Parameters:
filterChain - the FilterChain this Filter was added to.

onRemoved

void onRemoved(FilterChain filterChain)
Method is called, when the Filter has been removed from the passed FilterChain.

Parameters:
filterChain - the FilterChain this Filter was removed from.

onFilterChainChanged

void onFilterChainChanged(FilterChain filterChain)
Method is called, when the FilterChain this Filter is part of, has been changed.

Parameters:
filterChain - the FilterChain.

handleRead

NextAction handleRead(FilterChainContext ctx)
                      throws java.io.IOException
Execute a unit of processing work to be performed, when channel will become available for reading. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Parameters:
ctx - FilterChainContext
Returns:
NextAction instruction for FilterChain, how it should continue the execution
Throws:
{@link - java.io.IOException}
java.io.IOException

handleWrite

NextAction handleWrite(FilterChainContext ctx)
                       throws java.io.IOException
Execute a unit of processing work to be performed, when some data should be written on channel. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Parameters:
ctx - FilterChainContext
Returns:
NextAction instruction for FilterChain, how it should continue the execution
Throws:
{@link - java.io.IOException}
java.io.IOException

handleConnect

NextAction handleConnect(FilterChainContext ctx)
                         throws java.io.IOException
Execute a unit of processing work to be performed, when channel gets connected. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Parameters:
ctx - FilterChainContext
Returns:
NextAction instruction for FilterChain, how it should continue the execution
Throws:
{@link - java.io.IOException}
java.io.IOException

handleAccept

NextAction handleAccept(FilterChainContext ctx)
                        throws java.io.IOException
Execute a unit of processing work to be performed, when server channel has accepted the client connection. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Parameters:
ctx - FilterChainContext
Returns:
NextAction instruction for FilterChain, how it should continue the execution
Throws:
{@link - java.io.IOException}
java.io.IOException

handleEvent

NextAction handleEvent(FilterChainContext ctx,
                       FilterChainEvent event)
                       throws java.io.IOException
Handle custom event associated with the Connection. This Filter may either complete the required processing and return StopAction, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning InvokeAction.

Parameters:
ctx - FilterChainContext
event -
Returns:
NextAction instruction for FilterChain, how it should continue the execution
Throws:
{@link - java.io.IOException}
java.io.IOException

handleClose

NextAction handleClose(FilterChainContext ctx)
                       throws java.io.IOException
Execute a unit of processing work to be performed, when connection has been closed. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Parameters:
ctx - FilterChainContext
Returns:
NextAction instruction for FilterChain, how it should continue the execution
Throws:
{@link - java.io.IOException}
java.io.IOException

exceptionOccurred

void exceptionOccurred(FilterChainContext ctx,
                       java.lang.Throwable error)
Notification about exception, occurred on the FilterChain

Parameters:
ctx - event processing FilterChainContext
error - error, which occurred during FilterChain execution


Copyright © 2011 Oracle Corpration. All Rights Reserved.