org.apache.mina.core.filterchain
Interface IoFilterChain

All Known Implementing Classes:
DefaultIoFilterChain

public interface IoFilterChain

A container of IoFilters that forwards IoHandler events to the consisting filters and terminal IoHandler sequentially. Every IoSession has its own IoFilterChain (1-to-1 relationship).

Author:
Apache MINA Project

Nested Class Summary
static interface IoFilterChain.Entry
          Represents a name-filter pair that an IoFilterChain contains.
 
Method Summary
 void addAfter(java.lang.String baseName, java.lang.String name, IoFilter filter)
          Adds the specified filter with the specified name just after the filter whose name is baseName in this chain.
 void addBefore(java.lang.String baseName, java.lang.String name, IoFilter filter)
          Adds the specified filter with the specified name just before the filter whose name is baseName in this chain.
 void addFirst(java.lang.String name, IoFilter filter)
          Adds the specified filter with the specified name at the beginning of this chain.
 void addLast(java.lang.String name, IoFilter filter)
          Adds the specified filter with the specified name at the end of this chain.
 void clear()
          Removes all filters added to this chain.
 boolean contains(java.lang.Class<? extends IoFilter> filterType)
           
 boolean contains(IoFilter filter)
           
 boolean contains(java.lang.String name)
           
 void fireExceptionCaught(java.lang.Throwable cause)
          Fires a IoHandler.exceptionCaught(IoSession, Throwable) event.
 void fireFilterClose()
          Fires a IoSession.close() event.
 void fireFilterWrite(WriteRequest writeRequest)
          Fires a IoSession.write(Object) event.
 void fireMessageReceived(java.lang.Object message)
          Fires a IoHandler#messageReceived(Object) event.
 void fireMessageSent(WriteRequest request)
          Fires a IoHandler#messageSent(IoSession) event.
 void fireSessionClosed()
          Fires a IoHandler.sessionClosed(IoSession) event.
 void fireSessionCreated()
          Fires a IoHandler.sessionCreated(IoSession) event.
 void fireSessionIdle(IdleStatus status)
          Fires a IoHandler.sessionIdle(IoSession, IdleStatus) event.
 void fireSessionOpened()
          Fires a IoHandler.sessionOpened(IoSession) event.
 IoFilter get(java.lang.Class<? extends IoFilter> filterType)
          Returns the IoFilter with the specified filterType in this chain.
 IoFilter get(java.lang.String name)
          Returns the IoFilter with the specified name in this chain.
 java.util.List<IoFilterChain.Entry> getAll()
           
 java.util.List<IoFilterChain.Entry> getAllReversed()
           
 IoFilterChain.Entry getEntry(java.lang.Class<? extends IoFilter> filterType)
          Returns the IoFilterChain.Entry with the specified filterType in this chain.
 IoFilterChain.Entry getEntry(IoFilter filter)
          Returns the IoFilterChain.Entry with the specified filter in this chain.
 IoFilterChain.Entry getEntry(java.lang.String name)
          Returns the IoFilterChain.Entry with the specified name in this chain.
 IoFilter.NextFilter getNextFilter(java.lang.Class<? extends IoFilter> filterType)
          Returns the IoFilter.NextFilter of the specified filterType in this chain.
 IoFilter.NextFilter getNextFilter(IoFilter filter)
          Returns the IoFilter.NextFilter of the specified IoFilter in this chain.
 IoFilter.NextFilter getNextFilter(java.lang.String name)
          Returns the IoFilter.NextFilter of the IoFilter with the specified name in this chain.
 IoSession getSession()
          Returns the parent IoSession of this chain.
 IoFilter remove(java.lang.Class<? extends IoFilter> filterType)
          Replace the filter of the specified type with the specified new filter.
 void remove(IoFilter filter)
          Replace the filter with the specified name with the specified new filter.
 IoFilter remove(java.lang.String name)
          Removes the filter with the specified name from this chain.
 IoFilter replace(java.lang.Class<? extends IoFilter> oldFilterType, IoFilter newFilter)
          Replace the filter of the specified type with the specified new filter.
 void replace(IoFilter oldFilter, IoFilter newFilter)
          Replace the filter with the specified name with the specified new filter.
 IoFilter replace(java.lang.String name, IoFilter newFilter)
          Replace the filter with the specified name with the specified new filter.
 

