Top Description Inners Fields Constructors Methods
org.glassfish.grizzly.filterchain

public final Class DefaultFilterChain

extends ListFacadeFilterChain
Class Inheritance
Annotations
@SuppressWarnings:deprecation
Imports
java.io.IOException, java.util.ArrayList, .Collection, java.util.concurrent.ExecutionException, java.util.function.Supplier, java.util.logging.Level, .Logger, org.glassfish.grizzly.Appendable, .Appender, .Buffer, .CompletionHandler, .Connection, .Context, .Grizzly, .IOEvent, .ProcessorExecutor, .ProcessorResult, .ReadResult, .WriteResult, org.glassfish.grizzly.asyncqueue.AsyncQueueEnabledTransport, .AsyncQueueWriter, .MessageCloner, org.glassfish.grizzly.filterchain.FilterChainContext.Operation, org.glassfish.grizzly.impl.FutureImpl, org.glassfish.grizzly.localization.LogMessages, org.glassfish.grizzly.memory.Buffers, org.glassfish.grizzly.utils.Exceptions, .Futures

Default FilterChain implementation
Author
Alexey Stashok
See Also
FilterChain, Filter

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
private static class
private class
private static class

Field Summary

Modifier and TypeField and Description
private final DefaultFilterChain.FiltersStateFactory
private static final Logger
Inherited from org.glassfish.grizzly.filterchain.ListFacadeFilterChain:
filters

Constructor Summary

AccessConstructor and Description
public
public

Method Summary

Modifier and TypeMethod and Description
private void
checkStoredMessage(final FilterChainContext ctx, final DefaultFilterChain.FiltersState
FiltersState associated with the Connection
filtersState
,
final int
the current filter index
filterIdx
)

Checks if Connection has some stored data related to the processing Filter.

public ProcessorResult
execute(FilterChainContext
FilterChainContext processing context
ctx
)

Implements org.glassfish.grizzly.filterchain.FilterChain.execute.

Execute this FilterChain.

protected DefaultFilterChain.FilterExecution

Returns:

Todo

Update

executeChainPart
(FilterChainContext
FilterChainContext processing context
ctx
,
final FilterExecutor
FilterExecutor, which will call appropriate filter operation to process IOEvent.
executor
,
final int start, final int end, final DefaultFilterChain.FiltersState filtersState)

Sequentially lets each Filter in chain to process IOEvent.

protected NextAction

Returns:

NextAction.
executeFilter
(final FilterExecutor executor, final Filter currentFilter, final FilterChainContext ctx)

Execute the Filter, using specific FilterExecutor and FilterChainContext.

public void
public void
public void
public void
flush(final Connection<L> connection, final CompletionHandler<WriteResult<K, L>> completionHandler)

Implements org.glassfish.grizzly.filterchain.FilterChain.flush.

private void
private void
notifyFailure(final FilterChainContext context, final Throwable e)

private DefaultFilterChain.FiltersState
obtainFiltersState(final Connection<L> connection)

private static boolean
prepareRemainder(final FilterChainContext ctx, final DefaultFilterChain.FiltersState filtersState)

Locates a message remainder in the FilterChain, associated with the Connection and prepares the Context for remainder processing.

public ProcessorResult
process(final Context context)

Implements org.glassfish.grizzly.Processor.process.

Method will be called by framework to process some event, which occurred on a connection

public void
read(final Connection<L> connection, final CompletionHandler<ReadResult<K, L>> completionHandler)

Implements org.glassfish.grizzly.Processor.read.

public ReadResult<K, L>
private <M> void
storeMessage(final FilterChainContext ctx, final DefaultFilterChain.FiltersState filtersState, final boolean isIncomplete, final int filterIdx, final M messageToStore, final Appender<M> appender)

Stores the Filter associated remainder.

public DefaultFilterChain
subList(int fromIndex, int toIndex)

Implements java.util.List.subList.

Returns a view of the portion of this list between the specified fromIndex, inclusive, and toIndex, exclusive.

private void

Returns:

position of the last executed Filter
throwChain
(final FilterChainContext ctx, final FilterExecutor executor, final Throwable exception)

Notify the filters about error.

public void
write(final Connection<L> connection, final Object dstAddress, final Object message, final CompletionHandler<WriteResult<K, L>> completionHandler)

Implements org.glassfish.grizzly.Processor.write.

public void
write(final Connection<L> connection, final Object dstAddress, final Object message, final CompletionHandler<WriteResult<K, L>> completionHandler, final MessageCloner<E> messageCloner)

Implements org.glassfish.grizzly.Processor.write.

