content: /*
   * Copyright The OpenTelemetry Authors
   * SPDX-License-Identifier: Apache-2.0
   */
  
  package io.opentelemetry.javaagent.instrumentation.netty.v3_8.util;
  
  import org.jboss.netty.channel.ChannelEvent;
  import org.jboss.netty.channel.ChannelHandlerContext;
  import org.jboss.netty.channel.ChannelStateEvent;
  import org.jboss.netty.channel.ChildChannelStateEvent;
  import org.jboss.netty.channel.ExceptionEvent;
  import org.jboss.netty.channel.MessageEvent;
  import org.jboss.netty.channel.SimpleChannelDownstreamHandler;
  import org.jboss.netty.channel.SimpleChannelHandler;
  import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
  import org.jboss.netty.channel.WriteCompletionEvent;
  
  public class CombinedSimpleChannelHandler<
          UPSTREAM extends SimpleChannelUpstreamHandler,
          DOWNSTREAM extends SimpleChannelDownstreamHandler>
      extends SimpleChannelHandler {
  
    private final UPSTREAM upstream;
    private final DOWNSTREAM downstream;
  
    public CombinedSimpleChannelHandler(UPSTREAM upstream, DOWNSTREAM downstream) {
      this.upstream = upstream;
      this.downstream = downstream;
    }
  
    @Override
    public void handleUpstream(ChannelHandlerContext ctx, ChannelEvent e) throws Exception {
      upstream.handleUpstream(ctx, e);
    }
  
    @Override
    public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
      upstream.messageReceived(ctx, e);
    }
  
    @Override
    public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
      upstream.exceptionCaught(ctx, e);
    }
  
    @Override
    public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
      upstream.channelOpen(ctx, e);
    }
  
    @Override
    public void channelBound(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
      upstream.channelBound(ctx, e);
    }
  
    @Override
    public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
      upstream.channelConnected(ctx, e);
    }
  
    @Override
    public void channelInterestChanged(ChannelHandlerContext ctx, ChannelStateEvent e)
        throws Exception {
      upstream.channelInterestChanged(ctx, e);
    }
  
    @Override
    public void channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
      upstream.channelDisconnected(ctx, e);
    }
  
    @Override
    public void channelUnbound(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
      upstream.channelUnbound(ctx, e);
    }
  
    @Override
    public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
      upstream.channelClosed(ctx, e);
    }
  
    @Override
    public void writeComplete(ChannelHandlerContext ctx, WriteCompletionEvent e) throws Exception {
      upstream.writeComplete(ctx, e);
    }
  
    @Override
    public void childChannelOpen(ChannelHandlerContext ctx, ChildChannelStateEvent e)
        throws Exception {
      upstream.childChannelOpen(ctx, e);
    }
  
    @Override
    public void childChannelClosed(ChannelHandlerContext ctx, ChildChannelStateEvent e)
        throws Exception {
      upstream.childChannelClosed(ctx, e);
    }
  
    @Override
    public void handleDownstream(ChannelHandlerContext ctx, ChannelEvent e) throws Exception {
      downstream.handleDownstream(ctx, e);
    }
  
    @Override
    public void writeRequested(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
      downstream.writeRequested(ctx, e);
    }
  
    @Override
    public void bindRequested(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
      downstream.bindRequested(ctx, e);
    }
  
    @Override
    public void connectRequested(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
      downstream.connectRequested(ctx, e);
    }
  
    @Override
    public void setInterestOpsRequested(ChannelHandlerContext ctx, ChannelStateEvent e)
        throws Exception {
      downstream.setInterestOpsRequested(ctx, e);
    }
  
    @Override
    public void disconnectRequested(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
      downstream.disconnectRequested(ctx, e);
    }
  
    @Override
    public void unbindRequested(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
      downstream.unbindRequested(ctx, e);
    }
  
    @Override
    public void closeRequested(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
      downstream.closeRequested(ctx, e);
    }
  }
  