查看本类的 API文档回源码主页即时通讯网 - 即时通讯开发者社区!
1   /*
2   * Copyright 2014 The Netty Project
3   *
4   * The Netty Project licenses this file to you under the Apache License,
5   * version 2.0 (the "License"); you may not use this file except in compliance
6   * with the License. You may obtain a copy of the License at:
7   *
8   *   http://www.apache.org/licenses/LICENSE-2.0
9   *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13  * License for the specific language governing permissions and limitations
14  * under the License.
15  */
16  package io.netty.channel;
17  
18  import io.netty.util.concurrent.EventExecutor;
19  
20  final class DefaultChannelHandlerContext extends AbstractChannelHandlerContext {
21  
22      private final ChannelHandler handler;
23  
24      DefaultChannelHandlerContext(
25              DefaultChannelPipeline pipeline, EventExecutor executor, String name, ChannelHandler handler) {
26          super(pipeline, executor, name, isInbound(handler), isOutbound(handler));
27          if (handler == null) {
28              throw new NullPointerException("handler");
29          }
30          this.handler = handler;
31      }
32  
33      @Override
34      public ChannelHandler handler() {
35          return handler;
36      }
37  
38      private static boolean isInbound(ChannelHandler handler) {
39          return handler instanceof ChannelInboundHandler;
40      }
41  
42      private static boolean isOutbound(ChannelHandler handler) {
43          return handler instanceof ChannelOutboundHandler;
44      }
45  }