/*
 * Decompiled with CFR 0.152.
 */
package com.l7tech.server.tomcat.nio;

import java.io.FileDescriptor;
import java.io.IOException;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.SocketOption;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;
import java.util.Set;
import sun.nio.ch.SelChImpl;
import sun.nio.ch.SelectionKeyImpl;

public class SocketChannelWrapper
extends SocketChannel
implements SelChImpl {
    protected final SocketChannel delegate;

    SocketChannelWrapper(SocketChannel socketChannel) {
        super(socketChannel.provider());
        this.delegate = socketChannel;
    }

    @Override
    public SocketChannel bind(SocketAddress socketAddress) throws IOException {
        return this.delegate.bind(socketAddress);
    }

    @Override
    public <T> SocketChannel setOption(SocketOption<T> socketOption, T t2) throws IOException {
        return this.delegate.setOption((SocketOption)socketOption, (Object)t2);
    }

    @Override
    public <T> T getOption(SocketOption<T> socketOption) throws IOException {
        return this.delegate.getOption(socketOption);
    }

    @Override
    public Set<SocketOption<?>> supportedOptions() {
        return this.delegate.supportedOptions();
    }

    @Override
    public SocketChannel shutdownInput() throws IOException {
        return this.delegate.shutdownInput();
    }

    @Override
    public SocketChannel shutdownOutput() throws IOException {
        return this.delegate.shutdownOutput();
    }

    @Override
    public Socket socket() {
        return this.delegate.socket();
    }

    @Override
    public boolean isConnected() {
        return this.delegate.isConnected();
    }

    @Override
    public boolean isConnectionPending() {
        return this.delegate.isConnectionPending();
    }

    @Override
    public boolean connect(SocketAddress socketAddress) throws IOException {
        return this.delegate.connect(socketAddress);
    }

    @Override
    public boolean finishConnect() throws IOException {
        return this.delegate.finishConnect();
    }

    @Override
    public SocketAddress getRemoteAddress() throws IOException {
        return this.delegate.getRemoteAddress();
    }

    @Override
    public int read(ByteBuffer byteBuffer) throws IOException {
        return this.delegate.read(byteBuffer);
    }

    @Override
    public long read(ByteBuffer[] byteBufferArray, int n2, int n3) throws IOException {
        return this.delegate.read(byteBufferArray, n2, n3);
    }

    @Override
    public int write(ByteBuffer byteBuffer) throws IOException {
        return this.delegate.write(byteBuffer);
    }

    @Override
    public long write(ByteBuffer[] byteBufferArray, int n2, int n3) throws IOException {
        return this.delegate.write(byteBufferArray, n2, n3);
    }

    @Override
    public SocketAddress getLocalAddress() throws IOException {
        return this.delegate.getLocalAddress();
    }

    @Override
    protected void implCloseSelectableChannel() throws IOException {
        this.delegate.close();
    }

    @Override
    protected void implConfigureBlocking(boolean bl2) throws IOException {
        this.delegate.configureBlocking(bl2);
    }

    @Override
    public FileDescriptor getFD() {
        return ((SelChImpl)((Object)this.delegate)).getFD();
    }

    @Override
    public int getFDVal() {
        return ((SelChImpl)((Object)this.delegate)).getFDVal();
    }

    @Override
    public boolean translateAndUpdateReadyOps(int n2, SelectionKeyImpl selectionKeyImpl) {
        return ((SelChImpl)((Object)this.delegate)).translateAndUpdateReadyOps(n2, selectionKeyImpl);
    }

    @Override
    public boolean translateAndSetReadyOps(int n2, SelectionKeyImpl selectionKeyImpl) {
        return ((SelChImpl)((Object)this.delegate)).translateAndSetReadyOps(n2, selectionKeyImpl);
    }

    @Override
    public int translateInterestOps(int n2) {
        return ((SelChImpl)((Object)this.delegate)).translateInterestOps(n2);
    }

    @Override
    public void kill() throws IOException {
        ((SelChImpl)((Object)this.delegate)).kill();
    }
}

