@Override public final int defaultStartIdx(FilterChainContext context) { if (context.getFilterIdx() != FilterChainContext.NO_FILTER_INDEX) { return context.getFilterIdx(); } context.setFilterIdx(0); return 0; }
@Override public final int defaultStartIdx(FilterChainContext context) { if (context.getFilterIdx() != FilterChainContext.NO_FILTER_INDEX) { return context.getFilterIdx(); } final int idx = context.getFilterChain().size() - 1; context.setFilterIdx(idx); return idx; }
public static FilterExecutor resolve(final FilterChainContext context) { switch (context.getOperation()) { case READ: return READ_EXECUTOR; case WRITE: return WRITE_EXECUTOR; case ACCEPT: return ACCEPT_EXECUTOR; case CLOSE: return CLOSE_EXECUTOR; case CONNECT: return CONNECT_EXECUTOR; case EVENT: return (context.getFilterIdx() == FilterChainContext.NO_FILTER_INDEX || context.getStartIdx() <= context.getEndIdx()) ? EVENT_UPSTREAM_EXECUTOR : EVENT_DOWNSTREAM_EXECUTOR; default: return null; } }
@Override public final int getPreviousFilter(FilterChainContext context) { return context.getFilterIdx() + 1; }
@Override public final int getNextFilter(FilterChainContext context) { return context.getFilterIdx() - 1; }