package org.rzo.yajsw.nettyutils;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelPipelineCoverage;
import org.jboss.netty.channel.ChannelStateEvent;
import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
@ChannelPipelineCoverage("all")
public class ConditionFilter extends SimpleChannelUpstreamHandler
{
Condition _condition;
public ConditionFilter(Condition condition)
{
_condition = condition;
}
@Override
public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception
{
if (_condition.isOk(ctx, e))
{
// forward if condtion met
ctx.sendUpstream(e);
}
else
{
ctx.getChannel().close();
}
}
}