org.alfresco.repo.content
Class AbstractContentAccessor.CallbackFileChannel
java.lang.Object
java.nio.channels.spi.AbstractInterruptibleChannel
java.nio.channels.FileChannel
org.alfresco.repo.content.AbstractContentAccessor.CallbackFileChannel
- All Implemented Interfaces:
- java.io.Closeable, java.nio.channels.ByteChannel, java.nio.channels.Channel, java.nio.channels.GatheringByteChannel, java.nio.channels.InterruptibleChannel, java.nio.channels.ReadableByteChannel, java.nio.channels.ScatteringByteChannel, java.nio.channels.WritableByteChannel
- Enclosing class:
- AbstractContentAccessor
protected class AbstractContentAccessor.CallbackFileChannel
- extends java.nio.channels.FileChannel
Wraps a FileChannel
to provide callbacks to listeners when the
channel is closed
.
This class is unfortunately necessary as the FileChannel
doesn't have
an single interface defining its methods, making it difficult to put an
advice around the methods that require overriding.
Nested classes/interfaces inherited from class java.nio.channels.FileChannel |
java.nio.channels.FileChannel.MapMode |
Method Summary |
void |
force(boolean metaData)
|
protected void |
implCloseChannel()
Closes the channel and makes the callbacks to the listeners |
java.nio.channels.FileLock |
lock(long position,
long size,
boolean shared)
|
java.nio.MappedByteBuffer |
map(java.nio.channels.FileChannel.MapMode mode,
long position,
long size)
|
long |
position()
|
java.nio.channels.FileChannel |
position(long newPosition)
|
int |
read(java.nio.ByteBuffer dst)
|
long |
read(java.nio.ByteBuffer[] dsts,
int offset,
int length)
|
int |
read(java.nio.ByteBuffer dst,
long position)
|
long |
size()
|
long |
transferFrom(java.nio.channels.ReadableByteChannel src,
long position,
long count)
|
long |
transferTo(long position,
long count,
java.nio.channels.WritableByteChannel target)
|
java.nio.channels.FileChannel |
truncate(long size)
|
java.nio.channels.FileLock |
tryLock(long position,
long size,
boolean shared)
|
int |
write(java.nio.ByteBuffer src)
|
long |
write(java.nio.ByteBuffer[] srcs,
int offset,
int length)
|
int |
write(java.nio.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 |
AbstractContentAccessor.CallbackFileChannel
public AbstractContentAccessor.CallbackFileChannel(java.nio.channels.FileChannel delegate,
java.util.List listeners)
- Parameters:
delegate
- the channel that will perform the worklisteners
- listeners for events coming from this channel
implCloseChannel
protected void implCloseChannel()
throws java.io.IOException
- Closes the channel and makes the callbacks to the listeners
- Specified by:
implCloseChannel
in class java.nio.channels.spi.AbstractInterruptibleChannel
- Throws:
java.io.IOException
force
public void force(boolean metaData)
throws java.io.IOException
- Specified by:
force
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
lock
public java.nio.channels.FileLock lock(long position,
long size,
boolean shared)
throws java.io.IOException
- Specified by:
lock
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
map
public java.nio.MappedByteBuffer map(java.nio.channels.FileChannel.MapMode mode,
long position,
long size)
throws java.io.IOException
- Specified by:
map
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
position
public long position()
throws java.io.IOException
- Specified by:
position
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
position
public java.nio.channels.FileChannel position(long newPosition)
throws java.io.IOException
- Specified by:
position
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
read
public int read(java.nio.ByteBuffer dst)
throws java.io.IOException
- Specified by:
read
in interface java.nio.channels.ReadableByteChannel
- Specified by:
read
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
read
public int read(java.nio.ByteBuffer dst,
long position)
throws java.io.IOException
- Specified by:
read
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
read
public long read(java.nio.ByteBuffer[] dsts,
int offset,
int length)
throws java.io.IOException
- Specified by:
read
in interface java.nio.channels.ScatteringByteChannel
- Specified by:
read
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
size
public long size()
throws java.io.IOException
- Specified by:
size
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
transferFrom
public long transferFrom(java.nio.channels.ReadableByteChannel src,
long position,
long count)
throws java.io.IOException
- Specified by:
transferFrom
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
transferTo
public long transferTo(long position,
long count,
java.nio.channels.WritableByteChannel target)
throws java.io.IOException
- Specified by:
transferTo
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
truncate
public java.nio.channels.FileChannel truncate(long size)
throws java.io.IOException
- Specified by:
truncate
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
tryLock
public java.nio.channels.FileLock tryLock(long position,
long size,
boolean shared)
throws java.io.IOException
- Specified by:
tryLock
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
write
public int write(java.nio.ByteBuffer src)
throws java.io.IOException
- Specified by:
write
in interface java.nio.channels.WritableByteChannel
- Specified by:
write
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
write
public int write(java.nio.ByteBuffer src,
long position)
throws java.io.IOException
- Specified by:
write
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
write
public long write(java.nio.ByteBuffer[] srcs,
int offset,
int length)
throws java.io.IOException
- Specified by:
write
in interface java.nio.channels.GatheringByteChannel
- Specified by:
write
in class java.nio.channels.FileChannel
- Throws:
java.io.IOException
Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.