Method Detail

getSession

IoSession getSession()
Returns the parent IoSession of this chain.

Returns:
IoSession

getEntry

IoFilterChain.Entry getEntry(java.lang.String name)
Returns the IoFilterChain.Entry with the specified name in this chain.

Parameters:
name - The filter's name we are looking for
Returns:
null if there's no such name in this chain

getEntry

IoFilterChain.Entry getEntry(IoFilter filter)
Returns the IoFilterChain.Entry with the specified filter in this chain.

Parameters:
filter - The Filter we are looking for
Returns:
null if there's no such filter in this chain

getEntry

IoFilterChain.Entry getEntry(java.lang.Class<? extends IoFilter> filterType)
Returns the IoFilterChain.Entry with the specified filterType in this chain. If there's more than one filter with the specified type, the first match will be chosen.

Parameters:
filterType - The filter class we are looking for
Returns:
null if there's no such name in this chain

get

IoFilter get(java.lang.String name)
Returns the IoFilter with the specified name in this chain.

Parameters:
name - the filter's name
Returns:
null if there's no such name in this chain

get

IoFilter get(java.lang.Class<? extends IoFilter> filterType)
Returns the IoFilter with the specified filterType in this chain. If there's more than one filter with the specified type, the first match will be chosen.

Parameters:
filterType - The filter class
Returns:
null if there's no such name in this chain

getNextFilter

IoFilter.NextFilter getNextFilter(java.lang.String name)
Returns the IoFilter.NextFilter of the IoFilter with the specified name in this chain.

Parameters:
name - The filter's name we want the next filter
Returns:
null if there's no such name in this chain

getNextFilter

IoFilter.NextFilter getNextFilter(IoFilter filter)
Returns the IoFilter.NextFilter of the specified IoFilter in this chain.

Parameters:
filter - The filter for which we want the next filter
Returns:
null if there's no such name in this chain

getNextFilter

IoFilter.NextFilter getNextFilter(java.lang.Class<? extends IoFilter> filterType)
Returns the IoFilter.NextFilter of the specified filterType in this chain. If there's more than one filter with the specified type, the first match will be chosen.

Parameters:
filterType - The Filter class for which we want the next filter
Returns:
null if there's no such name in this chain

getAll

java.util.List<IoFilterChain.Entry> getAll()
Returns:
The list of all IoFilterChain.Entrys this chain contains.

getAllReversed

java.util.List<IoFilterChain.Entry> getAllReversed()
Returns:
The reversed list of all IoFilterChain.Entrys this chain contains.

contains

boolean contains(java.lang.String name)
Parameters:
name - The filter's name we are looking for
Returns:
true if this chain contains an IoFilter with the specified name.

contains

boolean contains(IoFilter filter)
Parameters:
filter - The filter we are looking for
Returns:
true if this chain contains the specified filter.

contains

boolean contains(java.lang.Class<? extends IoFilter> filterType)
Parameters:
filterType - The filter's class we are looking for
Returns:
true if this chain contains an IoFilter of the specified filterType.

addFirst

void addFirst(java.lang.String name,
              IoFilter filter)
Adds the specified filter with the specified name at the beginning of this chain.

Parameters:
name - The filter's name
filter - The filter to add

addLast

void addLast(java.lang.String name,
             IoFilter filter)
Adds the specified filter with the specified name at the end of this chain.

Parameters:
name - The filter's name
filter - The filter to add

addBefore

void addBefore(java.lang.String baseName,
               java.lang.String name,
               IoFilter filter)
Adds the specified filter with the specified name just before the filter whose name is baseName in this chain.