public void
write(final Connection<L> connection, final Object dstAddress, final Object message, final CompletionHandler<E> completionHandler, final PushBackHandler pushBackHandler)

Implements org.glassfish.grizzly.Processor.write.

Deprecated

Inherited from org.glassfish.grizzly.filterchain.ListFacadeFilterChain:
addaddaddAlladdAllclearcontainscontainsAllgetindexOfisEmptyiteratorlastIndexOflistIteratorlistIteratornotifyChangedExceptremoveremoveremoveAllretainAllsetsizetoArraytoArray

Field Detail

filtersStateFactoryback to summary
private final DefaultFilterChain.FiltersStateFactory filtersStateFactory
LOGGERback to summary
private static final Logger LOGGER

Constructor Detail

DefaultFilterChainback to summary
public DefaultFilterChain()
DefaultFilterChainback to summary
public DefaultFilterChain(Collection<Filter> initialFilters)

Method Detail

checkStoredMessageback to summary
private void checkStoredMessage(final FilterChainContext ctx, final DefaultFilterChain.FiltersState filtersState, final int filterIdx)

Checks if Connection has some stored data related to the processing Filter. If yes - appends new context data to the stored one and set the result as context message.

Parameters
ctx:FilterChainContext

FilterChainContext

filtersState:DefaultFilterChain.FiltersState

FiltersState associated with the Connection

filterIdx:int

the current filter index

Annotations
@SuppressWarnings:unchecked
executeback to summary
public ProcessorResult execute(FilterChainContext ctx)

Implements org.glassfish.grizzly.filterchain.FilterChain.execute.

Execute this FilterChain.

Parameters
ctx:FilterChainContext

FilterChainContext processing context

Annotations
@Override
executeChainPartback to summary
protected DefaultFilterChain.FilterExecution executeChainPart(FilterChainContext ctx, final FilterExecutor executor, final int start, final int end, final DefaultFilterChain.FiltersState filtersState) throws IOException

Sequentially lets each Filter in chain to process IOEvent.

Parameters
ctx:FilterChainContext

FilterChainContext processing context

executor:FilterExecutor

FilterExecutor, which will call appropriate filter operation to process IOEvent.

Returns:DefaultFilterChain.FilterExecution

Todo

Update

Annotations
@SuppressWarnings:unchecked
executeFilterback to summary
protected NextAction executeFilter(final FilterExecutor executor, final Filter currentFilter, final FilterChainContext ctx) throws IOException

Execute the Filter, using specific FilterExecutor and FilterChainContext.

Returns:NextAction

NextAction.

failback to summary
public void fail(FilterChainContext context, Throwable failure)

Implements org.glassfish.grizzly.filterchain.FilterChain.fail.

Annotations
@Override
fireEventDownstreamback to summary
public void fireEventDownstream(final Connection<L> connection, final FilterChainEvent event, final CompletionHandler<FilterChainContext> completionHandler)

Implements org.glassfish.grizzly.filterchain.FilterChain.fireEventDownstream.

Annotations
@Override
fireEventUpstreamback to summary
public void fireEventUpstream(final Connection<L> connection, final FilterChainEvent event, final CompletionHandler<FilterChainContext> completionHandler)

Implements org.glassfish.grizzly.filterchain.FilterChain.fireEventUpstream.

Annotations
@Override
flushback to summary
public void flush(final Connection<L> connection, final CompletionHandler<WriteResult<K, L>> completionHandler)

Implements org.glassfish.grizzly.filterchain.FilterChain.flush.

Annotations
@Override
notifyCompleteback to summary
private void notifyComplete(final FilterChainContext context)
notifyFailureback to summary
private void notifyFailure(final FilterChainContext context, final Throwable e)
obtainFiltersStateback to summary
private DefaultFilterChain.FiltersState obtainFiltersState(final Connection<L> connection)
Annotations
@SuppressWarnings:unchecked
prepareRemainderback to summary
private static boolean prepareRemainder(final FilterChainContext ctx, final DefaultFilterChain.FiltersState filtersState)

Locates a message remainder in the FilterChain, associated with the Connection and prepares the Context for remainder processing.

processback to summary
public ProcessorResult process(final Context context)

Implements org.glassfish.grizzly.Processor.process.

Doc from org.glassfish.grizzly.Processor.process.

Method will be called by framework to process some event, which occurred on a connection

Annotations
@Override
readback to summary
public void read(final Connection<L> connection, final CompletionHandler<ReadResult<K, L>> completionHandler)

Implements org.glassfish.grizzly.Processor.read.

Annotations
@Override
readback to summary
public ReadResult<K, L> read(final FilterChainContext context) throws IOException

