com.faunos.util.io
Class FilterFileChannel

java.lang.Object
  extended by java.nio.channels.spi.AbstractInterruptibleChannel
      extended by java.nio.channels.FileChannel
          extended by com.faunos.util.io.FilterFileChannel
All Implemented Interfaces:
Closeable, ByteChannel, Channel, GatheringByteChannel, InterruptibleChannel, ReadableByteChannel, ScatteringByteChannel, WritableByteChannel
Direct Known Subclasses:
CloseProtectedFileChannel, LockProtectedFileChannel, WorkAroundFileChannel

public class FilterFileChannel
extends FileChannel

A facade base class for subclassing and chaining specialized FileChannel functionality. This class just delegates to its inner instance.

Author:
Babak Farhang

Nested Class Summary
protected static class FilterFileChannel.FilterFileLock
          A FileLock filter.
 
Nested classes/interfaces inherited from class java.nio.channels.FileChannel
FileChannel.MapMode
 
Field Summary
protected  FileChannel inner
          The underlying file channel.
 
Constructor Summary
protected FilterFileChannel(FileChannel inner)
          Creates a new instance using the given instance.
 
Method Summary
protected  void checkReadAccess()
           
protected  void checkWriteAccess()
           
 void force(boolean metaData)
           
protected  void implCloseChannel()
          Invokes the close() method on the underlying channel.
protected  FilterFileChannel.FilterFileLock implCreateFileLock(FileLock innerLock)
          Returns the implementation-specific FileLock.
 FileLock lock(long position, long size, boolean shared)
           
 MappedByteBuffer map(FileChannel.MapMode mode, long position, long size)
           
 long position()
           
 FileChannel position(long newPosition)
           
 int read(ByteBuffer dst)
           
 long read(ByteBuffer[] dsts, int offset, int length)
           
 int read(ByteBuffer dst, long position)
           
 long size()
           
 long transferFrom(ReadableByteChannel src, long position, long count)
           
 long transferTo(long position, long count, WritableByteChannel target)
           
 FileChannel truncate(long size)
           
 FileLock tryLock(long position, long size, boolean shared)
           
 int write(ByteBuffer src)
           
 long write(ByteBuffer[] srcs, int offset, int length)
           
 int write(ByteBuffer src, long position)
           
 
Methods inherited from class java.nio.channels.FileChannel
lock, read, tryLock, write
 
Methods inherited from class java.nio.channels.spi.AbstractInterruptibleChannel
begin, close, end, isOpen
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.nio.channels.Channel
close, isOpen
 
Methods inherited from interface java.nio.channels.Channel
close, isOpen
 
Methods inherited from interface java.nio.channels.Channel
close, isOpen
 
Methods inherited from interface java.nio.channels.Channel
close, isOpen
 

Field Detail

inner

protected final FileChannel inner
The underlying file channel.

Constructor Detail

FilterFileChannel

protected FilterFileChannel(FileChannel inner)
Creates a new instance using the given instance.

Parameters:
inner - the underlying channel, must not be null
Method Detail

force

public void force(boolean metaData)
           throws IOException
Specified by:
force in class FileChannel
Throws:
IOException

lock

public FileLock lock(long position,
                     long size,
                     boolean shared)
              throws IOException
Specified by:
lock in class FileChannel
Throws:
IOException

map

public MappedByteBuffer map(FileChannel.MapMode mode,
                            long position,
                            long size)
                     throws IOException
Specified by:
map in class FileChannel
Throws:
IOException

position

public long position()
              throws IOException
Specified by:
position in class FileChannel
Throws:
IOException

position

public FileChannel position(long newPosition)
                     throws IOException
Specified by:
position in class FileChannel
Throws:
IOException

read

public int read(ByteBuffer dst)
         throws IOException
Specified by:
read in interface ReadableByteChannel
Specified by:
read in class FileChannel
Throws:
IOException

read

public int read(ByteBuffer dst,
                long position)
         throws IOException
Specified by:
read in class FileChannel
Throws:
IOException

read

public long read(ByteBuffer[] dsts,
                 int offset,
                 int length)
          throws IOException
Specified by:
read in interface ScatteringByteChannel
Specified by:
read in class FileChannel
Throws:
IOException

size

public long size()
          throws IOException
Specified by:
size in class FileChannel
Throws:
IOException

transferFrom

public long transferFrom(ReadableByteChannel src,
                         long position,
                         long count)
                  throws IOException
Specified by:
transferFrom in class FileChannel
Throws:
IOException

transferTo

public long transferTo(long position,
                       long count,
                       WritableByteChannel target)
                throws IOException
Specified by:
transferTo in class FileChannel
Throws:
IOException

truncate

public FileChannel truncate(long size)
                     throws IOException
Specified by:
truncate in class FileChannel
Throws:
IOException

tryLock

public FileLock tryLock(long position,
                        long size,
                        boolean shared)
                 throws IOException
Specified by:
tryLock in class FileChannel
Throws:
IOException

write

public int write(ByteBuffer src)
          throws IOException
Specified by:
write in interface WritableByteChannel
Specified by:
write in class FileChannel
Throws:
IOException

write

public int write(ByteBuffer src,
                 long position)
          throws IOException
Specified by:
write in class FileChannel
Throws:
IOException

write

public long write(ByteBuffer[] srcs,
                  int offset,
                  int length)
           throws IOException
Specified by:
write in interface GatheringByteChannel
Specified by:
write in class FileChannel
Throws:
IOException

implCloseChannel

protected void implCloseChannel()
                         throws IOException
Invokes the close() method on the underlying channel.

Specified by:
implCloseChannel in class AbstractInterruptibleChannel
Throws:
IOException

implCreateFileLock

protected FilterFileChannel.FilterFileLock implCreateFileLock(FileLock innerLock)
                                                       throws IOException
Returns the implementation-specific FileLock.

Throws:
IOException

checkReadAccess

protected void checkReadAccess()
                        throws IOException
Throws:
IOException

checkWriteAccess

protected void checkWriteAccess()
                         throws IOException
Throws:
IOException


SourceForge.net Logo