Parameters:
baseName - The targeted Filter's name
name - The filter's name
filter - The filter to add

addAfter

void addAfter(java.lang.String baseName,
              java.lang.String name,
              IoFilter filter)
Adds the specified filter with the specified name just after the filter whose name is baseName in this chain.

Parameters:
baseName - The targeted Filter's name
name - The filter's name
filter - The filter to add

replace

IoFilter replace(java.lang.String name,
                 IoFilter newFilter)
Replace the filter with the specified name with the specified new filter.

Parameters:
name - The name of the filter we want to replace
newFilter - The new filter
Returns:
the old filter

replace

void replace(IoFilter oldFilter,
             IoFilter newFilter)
Replace the filter with the specified name with the specified new filter.

Parameters:
oldFilter - The filter we want to replace
newFilter - The new filter

replace

IoFilter replace(java.lang.Class<? extends IoFilter> oldFilterType,
                 IoFilter newFilter)
Replace the filter of the specified type with the specified new filter. If there's more than one filter with the specified type, the first match will be replaced.

Parameters:
oldFilterType - The filter class we want to replace
newFilter - The new filter

remove

IoFilter remove(java.lang.String name)
Removes the filter with the specified name from this chain.

Parameters:
name - The name of the filter to remove
Returns:
The removed filter

remove

void remove(IoFilter filter)
Replace the filter with the specified name with the specified new filter.

Parameters:
name - The filter to remove

remove

IoFilter remove(java.lang.Class<? extends IoFilter> filterType)
Replace the filter of the specified type with the specified new filter. If there's more than one filter with the specified type, the first match will be replaced.

Parameters:
name - The filter class to remove
Returns:
The removed filter

clear

void clear()
           throws java.lang.Exception
Removes all filters added to this chain.

Throws:
java.lang.Exception

fireSessionCreated

void fireSessionCreated()
Fires a IoHandler.sessionCreated(IoSession) event. Most users don't need to call this method at all. Please use this method only when you implement a new transport or fire a virtual event.


fireSessionOpened

void fireSessionOpened()
Fires a IoHandler.sessionOpened(IoSession) event. Most users don't need to call this method at all. Please use this method only when you implement a new transport or fire a virtual event.


fireSessionClosed

void fireSessionClosed()
Fires a IoHandler.sessionClosed(IoSession) event. Most users don't need to call this method at all. Please use this method only when you implement a new transport or fire a virtual event.


fireSessionIdle

void fireSessionIdle(IdleStatus status)
Fires a IoHandler.sessionIdle(IoSession, IdleStatus) event. Most users don't need to call this method at all. Please use this method only when you implement a new transport or fire a virtual event.

Parameters:
status - The current status to propagate

fireMessageReceived

void fireMessageReceived(java.lang.Object message)
Fires a IoHandler#messageReceived(Object) event. Most users don't need to call this method at all. Please use this method only when you implement a new transport or fire a virtual event.

Parameters:
message - The received message

fireMessageSent

void fireMessageSent(WriteRequest request)
Fires a IoHandler#messageSent(IoSession) event. Most users don't need to call this method at all. Please use this method only when you implement a new transport or fire a virtual event.

Parameters:
request - The sent request

fireExceptionCaught

void fireExceptionCaught(java.lang.Throwable cause)
Fires a IoHandler.exceptionCaught(IoSession, Throwable) event. Most users don't need to call this method at all. Please use this method only when you implement a new transport or fire a virtual event.

Parameters:
cause - The exception cause

fireFilterWrite

void fireFilterWrite(WriteRequest writeRequest)
Fires a IoSession.write(Object) event. Most users don't need to call this method at all. Please use this method only when you implement a new transport or fire a virtual event.

Parameters:
writeRequest - The message to write

fireFilterClose

void fireFilterClose()
Fires a IoSession.close() event. Most users don't need to call this method at all. Please use this method only when you implement a new transport or fire a virtual event.