org.apache.mina.core.filterchain

## Interface IoFilterChain

- All Known Implementing Classes:
    DefaultIoFilterChain

      public interface IoFilterChain

  A container of `IoFilter`s 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

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static interface` | `IoFilterChain.Entry` Represents a name-filter pair that an `IoFilterChain` contains.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAfter(String baseName, 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(String baseName, 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(String name, IoFilter filter)` Adds the specified filter with the specified name at the beginning of this chain.
    `void` | `addLast(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(Class<? extends IoFilter> filterType)`
    `boolean` | `contains(IoFilter filter)`
    `boolean` | `contains(String name)`
    `void` | `fireExceptionCaught(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(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(Class<? extends IoFilter> filterType)` Returns the `IoFilter` with the specified `filterType` in this chain.
    `IoFilter` | `get(String name)` Returns the `IoFilter` with the specified `name` in this chain.
    `List<IoFilterChain.Entry>` | `getAll()`
    `List<IoFilterChain.Entry>` | `getAllReversed()`
    `IoFilterChain.Entry` | `getEntry(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(String name)` Returns the `IoFilterChain.Entry` with the specified `name` in this chain.
    `IoFilter.NextFilter` | `getNextFilter(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(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(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(String name)` Removes the filter with the specified name from this chain.
    `IoFilter` | `replace(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(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(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(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(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(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(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(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

          List<IoFilterChain.Entry> getAll()

      Returns:
        The list of all `IoFilterChain.Entry`s this chain contains.

    - #### getAllReversed

          List<IoFilterChain.Entry> getAllReversed()

      Returns:
        The reversed list of all `IoFilterChain.Entry`s this chain contains.

    - #### contains

          boolean contains(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(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(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(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(String baseName,
                       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(String baseName,
                      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(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(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(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(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 Exception

      Removes all filters added to this chain.
      Throws:
        `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(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(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.

Copyright © 2004-2012 Apache MINA Project. All Rights Reserved.