Package org.apache.mina.core.filterchain
Interface IoFilterChain
-
- All Known Implementing Classes:
DefaultIoFilterChain
public interface IoFilterChain
A container ofIoFilter
s that forwardsIoHandler
events to the consisting filters and terminalIoHandler
sequentially. EveryIoSession
has its ownIoFilterChain
(1-to-1 relationship).- Author:
- Apache MINA Project
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
IoFilterChain.Entry
Represents a name-filter pair that anIoFilterChain
contains.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addAfter(String baseName, String name, IoFilter filter)
Adds the specified filter with the specified name just after the filter whose name isbaseName
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 isbaseName
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(String name)
boolean
contains(IoFilter filter)
void
fireExceptionCaught(Throwable cause)
Fires aIoHandler.exceptionCaught(IoSession, Throwable)
event.void
fireFilterClose()
Fires aIoSession.closeNow()
or aIoSession.closeOnFlush()
event.void
fireFilterWrite(WriteRequest writeRequest)
Fires aIoSession.write(Object)
event.void
fireInputClosed()
Fires aIoHandler.inputClosed(IoSession)
event.void
fireMessageReceived(Object message)
Fires aIoHandler.messageReceived(IoSession, Object)
event.void
fireMessageSent(WriteRequest request)
Fires aIoHandler.messageSent(IoSession, Object)
event.void
fireSessionClosed()
Fires aIoHandler.sessionClosed(IoSession)
event.void
fireSessionCreated()
Fires aIoHandler.sessionCreated(IoSession)
event.void
fireSessionIdle(IdleStatus status)
Fires aIoHandler.sessionIdle(IoSession, IdleStatus)
event.void
fireSessionOpened()
Fires aIoHandler.sessionOpened(IoSession)
event.IoFilter
get(Class<? extends IoFilter> filterType)
Returns theIoFilter
with the specified filterType in this chain.IoFilter
get(String name)
Returns theIoFilter
with the specified name in this chain.List<IoFilterChain.Entry>
getAll()
List<IoFilterChain.Entry>
getAllReversed()
IoFilterChain.Entry
getEntry(Class<? extends IoFilter> filterType)
Returns theIoFilterChain.Entry
with the specified filterType in this chain.IoFilterChain.Entry
getEntry(String name)
Returns theIoFilterChain.Entry
with the specified name in this chain.IoFilterChain.Entry
getEntry(IoFilter filter)
Returns theIoFilterChain.Entry
with the specified filter in this chain.IoFilter.NextFilter
getNextFilter(Class<? extends IoFilter> filterType)
Returns theIoFilter.NextFilter
of the specified filterType in this chain.IoFilter.NextFilter
getNextFilter(String name)
Returns theIoFilter.NextFilter
of theIoFilter
with the specified name in this chain.IoFilter.NextFilter
getNextFilter(IoFilter filter)
Returns theIoFilter.NextFilter
of the specifiedIoFilter
in this chain.IoSession
getSession()
IoFilter
remove(Class<? extends IoFilter> filterType)
Replace the filter of the specified type with the specified new filter.IoFilter
remove(String name)
Removes the filter with the specified name from this chain.void
remove(IoFilter filter)
Replace the filter with the specified name with the specified new filter.IoFilter
replace(Class<? extends IoFilter> oldFilterType, IoFilter newFilter)
Replace the filter of the specified type with the specified new filter.IoFilter
replace(String name, IoFilter newFilter)
Replace the filter with the specified name with the specified new filter.void
replace(IoFilter oldFilter, IoFilter newFilter)
Replace the filter with the specified name with the specified new filter.
-
-
-
Method Detail
-
getEntry
IoFilterChain.Entry getEntry(String name)
Returns theIoFilterChain.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 theIoFilterChain.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 theIoFilterChain.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 theIoFilter
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 theIoFilter
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 theIoFilter.NextFilter
of theIoFilter
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 theIoFilter.NextFilter
of the specifiedIoFilter
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 theIoFilter.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 namefilter
- 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 namefilter
- 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 isbaseName
in this chain.- Parameters:
baseName
- The targeted Filter's namename
- The filter's namefilter
- 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 isbaseName
in this chain.- Parameters:
baseName
- The targeted Filter's namename
- The filter's namefilter
- 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 replacenewFilter
- 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 replacenewFilter
- 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 replacenewFilter
- The new filter- Returns:
- The replaced IoFilter
-
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:
filter
- 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:
filterType
- The filter class to remove- Returns:
- The removed filter
-
clear
void clear() throws Exception
Removes all filters added to this chain.- Throws:
Exception
- If we weren't able to clear the filters
-
fireSessionCreated
void fireSessionCreated()
Fires aIoHandler.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 aIoHandler.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 aIoHandler.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 aIoHandler.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 aIoHandler.messageReceived(IoSession, 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 aIoHandler.messageSent(IoSession, 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:
request
- The sent request
-
fireExceptionCaught
void fireExceptionCaught(Throwable cause)
Fires aIoHandler.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
-
fireInputClosed
void fireInputClosed()
Fires aIoHandler.inputClosed(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.
-
fireFilterWrite
void fireFilterWrite(WriteRequest writeRequest)
Fires aIoSession.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 aIoSession.closeNow()
or aIoSession.closeOnFlush()
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.
-
-