public class DefaultIoFilterChain extends Object implements IoFilterChain
IoFilterChain
that provides
all operations for developers who want to implement their own
transport layer once used with AbstractIoSession
.IoFilterChain.Entry
Modifier and Type | Field and Description |
---|---|
static AttributeKey |
SESSION_CREATED_FUTURE
|
Constructor and Description |
---|
DefaultIoFilterChain(AbstractIoSession session)
Create a new default chain, associated with a session.
|
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 |
fireEvent(FilterEvent event)
Fires a
IoHandler.event(IoSession, FilterEvent) event. |
void |
fireExceptionCaught(Throwable cause)
Fires a
IoHandler.exceptionCaught(IoSession, Throwable) event. |
void |
fireFilterClose()
Fires a
IoSession.closeNow() or a IoSession.closeOnFlush() event. |
void |
fireFilterWrite(WriteRequest writeRequest)
Fires a
IoSession.write(Object) event. |
void |
fireInputClosed()
Fires a
IoHandler.inputClosed(IoSession) event. |
void |
fireMessageReceived(Object message)
Fires a
IoHandler.messageReceived(IoSession, Object) event. |
void |
fireMessageSent(WriteRequest request)
Fires a
IoHandler.messageSent(IoSession, Object) 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() |
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.
|
String |
toString() |
public static final AttributeKey SESSION_CREATED_FUTURE
IoFuture
related with
the IoSession
. DefaultIoFilterChain
clears this
attribute and notifies the future when fireSessionCreated()
or fireExceptionCaught(Throwable)
is invoked.public DefaultIoFilterChain(AbstractIoSession session)
session
- The session associated with the created filter chainpublic IoSession getSession()
getSession
in interface IoFilterChain
IoSession
of this chain.public IoFilterChain.Entry getEntry(String name)
IoFilterChain.Entry
with the specified name in this chain.getEntry
in interface IoFilterChain
name
- The filter's name we are looking forpublic IoFilterChain.Entry getEntry(IoFilter filter)
IoFilterChain.Entry
with the specified filter in this chain.getEntry
in interface IoFilterChain
filter
- The Filter we are looking forpublic IoFilterChain.Entry getEntry(Class<? extends IoFilter> filterType)
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.getEntry
in interface IoFilterChain
filterType
- The filter class we are looking forpublic IoFilter get(String name)
IoFilter
with the specified name in this chain.get
in interface IoFilterChain
name
- the filter's namepublic IoFilter get(Class<? extends IoFilter> filterType)
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.get
in interface IoFilterChain
filterType
- The filter classpublic IoFilter.NextFilter getNextFilter(String name)
IoFilter.NextFilter
of the IoFilter
with the
specified name in this chain.getNextFilter
in interface IoFilterChain
name
- The filter's name we want the next filterpublic IoFilter.NextFilter getNextFilter(IoFilter filter)
IoFilter.NextFilter
of the specified IoFilter
in this chain.getNextFilter
in interface IoFilterChain
filter
- The filter for which we want the next filterpublic IoFilter.NextFilter getNextFilter(Class<? extends IoFilter> filterType)
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.getNextFilter
in interface IoFilterChain
filterType
- The Filter class for which we want the next filterpublic void addFirst(String name, IoFilter filter)
addFirst
in interface IoFilterChain
name
- The filter's namefilter
- The filter to addpublic void addLast(String name, IoFilter filter)
addLast
in interface IoFilterChain
name
- The filter's namefilter
- The filter to addpublic void addBefore(String baseName, String name, IoFilter filter)
baseName
in this chain.addBefore
in interface IoFilterChain
baseName
- The targeted Filter's namename
- The filter's namefilter
- The filter to addpublic void addAfter(String baseName, String name, IoFilter filter)
baseName
in this chain.addAfter
in interface IoFilterChain
baseName
- The targeted Filter's namename
- The filter's namefilter
- The filter to addpublic IoFilter remove(String name)
remove
in interface IoFilterChain
name
- The name of the filter to removepublic void remove(IoFilter filter)
remove
in interface IoFilterChain
filter
- The filter to removepublic IoFilter remove(Class<? extends IoFilter> filterType)
remove
in interface IoFilterChain
filterType
- The filter class to removepublic IoFilter replace(String name, IoFilter newFilter)
replace
in interface IoFilterChain
name
- The name of the filter we want to replacenewFilter
- The new filterpublic void replace(IoFilter oldFilter, IoFilter newFilter)
replace
in interface IoFilterChain
oldFilter
- The filter we want to replacenewFilter
- The new filterpublic IoFilter replace(Class<? extends IoFilter> oldFilterType, IoFilter newFilter)
replace
in interface IoFilterChain
oldFilterType
- The filter class we want to replacenewFilter
- The new filterpublic void clear() throws Exception
clear
in interface IoFilterChain
Exception
- If we weren't able to clear the filterspublic void fireSessionCreated()
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.fireSessionCreated
in interface IoFilterChain
public void fireSessionOpened()
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.fireSessionOpened
in interface IoFilterChain
public void fireEvent(FilterEvent event)
IoHandler.event(IoSession, FilterEvent)
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.fireEvent
in interface IoFilterChain
event
- The specific event being firedpublic void fireSessionClosed()
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.fireSessionClosed
in interface IoFilterChain
public void fireSessionIdle(IdleStatus status)
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.fireSessionIdle
in interface IoFilterChain
status
- The current status to propagatepublic void fireMessageReceived(Object message)
IoHandler.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.fireMessageReceived
in interface IoFilterChain
message
- The received messagepublic void fireMessageSent(WriteRequest request)
IoHandler.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.fireMessageSent
in interface IoFilterChain
request
- The sent requestpublic void fireExceptionCaught(Throwable cause)
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.fireExceptionCaught
in interface IoFilterChain
cause
- The exception causepublic void fireInputClosed()
IoHandler.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.fireInputClosed
in interface IoFilterChain
public void fireFilterWrite(WriteRequest writeRequest)
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.fireFilterWrite
in interface IoFilterChain
writeRequest
- The message to writepublic void fireFilterClose()
IoSession.closeNow()
or a IoSession.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.fireFilterClose
in interface IoFilterChain
public List<IoFilterChain.Entry> getAll()
getAll
in interface IoFilterChain
IoFilterChain.Entry
s this chain contains.public List<IoFilterChain.Entry> getAllReversed()
getAllReversed
in interface IoFilterChain
IoFilterChain.Entry
s this chain contains.public boolean contains(String name)
contains
in interface IoFilterChain
name
- The filter's name we are looking forIoFilter
with the
specified name.public boolean contains(IoFilter filter)
contains
in interface IoFilterChain
filter
- The filter we are looking forpublic boolean contains(Class<? extends IoFilter> filterType)
contains
in interface IoFilterChain
filterType
- The filter's class we are looking forIoFilter
of the
specified filterType.Copyright © 2004–2021 Apache MINA Project. All rights reserved.