Implements org.glassfish.grizzly.filterchain.FilterChain.read.

Annotations
@Override
@SuppressWarnings:unchecked
storeMessageback to summary
private <M> void storeMessage(final FilterChainContext ctx, final DefaultFilterChain.FiltersState filtersState, final boolean isIncomplete, final int filterIdx, final M messageToStore, final Appender<M> appender)

Stores the Filter associated remainder. This remainder will be reused next time the same filter will be invoked on this Connection.

subListback to summary
public DefaultFilterChain subList(int fromIndex, int toIndex)

Implements java.util.List.subList.

Doc from java.util.List.subList.

Returns a view of the portion of this list between the specified fromIndex, inclusive, and toIndex, exclusive. (If fromIndex and toIndex are equal, the returned list is empty.) The returned list is backed by this list, so non-structural changes in the returned list are reflected in this list, and vice-versa. The returned list supports all of the optional list operations supported by this list.

This method eliminates the need for explicit range operations (of the sort that commonly exist for arrays). Any operation that expects a list can be used as a range operation by passing a subList view instead of a whole list. For example, the following idiom removes a range of elements from a list:

list.subList(from, to).clear();
Similar idioms may be constructed for indexOf and lastIndexOf, and all of the algorithms in the Collections class can be applied to a subList.

The semantics of the list returned by this method become undefined if the backing list (i.e., this list) is structurally modified in any way other than via the returned list. (Structural modifications are those that change the size of this list, or otherwise perturb it in such a fashion that iterations in progress may yield incorrect results.)

Annotations
@Override
throwChainback to summary
private void throwChain(final FilterChainContext ctx, final FilterExecutor executor, final Throwable exception)

Notify the filters about error.

Parameters
ctx:FilterChainContext

FilterChainContext

Returns:void

position of the last executed Filter

writeback to summary
public void write(final Connection<L> connection, final Object dstAddress, final Object message, final CompletionHandler<WriteResult<K, L>> completionHandler)

Implements org.glassfish.grizzly.Processor.write.

Annotations
@Override
writeback to summary
public void write(final Connection<L> connection, final Object dstAddress, final Object message, final CompletionHandler<WriteResult<K, L>> completionHandler, final MessageCloner<E> messageCloner)

Implements org.glassfish.grizzly.Processor.write.

Annotations
@Override
writeback to summary
public void write(final Connection<L> connection, final Object dstAddress, final Object message, final CompletionHandler<E> completionHandler, final PushBackHandler pushBackHandler)

Implements org.glassfish.grizzly.Processor.write.

Deprecated

Annotations
@Override
@Deprecated
org.glassfish.grizzly.filterchain back to summary

private final Class DefaultFilterChain.FilterExecution

extends Object
Class Inheritance
  • java.lang.Object
  • org.glassfish.grizzly.filterchain.DefaultFilterChain.FilterExecution

Field Summary

Modifier and TypeField and Description
private final FilterChainContext
private static final DefaultFilterChain.FilterExecution
private static final int
private static final int
private static final DefaultFilterChain.FilterExecution
private static final int
private final int

Constructor Summary

AccessConstructor and Description
public
FilterExecution(final int type, final FilterChainContext context)

Method Summary

Modifier and TypeMethod and Description
public static DefaultFilterChain.FilterExecution
public static DefaultFilterChain.FilterExecution
public static DefaultFilterChain.FilterExecution
public FilterChainContext
public int
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

contextback to summary
private final FilterChainContext context
CONTINUEback to summary
private static final DefaultFilterChain.FilterExecution CONTINUE
CONTINUE_TYPEback to summary
private static final int CONTINUE_TYPE
REEXECUTE_TYPEback to summary
private static final int REEXECUTE_TYPE
TERMINATEback to summary
private static final DefaultFilterChain.FilterExecution TERMINATE
TERMINATE_TYPEback to summary
private static final int TERMINATE_TYPE
typeback to summary
private final int type

Constructor Detail

FilterExecutionback to summary
public FilterExecution(final int type, final FilterChainContext context)

Method Detail

createContinueback to summary
public static DefaultFilterChain.FilterExecution createContinue()
createReExecuteback to summary
public static DefaultFilterChain.FilterExecution createReExecute(final FilterChainContext context)
createTerminateback to summary
public static DefaultFilterChain.FilterExecution createTerminate()
getContextback to summary
public FilterChainContext getContext()
getTypeback to summary
public int getType()
org.glassfish.grizzly.filterchain back to summary

private final Class DefaultFilterChain.FiltersState

