@@ -0,0 +1,3196 @@
+package hdfs.jsr203;%0A%0Aimport java.io.IOException;%0Aimport java.nio.ByteBuffer;%0Aimport java.nio.MappedByteBuffer;%0Aimport java.nio.channels.FileChannel;%0Aimport java.nio.channels.FileLock;%0Aimport java.nio.channels.ReadableByteChannel;%0Aimport java.nio.channels.SeekableByteChannel;%0Aimport java.nio.channels.WritableByteChannel;%0A%0Apublic class HadoopFileChannel extends FileChannel %7B%0A%0A    private SeekableByteChannel internalChannel;%0A    %0A    public HadoopFileChannel(SeekableByteChannel newByteChannel) %7B%0A        this.internalChannel = newByteChannel;%0A    %7D%0A%0A    @Override%0A    public int read(ByteBuffer dst) throws IOException %7B%0A        return this.internalChannel.read(dst);%0A    %7D%0A%0A    @Override%0A    public long read(ByteBuffer%5B%5D dsts, int offset, int length) throws IOException %7B%0A        throw new IOException(%22Imcomplete implementation%22);%0A    %7D%0A%0A    @Override%0A    public int write(ByteBuffer src) throws IOException %7B%0A        throw new IOException(%22Imcomplete implementation%22);%0A    %7D%0A%0A    @Override%0A    public long write(ByteBuffer%5B%5D srcs, int offset, int length) throws IOException %7B%0A        throw new IOException(%22Imcomplete implementation%22);%0A    %7D%0A%0A    @Override%0A    public long position() throws IOException %7B%0A        return this.internalChannel.position();%0A    %7D%0A%0A    @Override%0A    public FileChannel position(long newPosition) throws IOException %7B%0A        this.internalChannel.position(newPosition);%0A        return this;%0A    %7D%0A%0A    @Override%0A    public long size() throws IOException %7B%0A        return this.internalChannel.size();%0A    %7D%0A%0A    @Override%0A    public FileChannel truncate(long size) throws IOException %7B%0A        throw new IOException(%22Imcomplete implementation%22);%0A    %7D%0A%0A    @Override%0A    public void force(boolean metaData) throws IOException %7B%0A        throw new IOException(%22Imcomplete implementation%22);%0A    %7D%0A%0A    @Override%0A    public long transferTo(long position, long count, WritableByteChannel target) throws IOException %7B%0A        throw new IOException(%22Imcomplete implementation%22);%0A    %7D%0A%0A    @Override%0A    public long transferFrom(ReadableByteChannel src, long position, long count) throws IOException %7B%0A        throw new IOException(%22Imcomplete implementation%22);%0A    %7D%0A%0A    @Override%0A    public int read(ByteBuffer dst, long position) throws IOException %7B%0A        this.internalChannel = this.internalChannel.position(position);%0A        return this.internalChannel.read(dst);%0A    %7D%0A%0A    @Override%0A    public int write(ByteBuffer src, long position) throws IOException %7B%0A        throw new IOException(%22Imcomplete implementation%22);%0A    %7D%0A%0A    @Override%0A    public MappedByteBuffer map(MapMode mode, long position, long size) throws IOException %7B%0A        throw new IOException(%22Imcomplete implementation%22);%0A    %7D%0A%0A    @Override%0A    public FileLock lock(long position, long size, boolean shared) throws IOException %7B%0A        throw new IOException(%22Imcomplete implementation%22);%0A    %7D%0A%0A    @Override%0A    public FileLock tryLock(long position, long size, boolean shared) throws IOException %7B%0A        throw new IOException(%22Imcomplete implementation%22);%0A    %7D%0A%0A    @Override%0A    protected void implCloseChannel() throws IOException %7B%0A        this.internalChannel.close();%0A    %7D%0A%0A%7D%0A

Add basic support for FileChannel