Fixed code style in DefaultChannelPipeline
This commit is contained in:
parent
368c34ace9
commit
f4dd29c70f
@ -48,7 +48,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
|
|||||||
|
|
||||||
static final InternalLogger logger = InternalLoggerFactory.getInstance(DefaultChannelPipeline.class);
|
static final InternalLogger logger = InternalLoggerFactory.getInstance(DefaultChannelPipeline.class);
|
||||||
private static final ChannelSink discardingSink = new DiscardingChannelSink();
|
private static final ChannelSink discardingSink = new DiscardingChannelSink();
|
||||||
|
|
||||||
private volatile Channel channel;
|
private volatile Channel channel;
|
||||||
private volatile ChannelSink sink;
|
private volatile ChannelSink sink;
|
||||||
private volatile DefaultChannelHandlerContext head;
|
private volatile DefaultChannelHandlerContext head;
|
||||||
@ -687,127 +687,126 @@ public class DefaultChannelPipeline implements ChannelPipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final class DefaultChannelHandlerContext implements ChannelHandlerContext {
|
private final class DefaultChannelHandlerContext implements ChannelHandlerContext {
|
||||||
volatile DefaultChannelHandlerContext next;
|
volatile DefaultChannelHandlerContext next;
|
||||||
volatile DefaultChannelHandlerContext prev;
|
volatile DefaultChannelHandlerContext prev;
|
||||||
private final String name;
|
private final String name;
|
||||||
private final ChannelHandler handler;
|
private final ChannelHandler handler;
|
||||||
private final boolean canHandleUpstream;
|
private final boolean canHandleUpstream;
|
||||||
private final boolean canHandleDownstream;
|
private final boolean canHandleDownstream;
|
||||||
|
|
||||||
DefaultChannelHandlerContext(
|
|
||||||
DefaultChannelHandlerContext prev, DefaultChannelHandlerContext next,
|
|
||||||
String name, ChannelHandler handler) {
|
|
||||||
|
|
||||||
if (name == null) {
|
|
||||||
throw new NullPointerException("name");
|
|
||||||
}
|
|
||||||
if (handler == null) {
|
|
||||||
throw new NullPointerException("handler");
|
|
||||||
}
|
|
||||||
canHandleUpstream = handler instanceof ChannelUpstreamHandler;
|
|
||||||
canHandleDownstream = handler instanceof ChannelDownstreamHandler;
|
|
||||||
|
|
||||||
|
|
||||||
if (!canHandleUpstream && !canHandleDownstream) {
|
|
||||||
throw new IllegalArgumentException(
|
|
||||||
"handler must be either " +
|
|
||||||
ChannelUpstreamHandler.class.getName() + " or " +
|
|
||||||
ChannelDownstreamHandler.class.getName() + '.');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
ChannelPipelineCoverage coverage = handler.getClass().getAnnotation(ChannelPipelineCoverage.class);
|
|
||||||
if (coverage == null) {
|
|
||||||
logger.warn(
|
|
||||||
"Handler '" + handler.getClass().getName() +
|
|
||||||
"' does not have a '" +
|
|
||||||
ChannelPipelineCoverage.class.getSimpleName() +
|
|
||||||
"' annotation with its class declaration. " +
|
|
||||||
"It is recommended to add the annotation to tell if " +
|
|
||||||
"one handler instance can handle more than one pipeline " +
|
|
||||||
"(\"" + ALL + "\") or not (\"" + ONE + "\")");
|
|
||||||
} else {
|
|
||||||
String coverageValue = coverage.value();
|
|
||||||
if (coverageValue == null) {
|
|
||||||
throw new AnnotationFormatError(
|
|
||||||
ChannelPipelineCoverage.class.getSimpleName() +
|
|
||||||
" annotation value is undefined for type: " +
|
|
||||||
handler.getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!coverageValue.equals(ALL) && !coverageValue.equals(ONE)) {
|
|
||||||
throw new AnnotationFormatError(
|
|
||||||
ChannelPipelineCoverage.class.getSimpleName() +
|
|
||||||
" annotation value: " + coverageValue +
|
|
||||||
" (must be either \"" + ALL + "\" or \"" + ONE + ")");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.prev = prev;
|
|
||||||
this.next = next;
|
|
||||||
this.name = name;
|
|
||||||
this.handler = handler;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Channel getChannel() {
|
|
||||||
return getPipeline().getChannel();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ChannelPipeline getPipeline() {
|
|
||||||
return DefaultChannelPipeline.this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean canHandleDownstream() {
|
|
||||||
return canHandleDownstream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean canHandleUpstream() {
|
|
||||||
return canHandleUpstream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ChannelHandler getHandler() {
|
|
||||||
return handler;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void sendDownstream(ChannelEvent e) {
|
|
||||||
DefaultChannelHandlerContext prev = getActualDownstreamContext(this.prev);
|
|
||||||
if (prev == null) {
|
|
||||||
try {
|
|
||||||
getSink().eventSunk(DefaultChannelPipeline.this, e);
|
|
||||||
} catch (Throwable t) {
|
|
||||||
notifyHandlerException(e, t);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
DefaultChannelPipeline.this.sendDownstream(prev, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void sendUpstream(ChannelEvent e) {
|
|
||||||
DefaultChannelHandlerContext next = getActualUpstreamContext(this.next);
|
|
||||||
if (next != null) {
|
|
||||||
DefaultChannelPipeline.this.sendUpstream(next, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final class DiscardingChannelSink implements ChannelSink {
|
DefaultChannelHandlerContext(
|
||||||
DiscardingChannelSink() {
|
DefaultChannelHandlerContext prev, DefaultChannelHandlerContext next,
|
||||||
super();
|
String name, ChannelHandler handler) {
|
||||||
}
|
|
||||||
|
if (name == null) {
|
||||||
public void eventSunk(ChannelPipeline pipeline, ChannelEvent e) {
|
throw new NullPointerException("name");
|
||||||
|
}
|
||||||
|
if (handler == null) {
|
||||||
|
throw new NullPointerException("handler");
|
||||||
|
}
|
||||||
|
canHandleUpstream = handler instanceof ChannelUpstreamHandler;
|
||||||
|
canHandleDownstream = handler instanceof ChannelDownstreamHandler;
|
||||||
|
|
||||||
|
|
||||||
|
if (!canHandleUpstream && !canHandleDownstream) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
"handler must be either " +
|
||||||
|
ChannelUpstreamHandler.class.getName() + " or " +
|
||||||
|
ChannelDownstreamHandler.class.getName() + '.');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ChannelPipelineCoverage coverage = handler.getClass().getAnnotation(ChannelPipelineCoverage.class);
|
||||||
|
if (coverage == null) {
|
||||||
|
logger.warn(
|
||||||
|
"Handler '" + handler.getClass().getName() +
|
||||||
|
"' does not have a '" +
|
||||||
|
ChannelPipelineCoverage.class.getSimpleName() +
|
||||||
|
"' annotation with its class declaration. " +
|
||||||
|
"It is recommended to add the annotation to tell if " +
|
||||||
|
"one handler instance can handle more than one pipeline " +
|
||||||
|
"(\"" + ALL + "\") or not (\"" + ONE + "\")");
|
||||||
|
} else {
|
||||||
|
String coverageValue = coverage.value();
|
||||||
|
if (coverageValue == null) {
|
||||||
|
throw new AnnotationFormatError(
|
||||||
|
ChannelPipelineCoverage.class.getSimpleName() +
|
||||||
|
" annotation value is undefined for type: " +
|
||||||
|
handler.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!coverageValue.equals(ALL) && !coverageValue.equals(ONE)) {
|
||||||
|
throw new AnnotationFormatError(
|
||||||
|
ChannelPipelineCoverage.class.getSimpleName() +
|
||||||
|
" annotation value: " + coverageValue +
|
||||||
|
" (must be either \"" + ALL + "\" or \"" + ONE + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.prev = prev;
|
||||||
|
this.next = next;
|
||||||
|
this.name = name;
|
||||||
|
this.handler = handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Channel getChannel() {
|
||||||
|
return getPipeline().getChannel();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ChannelPipeline getPipeline() {
|
||||||
|
return DefaultChannelPipeline.this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canHandleDownstream() {
|
||||||
|
return canHandleDownstream;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canHandleUpstream() {
|
||||||
|
return canHandleUpstream;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ChannelHandler getHandler() {
|
||||||
|
return handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendDownstream(ChannelEvent e) {
|
||||||
|
DefaultChannelHandlerContext prev = getActualDownstreamContext(this.prev);
|
||||||
|
if (prev == null) {
|
||||||
|
try {
|
||||||
|
getSink().eventSunk(DefaultChannelPipeline.this, e);
|
||||||
|
} catch (Throwable t) {
|
||||||
|
notifyHandlerException(e, t);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
DefaultChannelPipeline.this.sendDownstream(prev, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendUpstream(ChannelEvent e) {
|
||||||
|
DefaultChannelHandlerContext next = getActualUpstreamContext(this.next);
|
||||||
|
if (next != null) {
|
||||||
|
DefaultChannelPipeline.this.sendUpstream(next, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final class DiscardingChannelSink implements ChannelSink {
|
||||||
|
DiscardingChannelSink() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void eventSunk(ChannelPipeline pipeline, ChannelEvent e) {
|
||||||
logger.warn("Not attached yet; discarding: " + e);
|
logger.warn("Not attached yet; discarding: " + e);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void exceptionCaught(ChannelPipeline pipeline,
|
public void exceptionCaught(ChannelPipeline pipeline,
|
||||||
ChannelEvent e, ChannelPipelineException cause) throws Exception {
|
ChannelEvent e, ChannelPipelineException cause) throws Exception {
|
||||||
throw cause;
|
throw cause;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user