extends Object
Class Inheritance
  • java.lang.Object
  • org.glassfish.grizzly.filterchain.DefaultFilterChain.FiltersState

Field Summary

Modifier and TypeField and Description
private static final int
private final DefaultFilterChain.FilterStateElement[][]

Constructor Summary

AccessConstructor and Description
public
FiltersState(int filtersNum)

Method Summary

Modifier and TypeMethod and Description
private Object
append(final FilterChainContext.Operation operation, final int filterIdx, final Object currentMessage)

public DefaultFilterChain.FilterStateElement
get(final FilterChainContext.Operation operation, final int filterIndex)

public int
peekUnparsedIdx(final FilterChainContext.Operation operation, final int start, final int end)

public <M> void
set(final FilterChainContext.Operation operation, final int filterIndex, final boolean isIncomplete, final M messageToStore, final Appender<M> appender)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

OPERATIONS_NUMback to summary
private static final int OPERATIONS_NUM
stateback to summary
private final DefaultFilterChain.FilterStateElement[][] state

Constructor Detail

FiltersStateback to summary
public FiltersState(int filtersNum)

Method Detail

appendback to summary
private Object append(final FilterChainContext.Operation operation, final int filterIdx, final Object currentMessage)
getback to summary
public DefaultFilterChain.FilterStateElement get(final FilterChainContext.Operation operation, final int filterIndex)
peekUnparsedIdxback to summary
public int peekUnparsedIdx(final FilterChainContext.Operation operation, final int start, final int end)
setback to summary
public <M> void set(final FilterChainContext.Operation operation, final int filterIndex, final boolean isIncomplete, final M messageToStore, final Appender<M> appender)
org.glassfish.grizzly.filterchain back to summary

private final Class DefaultFilterChain.FiltersStateFactory

extends Object
implements Supplier<DefaultFilterChain.FiltersState>
Class Inheritance
  • java.lang.Object
  • org.glassfish.grizzly.filterchain.DefaultFilterChain.FiltersStateFactory
All Implemented Interfaces
java.util.function.Supplier

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public DefaultFilterChain.FiltersState
get()

Implements java.util.function.Supplier.get.

Gets a result.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

FiltersStateFactoryback to summary
private FiltersStateFactory()

Method Detail

getback to summary
public DefaultFilterChain.FiltersState get()

Implements java.util.function.Supplier.get.

Doc from java.util.function.Supplier.get.

Gets a result.

Annotations
@Override
org.glassfish.grizzly.filterchain back to summary

private final Class DefaultFilterChain.FilterStateElement

extends Object
Class Inheritance
  • java.lang.Object
  • org.glassfish.grizzly.filterchain.DefaultFilterChain.FilterStateElement

Field Summary

Modifier and TypeField and Description
private Appender<E>
private boolean
private boolean
private Object

Constructor Summary

AccessConstructor and Description
private
FilterStateElement(final boolean isIncomplete, Appendable<T> state)

private <E>
FilterStateElement(final boolean isIncomplete, E state, Appender<E> appender)

Method Summary

Modifier and TypeMethod and Description
private Object
append(final Object currentMessage)

pack-priv static DefaultFilterChain.FilterStateElement
create(final boolean isIncomplete, final Object remainder)

pack-priv static DefaultFilterChain.FilterStateElement
create(final boolean isIncomplete, final Appendable<T> state)

pack-priv static <E> DefaultFilterChain.FilterStateElement
create(final boolean isIncomplete, final E state, final Appender<E> appender)

private <E> void
set(final boolean isIncomplete, final E state, final Appender<E> appender)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

appenderback to summary
private Appender<E> appender
isIncompleteback to summary
private boolean isIncomplete
isValidback to summary
private boolean isValid
stateback to summary
private Object state

Constructor Detail

FilterStateElementback to summary
private FilterStateElement(final boolean isIncomplete, Appendable<T> state)
FilterStateElementback to summary
private <E> FilterStateElement(final boolean isIncomplete, E state, Appender<E> appender)

Method Detail

appendback to summary
private Object append(final Object currentMessage)
Annotations
@SuppressWarnings:unchecked
createback to summary
pack-priv static DefaultFilterChain.FilterStateElement create(final boolean isIncomplete, final Object remainder)
createback to summary
pack-priv static DefaultFilterChain.FilterStateElement create(final boolean isIncomplete, final Appendable<T> state)
createback to summary
pack-priv static <E> DefaultFilterChain.FilterStateElement create(final boolean isIncomplete, final E state, final Appender<E> appender)
setback to summary
private <E> void set(final boolean isIncomplete, final E state, final Appender<E> appender)