Added @Override annotations which were disallowed in Java 5 but not anymore in Java 6.

This commit is contained in:
Trustin Lee 2010-11-12 09:45:39 +09:00
parent d3fb52e11d
commit 0dbdbcdb96
208 changed files with 1428 additions and 0 deletions

View File

@ -318,6 +318,7 @@ public class Bootstrap implements ExternalResourceReleasable {
* {@inheritDoc} This method simply delegates the call to * {@inheritDoc} This method simply delegates the call to
* {@link ChannelFactory#releaseExternalResources()}. * {@link ChannelFactory#releaseExternalResources()}.
*/ */
@Override
public void releaseExternalResources() { public void releaseExternalResources() {
ChannelFactory factory = this.factory; ChannelFactory factory = this.factory;
if (factory != null) { if (factory != null) {

View File

@ -39,10 +39,12 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
private int markedReaderIndex; private int markedReaderIndex;
private int markedWriterIndex; private int markedWriterIndex;
@Override
public int readerIndex() { public int readerIndex() {
return readerIndex; return readerIndex;
} }
@Override
public void readerIndex(int readerIndex) { public void readerIndex(int readerIndex) {
if (readerIndex < 0 || readerIndex > writerIndex) { if (readerIndex < 0 || readerIndex > writerIndex) {
throw new IndexOutOfBoundsException(); throw new IndexOutOfBoundsException();
@ -50,10 +52,12 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
this.readerIndex = readerIndex; this.readerIndex = readerIndex;
} }
@Override
public int writerIndex() { public int writerIndex() {
return writerIndex; return writerIndex;
} }
@Override
public void writerIndex(int writerIndex) { public void writerIndex(int writerIndex) {
if (writerIndex < readerIndex || writerIndex > capacity()) { if (writerIndex < readerIndex || writerIndex > capacity()) {
throw new IndexOutOfBoundsException(); throw new IndexOutOfBoundsException();
@ -61,6 +65,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
this.writerIndex = writerIndex; this.writerIndex = writerIndex;
} }
@Override
public void setIndex(int readerIndex, int writerIndex) { public void setIndex(int readerIndex, int writerIndex) {
if (readerIndex < 0 || readerIndex > writerIndex || writerIndex > capacity()) { if (readerIndex < 0 || readerIndex > writerIndex || writerIndex > capacity()) {
throw new IndexOutOfBoundsException(); throw new IndexOutOfBoundsException();
@ -69,42 +74,52 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
this.writerIndex = writerIndex; this.writerIndex = writerIndex;
} }
@Override
public void clear() { public void clear() {
readerIndex = writerIndex = 0; readerIndex = writerIndex = 0;
} }
@Override
public boolean readable() { public boolean readable() {
return readableBytes() > 0; return readableBytes() > 0;
} }
@Override
public boolean writable() { public boolean writable() {
return writableBytes() > 0; return writableBytes() > 0;
} }
@Override
public int readableBytes() { public int readableBytes() {
return writerIndex - readerIndex; return writerIndex - readerIndex;
} }
@Override
public int writableBytes() { public int writableBytes() {
return capacity() - writerIndex; return capacity() - writerIndex;
} }
@Override
public void markReaderIndex() { public void markReaderIndex() {
markedReaderIndex = readerIndex; markedReaderIndex = readerIndex;
} }
@Override
public void resetReaderIndex() { public void resetReaderIndex() {
readerIndex(markedReaderIndex); readerIndex(markedReaderIndex);
} }
@Override
public void markWriterIndex() { public void markWriterIndex() {
markedWriterIndex = writerIndex; markedWriterIndex = writerIndex;
} }
@Override
public void resetWriterIndex() { public void resetWriterIndex() {
writerIndex = markedWriterIndex; writerIndex = markedWriterIndex;
} }
@Override
public void discardReadBytes() { public void discardReadBytes() {
if (readerIndex == 0) { if (readerIndex == 0) {
return; return;
@ -116,20 +131,24 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
readerIndex = 0; readerIndex = 0;
} }
@Override
public void ensureWritableBytes(int writableBytes) { public void ensureWritableBytes(int writableBytes) {
if (writableBytes > writableBytes()) { if (writableBytes > writableBytes()) {
throw new IndexOutOfBoundsException(); throw new IndexOutOfBoundsException();
} }
} }
@Override
public short getUnsignedByte(int index) { public short getUnsignedByte(int index) {
return (short) (getByte(index) & 0xFF); return (short) (getByte(index) & 0xFF);
} }
@Override
public int getUnsignedShort(int index) { public int getUnsignedShort(int index) {
return getShort(index) & 0xFFFF; return getShort(index) & 0xFFFF;
} }
@Override
public int getMedium(int index) { public int getMedium(int index) {
int value = getUnsignedMedium(index); int value = getUnsignedMedium(index);
if ((value & 0x800000) != 0) { if ((value & 0x800000) != 0) {
@ -138,30 +157,37 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return value; return value;
} }
@Override
public long getUnsignedInt(int index) { public long getUnsignedInt(int index) {
return getInt(index) & 0xFFFFFFFFL; return getInt(index) & 0xFFFFFFFFL;
} }
@Override
public char getChar(int index) { public char getChar(int index) {
return (char) getShort(index); return (char) getShort(index);
} }
@Override
public float getFloat(int index) { public float getFloat(int index) {
return Float.intBitsToFloat(getInt(index)); return Float.intBitsToFloat(getInt(index));
} }
@Override
public double getDouble(int index) { public double getDouble(int index) {
return Double.longBitsToDouble(getLong(index)); return Double.longBitsToDouble(getLong(index));
} }
@Override
public void getBytes(int index, byte[] dst) { public void getBytes(int index, byte[] dst) {
getBytes(index, dst, 0, dst.length); getBytes(index, dst, 0, dst.length);
} }
@Override
public void getBytes(int index, ChannelBuffer dst) { public void getBytes(int index, ChannelBuffer dst) {
getBytes(index, dst, dst.writableBytes()); getBytes(index, dst, dst.writableBytes());
} }
@Override
public void getBytes(int index, ChannelBuffer dst, int length) { public void getBytes(int index, ChannelBuffer dst, int length) {
if (length > dst.writableBytes()) { if (length > dst.writableBytes()) {
throw new IndexOutOfBoundsException(); throw new IndexOutOfBoundsException();
@ -170,26 +196,32 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
dst.writerIndex(dst.writerIndex() + length); dst.writerIndex(dst.writerIndex() + length);
} }
@Override
public void setChar(int index, int value) { public void setChar(int index, int value) {
setShort(index, value); setShort(index, value);
} }
@Override
public void setFloat(int index, float value) { public void setFloat(int index, float value) {
setInt(index, Float.floatToRawIntBits(value)); setInt(index, Float.floatToRawIntBits(value));
} }
@Override
public void setDouble(int index, double value) { public void setDouble(int index, double value) {
setLong(index, Double.doubleToRawLongBits(value)); setLong(index, Double.doubleToRawLongBits(value));
} }
@Override
public void setBytes(int index, byte[] src) { public void setBytes(int index, byte[] src) {
setBytes(index, src, 0, src.length); setBytes(index, src, 0, src.length);
} }
@Override
public void setBytes(int index, ChannelBuffer src) { public void setBytes(int index, ChannelBuffer src) {
setBytes(index, src, src.readableBytes()); setBytes(index, src, src.readableBytes());
} }
@Override
public void setBytes(int index, ChannelBuffer src, int length) { public void setBytes(int index, ChannelBuffer src, int length) {
if (length > src.readableBytes()) { if (length > src.readableBytes()) {
throw new IndexOutOfBoundsException(); throw new IndexOutOfBoundsException();
@ -198,6 +230,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
src.readerIndex(src.readerIndex() + length); src.readerIndex(src.readerIndex() + length);
} }
@Override
public void setZero(int index, int length) { public void setZero(int index, int length) {
if (length == 0) { if (length == 0) {
return; return;
@ -230,6 +263,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
} }
} }
@Override
public byte readByte() { public byte readByte() {
if (readerIndex == writerIndex) { if (readerIndex == writerIndex) {
throw new IndexOutOfBoundsException(); throw new IndexOutOfBoundsException();
@ -237,10 +271,12 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return getByte(readerIndex ++); return getByte(readerIndex ++);
} }
@Override
public short readUnsignedByte() { public short readUnsignedByte() {
return (short) (readByte() & 0xFF); return (short) (readByte() & 0xFF);
} }
@Override
public short readShort() { public short readShort() {
checkReadableBytes(2); checkReadableBytes(2);
short v = getShort(readerIndex); short v = getShort(readerIndex);
@ -248,10 +284,12 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return v; return v;
} }
@Override
public int readUnsignedShort() { public int readUnsignedShort() {
return readShort() & 0xFFFF; return readShort() & 0xFFFF;
} }
@Override
public int readMedium() { public int readMedium() {
int value = readUnsignedMedium(); int value = readUnsignedMedium();
if ((value & 0x800000) != 0) { if ((value & 0x800000) != 0) {
@ -260,6 +298,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return value; return value;
} }
@Override
public int readUnsignedMedium() { public int readUnsignedMedium() {
checkReadableBytes(3); checkReadableBytes(3);
int v = getUnsignedMedium(readerIndex); int v = getUnsignedMedium(readerIndex);
@ -267,6 +306,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return v; return v;
} }
@Override
public int readInt() { public int readInt() {
checkReadableBytes(4); checkReadableBytes(4);
int v = getInt(readerIndex); int v = getInt(readerIndex);
@ -274,10 +314,12 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return v; return v;
} }
@Override
public long readUnsignedInt() { public long readUnsignedInt() {
return readInt() & 0xFFFFFFFFL; return readInt() & 0xFFFFFFFFL;
} }
@Override
public long readLong() { public long readLong() {
checkReadableBytes(8); checkReadableBytes(8);
long v = getLong(readerIndex); long v = getLong(readerIndex);
@ -285,18 +327,22 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return v; return v;
} }
@Override
public char readChar() { public char readChar() {
return (char) readShort(); return (char) readShort();
} }
@Override
public float readFloat() { public float readFloat() {
return Float.intBitsToFloat(readInt()); return Float.intBitsToFloat(readInt());
} }
@Override
public double readDouble() { public double readDouble() {
return Double.longBitsToDouble(readLong()); return Double.longBitsToDouble(readLong());
} }
@Override
public ChannelBuffer readBytes(int length) { public ChannelBuffer readBytes(int length) {
checkReadableBytes(length); checkReadableBytes(length);
if (length == 0) { if (length == 0) {
@ -308,26 +354,31 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return buf; return buf;
} }
@Override
public ChannelBuffer readSlice(int length) { public ChannelBuffer readSlice(int length) {
ChannelBuffer slice = slice(readerIndex, length); ChannelBuffer slice = slice(readerIndex, length);
readerIndex += length; readerIndex += length;
return slice; return slice;
} }
@Override
public void readBytes(byte[] dst, int dstIndex, int length) { public void readBytes(byte[] dst, int dstIndex, int length) {
checkReadableBytes(length); checkReadableBytes(length);
getBytes(readerIndex, dst, dstIndex, length); getBytes(readerIndex, dst, dstIndex, length);
readerIndex += length; readerIndex += length;
} }
@Override
public void readBytes(byte[] dst) { public void readBytes(byte[] dst) {
readBytes(dst, 0, dst.length); readBytes(dst, 0, dst.length);
} }
@Override
public void readBytes(ChannelBuffer dst) { public void readBytes(ChannelBuffer dst) {
readBytes(dst, dst.writableBytes()); readBytes(dst, dst.writableBytes());
} }
@Override
public void readBytes(ChannelBuffer dst, int length) { public void readBytes(ChannelBuffer dst, int length) {
if (length > dst.writableBytes()) { if (length > dst.writableBytes()) {
throw new IndexOutOfBoundsException(); throw new IndexOutOfBoundsException();
@ -336,12 +387,14 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
dst.writerIndex(dst.writerIndex() + length); dst.writerIndex(dst.writerIndex() + length);
} }
@Override
public void readBytes(ChannelBuffer dst, int dstIndex, int length) { public void readBytes(ChannelBuffer dst, int dstIndex, int length) {
checkReadableBytes(length); checkReadableBytes(length);
getBytes(readerIndex, dst, dstIndex, length); getBytes(readerIndex, dst, dstIndex, length);
readerIndex += length; readerIndex += length;
} }
@Override
public void readBytes(ByteBuffer dst) { public void readBytes(ByteBuffer dst) {
int length = dst.remaining(); int length = dst.remaining();
checkReadableBytes(length); checkReadableBytes(length);
@ -349,6 +402,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
readerIndex += length; readerIndex += length;
} }
@Override
public int readBytes(GatheringByteChannel out, int length) public int readBytes(GatheringByteChannel out, int length)
throws IOException { throws IOException {
checkReadableBytes(length); checkReadableBytes(length);
@ -357,12 +411,14 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return readBytes; return readBytes;
} }
@Override
public void readBytes(OutputStream out, int length) throws IOException { public void readBytes(OutputStream out, int length) throws IOException {
checkReadableBytes(length); checkReadableBytes(length);
getBytes(readerIndex, out, length); getBytes(readerIndex, out, length);
readerIndex += length; readerIndex += length;
} }
@Override
public void skipBytes(int length) { public void skipBytes(int length) {
int newReaderIndex = readerIndex + length; int newReaderIndex = readerIndex + length;
if (newReaderIndex > writerIndex) { if (newReaderIndex > writerIndex) {
@ -371,55 +427,67 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
readerIndex = newReaderIndex; readerIndex = newReaderIndex;
} }
@Override
public void writeByte(int value) { public void writeByte(int value) {
setByte(writerIndex ++, value); setByte(writerIndex ++, value);
} }
@Override
public void writeShort(int value) { public void writeShort(int value) {
setShort(writerIndex, value); setShort(writerIndex, value);
writerIndex += 2; writerIndex += 2;
} }
@Override
public void writeMedium(int value) { public void writeMedium(int value) {
setMedium(writerIndex, value); setMedium(writerIndex, value);
writerIndex += 3; writerIndex += 3;
} }
@Override
public void writeInt(int value) { public void writeInt(int value) {
setInt(writerIndex, value); setInt(writerIndex, value);
writerIndex += 4; writerIndex += 4;
} }
@Override
public void writeLong(long value) { public void writeLong(long value) {
setLong(writerIndex, value); setLong(writerIndex, value);
writerIndex += 8; writerIndex += 8;
} }
@Override
public void writeChar(int value) { public void writeChar(int value) {
writeShort(value); writeShort(value);
} }
@Override
public void writeFloat(float value) { public void writeFloat(float value) {
writeInt(Float.floatToRawIntBits(value)); writeInt(Float.floatToRawIntBits(value));
} }
@Override
public void writeDouble(double value) { public void writeDouble(double value) {
writeLong(Double.doubleToRawLongBits(value)); writeLong(Double.doubleToRawLongBits(value));
} }
@Override
public void writeBytes(byte[] src, int srcIndex, int length) { public void writeBytes(byte[] src, int srcIndex, int length) {
setBytes(writerIndex, src, srcIndex, length); setBytes(writerIndex, src, srcIndex, length);
writerIndex += length; writerIndex += length;
} }
@Override
public void writeBytes(byte[] src) { public void writeBytes(byte[] src) {
writeBytes(src, 0, src.length); writeBytes(src, 0, src.length);
} }
@Override
public void writeBytes(ChannelBuffer src) { public void writeBytes(ChannelBuffer src) {
writeBytes(src, src.readableBytes()); writeBytes(src, src.readableBytes());
} }
@Override
public void writeBytes(ChannelBuffer src, int length) { public void writeBytes(ChannelBuffer src, int length) {
if (length > src.readableBytes()) { if (length > src.readableBytes()) {
throw new IndexOutOfBoundsException(); throw new IndexOutOfBoundsException();
@ -428,17 +496,20 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
src.readerIndex(src.readerIndex() + length); src.readerIndex(src.readerIndex() + length);
} }
@Override
public void writeBytes(ChannelBuffer src, int srcIndex, int length) { public void writeBytes(ChannelBuffer src, int srcIndex, int length) {
setBytes(writerIndex, src, srcIndex, length); setBytes(writerIndex, src, srcIndex, length);
writerIndex += length; writerIndex += length;
} }
@Override
public void writeBytes(ByteBuffer src) { public void writeBytes(ByteBuffer src) {
int length = src.remaining(); int length = src.remaining();
setBytes(writerIndex, src); setBytes(writerIndex, src);
writerIndex += length; writerIndex += length;
} }
@Override
public int writeBytes(InputStream in, int length) public int writeBytes(InputStream in, int length)
throws IOException { throws IOException {
int writtenBytes = setBytes(writerIndex, in, length); int writtenBytes = setBytes(writerIndex, in, length);
@ -448,6 +519,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return writtenBytes; return writtenBytes;
} }
@Override
public int writeBytes(ScatteringByteChannel in, int length) public int writeBytes(ScatteringByteChannel in, int length)
throws IOException { throws IOException {
int writtenBytes = setBytes(writerIndex, in, length); int writtenBytes = setBytes(writerIndex, in, length);
@ -457,6 +529,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return writtenBytes; return writtenBytes;
} }
@Override
public void writeZero(int length) { public void writeZero(int length) {
if (length == 0) { if (length == 0) {
return; return;
@ -484,30 +557,37 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
} }
} }
@Override
public ChannelBuffer copy() { public ChannelBuffer copy() {
return copy(readerIndex, readableBytes()); return copy(readerIndex, readableBytes());
} }
@Override
public ChannelBuffer slice() { public ChannelBuffer slice() {
return slice(readerIndex, readableBytes()); return slice(readerIndex, readableBytes());
} }
@Override
public ByteBuffer toByteBuffer() { public ByteBuffer toByteBuffer() {
return toByteBuffer(readerIndex, readableBytes()); return toByteBuffer(readerIndex, readableBytes());
} }
@Override
public ByteBuffer[] toByteBuffers() { public ByteBuffer[] toByteBuffers() {
return toByteBuffers(readerIndex, readableBytes()); return toByteBuffers(readerIndex, readableBytes());
} }
@Override
public ByteBuffer[] toByteBuffers(int index, int length) { public ByteBuffer[] toByteBuffers(int index, int length) {
return new ByteBuffer[] { toByteBuffer(index, length) }; return new ByteBuffer[] { toByteBuffer(index, length) };
} }
@Override
public String toString(Charset charset) { public String toString(Charset charset) {
return toString(readerIndex, readableBytes(), charset); return toString(readerIndex, readableBytes(), charset);
} }
@Override
public String toString(int index, int length, Charset charset) { public String toString(int index, int length, Charset charset) {
if (length == 0) { if (length == 0) {
return ""; return "";
@ -517,32 +597,39 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
toByteBuffer(index, length), charset); toByteBuffer(index, length), charset);
} }
@Override
public int indexOf(int fromIndex, int toIndex, byte value) { public int indexOf(int fromIndex, int toIndex, byte value) {
return ChannelBuffers.indexOf(this, fromIndex, toIndex, value); return ChannelBuffers.indexOf(this, fromIndex, toIndex, value);
} }
@Override
public int indexOf(int fromIndex, int toIndex, ChannelBufferIndexFinder indexFinder) { public int indexOf(int fromIndex, int toIndex, ChannelBufferIndexFinder indexFinder) {
return ChannelBuffers.indexOf(this, fromIndex, toIndex, indexFinder); return ChannelBuffers.indexOf(this, fromIndex, toIndex, indexFinder);
} }
@Override
public int bytesBefore(byte value) { public int bytesBefore(byte value) {
return bytesBefore(readerIndex(), readableBytes(), value); return bytesBefore(readerIndex(), readableBytes(), value);
} }
@Override
public int bytesBefore(ChannelBufferIndexFinder indexFinder) { public int bytesBefore(ChannelBufferIndexFinder indexFinder) {
return bytesBefore(readerIndex(), readableBytes(), indexFinder); return bytesBefore(readerIndex(), readableBytes(), indexFinder);
} }
@Override
public int bytesBefore(int length, byte value) { public int bytesBefore(int length, byte value) {
checkReadableBytes(length); checkReadableBytes(length);
return bytesBefore(readerIndex(), length, value); return bytesBefore(readerIndex(), length, value);
} }
@Override
public int bytesBefore(int length, ChannelBufferIndexFinder indexFinder) { public int bytesBefore(int length, ChannelBufferIndexFinder indexFinder) {
checkReadableBytes(length); checkReadableBytes(length);
return bytesBefore(readerIndex(), length, indexFinder); return bytesBefore(readerIndex(), length, indexFinder);
} }
@Override
public int bytesBefore(int index, int length, byte value) { public int bytesBefore(int index, int length, byte value) {
int endIndex = indexOf(index, index + length, value); int endIndex = indexOf(index, index + length, value);
if (endIndex < 0) { if (endIndex < 0) {
@ -551,6 +638,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return endIndex - index; return endIndex - index;
} }
@Override
public int bytesBefore(int index, int length, public int bytesBefore(int index, int length,
ChannelBufferIndexFinder indexFinder) { ChannelBufferIndexFinder indexFinder) {
int endIndex = indexOf(index, index + length, indexFinder); int endIndex = indexOf(index, index + length, indexFinder);
@ -573,6 +661,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return ChannelBuffers.equals(this, (ChannelBuffer) o); return ChannelBuffers.equals(this, (ChannelBuffer) o);
} }
@Override
public int compareTo(ChannelBuffer that) { public int compareTo(ChannelBuffer that) {
return ChannelBuffers.compare(this, that); return ChannelBuffers.compare(this, that);
} }

View File

@ -49,14 +49,17 @@ public abstract class AbstractChannelBufferFactory implements ChannelBufferFacto
this.defaultOrder = defaultOrder; this.defaultOrder = defaultOrder;
} }
@Override
public ChannelBuffer getBuffer(int capacity) { public ChannelBuffer getBuffer(int capacity) {
return getBuffer(getDefaultOrder(), capacity); return getBuffer(getDefaultOrder(), capacity);
} }
@Override
public ChannelBuffer getBuffer(byte[] array, int offset, int length) { public ChannelBuffer getBuffer(byte[] array, int offset, int length) {
return getBuffer(getDefaultOrder(), array, offset, length); return getBuffer(getDefaultOrder(), array, offset, length);
} }
@Override
public ByteOrder getDefaultOrder() { public ByteOrder getDefaultOrder() {
return defaultOrder; return defaultOrder;
} }

View File

@ -52,24 +52,29 @@ public class BigEndianHeapChannelBuffer extends HeapChannelBuffer {
super(array, readerIndex, writerIndex); super(array, readerIndex, writerIndex);
} }
@Override
public ChannelBufferFactory factory() { public ChannelBufferFactory factory() {
return HeapChannelBufferFactory.getInstance(ByteOrder.BIG_ENDIAN); return HeapChannelBufferFactory.getInstance(ByteOrder.BIG_ENDIAN);
} }
@Override
public ByteOrder order() { public ByteOrder order() {
return ByteOrder.BIG_ENDIAN; return ByteOrder.BIG_ENDIAN;
} }
@Override
public short getShort(int index) { public short getShort(int index) {
return (short) (array[index] << 8 | array[index+1] & 0xFF); return (short) (array[index] << 8 | array[index+1] & 0xFF);
} }
@Override
public int getUnsignedMedium(int index) { public int getUnsignedMedium(int index) {
return (array[index] & 0xff) << 16 | return (array[index] & 0xff) << 16 |
(array[index+1] & 0xff) << 8 | (array[index+1] & 0xff) << 8 |
(array[index+2] & 0xff) << 0; (array[index+2] & 0xff) << 0;
} }
@Override
public int getInt(int index) { public int getInt(int index) {
return (array[index] & 0xff) << 24 | return (array[index] & 0xff) << 24 |
(array[index+1] & 0xff) << 16 | (array[index+1] & 0xff) << 16 |
@ -77,6 +82,7 @@ public class BigEndianHeapChannelBuffer extends HeapChannelBuffer {
(array[index+3] & 0xff) << 0; (array[index+3] & 0xff) << 0;
} }
@Override
public long getLong(int index) { public long getLong(int index) {
return ((long) array[index] & 0xff) << 56 | return ((long) array[index] & 0xff) << 56 |
((long) array[index+1] & 0xff) << 48 | ((long) array[index+1] & 0xff) << 48 |
@ -88,17 +94,20 @@ public class BigEndianHeapChannelBuffer extends HeapChannelBuffer {
((long) array[index+7] & 0xff) << 0; ((long) array[index+7] & 0xff) << 0;
} }
@Override
public void setShort(int index, int value) { public void setShort(int index, int value) {
array[index ] = (byte) (value >>> 8); array[index ] = (byte) (value >>> 8);
array[index+1] = (byte) (value >>> 0); array[index+1] = (byte) (value >>> 0);
} }
@Override
public void setMedium(int index, int value) { public void setMedium(int index, int value) {
array[index ] = (byte) (value >>> 16); array[index ] = (byte) (value >>> 16);
array[index+1] = (byte) (value >>> 8); array[index+1] = (byte) (value >>> 8);
array[index+2] = (byte) (value >>> 0); array[index+2] = (byte) (value >>> 0);
} }
@Override
public void setInt(int index, int value) { public void setInt(int index, int value) {
array[index ] = (byte) (value >>> 24); array[index ] = (byte) (value >>> 24);
array[index+1] = (byte) (value >>> 16); array[index+1] = (byte) (value >>> 16);
@ -106,6 +115,7 @@ public class BigEndianHeapChannelBuffer extends HeapChannelBuffer {
array[index+3] = (byte) (value >>> 0); array[index+3] = (byte) (value >>> 0);
} }
@Override
public void setLong(int index, long value) { public void setLong(int index, long value) {
array[index ] = (byte) (value >>> 56); array[index ] = (byte) (value >>> 56);
array[index+1] = (byte) (value >>> 48); array[index+1] = (byte) (value >>> 48);
@ -117,10 +127,12 @@ public class BigEndianHeapChannelBuffer extends HeapChannelBuffer {
array[index+7] = (byte) (value >>> 0); array[index+7] = (byte) (value >>> 0);
} }
@Override
public ChannelBuffer duplicate() { public ChannelBuffer duplicate() {
return new BigEndianHeapChannelBuffer(array, readerIndex(), writerIndex()); return new BigEndianHeapChannelBuffer(array, readerIndex(), writerIndex());
} }
@Override
public ChannelBuffer copy(int index, int length) { public ChannelBuffer copy(int index, int length) {
if (index < 0 || length < 0 || index + length > array.length) { if (index < 0 || length < 0 || index + length > array.length) {
throw new IndexOutOfBoundsException(); throw new IndexOutOfBoundsException();

View File

@ -62,6 +62,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
setIndex(buffer.readerIndex(), buffer.writerIndex()); setIndex(buffer.readerIndex(), buffer.writerIndex());
} }
@Override
public ChannelBufferFactory factory() { public ChannelBufferFactory factory() {
if (buffer.isDirect()) { if (buffer.isDirect()) {
return DirectChannelBufferFactory.getInstance(order()); return DirectChannelBufferFactory.getInstance(order());
@ -70,52 +71,64 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public boolean isDirect() { public boolean isDirect() {
return buffer.isDirect(); return buffer.isDirect();
} }
@Override
public ByteOrder order() { public ByteOrder order() {
return order; return order;
} }
@Override
public int capacity() { public int capacity() {
return capacity; return capacity;
} }
@Override
public boolean hasArray() { public boolean hasArray() {
return buffer.hasArray(); return buffer.hasArray();
} }
@Override
public byte[] array() { public byte[] array() {
return buffer.array(); return buffer.array();
} }
@Override
public int arrayOffset() { public int arrayOffset() {
return buffer.arrayOffset(); return buffer.arrayOffset();
} }
@Override
public byte getByte(int index) { public byte getByte(int index) {
return buffer.get(index); return buffer.get(index);
} }
@Override
public short getShort(int index) { public short getShort(int index) {
return buffer.getShort(index); return buffer.getShort(index);
} }
@Override
public int getUnsignedMedium(int index) { public int getUnsignedMedium(int index) {
return (getByte(index) & 0xff) << 16 | return (getByte(index) & 0xff) << 16 |
(getByte(index+1) & 0xff) << 8 | (getByte(index+1) & 0xff) << 8 |
(getByte(index+2) & 0xff) << 0; (getByte(index+2) & 0xff) << 0;
} }
@Override
public int getInt(int index) { public int getInt(int index) {
return buffer.getInt(index); return buffer.getInt(index);
} }
@Override
public long getLong(int index) { public long getLong(int index) {
return buffer.getLong(index); return buffer.getLong(index);
} }
@Override
public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) { public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
if (dst instanceof ByteBufferBackedChannelBuffer) { if (dst instanceof ByteBufferBackedChannelBuffer) {
ByteBufferBackedChannelBuffer bbdst = (ByteBufferBackedChannelBuffer) dst; ByteBufferBackedChannelBuffer bbdst = (ByteBufferBackedChannelBuffer) dst;
@ -130,6 +143,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void getBytes(int index, byte[] dst, int dstIndex, int length) { public void getBytes(int index, byte[] dst, int dstIndex, int length) {
ByteBuffer data = buffer.duplicate(); ByteBuffer data = buffer.duplicate();
try { try {
@ -140,6 +154,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
data.get(dst, dstIndex, length); data.get(dst, dstIndex, length);
} }
@Override
public void getBytes(int index, ByteBuffer dst) { public void getBytes(int index, ByteBuffer dst) {
ByteBuffer data = buffer.duplicate(); ByteBuffer data = buffer.duplicate();
int bytesToCopy = Math.min(capacity() - index, dst.remaining()); int bytesToCopy = Math.min(capacity() - index, dst.remaining());
@ -151,28 +166,34 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
dst.put(data); dst.put(data);
} }
@Override
public void setByte(int index, int value) { public void setByte(int index, int value) {
buffer.put(index, (byte) value); buffer.put(index, (byte) value);
} }
@Override
public void setShort(int index, int value) { public void setShort(int index, int value) {
buffer.putShort(index, (short) value); buffer.putShort(index, (short) value);
} }
@Override
public void setMedium(int index, int value) { public void setMedium(int index, int value) {
setByte(index, (byte) (value >>> 16)); setByte(index, (byte) (value >>> 16));
setByte(index+1, (byte) (value >>> 8)); setByte(index+1, (byte) (value >>> 8));
setByte(index+2, (byte) (value >>> 0)); setByte(index+2, (byte) (value >>> 0));
} }
@Override
public void setInt(int index, int value) { public void setInt(int index, int value) {
buffer.putInt(index, value); buffer.putInt(index, value);
} }
@Override
public void setLong(int index, long value) { public void setLong(int index, long value) {
buffer.putLong(index, value); buffer.putLong(index, value);
} }
@Override
public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) { public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
if (src instanceof ByteBufferBackedChannelBuffer) { if (src instanceof ByteBufferBackedChannelBuffer) {
ByteBufferBackedChannelBuffer bbsrc = (ByteBufferBackedChannelBuffer) src; ByteBufferBackedChannelBuffer bbsrc = (ByteBufferBackedChannelBuffer) src;
@ -187,18 +208,21 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void setBytes(int index, byte[] src, int srcIndex, int length) { public void setBytes(int index, byte[] src, int srcIndex, int length) {
ByteBuffer data = buffer.duplicate(); ByteBuffer data = buffer.duplicate();
data.limit(index + length).position(index); data.limit(index + length).position(index);
data.put(src, srcIndex, length); data.put(src, srcIndex, length);
} }
@Override
public void setBytes(int index, ByteBuffer src) { public void setBytes(int index, ByteBuffer src) {
ByteBuffer data = buffer.duplicate(); ByteBuffer data = buffer.duplicate();
data.limit(index + src.remaining()).position(index); data.limit(index + src.remaining()).position(index);
data.put(src); data.put(src);
} }
@Override
public void getBytes(int index, OutputStream out, int length) throws IOException { public void getBytes(int index, OutputStream out, int length) throws IOException {
if (length == 0) { if (length == 0) {
return; return;
@ -216,6 +240,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public int getBytes(int index, GatheringByteChannel out, int length) throws IOException { public int getBytes(int index, GatheringByteChannel out, int length) throws IOException {
if (length == 0) { if (length == 0) {
return 0; return 0;
@ -224,6 +249,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
return out.write((ByteBuffer) buffer.duplicate().position(index).limit(index + length)); return out.write((ByteBuffer) buffer.duplicate().position(index).limit(index + length));
} }
@Override
public int setBytes(int index, InputStream in, int length) public int setBytes(int index, InputStream in, int length)
throws IOException { throws IOException {
@ -265,6 +291,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
return readBytes; return readBytes;
} }
@Override
public int setBytes(int index, ScatteringByteChannel in, int length) public int setBytes(int index, ScatteringByteChannel in, int length)
throws IOException { throws IOException {
@ -293,6 +320,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
return readBytes; return readBytes;
} }
@Override
public ByteBuffer toByteBuffer(int index, int length) { public ByteBuffer toByteBuffer(int index, int length) {
if (index == 0 && length == capacity()) { if (index == 0 && length == capacity()) {
return buffer.duplicate().order(order()); return buffer.duplicate().order(order());
@ -302,6 +330,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public ChannelBuffer slice(int index, int length) { public ChannelBuffer slice(int index, int length) {
if (index == 0 && length == capacity()) { if (index == 0 && length == capacity()) {
ChannelBuffer slice = duplicate(); ChannelBuffer slice = duplicate();
@ -317,10 +346,12 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public ChannelBuffer duplicate() { public ChannelBuffer duplicate() {
return new ByteBufferBackedChannelBuffer(this); return new ByteBufferBackedChannelBuffer(this);
} }
@Override
public ChannelBuffer copy(int index, int length) { public ChannelBuffer copy(int index, int length) {
ByteBuffer src; ByteBuffer src;
try { try {

View File

@ -1705,6 +1705,7 @@ public interface ChannelBuffer extends Comparable<ChannelBuffer> {
* {@linkplain #equals(Object) equal to} this array, both arrays should * {@linkplain #equals(Object) equal to} this array, both arrays should
* return the same value. * return the same value.
*/ */
@Override
int hashCode(); int hashCode();
/** /**
@ -1719,6 +1720,7 @@ public interface ChannelBuffer extends Comparable<ChannelBuffer> {
* {@code null} and an object which is not an instance of * {@code null} and an object which is not an instance of
* {@link ChannelBuffer} type. * {@link ChannelBuffer} type.
*/ */
@Override
boolean equals(Object obj); boolean equals(Object obj);
/** /**
@ -1727,6 +1729,7 @@ public interface ChannelBuffer extends Comparable<ChannelBuffer> {
* comparison functions of various languages such as {@code strcmp}, * comparison functions of various languages such as {@code strcmp},
* {@code memcmp} and {@link String#compareTo(String)}. * {@code memcmp} and {@link String#compareTo(String)}.
*/ */
@Override
int compareTo(ChannelBuffer buffer); int compareTo(ChannelBuffer buffer);
/** /**
@ -1735,5 +1738,6 @@ public interface ChannelBuffer extends Comparable<ChannelBuffer> {
* the values of the key properties such as {@link #readerIndex()}, * the values of the key properties such as {@link #readerIndex()},
* {@link #writerIndex()} and {@link #capacity()}. * {@link #writerIndex()} and {@link #capacity()}.
*/ */
@Override
String toString(); String toString();
} }

View File

@ -48,6 +48,7 @@ public interface ChannelBufferIndexFinder {
* Index finder which locates a {@code NUL (0x00)} byte. * Index finder which locates a {@code NUL (0x00)} byte.
*/ */
static ChannelBufferIndexFinder NUL = new ChannelBufferIndexFinder() { static ChannelBufferIndexFinder NUL = new ChannelBufferIndexFinder() {
@Override
public boolean find(ChannelBuffer buffer, int guessedIndex) { public boolean find(ChannelBuffer buffer, int guessedIndex) {
return buffer.getByte(guessedIndex) == 0; return buffer.getByte(guessedIndex) == 0;
} }
@ -57,6 +58,7 @@ public interface ChannelBufferIndexFinder {
* Index finder which locates a non-{@code NUL (0x00)} byte. * Index finder which locates a non-{@code NUL (0x00)} byte.
*/ */
static ChannelBufferIndexFinder NOT_NUL = new ChannelBufferIndexFinder() { static ChannelBufferIndexFinder NOT_NUL = new ChannelBufferIndexFinder() {
@Override
public boolean find(ChannelBuffer buffer, int guessedIndex) { public boolean find(ChannelBuffer buffer, int guessedIndex) {
return buffer.getByte(guessedIndex) != 0; return buffer.getByte(guessedIndex) != 0;
} }
@ -66,6 +68,7 @@ public interface ChannelBufferIndexFinder {
* Index finder which locates a {@code CR ('\r')} byte. * Index finder which locates a {@code CR ('\r')} byte.
*/ */
static ChannelBufferIndexFinder CR = new ChannelBufferIndexFinder() { static ChannelBufferIndexFinder CR = new ChannelBufferIndexFinder() {
@Override
public boolean find(ChannelBuffer buffer, int guessedIndex) { public boolean find(ChannelBuffer buffer, int guessedIndex) {
return buffer.getByte(guessedIndex) == '\r'; return buffer.getByte(guessedIndex) == '\r';
} }
@ -75,6 +78,7 @@ public interface ChannelBufferIndexFinder {
* Index finder which locates a non-{@code CR ('\r')} byte. * Index finder which locates a non-{@code CR ('\r')} byte.
*/ */
static ChannelBufferIndexFinder NOT_CR = new ChannelBufferIndexFinder() { static ChannelBufferIndexFinder NOT_CR = new ChannelBufferIndexFinder() {
@Override
public boolean find(ChannelBuffer buffer, int guessedIndex) { public boolean find(ChannelBuffer buffer, int guessedIndex) {
return buffer.getByte(guessedIndex) != '\r'; return buffer.getByte(guessedIndex) != '\r';
} }
@ -84,6 +88,7 @@ public interface ChannelBufferIndexFinder {
* Index finder which locates a {@code LF ('\n')} byte. * Index finder which locates a {@code LF ('\n')} byte.
*/ */
static ChannelBufferIndexFinder LF = new ChannelBufferIndexFinder() { static ChannelBufferIndexFinder LF = new ChannelBufferIndexFinder() {
@Override
public boolean find(ChannelBuffer buffer, int guessedIndex) { public boolean find(ChannelBuffer buffer, int guessedIndex) {
return buffer.getByte(guessedIndex) == '\n'; return buffer.getByte(guessedIndex) == '\n';
} }
@ -93,6 +98,7 @@ public interface ChannelBufferIndexFinder {
* Index finder which locates a non-{@code LF ('\n')} byte. * Index finder which locates a non-{@code LF ('\n')} byte.
*/ */
static ChannelBufferIndexFinder NOT_LF = new ChannelBufferIndexFinder() { static ChannelBufferIndexFinder NOT_LF = new ChannelBufferIndexFinder() {
@Override
public boolean find(ChannelBuffer buffer, int guessedIndex) { public boolean find(ChannelBuffer buffer, int guessedIndex) {
return buffer.getByte(guessedIndex) != '\n'; return buffer.getByte(guessedIndex) != '\n';
} }
@ -102,6 +108,7 @@ public interface ChannelBufferIndexFinder {
* Index finder which locates a {@code CR ('\r')} or {@code LF ('\n')}. * Index finder which locates a {@code CR ('\r')} or {@code LF ('\n')}.
*/ */
static ChannelBufferIndexFinder CRLF = new ChannelBufferIndexFinder() { static ChannelBufferIndexFinder CRLF = new ChannelBufferIndexFinder() {
@Override
public boolean find(ChannelBuffer buffer, int guessedIndex) { public boolean find(ChannelBuffer buffer, int guessedIndex) {
byte b = buffer.getByte(guessedIndex); byte b = buffer.getByte(guessedIndex);
return b == '\r' || b == '\n'; return b == '\r' || b == '\n';
@ -113,6 +120,7 @@ public interface ChannelBufferIndexFinder {
* nor a {@code LF ('\n')}. * nor a {@code LF ('\n')}.
*/ */
static ChannelBufferIndexFinder NOT_CRLF = new ChannelBufferIndexFinder() { static ChannelBufferIndexFinder NOT_CRLF = new ChannelBufferIndexFinder() {
@Override
public boolean find(ChannelBuffer buffer, int guessedIndex) { public boolean find(ChannelBuffer buffer, int guessedIndex) {
byte b = buffer.getByte(guessedIndex); byte b = buffer.getByte(guessedIndex);
return b != '\r' && b != '\n'; return b != '\r' && b != '\n';
@ -124,6 +132,7 @@ public interface ChannelBufferIndexFinder {
* ({@code ' '} and {@code '\t'}). * ({@code ' '} and {@code '\t'}).
*/ */
static ChannelBufferIndexFinder LINEAR_WHITESPACE = new ChannelBufferIndexFinder() { static ChannelBufferIndexFinder LINEAR_WHITESPACE = new ChannelBufferIndexFinder() {
@Override
public boolean find(ChannelBuffer buffer, int guessedIndex) { public boolean find(ChannelBuffer buffer, int guessedIndex) {
byte b = buffer.getByte(guessedIndex); byte b = buffer.getByte(guessedIndex);
return b == ' ' || b == '\t'; return b == ' ' || b == '\t';
@ -135,6 +144,7 @@ public interface ChannelBufferIndexFinder {
* (neither {@code ' '} nor {@code '\t'}). * (neither {@code ' '} nor {@code '\t'}).
*/ */
static ChannelBufferIndexFinder NOT_LINEAR_WHITESPACE = new ChannelBufferIndexFinder() { static ChannelBufferIndexFinder NOT_LINEAR_WHITESPACE = new ChannelBufferIndexFinder() {
@Override
public boolean find(ChannelBuffer buffer, int guessedIndex) { public boolean find(ChannelBuffer buffer, int guessedIndex) {
byte b = buffer.getByte(guessedIndex); byte b = buffer.getByte(guessedIndex);
return b != ' ' && b != '\t'; return b != ' ' && b != '\t';

View File

@ -137,11 +137,13 @@ public class ChannelBufferInputStream extends InputStream implements DataInput {
} }
} }
@Override
public boolean readBoolean() throws IOException { public boolean readBoolean() throws IOException {
checkAvailable(1); checkAvailable(1);
return read() != 0; return read() != 0;
} }
@Override
public byte readByte() throws IOException { public byte readByte() throws IOException {
if (!buffer.readable()) { if (!buffer.readable()) {
throw new EOFException(); throw new EOFException();
@ -149,27 +151,33 @@ public class ChannelBufferInputStream extends InputStream implements DataInput {
return buffer.readByte(); return buffer.readByte();
} }
@Override
public char readChar() throws IOException { public char readChar() throws IOException {
return (char) readShort(); return (char) readShort();
} }
@Override
public double readDouble() throws IOException { public double readDouble() throws IOException {
return Double.longBitsToDouble(readLong()); return Double.longBitsToDouble(readLong());
} }
@Override
public float readFloat() throws IOException { public float readFloat() throws IOException {
return Float.intBitsToFloat(readInt()); return Float.intBitsToFloat(readInt());
} }
@Override
public void readFully(byte[] b) throws IOException { public void readFully(byte[] b) throws IOException {
readFully(b, 0, b.length); readFully(b, 0, b.length);
} }
@Override
public void readFully(byte[] b, int off, int len) throws IOException { public void readFully(byte[] b, int off, int len) throws IOException {
checkAvailable(len); checkAvailable(len);
buffer.readBytes(b, off, len); buffer.readBytes(b, off, len);
} }
@Override
public int readInt() throws IOException { public int readInt() throws IOException {
checkAvailable(4); checkAvailable(4);
return buffer.readInt(); return buffer.readInt();
@ -177,6 +185,7 @@ public class ChannelBufferInputStream extends InputStream implements DataInput {
private final StringBuilder lineBuf = new StringBuilder(); private final StringBuilder lineBuf = new StringBuilder();
@Override
public String readLine() throws IOException { public String readLine() throws IOException {
lineBuf.setLength(0); lineBuf.setLength(0);
for (;;) { for (;;) {
@ -195,28 +204,34 @@ public class ChannelBufferInputStream extends InputStream implements DataInput {
return lineBuf.toString(); return lineBuf.toString();
} }
@Override
public long readLong() throws IOException { public long readLong() throws IOException {
checkAvailable(8); checkAvailable(8);
return buffer.readLong(); return buffer.readLong();
} }
@Override
public short readShort() throws IOException { public short readShort() throws IOException {
checkAvailable(2); checkAvailable(2);
return buffer.readShort(); return buffer.readShort();
} }
@Override
public String readUTF() throws IOException { public String readUTF() throws IOException {
return DataInputStream.readUTF(this); return DataInputStream.readUTF(this);
} }
@Override
public int readUnsignedByte() throws IOException { public int readUnsignedByte() throws IOException {
return readByte() & 0xff; return readByte() & 0xff;
} }
@Override
public int readUnsignedShort() throws IOException { public int readUnsignedShort() throws IOException {
return readShort() & 0xffff; return readShort() & 0xffff;
} }
@Override
public int skipBytes(int n) throws IOException { public int skipBytes(int n) throws IOException {
int nBytes = Math.min(available(), n); int nBytes = Math.min(available(), n);
buffer.skipBytes(nBytes); buffer.skipBytes(nBytes);

View File

@ -82,14 +82,17 @@ public class ChannelBufferOutputStream extends OutputStream implements DataOutpu
buffer.writeByte((byte) b); buffer.writeByte((byte) b);
} }
@Override
public void writeBoolean(boolean v) throws IOException { public void writeBoolean(boolean v) throws IOException {
write(v? (byte) 1 : (byte) 0); write(v? (byte) 1 : (byte) 0);
} }
@Override
public void writeByte(int v) throws IOException { public void writeByte(int v) throws IOException {
write(v); write(v);
} }
@Override
public void writeBytes(String s) throws IOException { public void writeBytes(String s) throws IOException {
int len = s.length(); int len = s.length();
for (int i = 0; i < len; i ++) { for (int i = 0; i < len; i ++) {
@ -97,10 +100,12 @@ public class ChannelBufferOutputStream extends OutputStream implements DataOutpu
} }
} }
@Override
public void writeChar(int v) throws IOException { public void writeChar(int v) throws IOException {
writeShort((short) v); writeShort((short) v);
} }
@Override
public void writeChars(String s) throws IOException { public void writeChars(String s) throws IOException {
int len = s.length(); int len = s.length();
for (int i = 0 ; i < len ; i ++) { for (int i = 0 ; i < len ; i ++) {
@ -108,26 +113,32 @@ public class ChannelBufferOutputStream extends OutputStream implements DataOutpu
} }
} }
@Override
public void writeDouble(double v) throws IOException { public void writeDouble(double v) throws IOException {
writeLong(Double.doubleToLongBits(v)); writeLong(Double.doubleToLongBits(v));
} }
@Override
public void writeFloat(float v) throws IOException { public void writeFloat(float v) throws IOException {
writeInt(Float.floatToIntBits(v)); writeInt(Float.floatToIntBits(v));
} }
@Override
public void writeInt(int v) throws IOException { public void writeInt(int v) throws IOException {
buffer.writeInt(v); buffer.writeInt(v);
} }
@Override
public void writeLong(long v) throws IOException { public void writeLong(long v) throws IOException {
buffer.writeLong(v); buffer.writeLong(v);
} }
@Override
public void writeShort(int v) throws IOException { public void writeShort(int v) throws IOException {
buffer.writeShort((short) v); buffer.writeShort((short) v);
} }
@Override
public void writeUTF(String s) throws IOException { public void writeUTF(String s) throws IOException {
utf8out.writeUTF(s); utf8out.writeUTF(s);
} }

View File

@ -140,39 +140,48 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
setIndex(buffer.readerIndex(), buffer.writerIndex()); setIndex(buffer.readerIndex(), buffer.writerIndex());
} }
@Override
public ChannelBufferFactory factory() { public ChannelBufferFactory factory() {
return HeapChannelBufferFactory.getInstance(order()); return HeapChannelBufferFactory.getInstance(order());
} }
@Override
public ByteOrder order() { public ByteOrder order() {
return order; return order;
} }
@Override
public boolean isDirect() { public boolean isDirect() {
return false; return false;
} }
@Override
public boolean hasArray() { public boolean hasArray() {
return false; return false;
} }
@Override
public byte[] array() { public byte[] array() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public int arrayOffset() { public int arrayOffset() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public int capacity() { public int capacity() {
return indices[components.length]; return indices[components.length];
} }
@Override
public byte getByte(int index) { public byte getByte(int index) {
int componentId = componentId(index); int componentId = componentId(index);
return components[componentId].getByte(index - indices[componentId]); return components[componentId].getByte(index - indices[componentId]);
} }
@Override
public short getShort(int index) { public short getShort(int index) {
int componentId = componentId(index); int componentId = componentId(index);
if (index + 2 <= indices[componentId + 1]) { if (index + 2 <= indices[componentId + 1]) {
@ -184,6 +193,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public int getUnsignedMedium(int index) { public int getUnsignedMedium(int index) {
int componentId = componentId(index); int componentId = componentId(index);
if (index + 3 <= indices[componentId + 1]) { if (index + 3 <= indices[componentId + 1]) {
@ -195,6 +205,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public int getInt(int index) { public int getInt(int index) {
int componentId = componentId(index); int componentId = componentId(index);
if (index + 4 <= indices[componentId + 1]) { if (index + 4 <= indices[componentId + 1]) {
@ -206,6 +217,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public long getLong(int index) { public long getLong(int index) {
int componentId = componentId(index); int componentId = componentId(index);
if (index + 8 <= indices[componentId + 1]) { if (index + 8 <= indices[componentId + 1]) {
@ -217,6 +229,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void getBytes(int index, byte[] dst, int dstIndex, int length) { public void getBytes(int index, byte[] dst, int dstIndex, int length) {
int componentId = componentId(index); int componentId = componentId(index);
if (index > capacity() - length || dstIndex > dst.length - length) { if (index > capacity() - length || dstIndex > dst.length - length) {
@ -236,6 +249,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void getBytes(int index, ByteBuffer dst) { public void getBytes(int index, ByteBuffer dst) {
int componentId = componentId(index); int componentId = componentId(index);
int limit = dst.limit(); int limit = dst.limit();
@ -261,6 +275,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) { public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
int componentId = componentId(index); int componentId = componentId(index);
if (index > capacity() - length || dstIndex > dst.capacity() - length) { if (index > capacity() - length || dstIndex > dst.capacity() - length) {
@ -280,6 +295,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public int getBytes(int index, GatheringByteChannel out, int length) public int getBytes(int index, GatheringByteChannel out, int length)
throws IOException { throws IOException {
// XXX Gathering write is not supported because of a known issue. // XXX Gathering write is not supported because of a known issue.
@ -288,6 +304,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
return out.write(toByteBuffer(index, length)); return out.write(toByteBuffer(index, length));
} }
@Override
public void getBytes(int index, OutputStream out, int length) public void getBytes(int index, OutputStream out, int length)
throws IOException { throws IOException {
int componentId = componentId(index); int componentId = componentId(index);
@ -307,11 +324,13 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void setByte(int index, int value) { public void setByte(int index, int value) {
int componentId = componentId(index); int componentId = componentId(index);
components[componentId].setByte(index - indices[componentId], value); components[componentId].setByte(index - indices[componentId], value);
} }
@Override
public void setShort(int index, int value) { public void setShort(int index, int value) {
int componentId = componentId(index); int componentId = componentId(index);
if (index + 2 <= indices[componentId + 1]) { if (index + 2 <= indices[componentId + 1]) {
@ -325,6 +344,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void setMedium(int index, int value) { public void setMedium(int index, int value) {
int componentId = componentId(index); int componentId = componentId(index);
if (index + 3 <= indices[componentId + 1]) { if (index + 3 <= indices[componentId + 1]) {
@ -338,6 +358,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void setInt(int index, int value) { public void setInt(int index, int value) {
int componentId = componentId(index); int componentId = componentId(index);
if (index + 4 <= indices[componentId + 1]) { if (index + 4 <= indices[componentId + 1]) {
@ -351,6 +372,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void setLong(int index, long value) { public void setLong(int index, long value) {
int componentId = componentId(index); int componentId = componentId(index);
if (index + 8 <= indices[componentId + 1]) { if (index + 8 <= indices[componentId + 1]) {
@ -364,6 +386,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void setBytes(int index, byte[] src, int srcIndex, int length) { public void setBytes(int index, byte[] src, int srcIndex, int length) {
int componentId = componentId(index); int componentId = componentId(index);
if (index > capacity() - length || srcIndex > src.length - length) { if (index > capacity() - length || srcIndex > src.length - length) {
@ -383,6 +406,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void setBytes(int index, ByteBuffer src) { public void setBytes(int index, ByteBuffer src) {
int componentId = componentId(index); int componentId = componentId(index);
int limit = src.limit(); int limit = src.limit();
@ -408,6 +432,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) { public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
int componentId = componentId(index); int componentId = componentId(index);
if (index > capacity() - length || srcIndex > src.capacity() - length) { if (index > capacity() - length || srcIndex > src.capacity() - length) {
@ -427,6 +452,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public int setBytes(int index, InputStream in, int length) public int setBytes(int index, InputStream in, int length)
throws IOException { throws IOException {
int componentId = componentId(index); int componentId = componentId(index);
@ -465,6 +491,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
return readBytes; return readBytes;
} }
@Override
public int setBytes(int index, ScatteringByteChannel in, int length) public int setBytes(int index, ScatteringByteChannel in, int length)
throws IOException { throws IOException {
int componentId = componentId(index); int componentId = componentId(index);
@ -495,12 +522,14 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
return readBytes; return readBytes;
} }
@Override
public ChannelBuffer duplicate() { public ChannelBuffer duplicate() {
ChannelBuffer duplicate = new CompositeChannelBuffer(this); ChannelBuffer duplicate = new CompositeChannelBuffer(this);
duplicate.setIndex(readerIndex(), writerIndex()); duplicate.setIndex(readerIndex(), writerIndex());
return duplicate; return duplicate;
} }
@Override
public ChannelBuffer copy(int index, int length) { public ChannelBuffer copy(int index, int length) {
int componentId = componentId(index); int componentId = componentId(index);
if (index > capacity() - length) { if (index > capacity() - length) {
@ -530,6 +559,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
dst.writerIndex(dst.capacity()); dst.writerIndex(dst.capacity());
} }
@Override
public ChannelBuffer slice(int index, int length) { public ChannelBuffer slice(int index, int length) {
if (index == 0) { if (index == 0) {
if (length == 0) { if (length == 0) {
@ -552,6 +582,7 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public ByteBuffer toByteBuffer(int index, int length) { public ByteBuffer toByteBuffer(int index, int length) {
if (components.length == 1) { if (components.length == 1) {
return components[0].toByteBuffer(index, length); return components[0].toByteBuffer(index, length);

View File

@ -106,6 +106,7 @@ public class DirectChannelBufferFactory extends AbstractChannelBufferFactory {
this.preallocatedBufferCapacity = preallocatedBufferCapacity; this.preallocatedBufferCapacity = preallocatedBufferCapacity;
} }
@Override
public ChannelBuffer getBuffer(ByteOrder order, int capacity) { public ChannelBuffer getBuffer(ByteOrder order, int capacity) {
if (order == null) { if (order == null) {
throw new NullPointerException("order"); throw new NullPointerException("order");
@ -130,6 +131,7 @@ public class DirectChannelBufferFactory extends AbstractChannelBufferFactory {
return slice; return slice;
} }
@Override
public ChannelBuffer getBuffer(ByteOrder order, byte[] array, int offset, int length) { public ChannelBuffer getBuffer(ByteOrder order, byte[] array, int offset, int length) {
if (array == null) { if (array == null) {
throw new NullPointerException("array"); throw new NullPointerException("array");
@ -149,6 +151,7 @@ public class DirectChannelBufferFactory extends AbstractChannelBufferFactory {
return buf; return buf;
} }
@Override
public ChannelBuffer getBuffer(ByteBuffer nioBuffer) { public ChannelBuffer getBuffer(ByteBuffer nioBuffer) {
if (!nioBuffer.isReadOnly() && nioBuffer.isDirect()) { if (!nioBuffer.isReadOnly() && nioBuffer.isDirect()) {
return ChannelBuffers.wrappedBuffer(nioBuffer); return ChannelBuffers.wrappedBuffer(nioBuffer);

View File

@ -52,134 +52,166 @@ public class DuplicatedChannelBuffer extends AbstractChannelBuffer implements Wr
setIndex(buffer.readerIndex(), buffer.writerIndex()); setIndex(buffer.readerIndex(), buffer.writerIndex());
} }
@Override
public ChannelBuffer unwrap() { public ChannelBuffer unwrap() {
return buffer; return buffer;
} }
@Override
public ChannelBufferFactory factory() { public ChannelBufferFactory factory() {
return buffer.factory(); return buffer.factory();
} }
@Override
public ByteOrder order() { public ByteOrder order() {
return buffer.order(); return buffer.order();
} }
@Override
public boolean isDirect() { public boolean isDirect() {
return buffer.isDirect(); return buffer.isDirect();
} }
@Override
public int capacity() { public int capacity() {
return buffer.capacity(); return buffer.capacity();
} }
@Override
public boolean hasArray() { public boolean hasArray() {
return buffer.hasArray(); return buffer.hasArray();
} }
@Override
public byte[] array() { public byte[] array() {
return buffer.array(); return buffer.array();
} }
@Override
public int arrayOffset() { public int arrayOffset() {
return buffer.arrayOffset(); return buffer.arrayOffset();
} }
@Override
public byte getByte(int index) { public byte getByte(int index) {
return buffer.getByte(index); return buffer.getByte(index);
} }
@Override
public short getShort(int index) { public short getShort(int index) {
return buffer.getShort(index); return buffer.getShort(index);
} }
@Override
public int getUnsignedMedium(int index) { public int getUnsignedMedium(int index) {
return buffer.getUnsignedMedium(index); return buffer.getUnsignedMedium(index);
} }
@Override
public int getInt(int index) { public int getInt(int index) {
return buffer.getInt(index); return buffer.getInt(index);
} }
@Override
public long getLong(int index) { public long getLong(int index) {
return buffer.getLong(index); return buffer.getLong(index);
} }
@Override
public ChannelBuffer duplicate() { public ChannelBuffer duplicate() {
return new DuplicatedChannelBuffer(this); return new DuplicatedChannelBuffer(this);
} }
@Override
public ChannelBuffer copy(int index, int length) { public ChannelBuffer copy(int index, int length) {
return buffer.copy(index, length); return buffer.copy(index, length);
} }
@Override
public ChannelBuffer slice(int index, int length) { public ChannelBuffer slice(int index, int length) {
return buffer.slice(index, length); return buffer.slice(index, length);
} }
@Override
public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) { public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
buffer.getBytes(index, dst, dstIndex, length); buffer.getBytes(index, dst, dstIndex, length);
} }
@Override
public void getBytes(int index, byte[] dst, int dstIndex, int length) { public void getBytes(int index, byte[] dst, int dstIndex, int length) {
buffer.getBytes(index, dst, dstIndex, length); buffer.getBytes(index, dst, dstIndex, length);
} }
@Override
public void getBytes(int index, ByteBuffer dst) { public void getBytes(int index, ByteBuffer dst) {
buffer.getBytes(index, dst); buffer.getBytes(index, dst);
} }
@Override
public void setByte(int index, int value) { public void setByte(int index, int value) {
buffer.setByte(index, value); buffer.setByte(index, value);
} }
@Override
public void setShort(int index, int value) { public void setShort(int index, int value) {
buffer.setShort(index, value); buffer.setShort(index, value);
} }
@Override
public void setMedium(int index, int value) { public void setMedium(int index, int value) {
buffer.setMedium(index, value); buffer.setMedium(index, value);
} }
@Override
public void setInt(int index, int value) { public void setInt(int index, int value) {
buffer.setInt(index, value); buffer.setInt(index, value);
} }
@Override
public void setLong(int index, long value) { public void setLong(int index, long value) {
buffer.setLong(index, value); buffer.setLong(index, value);
} }
@Override
public void setBytes(int index, byte[] src, int srcIndex, int length) { public void setBytes(int index, byte[] src, int srcIndex, int length) {
buffer.setBytes(index, src, srcIndex, length); buffer.setBytes(index, src, srcIndex, length);
} }
@Override
public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) { public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
buffer.setBytes(index, src, srcIndex, length); buffer.setBytes(index, src, srcIndex, length);
} }
@Override
public void setBytes(int index, ByteBuffer src) { public void setBytes(int index, ByteBuffer src) {
buffer.setBytes(index, src); buffer.setBytes(index, src);
} }
@Override
public void getBytes(int index, OutputStream out, int length) public void getBytes(int index, OutputStream out, int length)
throws IOException { throws IOException {
buffer.getBytes(index, out, length); buffer.getBytes(index, out, length);
} }
@Override
public int getBytes(int index, GatheringByteChannel out, int length) public int getBytes(int index, GatheringByteChannel out, int length)
throws IOException { throws IOException {
return buffer.getBytes(index, out, length); return buffer.getBytes(index, out, length);
} }
@Override
public int setBytes(int index, InputStream in, int length) public int setBytes(int index, InputStream in, int length)
throws IOException { throws IOException {
return buffer.setBytes(index, in, length); return buffer.setBytes(index, in, length);
} }
@Override
public int setBytes(int index, ScatteringByteChannel in, int length) public int setBytes(int index, ScatteringByteChannel in, int length)
throws IOException { throws IOException {
return buffer.setBytes(index, in, length); return buffer.setBytes(index, in, length);
} }
@Override
public ByteBuffer toByteBuffer(int index, int length) { public ByteBuffer toByteBuffer(int index, int length) {
return buffer.toByteBuffer(index, length); return buffer.toByteBuffer(index, length);
} }

View File

@ -86,113 +86,140 @@ public class DynamicChannelBuffer extends AbstractChannelBuffer {
buffer = newBuffer; buffer = newBuffer;
} }
@Override
public ChannelBufferFactory factory() { public ChannelBufferFactory factory() {
return factory; return factory;
} }
@Override
public ByteOrder order() { public ByteOrder order() {
return endianness; return endianness;
} }
@Override
public boolean isDirect() { public boolean isDirect() {
return buffer.isDirect(); return buffer.isDirect();
} }
@Override
public int capacity() { public int capacity() {
return buffer.capacity(); return buffer.capacity();
} }
@Override
public boolean hasArray() { public boolean hasArray() {
return buffer.hasArray(); return buffer.hasArray();
} }
@Override
public byte[] array() { public byte[] array() {
return buffer.array(); return buffer.array();
} }
@Override
public int arrayOffset() { public int arrayOffset() {
return buffer.arrayOffset(); return buffer.arrayOffset();
} }
@Override
public byte getByte(int index) { public byte getByte(int index) {
return buffer.getByte(index); return buffer.getByte(index);
} }
@Override
public short getShort(int index) { public short getShort(int index) {
return buffer.getShort(index); return buffer.getShort(index);
} }
@Override
public int getUnsignedMedium(int index) { public int getUnsignedMedium(int index) {
return buffer.getUnsignedMedium(index); return buffer.getUnsignedMedium(index);
} }
@Override
public int getInt(int index) { public int getInt(int index) {
return buffer.getInt(index); return buffer.getInt(index);
} }
@Override
public long getLong(int index) { public long getLong(int index) {
return buffer.getLong(index); return buffer.getLong(index);
} }
@Override
public void getBytes(int index, byte[] dst, int dstIndex, int length) { public void getBytes(int index, byte[] dst, int dstIndex, int length) {
buffer.getBytes(index, dst, dstIndex, length); buffer.getBytes(index, dst, dstIndex, length);
} }
@Override
public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) { public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
buffer.getBytes(index, dst, dstIndex, length); buffer.getBytes(index, dst, dstIndex, length);
} }
@Override
public void getBytes(int index, ByteBuffer dst) { public void getBytes(int index, ByteBuffer dst) {
buffer.getBytes(index, dst); buffer.getBytes(index, dst);
} }
@Override
public int getBytes(int index, GatheringByteChannel out, int length) public int getBytes(int index, GatheringByteChannel out, int length)
throws IOException { throws IOException {
return buffer.getBytes(index, out, length); return buffer.getBytes(index, out, length);
} }
@Override
public void getBytes(int index, OutputStream out, int length) public void getBytes(int index, OutputStream out, int length)
throws IOException { throws IOException {
buffer.getBytes(index, out, length); buffer.getBytes(index, out, length);
} }
@Override
public void setByte(int index, int value) { public void setByte(int index, int value) {
buffer.setByte(index, value); buffer.setByte(index, value);
} }
@Override
public void setShort(int index, int value) { public void setShort(int index, int value) {
buffer.setShort(index, value); buffer.setShort(index, value);
} }
@Override
public void setMedium(int index, int value) { public void setMedium(int index, int value) {
buffer.setMedium(index, value); buffer.setMedium(index, value);
} }
@Override
public void setInt(int index, int value) { public void setInt(int index, int value) {
buffer.setInt(index, value); buffer.setInt(index, value);
} }
@Override
public void setLong(int index, long value) { public void setLong(int index, long value) {
buffer.setLong(index, value); buffer.setLong(index, value);
} }
@Override
public void setBytes(int index, byte[] src, int srcIndex, int length) { public void setBytes(int index, byte[] src, int srcIndex, int length) {
buffer.setBytes(index, src, srcIndex, length); buffer.setBytes(index, src, srcIndex, length);
} }
@Override
public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) { public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
buffer.setBytes(index, src, srcIndex, length); buffer.setBytes(index, src, srcIndex, length);
} }
@Override
public void setBytes(int index, ByteBuffer src) { public void setBytes(int index, ByteBuffer src) {
buffer.setBytes(index, src); buffer.setBytes(index, src);
} }
@Override
public int setBytes(int index, InputStream in, int length) public int setBytes(int index, InputStream in, int length)
throws IOException { throws IOException {
return buffer.setBytes(index, in, length); return buffer.setBytes(index, in, length);
} }
@Override
public int setBytes(int index, ScatteringByteChannel in, int length) public int setBytes(int index, ScatteringByteChannel in, int length)
throws IOException { throws IOException {
return buffer.setBytes(index, in, length); return buffer.setBytes(index, in, length);
@ -265,10 +292,12 @@ public class DynamicChannelBuffer extends AbstractChannelBuffer {
super.writeZero(length); super.writeZero(length);
} }
@Override
public ChannelBuffer duplicate() { public ChannelBuffer duplicate() {
return new DuplicatedChannelBuffer(this); return new DuplicatedChannelBuffer(this);
} }
@Override
public ChannelBuffer copy(int index, int length) { public ChannelBuffer copy(int index, int length) {
DynamicChannelBuffer copiedBuffer = new DynamicChannelBuffer(order(), Math.max(length, 64), factory()); DynamicChannelBuffer copiedBuffer = new DynamicChannelBuffer(order(), Math.max(length, 64), factory());
copiedBuffer.buffer = buffer.copy(index, length); copiedBuffer.buffer = buffer.copy(index, length);
@ -276,6 +305,7 @@ public class DynamicChannelBuffer extends AbstractChannelBuffer {
return copiedBuffer; return copiedBuffer;
} }
@Override
public ChannelBuffer slice(int index, int length) { public ChannelBuffer slice(int index, int length) {
if (index == 0) { if (index == 0) {
if (length == 0) { if (length == 0) {
@ -290,6 +320,7 @@ public class DynamicChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public ByteBuffer toByteBuffer(int index, int length) { public ByteBuffer toByteBuffer(int index, int length) {
return buffer.toByteBuffer(index, length); return buffer.toByteBuffer(index, length);
} }

View File

@ -71,30 +71,37 @@ public abstract class HeapChannelBuffer extends AbstractChannelBuffer {
setIndex(readerIndex, writerIndex); setIndex(readerIndex, writerIndex);
} }
@Override
public boolean isDirect() { public boolean isDirect() {
return false; return false;
} }
@Override
public int capacity() { public int capacity() {
return array.length; return array.length;
} }
@Override
public boolean hasArray() { public boolean hasArray() {
return true; return true;
} }
@Override
public byte[] array() { public byte[] array() {
return array; return array;
} }
@Override
public int arrayOffset() { public int arrayOffset() {
return 0; return 0;
} }
@Override
public byte getByte(int index) { public byte getByte(int index) {
return array[index]; return array[index];
} }
@Override
public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) { public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
if (dst instanceof HeapChannelBuffer) { if (dst instanceof HeapChannelBuffer) {
getBytes(index, ((HeapChannelBuffer) dst).array, dstIndex, length); getBytes(index, ((HeapChannelBuffer) dst).array, dstIndex, length);
@ -103,28 +110,34 @@ public abstract class HeapChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void getBytes(int index, byte[] dst, int dstIndex, int length) { public void getBytes(int index, byte[] dst, int dstIndex, int length) {
System.arraycopy(array, index, dst, dstIndex, length); System.arraycopy(array, index, dst, dstIndex, length);
} }
@Override
public void getBytes(int index, ByteBuffer dst) { public void getBytes(int index, ByteBuffer dst) {
dst.put(array, index, Math.min(capacity() - index, dst.remaining())); dst.put(array, index, Math.min(capacity() - index, dst.remaining()));
} }
@Override
public void getBytes(int index, OutputStream out, int length) public void getBytes(int index, OutputStream out, int length)
throws IOException { throws IOException {
out.write(array, index, length); out.write(array, index, length);
} }
@Override
public int getBytes(int index, GatheringByteChannel out, int length) public int getBytes(int index, GatheringByteChannel out, int length)
throws IOException { throws IOException {
return out.write(ByteBuffer.wrap(array, index, length)); return out.write(ByteBuffer.wrap(array, index, length));
} }
@Override
public void setByte(int index, int value) { public void setByte(int index, int value) {
array[index] = (byte) value; array[index] = (byte) value;
} }
@Override
public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) { public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
if (src instanceof HeapChannelBuffer) { if (src instanceof HeapChannelBuffer) {
setBytes(index, ((HeapChannelBuffer) src).array, srcIndex, length); setBytes(index, ((HeapChannelBuffer) src).array, srcIndex, length);
@ -133,14 +146,17 @@ public abstract class HeapChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public void setBytes(int index, byte[] src, int srcIndex, int length) { public void setBytes(int index, byte[] src, int srcIndex, int length) {
System.arraycopy(src, srcIndex, array, index, length); System.arraycopy(src, srcIndex, array, index, length);
} }
@Override
public void setBytes(int index, ByteBuffer src) { public void setBytes(int index, ByteBuffer src) {
src.get(array, index, src.remaining()); src.get(array, index, src.remaining());
} }
@Override
public int setBytes(int index, InputStream in, int length) throws IOException { public int setBytes(int index, InputStream in, int length) throws IOException {
int readBytes = 0; int readBytes = 0;
do { do {
@ -160,6 +176,7 @@ public abstract class HeapChannelBuffer extends AbstractChannelBuffer {
return readBytes; return readBytes;
} }
@Override
public int setBytes(int index, ScatteringByteChannel in, int length) throws IOException { public int setBytes(int index, ScatteringByteChannel in, int length) throws IOException {
ByteBuffer buf = ByteBuffer.wrap(array, index, length); ByteBuffer buf = ByteBuffer.wrap(array, index, length);
int readBytes = 0; int readBytes = 0;
@ -186,6 +203,7 @@ public abstract class HeapChannelBuffer extends AbstractChannelBuffer {
return readBytes; return readBytes;
} }
@Override
public ChannelBuffer slice(int index, int length) { public ChannelBuffer slice(int index, int length) {
if (index == 0) { if (index == 0) {
if (length == 0) { if (length == 0) {
@ -206,6 +224,7 @@ public abstract class HeapChannelBuffer extends AbstractChannelBuffer {
} }
} }
@Override
public ByteBuffer toByteBuffer(int index, int length) { public ByteBuffer toByteBuffer(int index, int length) {
return ByteBuffer.wrap(array, index, length).order(order()); return ByteBuffer.wrap(array, index, length).order(order());
} }

View File

@ -69,14 +69,17 @@ public class HeapChannelBufferFactory extends AbstractChannelBufferFactory {
super(defaultOrder); super(defaultOrder);
} }
@Override
public ChannelBuffer getBuffer(ByteOrder order, int capacity) { public ChannelBuffer getBuffer(ByteOrder order, int capacity) {
return ChannelBuffers.buffer(order, capacity); return ChannelBuffers.buffer(order, capacity);
} }
@Override
public ChannelBuffer getBuffer(ByteOrder order, byte[] array, int offset, int length) { public ChannelBuffer getBuffer(ByteOrder order, byte[] array, int offset, int length) {
return ChannelBuffers.wrappedBuffer(order, array, offset, length); return ChannelBuffers.wrappedBuffer(order, array, offset, length);
} }
@Override
public ChannelBuffer getBuffer(ByteBuffer nioBuffer) { public ChannelBuffer getBuffer(ByteBuffer nioBuffer) {
if (nioBuffer.hasArray()) { if (nioBuffer.hasArray()) {
return ChannelBuffers.wrappedBuffer(nioBuffer); return ChannelBuffers.wrappedBuffer(nioBuffer);

View File

@ -52,24 +52,29 @@ public class LittleEndianHeapChannelBuffer extends HeapChannelBuffer {
super(array, readerIndex, writerIndex); super(array, readerIndex, writerIndex);
} }
@Override
public ChannelBufferFactory factory() { public ChannelBufferFactory factory() {
return HeapChannelBufferFactory.getInstance(ByteOrder.LITTLE_ENDIAN); return HeapChannelBufferFactory.getInstance(ByteOrder.LITTLE_ENDIAN);
} }
@Override
public ByteOrder order() { public ByteOrder order() {
return ByteOrder.LITTLE_ENDIAN; return ByteOrder.LITTLE_ENDIAN;
} }
@Override
public short getShort(int index) { public short getShort(int index) {
return (short) (array[index] & 0xFF | array[index+1] << 8); return (short) (array[index] & 0xFF | array[index+1] << 8);
} }
@Override
public int getUnsignedMedium(int index) { public int getUnsignedMedium(int index) {
return (array[index ] & 0xff) << 0 | return (array[index ] & 0xff) << 0 |
(array[index+1] & 0xff) << 8 | (array[index+1] & 0xff) << 8 |
(array[index+2] & 0xff) << 16; (array[index+2] & 0xff) << 16;
} }
@Override
public int getInt(int index) { public int getInt(int index) {
return (array[index ] & 0xff) << 0 | return (array[index ] & 0xff) << 0 |
(array[index+1] & 0xff) << 8 | (array[index+1] & 0xff) << 8 |
@ -77,6 +82,7 @@ public class LittleEndianHeapChannelBuffer extends HeapChannelBuffer {
(array[index+3] & 0xff) << 24; (array[index+3] & 0xff) << 24;
} }
@Override
public long getLong(int index) { public long getLong(int index) {
return ((long) array[index] & 0xff) << 0 | return ((long) array[index] & 0xff) << 0 |
((long) array[index+1] & 0xff) << 8 | ((long) array[index+1] & 0xff) << 8 |
@ -88,17 +94,20 @@ public class LittleEndianHeapChannelBuffer extends HeapChannelBuffer {
((long) array[index+7] & 0xff) << 56; ((long) array[index+7] & 0xff) << 56;
} }
@Override
public void setShort(int index, int value) { public void setShort(int index, int value) {
array[index ] = (byte) (value >>> 0); array[index ] = (byte) (value >>> 0);
array[index+1] = (byte) (value >>> 8); array[index+1] = (byte) (value >>> 8);
} }
@Override
public void setMedium(int index, int value) { public void setMedium(int index, int value) {
array[index ] = (byte) (value >>> 0); array[index ] = (byte) (value >>> 0);
array[index+1] = (byte) (value >>> 8); array[index+1] = (byte) (value >>> 8);
array[index+2] = (byte) (value >>> 16); array[index+2] = (byte) (value >>> 16);
} }
@Override
public void setInt(int index, int value) { public void setInt(int index, int value) {
array[index ] = (byte) (value >>> 0); array[index ] = (byte) (value >>> 0);
array[index+1] = (byte) (value >>> 8); array[index+1] = (byte) (value >>> 8);
@ -106,6 +115,7 @@ public class LittleEndianHeapChannelBuffer extends HeapChannelBuffer {
array[index+3] = (byte) (value >>> 24); array[index+3] = (byte) (value >>> 24);
} }
@Override
public void setLong(int index, long value) { public void setLong(int index, long value) {
array[index ] = (byte) (value >>> 0); array[index ] = (byte) (value >>> 0);
array[index+1] = (byte) (value >>> 8); array[index+1] = (byte) (value >>> 8);
@ -117,10 +127,12 @@ public class LittleEndianHeapChannelBuffer extends HeapChannelBuffer {
array[index+7] = (byte) (value >>> 56); array[index+7] = (byte) (value >>> 56);
} }
@Override
public ChannelBuffer duplicate() { public ChannelBuffer duplicate() {
return new LittleEndianHeapChannelBuffer(array, readerIndex(), writerIndex()); return new LittleEndianHeapChannelBuffer(array, readerIndex(), writerIndex());
} }
@Override
public ChannelBuffer copy(int index, int length) { public ChannelBuffer copy(int index, int length) {
if (index < 0 || length < 0 || index + length > array.length) { if (index < 0 || length < 0 || index + length > array.length) {
throw new IndexOutOfBoundsException(); throw new IndexOutOfBoundsException();

View File

@ -52,30 +52,37 @@ public class ReadOnlyChannelBuffer extends AbstractChannelBuffer implements Wrap
setIndex(buffer.readerIndex(), buffer.writerIndex()); setIndex(buffer.readerIndex(), buffer.writerIndex());
} }
@Override
public ChannelBuffer unwrap() { public ChannelBuffer unwrap() {
return buffer; return buffer;
} }
@Override
public ChannelBufferFactory factory() { public ChannelBufferFactory factory() {
return buffer.factory(); return buffer.factory();
} }
@Override
public ByteOrder order() { public ByteOrder order() {
return buffer.order(); return buffer.order();
} }
@Override
public boolean isDirect() { public boolean isDirect() {
return buffer.isDirect(); return buffer.isDirect();
} }
@Override
public boolean hasArray() { public boolean hasArray() {
return false; return false;
} }
@Override
public byte[] array() { public byte[] array() {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@Override
public int arrayOffset() { public int arrayOffset() {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@ -85,102 +92,126 @@ public class ReadOnlyChannelBuffer extends AbstractChannelBuffer implements Wrap
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@Override
public void setByte(int index, int value) { public void setByte(int index, int value) {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@Override
public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) { public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@Override
public void setBytes(int index, byte[] src, int srcIndex, int length) { public void setBytes(int index, byte[] src, int srcIndex, int length) {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@Override
public void setBytes(int index, ByteBuffer src) { public void setBytes(int index, ByteBuffer src) {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@Override
public void setShort(int index, int value) { public void setShort(int index, int value) {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@Override
public void setMedium(int index, int value) { public void setMedium(int index, int value) {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@Override
public void setInt(int index, int value) { public void setInt(int index, int value) {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@Override
public void setLong(int index, long value) { public void setLong(int index, long value) {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@Override
public int setBytes(int index, InputStream in, int length) public int setBytes(int index, InputStream in, int length)
throws IOException { throws IOException {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@Override
public int setBytes(int index, ScatteringByteChannel in, int length) public int setBytes(int index, ScatteringByteChannel in, int length)
throws IOException { throws IOException {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@Override
public int getBytes(int index, GatheringByteChannel out, int length) public int getBytes(int index, GatheringByteChannel out, int length)
throws IOException { throws IOException {
return buffer.getBytes(index, out, length); return buffer.getBytes(index, out, length);
} }
@Override
public void getBytes(int index, OutputStream out, int length) public void getBytes(int index, OutputStream out, int length)
throws IOException { throws IOException {
buffer.getBytes(index, out, length); buffer.getBytes(index, out, length);
} }
@Override
public void getBytes(int index, byte[] dst, int dstIndex, int length) { public void getBytes(int index, byte[] dst, int dstIndex, int length) {
buffer.getBytes(index, dst, dstIndex, length); buffer.getBytes(index, dst, dstIndex, length);
} }
@Override
public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) { public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
buffer.getBytes(index, dst, dstIndex, length); buffer.getBytes(index, dst, dstIndex, length);
} }
@Override
public void getBytes(int index, ByteBuffer dst) { public void getBytes(int index, ByteBuffer dst) {
buffer.getBytes(index, dst); buffer.getBytes(index, dst);
} }
@Override
public ChannelBuffer duplicate() { public ChannelBuffer duplicate() {
return new ReadOnlyChannelBuffer(this); return new ReadOnlyChannelBuffer(this);
} }
@Override
public ChannelBuffer copy(int index, int length) { public ChannelBuffer copy(int index, int length) {
return buffer.copy(index, length); return buffer.copy(index, length);
} }
@Override
public ChannelBuffer slice(int index, int length) { public ChannelBuffer slice(int index, int length) {
return new ReadOnlyChannelBuffer(buffer.slice(index, length)); return new ReadOnlyChannelBuffer(buffer.slice(index, length));
} }
@Override
public byte getByte(int index) { public byte getByte(int index) {
return buffer.getByte(index); return buffer.getByte(index);
} }
@Override
public short getShort(int index) { public short getShort(int index) {
return buffer.getShort(index); return buffer.getShort(index);
} }
@Override
public int getUnsignedMedium(int index) { public int getUnsignedMedium(int index) {
return buffer.getUnsignedMedium(index); return buffer.getUnsignedMedium(index);
} }
@Override
public int getInt(int index) { public int getInt(int index) {
return buffer.getInt(index); return buffer.getInt(index);
} }
@Override
public long getLong(int index) { public long getLong(int index) {
return buffer.getLong(index); return buffer.getLong(index);
} }
@Override
public ByteBuffer toByteBuffer(int index, int length) { public ByteBuffer toByteBuffer(int index, int length) {
return buffer.toByteBuffer(index, length).asReadOnlyBuffer(); return buffer.toByteBuffer(index, length).asReadOnlyBuffer();
} }
@ -194,6 +225,7 @@ public class ReadOnlyChannelBuffer extends AbstractChannelBuffer implements Wrap
return bufs; return bufs;
} }
@Override
public int capacity() { public int capacity() {
return buffer.capacity(); return buffer.capacity();
} }

View File

@ -57,74 +57,90 @@ public class SlicedChannelBuffer extends AbstractChannelBuffer implements Wrappe
writerIndex(length); writerIndex(length);
} }
@Override
public ChannelBuffer unwrap() { public ChannelBuffer unwrap() {
return buffer; return buffer;
} }
@Override
public ChannelBufferFactory factory() { public ChannelBufferFactory factory() {
return buffer.factory(); return buffer.factory();
} }
@Override
public ByteOrder order() { public ByteOrder order() {
return buffer.order(); return buffer.order();
} }
@Override
public boolean isDirect() { public boolean isDirect() {
return buffer.isDirect(); return buffer.isDirect();
} }
@Override
public int capacity() { public int capacity() {
return length; return length;
} }
@Override
public boolean hasArray() { public boolean hasArray() {
return buffer.hasArray(); return buffer.hasArray();
} }
@Override
public byte[] array() { public byte[] array() {
return buffer.array(); return buffer.array();
} }
@Override
public int arrayOffset() { public int arrayOffset() {
return buffer.arrayOffset() + adjustment; return buffer.arrayOffset() + adjustment;
} }
@Override
public byte getByte(int index) { public byte getByte(int index) {
checkIndex(index); checkIndex(index);
return buffer.getByte(index + adjustment); return buffer.getByte(index + adjustment);
} }
@Override
public short getShort(int index) { public short getShort(int index) {
checkIndex(index, 2); checkIndex(index, 2);
return buffer.getShort(index + adjustment); return buffer.getShort(index + adjustment);
} }
@Override
public int getUnsignedMedium(int index) { public int getUnsignedMedium(int index) {
checkIndex(index, 3); checkIndex(index, 3);
return buffer.getUnsignedMedium(index + adjustment); return buffer.getUnsignedMedium(index + adjustment);
} }
@Override
public int getInt(int index) { public int getInt(int index) {
checkIndex(index, 4); checkIndex(index, 4);
return buffer.getInt(index + adjustment); return buffer.getInt(index + adjustment);
} }
@Override
public long getLong(int index) { public long getLong(int index) {
checkIndex(index, 8); checkIndex(index, 8);
return buffer.getLong(index + adjustment); return buffer.getLong(index + adjustment);
} }
@Override
public ChannelBuffer duplicate() { public ChannelBuffer duplicate() {
ChannelBuffer duplicate = new SlicedChannelBuffer(buffer, adjustment, length); ChannelBuffer duplicate = new SlicedChannelBuffer(buffer, adjustment, length);
duplicate.setIndex(readerIndex(), writerIndex()); duplicate.setIndex(readerIndex(), writerIndex());
return duplicate; return duplicate;
} }
@Override
public ChannelBuffer copy(int index, int length) { public ChannelBuffer copy(int index, int length) {
checkIndex(index, length); checkIndex(index, length);
return buffer.copy(index + adjustment, length); return buffer.copy(index + adjustment, length);
} }
@Override
public ChannelBuffer slice(int index, int length) { public ChannelBuffer slice(int index, int length) {
checkIndex(index, length); checkIndex(index, length);
if (length == 0) { if (length == 0) {
@ -133,85 +149,101 @@ public class SlicedChannelBuffer extends AbstractChannelBuffer implements Wrappe
return new SlicedChannelBuffer(buffer, index + adjustment, length); return new SlicedChannelBuffer(buffer, index + adjustment, length);
} }
@Override
public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) { public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
checkIndex(index, length); checkIndex(index, length);
buffer.getBytes(index + adjustment, dst, dstIndex, length); buffer.getBytes(index + adjustment, dst, dstIndex, length);
} }
@Override
public void getBytes(int index, byte[] dst, int dstIndex, int length) { public void getBytes(int index, byte[] dst, int dstIndex, int length) {
checkIndex(index, length); checkIndex(index, length);
buffer.getBytes(index + adjustment, dst, dstIndex, length); buffer.getBytes(index + adjustment, dst, dstIndex, length);
} }
@Override
public void getBytes(int index, ByteBuffer dst) { public void getBytes(int index, ByteBuffer dst) {
checkIndex(index, dst.remaining()); checkIndex(index, dst.remaining());
buffer.getBytes(index + adjustment, dst); buffer.getBytes(index + adjustment, dst);
} }
@Override
public void setByte(int index, int value) { public void setByte(int index, int value) {
checkIndex(index); checkIndex(index);
buffer.setByte(index + adjustment, value); buffer.setByte(index + adjustment, value);
} }
@Override
public void setShort(int index, int value) { public void setShort(int index, int value) {
checkIndex(index, 2); checkIndex(index, 2);
buffer.setShort(index + adjustment, value); buffer.setShort(index + adjustment, value);
} }
@Override
public void setMedium(int index, int value) { public void setMedium(int index, int value) {
checkIndex(index, 3); checkIndex(index, 3);
buffer.setMedium(index + adjustment, value); buffer.setMedium(index + adjustment, value);
} }
@Override
public void setInt(int index, int value) { public void setInt(int index, int value) {
checkIndex(index, 4); checkIndex(index, 4);
buffer.setInt(index + adjustment, value); buffer.setInt(index + adjustment, value);
} }
@Override
public void setLong(int index, long value) { public void setLong(int index, long value) {
checkIndex(index, 8); checkIndex(index, 8);
buffer.setLong(index + adjustment, value); buffer.setLong(index + adjustment, value);
} }
@Override
public void setBytes(int index, byte[] src, int srcIndex, int length) { public void setBytes(int index, byte[] src, int srcIndex, int length) {
checkIndex(index, length); checkIndex(index, length);
buffer.setBytes(index + adjustment, src, srcIndex, length); buffer.setBytes(index + adjustment, src, srcIndex, length);
} }
@Override
public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) { public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
checkIndex(index, length); checkIndex(index, length);
buffer.setBytes(index + adjustment, src, srcIndex, length); buffer.setBytes(index + adjustment, src, srcIndex, length);
} }
@Override
public void setBytes(int index, ByteBuffer src) { public void setBytes(int index, ByteBuffer src) {
checkIndex(index, src.remaining()); checkIndex(index, src.remaining());
buffer.setBytes(index + adjustment, src); buffer.setBytes(index + adjustment, src);
} }
@Override
public void getBytes(int index, OutputStream out, int length) public void getBytes(int index, OutputStream out, int length)
throws IOException { throws IOException {
checkIndex(index, length); checkIndex(index, length);
buffer.getBytes(index + adjustment, out, length); buffer.getBytes(index + adjustment, out, length);
} }
@Override
public int getBytes(int index, GatheringByteChannel out, int length) public int getBytes(int index, GatheringByteChannel out, int length)
throws IOException { throws IOException {
checkIndex(index, length); checkIndex(index, length);
return buffer.getBytes(index + adjustment, out, length); return buffer.getBytes(index + adjustment, out, length);
} }
@Override
public int setBytes(int index, InputStream in, int length) public int setBytes(int index, InputStream in, int length)
throws IOException { throws IOException {
checkIndex(index, length); checkIndex(index, length);
return buffer.setBytes(index + adjustment, in, length); return buffer.setBytes(index + adjustment, in, length);
} }
@Override
public int setBytes(int index, ScatteringByteChannel in, int length) public int setBytes(int index, ScatteringByteChannel in, int length)
throws IOException { throws IOException {
checkIndex(index, length); checkIndex(index, length);
return buffer.setBytes(index + adjustment, in, length); return buffer.setBytes(index + adjustment, in, length);
} }
@Override
public ByteBuffer toByteBuffer(int index, int length) { public ByteBuffer toByteBuffer(int index, int length) {
checkIndex(index, length); checkIndex(index, length);
return buffer.toByteBuffer(index + adjustment, length); return buffer.toByteBuffer(index + adjustment, length);

View File

@ -51,74 +51,90 @@ public class TruncatedChannelBuffer extends AbstractChannelBuffer implements Wra
writerIndex(length); writerIndex(length);
} }
@Override
public ChannelBuffer unwrap() { public ChannelBuffer unwrap() {
return buffer; return buffer;
} }
@Override
public ChannelBufferFactory factory() { public ChannelBufferFactory factory() {
return buffer.factory(); return buffer.factory();
} }
@Override
public ByteOrder order() { public ByteOrder order() {
return buffer.order(); return buffer.order();
} }
@Override
public boolean isDirect() { public boolean isDirect() {
return buffer.isDirect(); return buffer.isDirect();
} }
@Override
public int capacity() { public int capacity() {
return length; return length;
} }
@Override
public boolean hasArray() { public boolean hasArray() {
return buffer.hasArray(); return buffer.hasArray();
} }
@Override
public byte[] array() { public byte[] array() {
return buffer.array(); return buffer.array();
} }
@Override
public int arrayOffset() { public int arrayOffset() {
return buffer.arrayOffset(); return buffer.arrayOffset();
} }
@Override
public byte getByte(int index) { public byte getByte(int index) {
checkIndex(index); checkIndex(index);
return buffer.getByte(index); return buffer.getByte(index);
} }
@Override
public short getShort(int index) { public short getShort(int index) {
checkIndex(index, 2); checkIndex(index, 2);
return buffer.getShort(index); return buffer.getShort(index);
} }
@Override
public int getUnsignedMedium(int index) { public int getUnsignedMedium(int index) {
checkIndex(index, 3); checkIndex(index, 3);
return buffer.getUnsignedMedium(index); return buffer.getUnsignedMedium(index);
} }
@Override
public int getInt(int index) { public int getInt(int index) {
checkIndex(index, 4); checkIndex(index, 4);
return buffer.getInt(index); return buffer.getInt(index);
} }
@Override
public long getLong(int index) { public long getLong(int index) {
checkIndex(index, 8); checkIndex(index, 8);
return buffer.getLong(index); return buffer.getLong(index);
} }
@Override
public ChannelBuffer duplicate() { public ChannelBuffer duplicate() {
ChannelBuffer duplicate = new TruncatedChannelBuffer(buffer, length); ChannelBuffer duplicate = new TruncatedChannelBuffer(buffer, length);
duplicate.setIndex(readerIndex(), writerIndex()); duplicate.setIndex(readerIndex(), writerIndex());
return duplicate; return duplicate;
} }
@Override
public ChannelBuffer copy(int index, int length) { public ChannelBuffer copy(int index, int length) {
checkIndex(index, length); checkIndex(index, length);
return buffer.copy(index, length); return buffer.copy(index, length);
} }
@Override
public ChannelBuffer slice(int index, int length) { public ChannelBuffer slice(int index, int length) {
checkIndex(index, length); checkIndex(index, length);
if (length == 0) { if (length == 0) {
@ -127,85 +143,101 @@ public class TruncatedChannelBuffer extends AbstractChannelBuffer implements Wra
return buffer.slice(index, length); return buffer.slice(index, length);
} }
@Override
public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) { public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
checkIndex(index, length); checkIndex(index, length);
buffer.getBytes(index, dst, dstIndex, length); buffer.getBytes(index, dst, dstIndex, length);
} }
@Override
public void getBytes(int index, byte[] dst, int dstIndex, int length) { public void getBytes(int index, byte[] dst, int dstIndex, int length) {
checkIndex(index, length); checkIndex(index, length);
buffer.getBytes(index, dst, dstIndex, length); buffer.getBytes(index, dst, dstIndex, length);
} }
@Override
public void getBytes(int index, ByteBuffer dst) { public void getBytes(int index, ByteBuffer dst) {
checkIndex(index, dst.remaining()); checkIndex(index, dst.remaining());
buffer.getBytes(index, dst); buffer.getBytes(index, dst);
} }
@Override
public void setByte(int index, int value) { public void setByte(int index, int value) {
checkIndex(index); checkIndex(index);
buffer.setByte(index, value); buffer.setByte(index, value);
} }
@Override
public void setShort(int index, int value) { public void setShort(int index, int value) {
checkIndex(index, 2); checkIndex(index, 2);
buffer.setShort(index, value); buffer.setShort(index, value);
} }
@Override
public void setMedium(int index, int value) { public void setMedium(int index, int value) {
checkIndex(index, 3); checkIndex(index, 3);
buffer.setMedium(index, value); buffer.setMedium(index, value);
} }
@Override
public void setInt(int index, int value) { public void setInt(int index, int value) {
checkIndex(index, 4); checkIndex(index, 4);
buffer.setInt(index, value); buffer.setInt(index, value);
} }
@Override
public void setLong(int index, long value) { public void setLong(int index, long value) {
checkIndex(index, 8); checkIndex(index, 8);
buffer.setLong(index, value); buffer.setLong(index, value);
} }
@Override
public void setBytes(int index, byte[] src, int srcIndex, int length) { public void setBytes(int index, byte[] src, int srcIndex, int length) {
checkIndex(index, length); checkIndex(index, length);
buffer.setBytes(index, src, srcIndex, length); buffer.setBytes(index, src, srcIndex, length);
} }
@Override
public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) { public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
checkIndex(index, length); checkIndex(index, length);
buffer.setBytes(index, src, srcIndex, length); buffer.setBytes(index, src, srcIndex, length);
} }
@Override
public void setBytes(int index, ByteBuffer src) { public void setBytes(int index, ByteBuffer src) {
checkIndex(index, src.remaining()); checkIndex(index, src.remaining());
buffer.setBytes(index, src); buffer.setBytes(index, src);
} }
@Override
public void getBytes(int index, OutputStream out, int length) public void getBytes(int index, OutputStream out, int length)
throws IOException { throws IOException {
checkIndex(index, length); checkIndex(index, length);
buffer.getBytes(index, out, length); buffer.getBytes(index, out, length);
} }
@Override
public int getBytes(int index, GatheringByteChannel out, int length) public int getBytes(int index, GatheringByteChannel out, int length)
throws IOException { throws IOException {
checkIndex(index, length); checkIndex(index, length);
return buffer.getBytes(index, out, length); return buffer.getBytes(index, out, length);
} }
@Override
public int setBytes(int index, InputStream in, int length) public int setBytes(int index, InputStream in, int length)
throws IOException { throws IOException {
checkIndex(index, length); checkIndex(index, length);
return buffer.setBytes(index, in, length); return buffer.setBytes(index, in, length);
} }
@Override
public int setBytes(int index, ScatteringByteChannel in, int length) public int setBytes(int index, ScatteringByteChannel in, int length)
throws IOException { throws IOException {
checkIndex(index, length); checkIndex(index, length);
return buffer.setBytes(index, in, length); return buffer.setBytes(index, in, length);
} }
@Override
public ByteBuffer toByteBuffer(int index, int length) { public ByteBuffer toByteBuffer(int index, int length) {
checkIndex(index, length); checkIndex(index, length);
return buffer.toByteBuffer(index, length); return buffer.toByteBuffer(index, length);

View File

@ -54,6 +54,7 @@ public abstract class AbstractChannel implements Channel {
super(); super();
} }
@Override
public void operationComplete(ChannelFuture future) throws Exception { public void operationComplete(ChannelFuture future) throws Exception {
allChannels.remove(future.getChannel().getId()); allChannels.remove(future.getChannel().getId());
} }
@ -124,18 +125,22 @@ public abstract class AbstractChannel implements Channel {
pipeline.attach(this, sink); pipeline.attach(this, sink);
} }
@Override
public final Integer getId() { public final Integer getId() {
return id; return id;
} }
@Override
public Channel getParent() { public Channel getParent() {
return parent; return parent;
} }
@Override
public ChannelFactory getFactory() { public ChannelFactory getFactory() {
return factory; return factory;
} }
@Override
public ChannelPipeline getPipeline() { public ChannelPipeline getPipeline() {
return pipeline; return pipeline;
} }
@ -176,10 +181,12 @@ public abstract class AbstractChannel implements Channel {
/** /**
* Compares the {@linkplain #getId() ID} of the two channels. * Compares the {@linkplain #getId() ID} of the two channels.
*/ */
@Override
public final int compareTo(Channel o) { public final int compareTo(Channel o) {
return getId().compareTo(o.getId()); return getId().compareTo(o.getId());
} }
@Override
public boolean isOpen() { public boolean isOpen() {
return !closeFuture.isDone(); return !closeFuture.isDone();
} }
@ -196,36 +203,44 @@ public abstract class AbstractChannel implements Channel {
return closeFuture.setClosed(); return closeFuture.setClosed();
} }
@Override
public ChannelFuture bind(SocketAddress localAddress) { public ChannelFuture bind(SocketAddress localAddress) {
return Channels.bind(this, localAddress); return Channels.bind(this, localAddress);
} }
@Override
public ChannelFuture unbind() { public ChannelFuture unbind() {
return Channels.unbind(this); return Channels.unbind(this);
} }
@Override
public ChannelFuture close() { public ChannelFuture close() {
ChannelFuture returnedCloseFuture = Channels.close(this); ChannelFuture returnedCloseFuture = Channels.close(this);
assert closeFuture == returnedCloseFuture; assert closeFuture == returnedCloseFuture;
return closeFuture; return closeFuture;
} }
@Override
public ChannelFuture getCloseFuture() { public ChannelFuture getCloseFuture() {
return closeFuture; return closeFuture;
} }
@Override
public ChannelFuture connect(SocketAddress remoteAddress) { public ChannelFuture connect(SocketAddress remoteAddress) {
return Channels.connect(this, remoteAddress); return Channels.connect(this, remoteAddress);
} }
@Override
public ChannelFuture disconnect() { public ChannelFuture disconnect() {
return Channels.disconnect(this); return Channels.disconnect(this);
} }
@Override
public int getInterestOps() { public int getInterestOps() {
return interestOps; return interestOps;
} }
@Override
public ChannelFuture setInterestOps(int interestOps) { public ChannelFuture setInterestOps(int interestOps) {
return Channels.setInterestOps(this, interestOps); return Channels.setInterestOps(this, interestOps);
} }
@ -239,14 +254,17 @@ public abstract class AbstractChannel implements Channel {
this.interestOps = interestOps; this.interestOps = interestOps;
} }
@Override
public boolean isReadable() { public boolean isReadable() {
return (getInterestOps() & OP_READ) != 0; return (getInterestOps() & OP_READ) != 0;
} }
@Override
public boolean isWritable() { public boolean isWritable() {
return (getInterestOps() & OP_WRITE) == 0; return (getInterestOps() & OP_WRITE) == 0;
} }
@Override
public ChannelFuture setReadable(boolean readable) { public ChannelFuture setReadable(boolean readable) {
if (readable) { if (readable) {
return setInterestOps(getInterestOps() | OP_READ); return setInterestOps(getInterestOps() | OP_READ);
@ -255,10 +273,12 @@ public abstract class AbstractChannel implements Channel {
} }
} }
@Override
public ChannelFuture write(Object message) { public ChannelFuture write(Object message) {
return Channels.write(this, message); return Channels.write(this, message);
} }
@Override
public ChannelFuture write(Object message, SocketAddress remoteAddress) { public ChannelFuture write(Object message, SocketAddress remoteAddress) {
return Channels.write(this, message, remoteAddress); return Channels.write(this, message, remoteAddress);
} }

View File

@ -42,6 +42,7 @@ public abstract class AbstractChannelSink implements ChannelSink {
* {@link ChannelHandler} to raise an exception * {@link ChannelHandler} to raise an exception
* @param cause the exception raised by a {@link ChannelHandler} * @param cause the exception raised by a {@link ChannelHandler}
*/ */
@Override
public void exceptionCaught(ChannelPipeline pipeline, public void exceptionCaught(ChannelPipeline pipeline,
ChannelEvent event, ChannelPipelineException cause) throws Exception { ChannelEvent event, ChannelPipelineException cause) throws Exception {
Throwable actualCause = cause.getCause(); Throwable actualCause = cause.getCause();

View File

@ -91,6 +91,7 @@ public abstract class AbstractServerChannel extends AbstractChannel implements S
return getUnsupportedOperationFuture(); return getUnsupportedOperationFuture();
} }
@Override
public boolean isConnected() { public boolean isConnected() {
return false; return false;
} }

View File

@ -149,10 +149,12 @@ public class AdaptiveReceiveBufferSizePredictor implements
nextReceiveBufferSize = SIZE_TABLE[index]; nextReceiveBufferSize = SIZE_TABLE[index];
} }
@Override
public int nextReceiveBufferSize() { public int nextReceiveBufferSize() {
return nextReceiveBufferSize; return nextReceiveBufferSize;
} }
@Override
public void previousReceiveBufferSize(int previousReceiveBufferSize) { public void previousReceiveBufferSize(int previousReceiveBufferSize) {
if (previousReceiveBufferSize <= SIZE_TABLE[Math.max(0, index - INDEX_DECREMENT - 1)]) { if (previousReceiveBufferSize <= SIZE_TABLE[Math.max(0, index - INDEX_DECREMENT - 1)]) {
if (decreaseNow) { if (decreaseNow) {

View File

@ -66,6 +66,7 @@ public class AdaptiveReceiveBufferSizePredictorFactory implements
this.maximum = maximum; this.maximum = maximum;
} }
@Override
public ReceiveBufferSizePredictor getPredictor() throws Exception { public ReceiveBufferSizePredictor getPredictor() throws Exception {
return new AdaptiveReceiveBufferSizePredictor(minimum, initial, maximum); return new AdaptiveReceiveBufferSizePredictor(minimum, initial, maximum);
} }

View File

@ -82,5 +82,6 @@ public interface ChannelFactory extends ExternalResourceReleasable {
* behavior will be resulted in if the resources are released when there's * behavior will be resulted in if the resources are released when there's
* an open channel which is managed by this factory. * an open channel which is managed by this factory.
*/ */
@Override
void releaseExternalResources(); void releaseExternalResources();
} }

View File

@ -42,6 +42,7 @@ public interface ChannelFutureListener extends EventListener {
* associated with the specified {@link ChannelFuture}. * associated with the specified {@link ChannelFuture}.
*/ */
static ChannelFutureListener CLOSE = new ChannelFutureListener() { static ChannelFutureListener CLOSE = new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) { public void operationComplete(ChannelFuture future) {
future.getChannel().close(); future.getChannel().close();
} }
@ -52,6 +53,7 @@ public interface ChannelFutureListener extends EventListener {
* operation ended up with a failure or cancellation rather than a success. * operation ended up with a failure or cancellation rather than a success.
*/ */
static ChannelFutureListener CLOSE_ON_FAILURE = new ChannelFutureListener() { static ChannelFutureListener CLOSE_ON_FAILURE = new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) { public void operationComplete(ChannelFuture future) {
if (!future.isSuccess()) { if (!future.isSuccess()) {
future.getChannel().close(); future.getChannel().close();

View File

@ -111,6 +111,7 @@ public class Channels {
public static ChannelPipelineFactory pipelineFactory( public static ChannelPipelineFactory pipelineFactory(
final ChannelPipeline pipeline) { final ChannelPipeline pipeline) {
return new ChannelPipelineFactory() { return new ChannelPipelineFactory() {
@Override
public ChannelPipeline getPipeline() { public ChannelPipeline getPipeline() {
return pipeline(pipeline); return pipeline(pipeline);
} }

View File

@ -33,6 +33,7 @@ public interface ChildChannelStateEvent extends ChannelEvent {
* with this event. Please note that you should use {@link #getChildChannel()} * with this event. Please note that you should use {@link #getChildChannel()}
* to get the {@link Channel} created or accepted by the parent {@link Channel}. * to get the {@link Channel} created or accepted by the parent {@link Channel}.
*/ */
@Override
Channel getChannel(); Channel getChannel();
/** /**

View File

@ -48,6 +48,7 @@ public abstract class CompleteChannelFuture implements ChannelFuture {
this.channel = channel; this.channel = channel;
} }
@Override
public void addListener(ChannelFutureListener listener) { public void addListener(ChannelFutureListener listener) {
try { try {
listener.operationComplete(this); listener.operationComplete(this);
@ -58,10 +59,12 @@ public abstract class CompleteChannelFuture implements ChannelFuture {
} }
} }
@Override
public void removeListener(ChannelFutureListener listener) { public void removeListener(ChannelFutureListener listener) {
// NOOP // NOOP
} }
@Override
public ChannelFuture await() throws InterruptedException { public ChannelFuture await() throws InterruptedException {
if (Thread.interrupted()) { if (Thread.interrupted()) {
throw new InterruptedException(); throw new InterruptedException();
@ -69,6 +72,7 @@ public abstract class CompleteChannelFuture implements ChannelFuture {
return this; return this;
} }
@Override
public boolean await(long timeout, TimeUnit unit) throws InterruptedException { public boolean await(long timeout, TimeUnit unit) throws InterruptedException {
if (Thread.interrupted()) { if (Thread.interrupted()) {
throw new InterruptedException(); throw new InterruptedException();
@ -76,6 +80,7 @@ public abstract class CompleteChannelFuture implements ChannelFuture {
return true; return true;
} }
@Override
public boolean await(long timeoutMillis) throws InterruptedException { public boolean await(long timeoutMillis) throws InterruptedException {
if (Thread.interrupted()) { if (Thread.interrupted()) {
throw new InterruptedException(); throw new InterruptedException();
@ -83,42 +88,52 @@ public abstract class CompleteChannelFuture implements ChannelFuture {
return true; return true;
} }
@Override
public ChannelFuture awaitUninterruptibly() { public ChannelFuture awaitUninterruptibly() {
return this; return this;
} }
@Override
public boolean awaitUninterruptibly(long timeout, TimeUnit unit) { public boolean awaitUninterruptibly(long timeout, TimeUnit unit) {
return true; return true;
} }
@Override
public boolean awaitUninterruptibly(long timeoutMillis) { public boolean awaitUninterruptibly(long timeoutMillis) {
return true; return true;
} }
@Override
public Channel getChannel() { public Channel getChannel() {
return channel; return channel;
} }
@Override
public boolean isDone() { public boolean isDone() {
return true; return true;
} }
@Override
public boolean setProgress(long amount, long current, long total) { public boolean setProgress(long amount, long current, long total) {
return false; return false;
} }
@Override
public boolean setFailure(Throwable cause) { public boolean setFailure(Throwable cause) {
return false; return false;
} }
@Override
public boolean setSuccess() { public boolean setSuccess() {
return false; return false;
} }
@Override
public boolean cancel() { public boolean cancel() {
return false; return false;
} }
@Override
public boolean isCancelled() { public boolean isCancelled() {
return false; return false;
} }

View File

@ -44,12 +44,14 @@ public class DefaultChannelConfig implements ChannelConfig {
super(); super();
} }
@Override
public void setOptions(Map<String, Object> options) { public void setOptions(Map<String, Object> options) {
for (Entry<String, Object> e: options.entrySet()) { for (Entry<String, Object> e: options.entrySet()) {
setOption(e.getKey(), e.getValue()); setOption(e.getKey(), e.getValue());
} }
} }
@Override
public boolean setOption(String key, Object value) { public boolean setOption(String key, Object value) {
if (key.equals("pipelineFactory")) { if (key.equals("pipelineFactory")) {
setPipelineFactory((ChannelPipelineFactory) value); setPipelineFactory((ChannelPipelineFactory) value);
@ -63,14 +65,17 @@ public class DefaultChannelConfig implements ChannelConfig {
return true; return true;
} }
@Override
public int getConnectTimeoutMillis() { public int getConnectTimeoutMillis() {
return connectTimeoutMillis; return connectTimeoutMillis;
} }
@Override
public ChannelBufferFactory getBufferFactory() { public ChannelBufferFactory getBufferFactory() {
return bufferFactory; return bufferFactory;
} }
@Override
public void setBufferFactory(ChannelBufferFactory bufferFactory) { public void setBufferFactory(ChannelBufferFactory bufferFactory) {
if (bufferFactory == null) { if (bufferFactory == null) {
throw new NullPointerException("bufferFactory"); throw new NullPointerException("bufferFactory");
@ -78,10 +83,12 @@ public class DefaultChannelConfig implements ChannelConfig {
this.bufferFactory = bufferFactory; this.bufferFactory = bufferFactory;
} }
@Override
public ChannelPipelineFactory getPipelineFactory() { public ChannelPipelineFactory getPipelineFactory() {
return null; return null;
} }
@Override
public void setConnectTimeoutMillis(int connectTimeoutMillis) { public void setConnectTimeoutMillis(int connectTimeoutMillis) {
if (connectTimeoutMillis < 0) { if (connectTimeoutMillis < 0) {
throw new IllegalArgumentException("connectTimeoutMillis: " + connectTimeoutMillis); throw new IllegalArgumentException("connectTimeoutMillis: " + connectTimeoutMillis);
@ -89,6 +96,7 @@ public class DefaultChannelConfig implements ChannelConfig {
this.connectTimeoutMillis = connectTimeoutMillis; this.connectTimeoutMillis = connectTimeoutMillis;
} }
@Override
public void setPipelineFactory(ChannelPipelineFactory pipelineFactory) { public void setPipelineFactory(ChannelPipelineFactory pipelineFactory) {
// Unused // Unused
} }

View File

@ -92,18 +92,22 @@ public class DefaultChannelFuture implements ChannelFuture {
this.cancellable = cancellable; this.cancellable = cancellable;
} }
@Override
public Channel getChannel() { public Channel getChannel() {
return channel; return channel;
} }
@Override
public synchronized boolean isDone() { public synchronized boolean isDone() {
return done; return done;
} }
@Override
public synchronized boolean isSuccess() { public synchronized boolean isSuccess() {
return done && cause == null; return done && cause == null;
} }
@Override
public synchronized Throwable getCause() { public synchronized Throwable getCause() {
if (cause != CANCELLED) { if (cause != CANCELLED) {
return cause; return cause;
@ -112,10 +116,12 @@ public class DefaultChannelFuture implements ChannelFuture {
} }
} }
@Override
public synchronized boolean isCancelled() { public synchronized boolean isCancelled() {
return cause == CANCELLED; return cause == CANCELLED;
} }
@Override
public void addListener(ChannelFutureListener listener) { public void addListener(ChannelFutureListener listener) {
if (listener == null) { if (listener == null) {
throw new NullPointerException("listener"); throw new NullPointerException("listener");
@ -149,6 +155,7 @@ public class DefaultChannelFuture implements ChannelFuture {
} }
} }
@Override
public void removeListener(ChannelFutureListener listener) { public void removeListener(ChannelFutureListener listener) {
if (listener == null) { if (listener == null) {
throw new NullPointerException("listener"); throw new NullPointerException("listener");
@ -173,6 +180,7 @@ public class DefaultChannelFuture implements ChannelFuture {
} }
} }
@Override
public ChannelFuture await() throws InterruptedException { public ChannelFuture await() throws InterruptedException {
if (Thread.interrupted()) { if (Thread.interrupted()) {
throw new InterruptedException(); throw new InterruptedException();
@ -192,15 +200,18 @@ public class DefaultChannelFuture implements ChannelFuture {
return this; return this;
} }
@Override
public boolean await(long timeout, TimeUnit unit) public boolean await(long timeout, TimeUnit unit)
throws InterruptedException { throws InterruptedException {
return await0(unit.toNanos(timeout), true); return await0(unit.toNanos(timeout), true);
} }
@Override
public boolean await(long timeoutMillis) throws InterruptedException { public boolean await(long timeoutMillis) throws InterruptedException {
return await0(MILLISECONDS.toNanos(timeoutMillis), true); return await0(MILLISECONDS.toNanos(timeoutMillis), true);
} }
@Override
public ChannelFuture awaitUninterruptibly() { public ChannelFuture awaitUninterruptibly() {
boolean interrupted = false; boolean interrupted = false;
synchronized (this) { synchronized (this) {
@ -224,6 +235,7 @@ public class DefaultChannelFuture implements ChannelFuture {
return this; return this;
} }
@Override
public boolean awaitUninterruptibly(long timeout, TimeUnit unit) { public boolean awaitUninterruptibly(long timeout, TimeUnit unit) {
try { try {
return await0(unit.toNanos(timeout), false); return await0(unit.toNanos(timeout), false);
@ -232,6 +244,7 @@ public class DefaultChannelFuture implements ChannelFuture {
} }
} }
@Override
public boolean awaitUninterruptibly(long timeoutMillis) { public boolean awaitUninterruptibly(long timeoutMillis) {
try { try {
return await0(MILLISECONDS.toNanos(timeoutMillis), false); return await0(MILLISECONDS.toNanos(timeoutMillis), false);
@ -300,6 +313,7 @@ public class DefaultChannelFuture implements ChannelFuture {
} }
} }
@Override
public boolean setSuccess() { public boolean setSuccess() {
synchronized (this) { synchronized (this) {
// Allow only once. // Allow only once.
@ -317,6 +331,7 @@ public class DefaultChannelFuture implements ChannelFuture {
return true; return true;
} }
@Override
public boolean setFailure(Throwable cause) { public boolean setFailure(Throwable cause) {
synchronized (this) { synchronized (this) {
// Allow only once. // Allow only once.
@ -335,6 +350,7 @@ public class DefaultChannelFuture implements ChannelFuture {
return true; return true;
} }
@Override
public boolean cancel() { public boolean cancel() {
if (!cancellable) { if (!cancellable) {
return false; return false;
@ -386,6 +402,7 @@ public class DefaultChannelFuture implements ChannelFuture {
} }
} }
@Override
public boolean setProgress(long amount, long current, long total) { public boolean setProgress(long amount, long current, long total) {
ChannelFutureProgressListener[] plisteners; ChannelFutureProgressListener[] plisteners;
synchronized (this) { synchronized (this) {

View File

@ -53,10 +53,12 @@ public class DefaultChannelPipeline implements ChannelPipeline {
super(); super();
} }
@Override
public Channel getChannel() { public Channel getChannel() {
return channel; return channel;
} }
@Override
public ChannelSink getSink() { public ChannelSink getSink() {
ChannelSink sink = this.sink; ChannelSink sink = this.sink;
if (sink == null) { if (sink == null) {
@ -65,6 +67,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
return sink; return sink;
} }
@Override
public void attach(Channel channel, ChannelSink sink) { public void attach(Channel channel, ChannelSink sink) {
if (channel == null) { if (channel == null) {
throw new NullPointerException("channel"); throw new NullPointerException("channel");
@ -79,10 +82,12 @@ public class DefaultChannelPipeline implements ChannelPipeline {
this.sink = sink; this.sink = sink;
} }
@Override
public boolean isAttached() { public boolean isAttached() {
return sink != null; return sink != null;
} }
@Override
public synchronized void addFirst(String name, ChannelHandler handler) { public synchronized void addFirst(String name, ChannelHandler handler) {
if (name2ctx.isEmpty()) { if (name2ctx.isEmpty()) {
init(name, handler); init(name, handler);
@ -101,6 +106,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
} }
} }
@Override
public synchronized void addLast(String name, ChannelHandler handler) { public synchronized void addLast(String name, ChannelHandler handler) {
if (name2ctx.isEmpty()) { if (name2ctx.isEmpty()) {
init(name, handler); init(name, handler);
@ -119,6 +125,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
} }
} }
@Override
public synchronized void addBefore(String baseName, String name, ChannelHandler handler) { public synchronized void addBefore(String baseName, String name, ChannelHandler handler) {
DefaultChannelHandlerContext ctx = getContextOrDie(baseName); DefaultChannelHandlerContext ctx = getContextOrDie(baseName);
if (ctx == head) { if (ctx == head) {
@ -137,6 +144,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
} }
} }
@Override
public synchronized void addAfter(String baseName, String name, ChannelHandler handler) { public synchronized void addAfter(String baseName, String name, ChannelHandler handler) {
DefaultChannelHandlerContext ctx = getContextOrDie(baseName); DefaultChannelHandlerContext ctx = getContextOrDie(baseName);
if (ctx == tail) { if (ctx == tail) {
@ -155,14 +163,17 @@ public class DefaultChannelPipeline implements ChannelPipeline {
} }
} }
@Override
public synchronized void remove(ChannelHandler handler) { public synchronized void remove(ChannelHandler handler) {
remove(getContextOrDie(handler)); remove(getContextOrDie(handler));
} }
@Override
public synchronized ChannelHandler remove(String name) { public synchronized ChannelHandler remove(String name) {
return remove(getContextOrDie(name)).getHandler(); return remove(getContextOrDie(name)).getHandler();
} }
@Override
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public synchronized <T extends ChannelHandler> T remove(Class<T> handlerType) { public synchronized <T extends ChannelHandler> T remove(Class<T> handlerType) {
return (T) remove(getContextOrDie(handlerType)).getHandler(); return (T) remove(getContextOrDie(handlerType)).getHandler();
@ -190,6 +201,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
return ctx; return ctx;
} }
@Override
public synchronized ChannelHandler removeFirst() { public synchronized ChannelHandler removeFirst() {
if (name2ctx.isEmpty()) { if (name2ctx.isEmpty()) {
throw new NoSuchElementException(); throw new NoSuchElementException();
@ -216,6 +228,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
return oldHead.getHandler(); return oldHead.getHandler();
} }
@Override
public synchronized ChannelHandler removeLast() { public synchronized ChannelHandler removeLast() {
if (name2ctx.isEmpty()) { if (name2ctx.isEmpty()) {
throw new NoSuchElementException(); throw new NoSuchElementException();
@ -242,14 +255,17 @@ public class DefaultChannelPipeline implements ChannelPipeline {
return oldTail.getHandler(); return oldTail.getHandler();
} }
@Override
public synchronized void replace(ChannelHandler oldHandler, String newName, ChannelHandler newHandler) { public synchronized void replace(ChannelHandler oldHandler, String newName, ChannelHandler newHandler) {
replace(getContextOrDie(oldHandler), newName, newHandler); replace(getContextOrDie(oldHandler), newName, newHandler);
} }
@Override
public synchronized ChannelHandler replace(String oldName, String newName, ChannelHandler newHandler) { public synchronized ChannelHandler replace(String oldName, String newName, ChannelHandler newHandler) {
return replace(getContextOrDie(oldName), newName, newHandler); return replace(getContextOrDie(oldName), newName, newHandler);
} }
@Override
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public synchronized <T extends ChannelHandler> T replace( public synchronized <T extends ChannelHandler> T replace(
Class<T> oldHandlerType, String newName, ChannelHandler newHandler) { Class<T> oldHandlerType, String newName, ChannelHandler newHandler) {
@ -401,6 +417,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
} }
} }
@Override
public synchronized ChannelHandler getFirst() { public synchronized ChannelHandler getFirst() {
DefaultChannelHandlerContext head = this.head; DefaultChannelHandlerContext head = this.head;
if (head == null) { if (head == null) {
@ -409,6 +426,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
return head.getHandler(); return head.getHandler();
} }
@Override
public synchronized ChannelHandler getLast() { public synchronized ChannelHandler getLast() {
DefaultChannelHandlerContext tail = this.tail; DefaultChannelHandlerContext tail = this.tail;
if (tail == null) { if (tail == null) {
@ -417,6 +435,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
return tail.getHandler(); return tail.getHandler();
} }
@Override
public synchronized ChannelHandler get(String name) { public synchronized ChannelHandler get(String name) {
DefaultChannelHandlerContext ctx = name2ctx.get(name); DefaultChannelHandlerContext ctx = name2ctx.get(name);
if (ctx == null) { if (ctx == null) {
@ -426,6 +445,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
} }
} }
@Override
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public synchronized <T extends ChannelHandler> T get(Class<T> handlerType) { public synchronized <T extends ChannelHandler> T get(Class<T> handlerType) {
ChannelHandlerContext ctx = getContext(handlerType); ChannelHandlerContext ctx = getContext(handlerType);
@ -436,6 +456,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
} }
} }
@Override
public synchronized ChannelHandlerContext getContext(String name) { public synchronized ChannelHandlerContext getContext(String name) {
if (name == null) { if (name == null) {
throw new NullPointerException("name"); throw new NullPointerException("name");
@ -443,6 +464,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
return name2ctx.get(name); return name2ctx.get(name);
} }
@Override
public synchronized ChannelHandlerContext getContext(ChannelHandler handler) { public synchronized ChannelHandlerContext getContext(ChannelHandler handler) {
if (handler == null) { if (handler == null) {
throw new NullPointerException("handler"); throw new NullPointerException("handler");
@ -464,6 +486,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
return null; return null;
} }
@Override
public synchronized ChannelHandlerContext getContext( public synchronized ChannelHandlerContext getContext(
Class<? extends ChannelHandler> handlerType) { Class<? extends ChannelHandler> handlerType) {
if (handlerType == null) { if (handlerType == null) {
@ -487,6 +510,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
return null; return null;
} }
@Override
public Map<String, ChannelHandler> toMap() { public Map<String, ChannelHandler> toMap() {
Map<String, ChannelHandler> map = new LinkedHashMap<String, ChannelHandler>(); Map<String, ChannelHandler> map = new LinkedHashMap<String, ChannelHandler>();
if (name2ctx.isEmpty()) { if (name2ctx.isEmpty()) {
@ -529,6 +553,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
return buf.toString(); return buf.toString();
} }
@Override
public void sendUpstream(ChannelEvent e) { public void sendUpstream(ChannelEvent e) {
DefaultChannelHandlerContext head = getActualUpstreamContext(this.head); DefaultChannelHandlerContext head = getActualUpstreamContext(this.head);
if (head == null) { if (head == null) {
@ -548,6 +573,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
} }
} }
@Override
public void sendDownstream(ChannelEvent e) { public void sendDownstream(ChannelEvent e) {
DefaultChannelHandlerContext tail = getActualDownstreamContext(this.tail); DefaultChannelHandlerContext tail = getActualDownstreamContext(this.tail);
if (tail == null) { if (tail == null) {
@ -703,38 +729,47 @@ public class DefaultChannelPipeline implements ChannelPipeline {
this.handler = handler; this.handler = handler;
} }
@Override
public Channel getChannel() { public Channel getChannel() {
return getPipeline().getChannel(); return getPipeline().getChannel();
} }
@Override
public ChannelPipeline getPipeline() { public ChannelPipeline getPipeline() {
return DefaultChannelPipeline.this; return DefaultChannelPipeline.this;
} }
@Override
public boolean canHandleDownstream() { public boolean canHandleDownstream() {
return canHandleDownstream; return canHandleDownstream;
} }
@Override
public boolean canHandleUpstream() { public boolean canHandleUpstream() {
return canHandleUpstream; return canHandleUpstream;
} }
@Override
public ChannelHandler getHandler() { public ChannelHandler getHandler() {
return handler; return handler;
} }
@Override
public String getName() { public String getName() {
return name; return name;
} }
@Override
public Object getAttachment() { public Object getAttachment() {
return attachment; return attachment;
} }
@Override
public void setAttachment(Object attachment) { public void setAttachment(Object attachment) {
this.attachment = attachment; this.attachment = attachment;
} }
@Override
public void sendDownstream(ChannelEvent e) { public void sendDownstream(ChannelEvent e) {
DefaultChannelHandlerContext prev = getActualDownstreamContext(this.prev); DefaultChannelHandlerContext prev = getActualDownstreamContext(this.prev);
if (prev == null) { if (prev == null) {
@ -748,6 +783,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
} }
} }
@Override
public void sendUpstream(ChannelEvent e) { public void sendUpstream(ChannelEvent e) {
DefaultChannelHandlerContext next = getActualUpstreamContext(this.next); DefaultChannelHandlerContext next = getActualUpstreamContext(this.next);
if (next != null) { if (next != null) {
@ -761,10 +797,12 @@ public class DefaultChannelPipeline implements ChannelPipeline {
super(); super();
} }
@Override
public void eventSunk(ChannelPipeline pipeline, ChannelEvent e) { public void eventSunk(ChannelPipeline pipeline, ChannelEvent e) {
logger.warn("Not attached yet; discarding: " + e); logger.warn("Not attached yet; discarding: " + e);
} }
@Override
public void exceptionCaught(ChannelPipeline pipeline, public void exceptionCaught(ChannelPipeline pipeline,
ChannelEvent e, ChannelPipelineException cause) throws Exception { ChannelEvent e, ChannelPipelineException cause) throws Exception {
throw cause; throw cause;

View File

@ -45,14 +45,17 @@ public class DefaultChildChannelStateEvent implements ChildChannelStateEvent {
this.childChannel = childChannel; this.childChannel = childChannel;
} }
@Override
public Channel getChannel() { public Channel getChannel() {
return parentChannel; return parentChannel;
} }
@Override
public ChannelFuture getFuture() { public ChannelFuture getFuture() {
return succeededFuture(getChannel()); return succeededFuture(getChannel());
} }
@Override
public Channel getChildChannel() { public Channel getChildChannel() {
return childChannel; return childChannel;
} }

View File

@ -48,14 +48,17 @@ public class DefaultExceptionEvent implements ExceptionEvent {
StackTraceSimplifier.simplify(cause); StackTraceSimplifier.simplify(cause);
} }
@Override
public Channel getChannel() { public Channel getChannel() {
return channel; return channel;
} }
@Override
public ChannelFuture getFuture() { public ChannelFuture getFuture() {
return succeededFuture(getChannel()); return succeededFuture(getChannel());
} }
@Override
public Throwable getCause() { public Throwable getCause() {
return cause; return cause;
} }

View File

@ -21,14 +21,17 @@ public class DefaultFileRegion implements FileRegion {
this.count = count; this.count = count;
} }
@Override
public long getPosition() { public long getPosition() {
return position; return position;
} }
@Override
public long getCount() { public long getCount() {
return count; return count;
} }
@Override
public long transferTo(WritableByteChannel target, long position) throws IOException { public long transferTo(WritableByteChannel target, long position) throws IOException {
long count = this.count - position; long count = this.count - position;
if (count < 0 || position < 0) { if (count < 0 || position < 0) {
@ -43,6 +46,7 @@ public class DefaultFileRegion implements FileRegion {
return file.transferTo(this.position + position, count, target); return file.transferTo(this.position + position, count, target);
} }
@Override
public void releaseExternalResources() { public void releaseExternalResources() {
try { try {
file.close(); file.close();

View File

@ -42,6 +42,7 @@ public class DefaultServerChannelConfig implements ChannelConfig {
super(); super();
} }
@Override
public void setOptions(Map<String, Object> options) { public void setOptions(Map<String, Object> options) {
for (Entry<String, Object> e: options.entrySet()) { for (Entry<String, Object> e: options.entrySet()) {
setOption(e.getKey(), e.getValue()); setOption(e.getKey(), e.getValue());
@ -52,6 +53,7 @@ public class DefaultServerChannelConfig implements ChannelConfig {
* Sets an individual option. You can override this method to support * Sets an individual option. You can override this method to support
* additional configuration parameters. * additional configuration parameters.
*/ */
@Override
public boolean setOption(String key, Object value) { public boolean setOption(String key, Object value) {
if (key.equals("pipelineFactory")) { if (key.equals("pipelineFactory")) {
setPipelineFactory((ChannelPipelineFactory) value); setPipelineFactory((ChannelPipelineFactory) value);
@ -63,10 +65,12 @@ public class DefaultServerChannelConfig implements ChannelConfig {
return true; return true;
} }
@Override
public ChannelPipelineFactory getPipelineFactory() { public ChannelPipelineFactory getPipelineFactory() {
return pipelineFactory; return pipelineFactory;
} }
@Override
public void setPipelineFactory(ChannelPipelineFactory pipelineFactory) { public void setPipelineFactory(ChannelPipelineFactory pipelineFactory) {
if (pipelineFactory == null) { if (pipelineFactory == null) {
throw new NullPointerException("pipelineFactory"); throw new NullPointerException("pipelineFactory");
@ -74,10 +78,12 @@ public class DefaultServerChannelConfig implements ChannelConfig {
this.pipelineFactory = pipelineFactory; this.pipelineFactory = pipelineFactory;
} }
@Override
public ChannelBufferFactory getBufferFactory() { public ChannelBufferFactory getBufferFactory() {
return bufferFactory; return bufferFactory;
} }
@Override
public void setBufferFactory(ChannelBufferFactory bufferFactory) { public void setBufferFactory(ChannelBufferFactory bufferFactory) {
if (bufferFactory == null) { if (bufferFactory == null) {
throw new NullPointerException("bufferFactory"); throw new NullPointerException("bufferFactory");
@ -86,10 +92,12 @@ public class DefaultServerChannelConfig implements ChannelConfig {
this.bufferFactory = bufferFactory; this.bufferFactory = bufferFactory;
} }
@Override
public int getConnectTimeoutMillis() { public int getConnectTimeoutMillis() {
return 0; return 0;
} }
@Override
public void setConnectTimeoutMillis(int connectTimeoutMillis) { public void setConnectTimeoutMillis(int connectTimeoutMillis) {
// Unused // Unused
} }

View File

@ -46,14 +46,17 @@ public class DefaultWriteCompletionEvent implements WriteCompletionEvent {
this.writtenAmount = writtenAmount; this.writtenAmount = writtenAmount;
} }
@Override
public Channel getChannel() { public Channel getChannel() {
return channel; return channel;
} }
@Override
public ChannelFuture getFuture() { public ChannelFuture getFuture() {
return succeededFuture(getChannel()); return succeededFuture(getChannel());
} }
@Override
public long getWrittenAmount() { public long getWrittenAmount() {
return writtenAmount; return writtenAmount;
} }

View File

@ -53,18 +53,22 @@ public class DownstreamChannelStateEvent implements ChannelStateEvent {
this.value = value; this.value = value;
} }
@Override
public Channel getChannel() { public Channel getChannel() {
return channel; return channel;
} }
@Override
public ChannelFuture getFuture() { public ChannelFuture getFuture() {
return future; return future;
} }
@Override
public ChannelState getState() { public ChannelState getState() {
return state; return state;
} }
@Override
public Object getValue() { public Object getValue() {
return value; return value;
} }

View File

@ -61,18 +61,22 @@ public class DownstreamMessageEvent implements MessageEvent {
} }
} }
@Override
public Channel getChannel() { public Channel getChannel() {
return channel; return channel;
} }
@Override
public ChannelFuture getFuture() { public ChannelFuture getFuture() {
return future; return future;
} }
@Override
public Object getMessage() { public Object getMessage() {
return message; return message;
} }
@Override
public SocketAddress getRemoteAddress() { public SocketAddress getRemoteAddress() {
return remoteAddress; return remoteAddress;
} }

View File

@ -43,10 +43,12 @@ public class FailedChannelFuture extends CompleteChannelFuture {
this.cause = cause; this.cause = cause;
} }
@Override
public Throwable getCause() { public Throwable getCause() {
return cause; return cause;
} }
@Override
public boolean isSuccess() { public boolean isSuccess() {
return false; return false;
} }

View File

@ -42,10 +42,12 @@ public class FixedReceiveBufferSizePredictor implements
this.bufferSize = bufferSize; this.bufferSize = bufferSize;
} }
@Override
public int nextReceiveBufferSize() { public int nextReceiveBufferSize() {
return bufferSize; return bufferSize;
} }
@Override
public void previousReceiveBufferSize(int previousReceiveBufferSize) { public void previousReceiveBufferSize(int previousReceiveBufferSize) {
// Ignore // Ignore
} }

View File

@ -38,6 +38,7 @@ public class FixedReceiveBufferSizePredictorFactory implements
predictor = new FixedReceiveBufferSizePredictor(bufferSize); predictor = new FixedReceiveBufferSizePredictor(bufferSize);
} }
@Override
public ReceiveBufferSizePredictor getPredictor() throws Exception { public ReceiveBufferSizePredictor getPredictor() throws Exception {
return predictor; return predictor;
} }

View File

@ -26,5 +26,6 @@ package org.jboss.netty.channel;
* @apiviz.has org.jboss.netty.channel.ServerChannel oneway - - creates * @apiviz.has org.jboss.netty.channel.ServerChannel oneway - - creates
*/ */
public interface ServerChannelFactory extends ChannelFactory { public interface ServerChannelFactory extends ChannelFactory {
@Override
ServerChannel newChannel(ChannelPipeline pipeline); ServerChannel newChannel(ChannelPipeline pipeline);
} }

View File

@ -69,6 +69,7 @@ public class SimpleChannelDownstreamHandler implements ChannelDownstreamHandler
* meaningful sub-type event and calls an appropriate handler method with * meaningful sub-type event and calls an appropriate handler method with
* the down-casted event. * the down-casted event.
*/ */
@Override
public void handleDownstream(ChannelHandlerContext ctx, ChannelEvent e) public void handleDownstream(ChannelHandlerContext ctx, ChannelEvent e)
throws Exception { throws Exception {

View File

@ -93,6 +93,7 @@ public class SimpleChannelHandler implements ChannelUpstreamHandler, ChannelDown
* meaningful sub-type event and calls an appropriate handler method with * meaningful sub-type event and calls an appropriate handler method with
* the down-casted event. * the down-casted event.
*/ */
@Override
public void handleUpstream( public void handleUpstream(
ChannelHandlerContext ctx, ChannelEvent e) throws Exception { ChannelHandlerContext ctx, ChannelEvent e) throws Exception {
@ -259,6 +260,7 @@ public class SimpleChannelHandler implements ChannelUpstreamHandler, ChannelDown
* meaningful sub-type event and calls an appropriate handler method with * meaningful sub-type event and calls an appropriate handler method with
* the down-casted event. * the down-casted event.
*/ */
@Override
public void handleDownstream(ChannelHandlerContext ctx, ChannelEvent e) public void handleDownstream(ChannelHandlerContext ctx, ChannelEvent e)
throws Exception { throws Exception {

View File

@ -73,6 +73,7 @@ public class SimpleChannelUpstreamHandler implements ChannelUpstreamHandler {
* meaningful sub-type event and calls an appropriate handler method with * meaningful sub-type event and calls an appropriate handler method with
* the down-casted event. * the down-casted event.
*/ */
@Override
public void handleUpstream( public void handleUpstream(
ChannelHandlerContext ctx, ChannelEvent e) throws Exception { ChannelHandlerContext ctx, ChannelEvent e) throws Exception {

View File

@ -97,10 +97,12 @@ public class StaticChannelPipeline implements ChannelPipeline {
} }
} }
@Override
public Channel getChannel() { public Channel getChannel() {
return channel; return channel;
} }
@Override
public ChannelSink getSink() { public ChannelSink getSink() {
ChannelSink sink = this.sink; ChannelSink sink = this.sink;
if (sink == null) { if (sink == null) {
@ -109,6 +111,7 @@ public class StaticChannelPipeline implements ChannelPipeline {
return sink; return sink;
} }
@Override
public void attach(Channel channel, ChannelSink sink) { public void attach(Channel channel, ChannelSink sink) {
if (channel == null) { if (channel == null) {
throw new NullPointerException("channel"); throw new NullPointerException("channel");
@ -123,54 +126,67 @@ public class StaticChannelPipeline implements ChannelPipeline {
this.sink = sink; this.sink = sink;
} }
@Override
public boolean isAttached() { public boolean isAttached() {
return sink != null; return sink != null;
} }
@Override
public void addFirst(String name, ChannelHandler handler) { public void addFirst(String name, ChannelHandler handler) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void addLast(String name, ChannelHandler handler) { public void addLast(String name, ChannelHandler handler) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void addBefore(String baseName, String name, ChannelHandler handler) { public void addBefore(String baseName, String name, ChannelHandler handler) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void addAfter(String baseName, String name, ChannelHandler handler) { public void addAfter(String baseName, String name, ChannelHandler handler) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void remove(ChannelHandler handler) { public void remove(ChannelHandler handler) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public ChannelHandler remove(String name) { public ChannelHandler remove(String name) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public <T extends ChannelHandler> T remove(Class<T> handlerType) { public <T extends ChannelHandler> T remove(Class<T> handlerType) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public ChannelHandler removeFirst() { public ChannelHandler removeFirst() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public ChannelHandler removeLast() { public ChannelHandler removeLast() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void replace(ChannelHandler oldHandler, String newName, ChannelHandler newHandler) { public void replace(ChannelHandler oldHandler, String newName, ChannelHandler newHandler) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public ChannelHandler replace(String oldName, String newName, ChannelHandler newHandler) { public ChannelHandler replace(String oldName, String newName, ChannelHandler newHandler) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public <T extends ChannelHandler> T replace( public <T extends ChannelHandler> T replace(
Class<T> oldHandlerType, String newName, ChannelHandler newHandler) { Class<T> oldHandlerType, String newName, ChannelHandler newHandler) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
@ -259,14 +275,17 @@ public class StaticChannelPipeline implements ChannelPipeline {
} }
} }
@Override
public ChannelHandler getFirst() { public ChannelHandler getFirst() {
return contexts[0].getHandler(); return contexts[0].getHandler();
} }
@Override
public ChannelHandler getLast() { public ChannelHandler getLast() {
return contexts[contexts.length - 1].getHandler(); return contexts[contexts.length - 1].getHandler();
} }
@Override
public ChannelHandler get(String name) { public ChannelHandler get(String name) {
StaticChannelHandlerContext ctx = name2ctx.get(name); StaticChannelHandlerContext ctx = name2ctx.get(name);
if (ctx == null) { if (ctx == null) {
@ -276,6 +295,7 @@ public class StaticChannelPipeline implements ChannelPipeline {
} }
} }
@Override
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public <T extends ChannelHandler> T get(Class<T> handlerType) { public <T extends ChannelHandler> T get(Class<T> handlerType) {
ChannelHandlerContext ctx = getContext(handlerType); ChannelHandlerContext ctx = getContext(handlerType);
@ -286,6 +306,7 @@ public class StaticChannelPipeline implements ChannelPipeline {
} }
} }
@Override
public ChannelHandlerContext getContext(String name) { public ChannelHandlerContext getContext(String name) {
if (name == null) { if (name == null) {
throw new NullPointerException("name"); throw new NullPointerException("name");
@ -293,6 +314,7 @@ public class StaticChannelPipeline implements ChannelPipeline {
return name2ctx.get(name); return name2ctx.get(name);
} }
@Override
public ChannelHandlerContext getContext(ChannelHandler handler) { public ChannelHandlerContext getContext(ChannelHandler handler) {
if (handler == null) { if (handler == null) {
throw new NullPointerException("handler"); throw new NullPointerException("handler");
@ -305,6 +327,7 @@ public class StaticChannelPipeline implements ChannelPipeline {
return null; return null;
} }
@Override
public ChannelHandlerContext getContext(Class<? extends ChannelHandler> handlerType) { public ChannelHandlerContext getContext(Class<? extends ChannelHandler> handlerType) {
if (handlerType == null) { if (handlerType == null) {
throw new NullPointerException("handlerType"); throw new NullPointerException("handlerType");
@ -317,6 +340,7 @@ public class StaticChannelPipeline implements ChannelPipeline {
return null; return null;
} }
@Override
public Map<String, ChannelHandler> toMap() { public Map<String, ChannelHandler> toMap() {
Map<String, ChannelHandler> map = new LinkedHashMap<String, ChannelHandler>(); Map<String, ChannelHandler> map = new LinkedHashMap<String, ChannelHandler>();
for (StaticChannelHandlerContext ctx: contexts) { for (StaticChannelHandlerContext ctx: contexts) {
@ -346,6 +370,7 @@ public class StaticChannelPipeline implements ChannelPipeline {
return buf.toString(); return buf.toString();
} }
@Override
public void sendUpstream(ChannelEvent e) { public void sendUpstream(ChannelEvent e) {
StaticChannelHandlerContext head = getActualUpstreamContext(0); StaticChannelHandlerContext head = getActualUpstreamContext(0);
if (head == null) { if (head == null) {
@ -365,6 +390,7 @@ public class StaticChannelPipeline implements ChannelPipeline {
} }
} }
@Override
public void sendDownstream(ChannelEvent e) { public void sendDownstream(ChannelEvent e) {
StaticChannelHandlerContext tail = getActualDownstreamContext(lastIndex); StaticChannelHandlerContext tail = getActualDownstreamContext(lastIndex);
if (tail == null) { if (tail == null) {
@ -463,38 +489,47 @@ public class StaticChannelPipeline implements ChannelPipeline {
this.handler = handler; this.handler = handler;
} }
@Override
public Channel getChannel() { public Channel getChannel() {
return getPipeline().getChannel(); return getPipeline().getChannel();
} }
@Override
public ChannelPipeline getPipeline() { public ChannelPipeline getPipeline() {
return StaticChannelPipeline.this; return StaticChannelPipeline.this;
} }
@Override
public boolean canHandleDownstream() { public boolean canHandleDownstream() {
return canHandleDownstream; return canHandleDownstream;
} }
@Override
public boolean canHandleUpstream() { public boolean canHandleUpstream() {
return canHandleUpstream; return canHandleUpstream;
} }
@Override
public ChannelHandler getHandler() { public ChannelHandler getHandler() {
return handler; return handler;
} }
@Override
public String getName() { public String getName() {
return name; return name;
} }
@Override
public Object getAttachment() { public Object getAttachment() {
return attachment; return attachment;
} }
@Override
public void setAttachment(Object attachment) { public void setAttachment(Object attachment) {
this.attachment = attachment; this.attachment = attachment;
} }
@Override
public void sendDownstream(ChannelEvent e) { public void sendDownstream(ChannelEvent e) {
StaticChannelHandlerContext prev = getActualDownstreamContext(index - 1); StaticChannelHandlerContext prev = getActualDownstreamContext(index - 1);
if (prev == null) { if (prev == null) {
@ -508,6 +543,7 @@ public class StaticChannelPipeline implements ChannelPipeline {
} }
} }
@Override
public void sendUpstream(ChannelEvent e) { public void sendUpstream(ChannelEvent e) {
StaticChannelHandlerContext next = getActualUpstreamContext(index + 1); StaticChannelHandlerContext next = getActualUpstreamContext(index + 1);
if (next != null) { if (next != null) {

View File

@ -36,10 +36,12 @@ public class SucceededChannelFuture extends CompleteChannelFuture {
super(channel); super(channel);
} }
@Override
public Throwable getCause() { public Throwable getCause() {
return null; return null;
} }
@Override
public boolean isSuccess() { public boolean isSuccess() {
return true; return true;
} }

View File

@ -50,18 +50,22 @@ public class UpstreamChannelStateEvent implements ChannelStateEvent {
this.value = value; this.value = value;
} }
@Override
public Channel getChannel() { public Channel getChannel() {
return channel; return channel;
} }
@Override
public ChannelFuture getFuture() { public ChannelFuture getFuture() {
return succeededFuture(getChannel()); return succeededFuture(getChannel());
} }
@Override
public ChannelState getState() { public ChannelState getState() {
return state; return state;
} }
@Override
public Object getValue() { public Object getValue() {
return value; return value;
} }

View File

@ -57,18 +57,22 @@ public class UpstreamMessageEvent implements MessageEvent {
} }
} }
@Override
public Channel getChannel() { public Channel getChannel() {
return channel; return channel;
} }
@Override
public ChannelFuture getFuture() { public ChannelFuture getFuture() {
return succeededFuture(getChannel()); return succeededFuture(getChannel());
} }
@Override
public Object getMessage() { public Object getMessage() {
return message; return message;
} }
@Override
public SocketAddress getRemoteAddress() { public SocketAddress getRemoteAddress() {
return remoteAddress; return remoteAddress;
} }

View File

@ -253,5 +253,6 @@ public interface ChannelGroupFuture extends Iterable<ChannelFuture> {
* {@link Iterator} is is unmodifiable, which means a {@link ChannelFuture} * {@link Iterator} is is unmodifiable, which means a {@link ChannelFuture}
* cannot be removed from this future. * cannot be removed from this future.
*/ */
@Override
Iterator<ChannelFuture> iterator(); Iterator<ChannelFuture> iterator();
} }

View File

@ -41,6 +41,7 @@ final class CombinedIterator<E> implements Iterator<E> {
currentIterator = i1; currentIterator = i1;
} }
@Override
public boolean hasNext() { public boolean hasNext() {
boolean hasNext = currentIterator.hasNext(); boolean hasNext = currentIterator.hasNext();
if (hasNext) { if (hasNext) {
@ -55,6 +56,7 @@ final class CombinedIterator<E> implements Iterator<E> {
} }
} }
@Override
public E next() { public E next() {
try { try {
E e = currentIterator.next(); E e = currentIterator.next();
@ -69,6 +71,7 @@ final class CombinedIterator<E> implements Iterator<E> {
} }
} }
@Override
public void remove() { public void remove() {
currentIterator.remove(); currentIterator.remove();
} }

View File

@ -49,6 +49,7 @@ public class DefaultChannelGroup extends AbstractSet<Channel> implements Channel
private final ConcurrentMap<Integer, Channel> serverChannels = new ConcurrentHashMap<Integer, Channel>(); private final ConcurrentMap<Integer, Channel> serverChannels = new ConcurrentHashMap<Integer, Channel>();
private final ConcurrentMap<Integer, Channel> nonServerChannels = new ConcurrentHashMap<Integer, Channel>(); private final ConcurrentMap<Integer, Channel> nonServerChannels = new ConcurrentHashMap<Integer, Channel>();
private final ChannelFutureListener remover = new ChannelFutureListener() { private final ChannelFutureListener remover = new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) throws Exception { public void operationComplete(ChannelFuture future) throws Exception {
remove(future.getChannel()); remove(future.getChannel());
} }
@ -73,6 +74,7 @@ public class DefaultChannelGroup extends AbstractSet<Channel> implements Channel
this.name = name; this.name = name;
} }
@Override
public String getName() { public String getName() {
return name; return name;
} }
@ -87,6 +89,7 @@ public class DefaultChannelGroup extends AbstractSet<Channel> implements Channel
return nonServerChannels.size() + serverChannels.size(); return nonServerChannels.size() + serverChannels.size();
} }
@Override
public Channel find(Integer id) { public Channel find(Integer id) {
Channel c = nonServerChannels.get(id); Channel c = nonServerChannels.get(id);
if (c != null) { if (c != null) {
@ -178,6 +181,7 @@ public class DefaultChannelGroup extends AbstractSet<Channel> implements Channel
return channels.toArray(a); return channels.toArray(a);
} }
@Override
public ChannelGroupFuture close() { public ChannelGroupFuture close() {
Map<Integer, ChannelFuture> futures = Map<Integer, ChannelFuture> futures =
new LinkedHashMap<Integer, ChannelFuture>(size()); new LinkedHashMap<Integer, ChannelFuture>(size());
@ -192,6 +196,7 @@ public class DefaultChannelGroup extends AbstractSet<Channel> implements Channel
return new DefaultChannelGroupFuture(this, futures); return new DefaultChannelGroupFuture(this, futures);
} }
@Override
public ChannelGroupFuture disconnect() { public ChannelGroupFuture disconnect() {
Map<Integer, ChannelFuture> futures = Map<Integer, ChannelFuture> futures =
new LinkedHashMap<Integer, ChannelFuture>(size()); new LinkedHashMap<Integer, ChannelFuture>(size());
@ -206,6 +211,7 @@ public class DefaultChannelGroup extends AbstractSet<Channel> implements Channel
return new DefaultChannelGroupFuture(this, futures); return new DefaultChannelGroupFuture(this, futures);
} }
@Override
public ChannelGroupFuture setInterestOps(int interestOps) { public ChannelGroupFuture setInterestOps(int interestOps) {
Map<Integer, ChannelFuture> futures = Map<Integer, ChannelFuture> futures =
new LinkedHashMap<Integer, ChannelFuture>(size()); new LinkedHashMap<Integer, ChannelFuture>(size());
@ -220,6 +226,7 @@ public class DefaultChannelGroup extends AbstractSet<Channel> implements Channel
return new DefaultChannelGroupFuture(this, futures); return new DefaultChannelGroupFuture(this, futures);
} }
@Override
public ChannelGroupFuture setReadable(boolean readable) { public ChannelGroupFuture setReadable(boolean readable) {
Map<Integer, ChannelFuture> futures = Map<Integer, ChannelFuture> futures =
new LinkedHashMap<Integer, ChannelFuture>(size()); new LinkedHashMap<Integer, ChannelFuture>(size());
@ -234,6 +241,7 @@ public class DefaultChannelGroup extends AbstractSet<Channel> implements Channel
return new DefaultChannelGroupFuture(this, futures); return new DefaultChannelGroupFuture(this, futures);
} }
@Override
public ChannelGroupFuture unbind() { public ChannelGroupFuture unbind() {
Map<Integer, ChannelFuture> futures = Map<Integer, ChannelFuture> futures =
new LinkedHashMap<Integer, ChannelFuture>(size()); new LinkedHashMap<Integer, ChannelFuture>(size());
@ -248,6 +256,7 @@ public class DefaultChannelGroup extends AbstractSet<Channel> implements Channel
return new DefaultChannelGroupFuture(this, futures); return new DefaultChannelGroupFuture(this, futures);
} }
@Override
public ChannelGroupFuture write(Object message) { public ChannelGroupFuture write(Object message) {
Map<Integer, ChannelFuture> futures = Map<Integer, ChannelFuture> futures =
new LinkedHashMap<Integer, ChannelFuture>(size()); new LinkedHashMap<Integer, ChannelFuture>(size());
@ -264,6 +273,7 @@ public class DefaultChannelGroup extends AbstractSet<Channel> implements Channel
return new DefaultChannelGroupFuture(this, futures); return new DefaultChannelGroupFuture(this, futures);
} }
@Override
public ChannelGroupFuture write(Object message, SocketAddress remoteAddress) { public ChannelGroupFuture write(Object message, SocketAddress remoteAddress) {
Map<Integer, ChannelFuture> futures = Map<Integer, ChannelFuture> futures =
new LinkedHashMap<Integer, ChannelFuture>(size()); new LinkedHashMap<Integer, ChannelFuture>(size());
@ -290,6 +300,7 @@ public class DefaultChannelGroup extends AbstractSet<Channel> implements Channel
return this == o; return this == o;
} }
@Override
public int compareTo(ChannelGroup o) { public int compareTo(ChannelGroup o) {
int v = getName().compareTo(o.getName()); int v = getName().compareTo(o.getName());
if (v != 0) { if (v != 0) {

View File

@ -56,6 +56,7 @@ public class DefaultChannelGroupFuture implements ChannelGroupFuture {
private int waiters; private int waiters;
private final ChannelFutureListener childListener = new ChannelFutureListener() { private final ChannelFutureListener childListener = new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) throws Exception { public void operationComplete(ChannelFuture future) throws Exception {
boolean success = future.isSuccess(); boolean success = future.isSuccess();
boolean callSetDone = false; boolean callSetDone = false;
@ -119,42 +120,52 @@ public class DefaultChannelGroupFuture implements ChannelGroupFuture {
} }
} }
@Override
public ChannelGroup getGroup() { public ChannelGroup getGroup() {
return group; return group;
} }
@Override
public ChannelFuture find(Integer channelId) { public ChannelFuture find(Integer channelId) {
return futures.get(channelId); return futures.get(channelId);
} }
@Override
public ChannelFuture find(Channel channel) { public ChannelFuture find(Channel channel) {
return futures.get(channel.getId()); return futures.get(channel.getId());
} }
@Override
public Iterator<ChannelFuture> iterator() { public Iterator<ChannelFuture> iterator() {
return futures.values().iterator(); return futures.values().iterator();
} }
@Override
public synchronized boolean isDone() { public synchronized boolean isDone() {
return done; return done;
} }
@Override
public synchronized boolean isCompleteSuccess() { public synchronized boolean isCompleteSuccess() {
return successCount == futures.size(); return successCount == futures.size();
} }
@Override
public synchronized boolean isPartialSuccess() { public synchronized boolean isPartialSuccess() {
return !futures.isEmpty() && successCount != 0; return !futures.isEmpty() && successCount != 0;
} }
@Override
public synchronized boolean isPartialFailure() { public synchronized boolean isPartialFailure() {
return !futures.isEmpty() && failureCount != 0; return !futures.isEmpty() && failureCount != 0;
} }
@Override
public synchronized boolean isCompleteFailure() { public synchronized boolean isCompleteFailure() {
return failureCount == futures.size(); return failureCount == futures.size();
} }
@Override
public void addListener(ChannelGroupFutureListener listener) { public void addListener(ChannelGroupFutureListener listener) {
if (listener == null) { if (listener == null) {
throw new NullPointerException("listener"); throw new NullPointerException("listener");
@ -181,6 +192,7 @@ public class DefaultChannelGroupFuture implements ChannelGroupFuture {
} }
} }
@Override
public void removeListener(ChannelGroupFutureListener listener) { public void removeListener(ChannelGroupFutureListener listener) {
if (listener == null) { if (listener == null) {
throw new NullPointerException("listener"); throw new NullPointerException("listener");
@ -201,6 +213,7 @@ public class DefaultChannelGroupFuture implements ChannelGroupFuture {
} }
} }
@Override
public ChannelGroupFuture await() throws InterruptedException { public ChannelGroupFuture await() throws InterruptedException {
if (Thread.interrupted()) { if (Thread.interrupted()) {
throw new InterruptedException(); throw new InterruptedException();
@ -220,15 +233,18 @@ public class DefaultChannelGroupFuture implements ChannelGroupFuture {
return this; return this;
} }
@Override
public boolean await(long timeout, TimeUnit unit) public boolean await(long timeout, TimeUnit unit)
throws InterruptedException { throws InterruptedException {
return await0(unit.toNanos(timeout), true); return await0(unit.toNanos(timeout), true);
} }
@Override
public boolean await(long timeoutMillis) throws InterruptedException { public boolean await(long timeoutMillis) throws InterruptedException {
return await0(MILLISECONDS.toNanos(timeoutMillis), true); return await0(MILLISECONDS.toNanos(timeoutMillis), true);
} }
@Override
public ChannelGroupFuture awaitUninterruptibly() { public ChannelGroupFuture awaitUninterruptibly() {
boolean interrupted = false; boolean interrupted = false;
synchronized (this) { synchronized (this) {
@ -252,6 +268,7 @@ public class DefaultChannelGroupFuture implements ChannelGroupFuture {
return this; return this;
} }
@Override
public boolean awaitUninterruptibly(long timeout, TimeUnit unit) { public boolean awaitUninterruptibly(long timeout, TimeUnit unit) {
try { try {
return await0(unit.toNanos(timeout), false); return await0(unit.toNanos(timeout), false);
@ -260,6 +277,7 @@ public class DefaultChannelGroupFuture implements ChannelGroupFuture {
} }
} }
@Override
public boolean awaitUninterruptibly(long timeoutMillis) { public boolean awaitUninterruptibly(long timeoutMillis) {
try { try {
return await0(MILLISECONDS.toNanos(timeoutMillis), false); return await0(MILLISECONDS.toNanos(timeoutMillis), false);

View File

@ -57,22 +57,27 @@ final class DefaultLocalChannel extends AbstractChannel implements LocalChannel
fireChannelOpen(this); fireChannelOpen(this);
} }
@Override
public ChannelConfig getConfig() { public ChannelConfig getConfig() {
return config; return config;
} }
@Override
public boolean isBound() { public boolean isBound() {
return bound.get() && isOpen(); return bound.get() && isOpen();
} }
@Override
public boolean isConnected() { public boolean isConnected() {
return pairedChannel != null && isOpen(); return pairedChannel != null && isOpen();
} }
@Override
public LocalAddress getLocalAddress() { public LocalAddress getLocalAddress() {
return localAddress; return localAddress;
} }
@Override
public LocalAddress getRemoteAddress() { public LocalAddress getRemoteAddress() {
return remoteAddress; return remoteAddress;
} }

View File

@ -39,6 +39,7 @@ public class DefaultLocalClientChannelFactory implements LocalClientChannelFacto
sink = new LocalClientChannelSink(); sink = new LocalClientChannelSink();
} }
@Override
public LocalChannel newChannel(ChannelPipeline pipeline) { public LocalChannel newChannel(ChannelPipeline pipeline) {
return new DefaultLocalChannel(null, this, pipeline, sink, null); return new DefaultLocalChannel(null, this, pipeline, sink, null);
} }
@ -47,6 +48,7 @@ public class DefaultLocalClientChannelFactory implements LocalClientChannelFacto
* Does nothing because this implementation does not require any external * Does nothing because this implementation does not require any external
* resources. * resources.
*/ */
@Override
public void releaseExternalResources() { public void releaseExternalResources() {
// No external resources. // No external resources.
} }

View File

@ -45,18 +45,22 @@ final class DefaultLocalServerChannel extends AbstractServerChannel
fireChannelOpen(this); fireChannelOpen(this);
} }
@Override
public ChannelConfig getConfig() { public ChannelConfig getConfig() {
return channelConfig; return channelConfig;
} }
@Override
public boolean isBound() { public boolean isBound() {
return isOpen() && bound.get(); return isOpen() && bound.get();
} }
@Override
public LocalAddress getLocalAddress() { public LocalAddress getLocalAddress() {
return isBound()? localAddress : null; return isBound()? localAddress : null;
} }
@Override
public LocalAddress getRemoteAddress() { public LocalAddress getRemoteAddress() {
return null; return null;
} }

View File

@ -39,6 +39,7 @@ public class DefaultLocalServerChannelFactory implements LocalServerChannelFacto
super(); super();
} }
@Override
public LocalServerChannel newChannel(ChannelPipeline pipeline) { public LocalServerChannel newChannel(ChannelPipeline pipeline) {
return new DefaultLocalServerChannel(this, pipeline, sink); return new DefaultLocalServerChannel(this, pipeline, sink);
} }
@ -47,6 +48,7 @@ public class DefaultLocalServerChannelFactory implements LocalServerChannelFacto
* Does nothing because this implementation does not require any external * Does nothing because this implementation does not require any external
* resources. * resources.
*/ */
@Override
public void releaseExternalResources() { public void releaseExternalResources() {
// Unused // Unused
} }

View File

@ -106,6 +106,7 @@ public final class LocalAddress extends SocketAddress implements Comparable<Loca
// ephemeral ports, just like O/S does for port number 0. It will // ephemeral ports, just like O/S does for port number 0. It will
// break backward compatibility though. // break backward compatibility though.
@Override
public int compareTo(LocalAddress o) { public int compareTo(LocalAddress o) {
if (ephemeral) { if (ephemeral) {
if (o.ephemeral) { if (o.ephemeral) {

View File

@ -26,6 +26,8 @@ import org.jboss.netty.channel.Channel;
* @version $Rev$, $Date$ * @version $Rev$, $Date$
*/ */
public interface LocalChannel extends Channel { public interface LocalChannel extends Channel {
@Override
LocalAddress getLocalAddress(); LocalAddress getLocalAddress();
@Override
LocalAddress getRemoteAddress(); LocalAddress getRemoteAddress();
} }

View File

@ -26,5 +26,6 @@ import org.jboss.netty.channel.ChannelPipeline;
* @version $Rev$, $Date$ * @version $Rev$, $Date$
*/ */
public interface LocalClientChannelFactory extends ChannelFactory { public interface LocalClientChannelFactory extends ChannelFactory {
@Override
LocalChannel newChannel(ChannelPipeline pipeline); LocalChannel newChannel(ChannelPipeline pipeline);
} }

View File

@ -45,6 +45,7 @@ final class LocalClientChannelSink extends AbstractChannelSink {
super(); super();
} }
@Override
public void eventSunk(ChannelPipeline pipeline, ChannelEvent e) throws Exception { public void eventSunk(ChannelPipeline pipeline, ChannelEvent e) throws Exception {
if (e instanceof ChannelStateEvent) { if (e instanceof ChannelStateEvent) {
ChannelStateEvent event = (ChannelStateEvent) e; ChannelStateEvent event = (ChannelStateEvent) e;

View File

@ -26,6 +26,8 @@ import org.jboss.netty.channel.ServerChannel;
* @version $Rev$, $Date$ * @version $Rev$, $Date$
*/ */
public interface LocalServerChannel extends ServerChannel { public interface LocalServerChannel extends ServerChannel {
@Override
LocalAddress getLocalAddress(); LocalAddress getLocalAddress();
@Override
LocalAddress getRemoteAddress(); LocalAddress getRemoteAddress();
} }

View File

@ -26,5 +26,6 @@ import org.jboss.netty.channel.ServerChannelFactory;
* @version $Rev$, $Date$ * @version $Rev$, $Date$
*/ */
public interface LocalServerChannelFactory extends ServerChannelFactory { public interface LocalServerChannelFactory extends ServerChannelFactory {
@Override
LocalServerChannel newChannel(ChannelPipeline pipeline); LocalServerChannel newChannel(ChannelPipeline pipeline);
} }

View File

@ -39,6 +39,7 @@ final class LocalServerChannelSink extends AbstractChannelSink {
super(); super();
} }
@Override
public void eventSunk(ChannelPipeline pipeline, ChannelEvent e) throws Exception { public void eventSunk(ChannelPipeline pipeline, ChannelEvent e) throws Exception {
Channel channel = e.getChannel(); Channel channel = e.getChannel();
if (channel instanceof DefaultLocalServerChannel) { if (channel instanceof DefaultLocalServerChannel) {

View File

@ -29,5 +29,6 @@ import org.jboss.netty.channel.ChannelPipeline;
* @apiviz.has org.jboss.netty.channel.socket.SocketChannel oneway - - creates * @apiviz.has org.jboss.netty.channel.socket.SocketChannel oneway - - creates
*/ */
public interface ClientSocketChannelFactory extends ChannelFactory { public interface ClientSocketChannelFactory extends ChannelFactory {
@Override
SocketChannel newChannel(ChannelPipeline pipeline); SocketChannel newChannel(ChannelPipeline pipeline);
} }

View File

@ -33,8 +33,11 @@ import org.jboss.netty.channel.Channel;
* @apiviz.composedOf org.jboss.netty.channel.socket.DatagramChannelConfig * @apiviz.composedOf org.jboss.netty.channel.socket.DatagramChannelConfig
*/ */
public interface DatagramChannel extends Channel { public interface DatagramChannel extends Channel {
@Override
DatagramChannelConfig getConfig(); DatagramChannelConfig getConfig();
@Override
InetSocketAddress getLocalAddress(); InetSocketAddress getLocalAddress();
@Override
InetSocketAddress getRemoteAddress(); InetSocketAddress getRemoteAddress();
/** /**

View File

@ -29,5 +29,6 @@ import org.jboss.netty.channel.ChannelPipeline;
* @apiviz.has org.jboss.netty.channel.socket.DatagramChannel oneway - - creates * @apiviz.has org.jboss.netty.channel.socket.DatagramChannel oneway - - creates
*/ */
public interface DatagramChannelFactory extends ChannelFactory { public interface DatagramChannelFactory extends ChannelFactory {
@Override
DatagramChannel newChannel(ChannelPipeline pipeline); DatagramChannel newChannel(ChannelPipeline pipeline);
} }

View File

@ -92,6 +92,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
return true; return true;
} }
@Override
public boolean isBroadcast() { public boolean isBroadcast() {
try { try {
return socket.getBroadcast(); return socket.getBroadcast();
@ -100,6 +101,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setBroadcast(boolean broadcast) { public void setBroadcast(boolean broadcast) {
try { try {
socket.setBroadcast(broadcast); socket.setBroadcast(broadcast);
@ -108,6 +110,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public InetAddress getInterface() { public InetAddress getInterface() {
if (socket instanceof MulticastSocket) { if (socket instanceof MulticastSocket) {
try { try {
@ -120,6 +123,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setInterface(InetAddress interfaceAddress) { public void setInterface(InetAddress interfaceAddress) {
if (socket instanceof MulticastSocket) { if (socket instanceof MulticastSocket) {
try { try {
@ -132,6 +136,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public boolean isLoopbackModeDisabled() { public boolean isLoopbackModeDisabled() {
if (socket instanceof MulticastSocket) { if (socket instanceof MulticastSocket) {
try { try {
@ -144,6 +149,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setLoopbackModeDisabled(boolean loopbackModeDisabled) { public void setLoopbackModeDisabled(boolean loopbackModeDisabled) {
if (socket instanceof MulticastSocket) { if (socket instanceof MulticastSocket) {
try { try {
@ -156,6 +162,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public NetworkInterface getNetworkInterface() { public NetworkInterface getNetworkInterface() {
if (socket instanceof MulticastSocket) { if (socket instanceof MulticastSocket) {
try { try {
@ -168,6 +175,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setNetworkInterface(NetworkInterface networkInterface) { public void setNetworkInterface(NetworkInterface networkInterface) {
if (socket instanceof MulticastSocket) { if (socket instanceof MulticastSocket) {
try { try {
@ -180,6 +188,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public boolean isReuseAddress() { public boolean isReuseAddress() {
try { try {
return socket.getReuseAddress(); return socket.getReuseAddress();
@ -188,6 +197,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setReuseAddress(boolean reuseAddress) { public void setReuseAddress(boolean reuseAddress) {
try { try {
socket.setReuseAddress(reuseAddress); socket.setReuseAddress(reuseAddress);
@ -196,6 +206,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public int getReceiveBufferSize() { public int getReceiveBufferSize() {
try { try {
return socket.getReceiveBufferSize(); return socket.getReceiveBufferSize();
@ -204,6 +215,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setReceiveBufferSize(int receiveBufferSize) { public void setReceiveBufferSize(int receiveBufferSize) {
try { try {
socket.setReceiveBufferSize(receiveBufferSize); socket.setReceiveBufferSize(receiveBufferSize);
@ -212,6 +224,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public int getSendBufferSize() { public int getSendBufferSize() {
try { try {
return socket.getSendBufferSize(); return socket.getSendBufferSize();
@ -220,6 +233,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setSendBufferSize(int sendBufferSize) { public void setSendBufferSize(int sendBufferSize) {
try { try {
socket.setSendBufferSize(sendBufferSize); socket.setSendBufferSize(sendBufferSize);
@ -228,6 +242,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public int getTimeToLive() { public int getTimeToLive() {
if (socket instanceof MulticastSocket) { if (socket instanceof MulticastSocket) {
try { try {
@ -240,6 +255,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setTimeToLive(int ttl) { public void setTimeToLive(int ttl) {
if (socket instanceof MulticastSocket) { if (socket instanceof MulticastSocket) {
try { try {
@ -252,6 +268,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public int getTrafficClass() { public int getTrafficClass() {
try { try {
return socket.getTrafficClass(); return socket.getTrafficClass();
@ -260,6 +277,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setTrafficClass(int trafficClass) { public void setTrafficClass(int trafficClass) {
try { try {
socket.setTrafficClass(trafficClass); socket.setTrafficClass(trafficClass);
@ -268,6 +286,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public ReceiveBufferSizePredictor getReceiveBufferSizePredictor() { public ReceiveBufferSizePredictor getReceiveBufferSizePredictor() {
ReceiveBufferSizePredictor predictor = this.predictor; ReceiveBufferSizePredictor predictor = this.predictor;
if (predictor == null) { if (predictor == null) {
@ -283,6 +302,7 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
return predictor; return predictor;
} }
@Override
public void setReceiveBufferSizePredictor( public void setReceiveBufferSizePredictor(
ReceiveBufferSizePredictor predictor) { ReceiveBufferSizePredictor predictor) {
if (predictor == null) { if (predictor == null) {
@ -291,10 +311,12 @@ public class DefaultDatagramChannelConfig extends DefaultChannelConfig
this.predictor = predictor; this.predictor = predictor;
} }
@Override
public ReceiveBufferSizePredictorFactory getReceiveBufferSizePredictorFactory() { public ReceiveBufferSizePredictorFactory getReceiveBufferSizePredictorFactory() {
return predictorFactory; return predictorFactory;
} }
@Override
public void setReceiveBufferSizePredictorFactory(ReceiveBufferSizePredictorFactory predictorFactory) { public void setReceiveBufferSizePredictorFactory(ReceiveBufferSizePredictorFactory predictorFactory) {
if (predictorFactory == null) { if (predictorFactory == null) {
throw new NullPointerException("predictorFactory"); throw new NullPointerException("predictorFactory");

View File

@ -64,6 +64,7 @@ public class DefaultServerSocketChannelConfig extends DefaultServerChannelConfig
return true; return true;
} }
@Override
public boolean isReuseAddress() { public boolean isReuseAddress() {
try { try {
return socket.getReuseAddress(); return socket.getReuseAddress();
@ -72,6 +73,7 @@ public class DefaultServerSocketChannelConfig extends DefaultServerChannelConfig
} }
} }
@Override
public void setReuseAddress(boolean reuseAddress) { public void setReuseAddress(boolean reuseAddress) {
try { try {
socket.setReuseAddress(reuseAddress); socket.setReuseAddress(reuseAddress);
@ -80,6 +82,7 @@ public class DefaultServerSocketChannelConfig extends DefaultServerChannelConfig
} }
} }
@Override
public int getReceiveBufferSize() { public int getReceiveBufferSize() {
try { try {
return socket.getReceiveBufferSize(); return socket.getReceiveBufferSize();
@ -88,6 +91,7 @@ public class DefaultServerSocketChannelConfig extends DefaultServerChannelConfig
} }
} }
@Override
public void setReceiveBufferSize(int receiveBufferSize) { public void setReceiveBufferSize(int receiveBufferSize) {
try { try {
socket.setReceiveBufferSize(receiveBufferSize); socket.setReceiveBufferSize(receiveBufferSize);
@ -96,14 +100,17 @@ public class DefaultServerSocketChannelConfig extends DefaultServerChannelConfig
} }
} }
@Override
public void setPerformancePreferences(int connectionTime, int latency, int bandwidth) { public void setPerformancePreferences(int connectionTime, int latency, int bandwidth) {
socket.setPerformancePreferences(connectionTime, latency, bandwidth); socket.setPerformancePreferences(connectionTime, latency, bandwidth);
} }
@Override
public int getBacklog() { public int getBacklog() {
return backlog; return backlog;
} }
@Override
public void setBacklog(int backlog) { public void setBacklog(int backlog) {
if (backlog < 0) { if (backlog < 0) {
throw new IllegalArgumentException("backlog: " + backlog); throw new IllegalArgumentException("backlog: " + backlog);

View File

@ -72,6 +72,7 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
return true; return true;
} }
@Override
public int getReceiveBufferSize() { public int getReceiveBufferSize() {
try { try {
return socket.getReceiveBufferSize(); return socket.getReceiveBufferSize();
@ -80,6 +81,7 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public int getSendBufferSize() { public int getSendBufferSize() {
try { try {
return socket.getSendBufferSize(); return socket.getSendBufferSize();
@ -88,6 +90,7 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public int getSoLinger() { public int getSoLinger() {
try { try {
return socket.getSoLinger(); return socket.getSoLinger();
@ -96,6 +99,7 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public int getTrafficClass() { public int getTrafficClass() {
try { try {
return socket.getTrafficClass(); return socket.getTrafficClass();
@ -104,6 +108,7 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public boolean isKeepAlive() { public boolean isKeepAlive() {
try { try {
return socket.getKeepAlive(); return socket.getKeepAlive();
@ -112,6 +117,7 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public boolean isReuseAddress() { public boolean isReuseAddress() {
try { try {
return socket.getReuseAddress(); return socket.getReuseAddress();
@ -120,6 +126,7 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public boolean isTcpNoDelay() { public boolean isTcpNoDelay() {
try { try {
return socket.getTcpNoDelay(); return socket.getTcpNoDelay();
@ -128,6 +135,7 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setKeepAlive(boolean keepAlive) { public void setKeepAlive(boolean keepAlive) {
try { try {
socket.setKeepAlive(keepAlive); socket.setKeepAlive(keepAlive);
@ -136,11 +144,13 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setPerformancePreferences( public void setPerformancePreferences(
int connectionTime, int latency, int bandwidth) { int connectionTime, int latency, int bandwidth) {
socket.setPerformancePreferences(connectionTime, latency, bandwidth); socket.setPerformancePreferences(connectionTime, latency, bandwidth);
} }
@Override
public void setReceiveBufferSize(int receiveBufferSize) { public void setReceiveBufferSize(int receiveBufferSize) {
try { try {
socket.setReceiveBufferSize(receiveBufferSize); socket.setReceiveBufferSize(receiveBufferSize);
@ -149,6 +159,7 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setReuseAddress(boolean reuseAddress) { public void setReuseAddress(boolean reuseAddress) {
try { try {
socket.setReuseAddress(reuseAddress); socket.setReuseAddress(reuseAddress);
@ -157,6 +168,7 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setSendBufferSize(int sendBufferSize) { public void setSendBufferSize(int sendBufferSize) {
try { try {
socket.setSendBufferSize(sendBufferSize); socket.setSendBufferSize(sendBufferSize);
@ -165,6 +177,7 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setSoLinger(int soLinger) { public void setSoLinger(int soLinger) {
try { try {
if (soLinger < 0) { if (soLinger < 0) {
@ -177,6 +190,7 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setTcpNoDelay(boolean tcpNoDelay) { public void setTcpNoDelay(boolean tcpNoDelay) {
try { try {
socket.setTcpNoDelay(tcpNoDelay); socket.setTcpNoDelay(tcpNoDelay);
@ -185,6 +199,7 @@ public class DefaultSocketChannelConfig extends DefaultChannelConfig
} }
} }
@Override
public void setTrafficClass(int trafficClass) { public void setTrafficClass(int trafficClass) {
try { try {
socket.setTrafficClass(trafficClass); socket.setTrafficClass(trafficClass);

View File

@ -31,7 +31,10 @@ import org.jboss.netty.channel.ServerChannel;
* @apiviz.composedOf org.jboss.netty.channel.socket.ServerSocketChannelConfig * @apiviz.composedOf org.jboss.netty.channel.socket.ServerSocketChannelConfig
*/ */
public interface ServerSocketChannel extends ServerChannel { public interface ServerSocketChannel extends ServerChannel {
@Override
ServerSocketChannelConfig getConfig(); ServerSocketChannelConfig getConfig();
@Override
InetSocketAddress getLocalAddress(); InetSocketAddress getLocalAddress();
@Override
InetSocketAddress getRemoteAddress(); InetSocketAddress getRemoteAddress();
} }

View File

@ -30,5 +30,6 @@ import org.jboss.netty.channel.ServerChannelFactory;
* @apiviz.has org.jboss.netty.channel.socket.ServerSocketChannel oneway - - creates * @apiviz.has org.jboss.netty.channel.socket.ServerSocketChannel oneway - - creates
*/ */
public interface ServerSocketChannelFactory extends ServerChannelFactory { public interface ServerSocketChannelFactory extends ServerChannelFactory {
@Override
ServerSocketChannel newChannel(ChannelPipeline pipeline); ServerSocketChannel newChannel(ChannelPipeline pipeline);
} }

View File

@ -32,7 +32,10 @@ import org.jboss.netty.channel.Channel;
* @apiviz.composedOf org.jboss.netty.channel.socket.SocketChannelConfig * @apiviz.composedOf org.jboss.netty.channel.socket.SocketChannelConfig
*/ */
public interface SocketChannel extends Channel { public interface SocketChannel extends Channel {
@Override
SocketChannelConfig getConfig(); SocketChannelConfig getConfig();
@Override
InetSocketAddress getLocalAddress(); InetSocketAddress getLocalAddress();
@Override
InetSocketAddress getRemoteAddress(); InetSocketAddress getRemoteAddress();
} }

View File

@ -90,22 +90,27 @@ class HttpTunnelingClientSocketChannel extends AbstractChannel
fireChannelOpen(this); fireChannelOpen(this);
} }
@Override
public HttpTunnelingSocketChannelConfig getConfig() { public HttpTunnelingSocketChannelConfig getConfig() {
return config; return config;
} }
@Override
public InetSocketAddress getLocalAddress() { public InetSocketAddress getLocalAddress() {
return realChannel.getLocalAddress(); return realChannel.getLocalAddress();
} }
@Override
public InetSocketAddress getRemoteAddress() { public InetSocketAddress getRemoteAddress() {
return realChannel.getRemoteAddress(); return realChannel.getRemoteAddress();
} }
@Override
public boolean isBound() { public boolean isBound() {
return realChannel.isBound(); return realChannel.isBound();
} }
@Override
public boolean isConnected() { public boolean isConnected() {
return realChannel.isConnected(); return realChannel.isConnected();
} }
@ -137,6 +142,7 @@ class HttpTunnelingClientSocketChannel extends AbstractChannel
void bindReal(final SocketAddress localAddress, final ChannelFuture future) { void bindReal(final SocketAddress localAddress, final ChannelFuture future) {
realChannel.bind(localAddress).addListener(new ChannelFutureListener() { realChannel.bind(localAddress).addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) { public void operationComplete(ChannelFuture f) {
if (f.isSuccess()) { if (f.isSuccess()) {
future.setSuccess(); future.setSuccess();
@ -150,6 +156,7 @@ class HttpTunnelingClientSocketChannel extends AbstractChannel
void connectReal(final SocketAddress remoteAddress, final ChannelFuture future) { void connectReal(final SocketAddress remoteAddress, final ChannelFuture future) {
final SocketChannel virtualChannel = this; final SocketChannel virtualChannel = this;
realChannel.connect(remoteAddress).addListener(new ChannelFutureListener() { realChannel.connect(remoteAddress).addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) { public void operationComplete(ChannelFuture f) {
final String serverName = config.getServerName(); final String serverName = config.getServerName();
final int serverPort = ((InetSocketAddress) remoteAddress).getPort(); final int serverPort = ((InetSocketAddress) remoteAddress).getPort();
@ -203,6 +210,7 @@ class HttpTunnelingClientSocketChannel extends AbstractChannel
fireChannelConnected(virtualChannel, remoteAddress); fireChannelConnected(virtualChannel, remoteAddress);
} else { } else {
sslHandshakeFuture.addListener(new ChannelFutureListener() { sslHandshakeFuture.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) { public void operationComplete(ChannelFuture f) {
if (f.isSuccess()) { if (f.isSuccess()) {
realChannel.write(req); realChannel.write(req);
@ -239,6 +247,7 @@ class HttpTunnelingClientSocketChannel extends AbstractChannel
} }
f.addListener(new ChannelFutureListener() { f.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) { public void operationComplete(ChannelFuture f) {
if (f.isSuccess()) { if (f.isSuccess()) {
future.setSuccess(); future.setSuccess();
@ -262,6 +271,7 @@ class HttpTunnelingClientSocketChannel extends AbstractChannel
void setInterestOpsReal(final int interestOps, final ChannelFuture future) { void setInterestOpsReal(final int interestOps, final ChannelFuture future) {
realChannel.setInterestOps(interestOps).addListener(new ChannelFutureListener() { realChannel.setInterestOps(interestOps).addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) { public void operationComplete(ChannelFuture f) {
if (f.isSuccess()) { if (f.isSuccess()) {
future.setSuccess(); future.setSuccess();
@ -274,8 +284,10 @@ class HttpTunnelingClientSocketChannel extends AbstractChannel
void disconnectReal(final ChannelFuture future) { void disconnectReal(final ChannelFuture future) {
writeLastChunk().addListener(new ChannelFutureListener() { writeLastChunk().addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) { public void operationComplete(ChannelFuture f) {
realChannel.disconnect().addListener(new ChannelFutureListener() { realChannel.disconnect().addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) { public void operationComplete(ChannelFuture f) {
if (f.isSuccess()) { if (f.isSuccess()) {
future.setSuccess(); future.setSuccess();
@ -290,8 +302,10 @@ class HttpTunnelingClientSocketChannel extends AbstractChannel
void unbindReal(final ChannelFuture future) { void unbindReal(final ChannelFuture future) {
writeLastChunk().addListener(new ChannelFutureListener() { writeLastChunk().addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) { public void operationComplete(ChannelFuture f) {
realChannel.unbind().addListener(new ChannelFutureListener() { realChannel.unbind().addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) { public void operationComplete(ChannelFuture f) {
if (f.isSuccess()) { if (f.isSuccess()) {
future.setSuccess(); future.setSuccess();
@ -306,8 +320,10 @@ class HttpTunnelingClientSocketChannel extends AbstractChannel
void closeReal(final ChannelFuture future) { void closeReal(final ChannelFuture future) {
writeLastChunk().addListener(new ChannelFutureListener() { writeLastChunk().addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) { public void operationComplete(ChannelFuture f) {
realChannel.close().addListener(new ChannelFutureListener() { realChannel.close().addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) { public void operationComplete(ChannelFuture f) {
// Note: If 'future' refers to the closeFuture, // Note: If 'future' refers to the closeFuture,
// setSuccess() and setFailure() do nothing. // setSuccess() and setFailure() do nothing.

View File

@ -46,10 +46,12 @@ public class HttpTunnelingClientSocketChannelFactory implements ClientSocketChan
this.clientSocketChannelFactory = clientSocketChannelFactory; this.clientSocketChannelFactory = clientSocketChannelFactory;
} }
@Override
public SocketChannel newChannel(ChannelPipeline pipeline) { public SocketChannel newChannel(ChannelPipeline pipeline) {
return new HttpTunnelingClientSocketChannel(this, pipeline, sink, clientSocketChannelFactory); return new HttpTunnelingClientSocketChannel(this, pipeline, sink, clientSocketChannelFactory);
} }
@Override
public void releaseExternalResources() { public void releaseExternalResources() {
clientSocketChannelFactory.releaseExternalResources(); clientSocketChannelFactory.releaseExternalResources();
} }

View File

@ -38,6 +38,7 @@ final class HttpTunnelingClientSocketPipelineSink extends AbstractChannelSink {
super(); super();
} }
@Override
public void eventSunk( public void eventSunk(
ChannelPipeline pipeline, ChannelEvent e) throws Exception { ChannelPipeline pipeline, ChannelEvent e) throws Exception {
HttpTunnelingClientSocketChannel channel = (HttpTunnelingClientSocketChannel) e.getChannel(); HttpTunnelingClientSocketChannel channel = (HttpTunnelingClientSocketChannel) e.getChannel();

View File

@ -206,12 +206,14 @@ public final class HttpTunnelingSocketChannelConfig implements SocketChannelConf
enableSslSessionCreation = flag; enableSslSessionCreation = flag;
} }
@Override
public void setOptions(Map<String, Object> options) { public void setOptions(Map<String, Object> options) {
for (Entry<String, Object> e: options.entrySet()) { for (Entry<String, Object> e: options.entrySet()) {
setOption(e.getKey(), e.getValue()); setOption(e.getKey(), e.getValue());
} }
} }
@Override
public boolean setOption(String key, Object value) { public boolean setOption(String key, Object value) {
if (channel.realChannel.getConfig().setOption(key, value)) { if (channel.realChannel.getConfig().setOption(key, value)) {
return true; return true;
@ -236,88 +238,109 @@ public final class HttpTunnelingSocketChannelConfig implements SocketChannelConf
return true; return true;
} }
@Override
public int getReceiveBufferSize() { public int getReceiveBufferSize() {
return channel.realChannel.getConfig().getReceiveBufferSize(); return channel.realChannel.getConfig().getReceiveBufferSize();
} }
@Override
public int getSendBufferSize() { public int getSendBufferSize() {
return channel.realChannel.getConfig().getSendBufferSize(); return channel.realChannel.getConfig().getSendBufferSize();
} }
@Override
public int getSoLinger() { public int getSoLinger() {
return channel.realChannel.getConfig().getSoLinger(); return channel.realChannel.getConfig().getSoLinger();
} }
@Override
public int getTrafficClass() { public int getTrafficClass() {
return channel.realChannel.getConfig().getTrafficClass(); return channel.realChannel.getConfig().getTrafficClass();
} }
@Override
public boolean isKeepAlive() { public boolean isKeepAlive() {
return channel.realChannel.getConfig().isKeepAlive(); return channel.realChannel.getConfig().isKeepAlive();
} }
@Override
public boolean isReuseAddress() { public boolean isReuseAddress() {
return channel.realChannel.getConfig().isReuseAddress(); return channel.realChannel.getConfig().isReuseAddress();
} }
@Override
public boolean isTcpNoDelay() { public boolean isTcpNoDelay() {
return channel.realChannel.getConfig().isTcpNoDelay(); return channel.realChannel.getConfig().isTcpNoDelay();
} }
@Override
public void setKeepAlive(boolean keepAlive) { public void setKeepAlive(boolean keepAlive) {
channel.realChannel.getConfig().setKeepAlive(keepAlive); channel.realChannel.getConfig().setKeepAlive(keepAlive);
} }
@Override
public void setPerformancePreferences( public void setPerformancePreferences(
int connectionTime, int latency, int bandwidth) { int connectionTime, int latency, int bandwidth) {
channel.realChannel.getConfig().setPerformancePreferences(connectionTime, latency, bandwidth); channel.realChannel.getConfig().setPerformancePreferences(connectionTime, latency, bandwidth);
} }
@Override
public void setReceiveBufferSize(int receiveBufferSize) { public void setReceiveBufferSize(int receiveBufferSize) {
channel.realChannel.getConfig().setReceiveBufferSize(receiveBufferSize); channel.realChannel.getConfig().setReceiveBufferSize(receiveBufferSize);
} }
@Override
public void setReuseAddress(boolean reuseAddress) { public void setReuseAddress(boolean reuseAddress) {
channel.realChannel.getConfig().setReuseAddress(reuseAddress); channel.realChannel.getConfig().setReuseAddress(reuseAddress);
} }
@Override
public void setSendBufferSize(int sendBufferSize) { public void setSendBufferSize(int sendBufferSize) {
channel.realChannel.getConfig().setSendBufferSize(sendBufferSize); channel.realChannel.getConfig().setSendBufferSize(sendBufferSize);
} }
@Override
public void setSoLinger(int soLinger) { public void setSoLinger(int soLinger) {
channel.realChannel.getConfig().setSoLinger(soLinger); channel.realChannel.getConfig().setSoLinger(soLinger);
} }
@Override
public void setTcpNoDelay(boolean tcpNoDelay) { public void setTcpNoDelay(boolean tcpNoDelay) {
channel.realChannel.getConfig().setTcpNoDelay(tcpNoDelay); channel.realChannel.getConfig().setTcpNoDelay(tcpNoDelay);
} }
@Override
public void setTrafficClass(int trafficClass) { public void setTrafficClass(int trafficClass) {
channel.realChannel.getConfig().setTrafficClass(trafficClass); channel.realChannel.getConfig().setTrafficClass(trafficClass);
} }
@Override
public ChannelBufferFactory getBufferFactory() { public ChannelBufferFactory getBufferFactory() {
return channel.realChannel.getConfig().getBufferFactory(); return channel.realChannel.getConfig().getBufferFactory();
} }
@Override
public int getConnectTimeoutMillis() { public int getConnectTimeoutMillis() {
return channel.realChannel.getConfig().getConnectTimeoutMillis(); return channel.realChannel.getConfig().getConnectTimeoutMillis();
} }
@Override
public ChannelPipelineFactory getPipelineFactory() { public ChannelPipelineFactory getPipelineFactory() {
return channel.realChannel.getConfig().getPipelineFactory(); return channel.realChannel.getConfig().getPipelineFactory();
} }
@Override
public void setBufferFactory(ChannelBufferFactory bufferFactory) { public void setBufferFactory(ChannelBufferFactory bufferFactory) {
channel.realChannel.getConfig().setBufferFactory(bufferFactory); channel.realChannel.getConfig().setBufferFactory(bufferFactory);
} }
@Override
public void setConnectTimeoutMillis(int connectTimeoutMillis) { public void setConnectTimeoutMillis(int connectTimeoutMillis) {
channel.realChannel.getConfig().setConnectTimeoutMillis(connectTimeoutMillis); channel.realChannel.getConfig().setConnectTimeoutMillis(connectTimeoutMillis);
} }
@Override
public void setPipelineFactory(ChannelPipelineFactory pipelineFactory) { public void setPipelineFactory(ChannelPipelineFactory pipelineFactory) {
channel.realChannel.getConfig().setPipelineFactory(pipelineFactory); channel.realChannel.getConfig().setPipelineFactory(pipelineFactory);
} }

View File

@ -79,10 +79,12 @@ class DefaultNioDatagramChannelConfig extends DefaultDatagramChannelConfig
return true; return true;
} }
@Override
public int getWriteBufferHighWaterMark() { public int getWriteBufferHighWaterMark() {
return writeBufferHighWaterMark; return writeBufferHighWaterMark;
} }
@Override
public void setWriteBufferHighWaterMark(int writeBufferHighWaterMark) { public void setWriteBufferHighWaterMark(int writeBufferHighWaterMark) {
if (writeBufferHighWaterMark < getWriteBufferLowWaterMark()) { if (writeBufferHighWaterMark < getWriteBufferLowWaterMark()) {
throw new IllegalArgumentException( throw new IllegalArgumentException(
@ -102,10 +104,12 @@ class DefaultNioDatagramChannelConfig extends DefaultDatagramChannelConfig
this.writeBufferHighWaterMark = writeBufferHighWaterMark; this.writeBufferHighWaterMark = writeBufferHighWaterMark;
} }
@Override
public int getWriteBufferLowWaterMark() { public int getWriteBufferLowWaterMark() {
return writeBufferLowWaterMark; return writeBufferLowWaterMark;
} }
@Override
public void setWriteBufferLowWaterMark(int writeBufferLowWaterMark) { public void setWriteBufferLowWaterMark(int writeBufferLowWaterMark) {
if (writeBufferLowWaterMark > getWriteBufferHighWaterMark()) { if (writeBufferLowWaterMark > getWriteBufferHighWaterMark()) {
throw new IllegalArgumentException( throw new IllegalArgumentException(
@ -125,10 +129,12 @@ class DefaultNioDatagramChannelConfig extends DefaultDatagramChannelConfig
this.writeBufferLowWaterMark = writeBufferLowWaterMark; this.writeBufferLowWaterMark = writeBufferLowWaterMark;
} }
@Override
public int getWriteSpinCount() { public int getWriteSpinCount() {
return writeSpinCount; return writeSpinCount;
} }
@Override
public void setWriteSpinCount(int writeSpinCount) { public void setWriteSpinCount(int writeSpinCount) {
if (writeSpinCount <= 0) { if (writeSpinCount <= 0) {
throw new IllegalArgumentException( throw new IllegalArgumentException(

View File

@ -91,10 +91,12 @@ class DefaultNioSocketChannelConfig extends DefaultSocketChannelConfig
return true; return true;
} }
@Override
public int getWriteBufferHighWaterMark() { public int getWriteBufferHighWaterMark() {
return writeBufferHighWaterMark; return writeBufferHighWaterMark;
} }
@Override
public void setWriteBufferHighWaterMark(int writeBufferHighWaterMark) { public void setWriteBufferHighWaterMark(int writeBufferHighWaterMark) {
if (writeBufferHighWaterMark < getWriteBufferLowWaterMark()) { if (writeBufferHighWaterMark < getWriteBufferLowWaterMark()) {
throw new IllegalArgumentException( throw new IllegalArgumentException(
@ -113,10 +115,12 @@ class DefaultNioSocketChannelConfig extends DefaultSocketChannelConfig
this.writeBufferHighWaterMark = writeBufferHighWaterMark; this.writeBufferHighWaterMark = writeBufferHighWaterMark;
} }
@Override
public int getWriteBufferLowWaterMark() { public int getWriteBufferLowWaterMark() {
return writeBufferLowWaterMark; return writeBufferLowWaterMark;
} }
@Override
public void setWriteBufferLowWaterMark(int writeBufferLowWaterMark) { public void setWriteBufferLowWaterMark(int writeBufferLowWaterMark) {
if (writeBufferLowWaterMark > getWriteBufferHighWaterMark()) { if (writeBufferLowWaterMark > getWriteBufferHighWaterMark()) {
throw new IllegalArgumentException( throw new IllegalArgumentException(
@ -135,10 +139,12 @@ class DefaultNioSocketChannelConfig extends DefaultSocketChannelConfig
this.writeBufferLowWaterMark = writeBufferLowWaterMark; this.writeBufferLowWaterMark = writeBufferLowWaterMark;
} }
@Override
public int getWriteSpinCount() { public int getWriteSpinCount() {
return writeSpinCount; return writeSpinCount;
} }
@Override
public void setWriteSpinCount(int writeSpinCount) { public void setWriteSpinCount(int writeSpinCount) {
if (writeSpinCount <= 0) { if (writeSpinCount <= 0) {
throw new IllegalArgumentException( throw new IllegalArgumentException(
@ -147,6 +153,7 @@ class DefaultNioSocketChannelConfig extends DefaultSocketChannelConfig
this.writeSpinCount = writeSpinCount; this.writeSpinCount = writeSpinCount;
} }
@Override
public ReceiveBufferSizePredictor getReceiveBufferSizePredictor() { public ReceiveBufferSizePredictor getReceiveBufferSizePredictor() {
ReceiveBufferSizePredictor predictor = this.predictor; ReceiveBufferSizePredictor predictor = this.predictor;
if (predictor == null) { if (predictor == null) {
@ -162,6 +169,7 @@ class DefaultNioSocketChannelConfig extends DefaultSocketChannelConfig
return predictor; return predictor;
} }
@Override
public void setReceiveBufferSizePredictor( public void setReceiveBufferSizePredictor(
ReceiveBufferSizePredictor predictor) { ReceiveBufferSizePredictor predictor) {
if (predictor == null) { if (predictor == null) {
@ -170,10 +178,12 @@ class DefaultNioSocketChannelConfig extends DefaultSocketChannelConfig
this.predictor = predictor; this.predictor = predictor;
} }
@Override
public ReceiveBufferSizePredictorFactory getReceiveBufferSizePredictorFactory() { public ReceiveBufferSizePredictorFactory getReceiveBufferSizePredictorFactory() {
return predictorFactory; return predictorFactory;
} }
@Override
public void setReceiveBufferSizePredictorFactory(ReceiveBufferSizePredictorFactory predictorFactory) { public void setReceiveBufferSizePredictorFactory(ReceiveBufferSizePredictorFactory predictorFactory) {
if (predictorFactory == null) { if (predictorFactory == null) {
throw new NullPointerException("predictorFactory"); throw new NullPointerException("predictorFactory");

View File

@ -135,10 +135,12 @@ public class NioClientSocketChannelFactory implements ClientSocketChannelFactory
sink = new NioClientSocketPipelineSink(bossExecutor, workerExecutor, workerCount); sink = new NioClientSocketPipelineSink(bossExecutor, workerExecutor, workerCount);
} }
@Override
public SocketChannel newChannel(ChannelPipeline pipeline) { public SocketChannel newChannel(ChannelPipeline pipeline) {
return new NioClientSocketChannel(this, pipeline, sink, sink.nextWorker()); return new NioClientSocketChannel(this, pipeline, sink, sink.nextWorker());
} }
@Override
public void releaseExternalResources() { public void releaseExternalResources() {
ExecutorUtil.terminate(bossExecutor, workerExecutor); ExecutorUtil.terminate(bossExecutor, workerExecutor);
} }

View File

@ -75,6 +75,7 @@ class NioClientSocketPipelineSink extends AbstractChannelSink {
} }
} }
@Override
public void eventSunk( public void eventSunk(
ChannelPipeline pipeline, ChannelEvent e) throws Exception { ChannelPipeline pipeline, ChannelEvent e) throws Exception {
if (e instanceof ChannelStateEvent) { if (e instanceof ChannelStateEvent) {
@ -141,6 +142,7 @@ class NioClientSocketPipelineSink extends AbstractChannelSink {
channel.worker.register(channel, cf); channel.worker.register(channel, cf);
} else { } else {
channel.getCloseFuture().addListener(new ChannelFutureListener() { channel.getCloseFuture().addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) public void operationComplete(ChannelFuture f)
throws Exception { throws Exception {
if (!cf.isDone()) { if (!cf.isDone()) {
@ -227,6 +229,7 @@ class NioClientSocketPipelineSink extends AbstractChannelSink {
} }
} }
@Override
public void run() { public void run() {
boolean shutdown = false; boolean shutdown = false;
Selector selector = this.selector; Selector selector = this.selector;
@ -406,6 +409,7 @@ class NioClientSocketPipelineSink extends AbstractChannelSink {
this.channel = channel; this.channel = channel;
} }
@Override
public void run() { public void run() {
try { try {
channel.socket.register( channel.socket.register(

View File

@ -140,6 +140,7 @@ class NioDatagramChannel extends AbstractChannel
} }
} }
@Override
public InetSocketAddress getLocalAddress() { public InetSocketAddress getLocalAddress() {
InetSocketAddress localAddress = this.localAddress; InetSocketAddress localAddress = this.localAddress;
if (localAddress == null) { if (localAddress == null) {
@ -154,6 +155,7 @@ class NioDatagramChannel extends AbstractChannel
return localAddress; return localAddress;
} }
@Override
public InetSocketAddress getRemoteAddress() { public InetSocketAddress getRemoteAddress() {
InetSocketAddress remoteAddress = this.remoteAddress; InetSocketAddress remoteAddress = this.remoteAddress;
if (remoteAddress == null) { if (remoteAddress == null) {
@ -168,10 +170,12 @@ class NioDatagramChannel extends AbstractChannel
return remoteAddress; return remoteAddress;
} }
@Override
public boolean isBound() { public boolean isBound() {
return isOpen() && datagramChannel.socket().isBound(); return isOpen() && datagramChannel.socket().isBound();
} }
@Override
public boolean isConnected() { public boolean isConnected() {
return datagramChannel.isConnected(); return datagramChannel.isConnected();
} }
@ -181,6 +185,7 @@ class NioDatagramChannel extends AbstractChannel
return super.setClosed(); return super.setClosed();
} }
@Override
public NioDatagramChannelConfig getConfig() { public NioDatagramChannelConfig getConfig() {
return config; return config;
} }
@ -322,25 +327,30 @@ class NioDatagramChannel extends AbstractChannel
super(); super();
} }
@Override
public void run() { public void run() {
writeTaskInTaskQueue.set(false); writeTaskInTaskQueue.set(false);
worker.writeFromTaskLoop(NioDatagramChannel.this); worker.writeFromTaskLoop(NioDatagramChannel.this);
} }
} }
@Override
public void joinGroup(InetAddress multicastAddress) { public void joinGroup(InetAddress multicastAddress) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void joinGroup(InetSocketAddress multicastAddress, public void joinGroup(InetSocketAddress multicastAddress,
NetworkInterface networkInterface) { NetworkInterface networkInterface) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void leaveGroup(InetAddress multicastAddress) { public void leaveGroup(InetAddress multicastAddress) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void leaveGroup(InetSocketAddress multicastAddress, public void leaveGroup(InetSocketAddress multicastAddress,
NetworkInterface networkInterface) { NetworkInterface networkInterface) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();

View File

@ -123,10 +123,12 @@ public class NioDatagramChannelFactory implements DatagramChannelFactory {
sink = new NioDatagramPipelineSink(workerExecutor, workerCount); sink = new NioDatagramPipelineSink(workerExecutor, workerCount);
} }
@Override
public DatagramChannel newChannel(final ChannelPipeline pipeline) { public DatagramChannel newChannel(final ChannelPipeline pipeline) {
return new NioDatagramChannel(this, pipeline, sink, sink.nextWorker()); return new NioDatagramChannel(this, pipeline, sink, sink.nextWorker());
} }
@Override
public void releaseExternalResources() { public void releaseExternalResources() {
ExecutorUtil.terminate(workerExecutor); ExecutorUtil.terminate(workerExecutor);
} }

View File

@ -73,6 +73,7 @@ class NioDatagramPipelineSink extends AbstractChannelSink {
* downstream event. * downstream event.
* @param e The downstream event. * @param e The downstream event.
*/ */
@Override
public void eventSunk(final ChannelPipeline pipeline, final ChannelEvent e) public void eventSunk(final ChannelPipeline pipeline, final ChannelEvent e)
throws Exception { throws Exception {
final NioDatagramChannel channel = (NioDatagramChannel) e.getChannel(); final NioDatagramChannel channel = (NioDatagramChannel) e.getChannel();

View File

@ -205,6 +205,7 @@ class NioDatagramWorker implements Runnable {
/** /**
* Selector loop. * Selector loop.
*/ */
@Override
public void run() { public void run() {
// Store a ref to the current thread. // Store a ref to the current thread.
thread = Thread.currentThread(); thread = Thread.currentThread();
@ -839,6 +840,7 @@ class NioDatagramWorker implements Runnable {
* underlying DatagramChannels peer DatagramSocket register method. * underlying DatagramChannels peer DatagramSocket register method.
* *
*/ */
@Override
public void run() { public void run() {
final SocketAddress localAddress = channel.getLocalAddress(); final SocketAddress localAddress = channel.getLocalAddress();
if (localAddress == null) { if (localAddress == null) {

View File

@ -392,6 +392,7 @@ class NioProviderMetadata {
selector = Selector.open(); selector = Selector.open();
} }
@Override
public void run() { public void run() {
while (!done) { while (!done) {
synchronized (this) { synchronized (this) {

View File

@ -85,18 +85,22 @@ class NioServerSocketChannel extends AbstractServerChannel
fireChannelOpen(this); fireChannelOpen(this);
} }
@Override
public ServerSocketChannelConfig getConfig() { public ServerSocketChannelConfig getConfig() {
return config; return config;
} }
@Override
public InetSocketAddress getLocalAddress() { public InetSocketAddress getLocalAddress() {
return (InetSocketAddress) socket.socket().getLocalSocketAddress(); return (InetSocketAddress) socket.socket().getLocalSocketAddress();
} }
@Override
public InetSocketAddress getRemoteAddress() { public InetSocketAddress getRemoteAddress() {
return null; return null;
} }
@Override
public boolean isBound() { public boolean isBound() {
return isOpen() && socket.socket().isBound(); return isOpen() && socket.socket().isBound();
} }

View File

@ -138,10 +138,12 @@ public class NioServerSocketChannelFactory implements ServerSocketChannelFactory
sink = new NioServerSocketPipelineSink(workerExecutor, workerCount); sink = new NioServerSocketPipelineSink(workerExecutor, workerCount);
} }
@Override
public ServerSocketChannel newChannel(ChannelPipeline pipeline) { public ServerSocketChannel newChannel(ChannelPipeline pipeline) {
return new NioServerSocketChannel(this, pipeline, sink); return new NioServerSocketChannel(this, pipeline, sink);
} }
@Override
public void releaseExternalResources() { public void releaseExternalResources() {
ExecutorUtil.terminate(bossExecutor, workerExecutor); ExecutorUtil.terminate(bossExecutor, workerExecutor);
} }

View File

@ -67,6 +67,7 @@ class NioServerSocketPipelineSink extends AbstractChannelSink {
} }
} }
@Override
public void eventSunk( public void eventSunk(
ChannelPipeline pipeline, ChannelEvent e) throws Exception { ChannelPipeline pipeline, ChannelEvent e) throws Exception {
Channel channel = e.getChannel(); Channel channel = e.getChannel();
@ -230,6 +231,7 @@ class NioServerSocketPipelineSink extends AbstractChannelSink {
channel.selector = selector; channel.selector = selector;
} }
@Override
public void run() { public void run() {
final Thread currentThread = Thread.currentThread(); final Thread currentThread = Thread.currentThread();

View File

@ -84,10 +84,12 @@ class NioSocketChannel extends AbstractChannel
config = new DefaultNioSocketChannelConfig(socket.socket()); config = new DefaultNioSocketChannelConfig(socket.socket());
} }
@Override
public NioSocketChannelConfig getConfig() { public NioSocketChannelConfig getConfig() {
return config; return config;
} }
@Override
public InetSocketAddress getLocalAddress() { public InetSocketAddress getLocalAddress() {
InetSocketAddress localAddress = this.localAddress; InetSocketAddress localAddress = this.localAddress;
if (localAddress == null) { if (localAddress == null) {
@ -102,6 +104,7 @@ class NioSocketChannel extends AbstractChannel
return localAddress; return localAddress;
} }
@Override
public InetSocketAddress getRemoteAddress() { public InetSocketAddress getRemoteAddress() {
InetSocketAddress remoteAddress = this.remoteAddress; InetSocketAddress remoteAddress = this.remoteAddress;
if (remoteAddress == null) { if (remoteAddress == null) {
@ -121,10 +124,12 @@ class NioSocketChannel extends AbstractChannel
return state >= ST_OPEN; return state >= ST_OPEN;
} }
@Override
public boolean isBound() { public boolean isBound() {
return state >= ST_BOUND; return state >= ST_BOUND;
} }
@Override
public boolean isConnected() { public boolean isConnected() {
return state == ST_CONNECTED; return state == ST_CONNECTED;
} }
@ -263,6 +268,7 @@ class NioSocketChannel extends AbstractChannel
super(); super();
} }
@Override
public void run() { public void run() {
writeTaskInTaskQueue.set(false); writeTaskInTaskQueue.set(false);
worker.writeFromTaskLoop(NioSocketChannel.this); worker.writeFromTaskLoop(NioSocketChannel.this);

View File

@ -143,6 +143,7 @@ class NioWorker implements Runnable {
} }
} }
@Override
public void run() { public void run() {
thread = Thread.currentThread(); thread = Thread.currentThread();
@ -741,6 +742,7 @@ class NioWorker implements Runnable {
this.server = server; this.server = server;
} }
@Override
public void run() { public void run() {
SocketAddress localAddress = channel.getLocalAddress(); SocketAddress localAddress = channel.getLocalAddress();
SocketAddress remoteAddress = channel.getRemoteAddress(); SocketAddress remoteAddress = channel.getRemoteAddress();

View File

@ -186,26 +186,32 @@ final class SocketSendBufferPool {
initialPos = buffer.position(); initialPos = buffer.position();
} }
@Override
public final boolean finished() { public final boolean finished() {
return !buffer.hasRemaining(); return !buffer.hasRemaining();
} }
@Override
public final long writtenBytes() { public final long writtenBytes() {
return buffer.position() - initialPos; return buffer.position() - initialPos;
} }
@Override
public final long totalBytes() { public final long totalBytes() {
return buffer.limit() - initialPos; return buffer.limit() - initialPos;
} }
@Override
public final long transferTo(WritableByteChannel ch) throws IOException { public final long transferTo(WritableByteChannel ch) throws IOException {
return ch.write(buffer); return ch.write(buffer);
} }
@Override
public final long transferTo(DatagramChannel ch, SocketAddress raddr) throws IOException { public final long transferTo(DatagramChannel ch, SocketAddress raddr) throws IOException {
return ch.send(buffer, raddr); return ch.send(buffer, raddr);
} }
@Override
public void release() { public void release() {
// Unpooled. // Unpooled.
} }
@ -223,26 +229,32 @@ final class SocketSendBufferPool {
initialPos = buffer.position(); initialPos = buffer.position();
} }
@Override
public boolean finished() { public boolean finished() {
return !buffer.hasRemaining(); return !buffer.hasRemaining();
} }
@Override
public long writtenBytes() { public long writtenBytes() {
return buffer.position() - initialPos; return buffer.position() - initialPos;
} }
@Override
public long totalBytes() { public long totalBytes() {
return buffer.limit() - initialPos; return buffer.limit() - initialPos;
} }
@Override
public long transferTo(WritableByteChannel ch) throws IOException { public long transferTo(WritableByteChannel ch) throws IOException {
return ch.write(buffer); return ch.write(buffer);
} }
@Override
public long transferTo(DatagramChannel ch, SocketAddress raddr) throws IOException { public long transferTo(DatagramChannel ch, SocketAddress raddr) throws IOException {
return ch.send(buffer, raddr); return ch.send(buffer, raddr);
} }
@Override
public void release() { public void release() {
final Preallocation parent = this.parent; final Preallocation parent = this.parent;
if (-- parent.refCnt == 0) { if (-- parent.refCnt == 0) {
@ -264,29 +276,35 @@ final class SocketSendBufferPool {
this.file = file; this.file = file;
} }
@Override
public boolean finished() { public boolean finished() {
return writtenBytes >= file.getCount(); return writtenBytes >= file.getCount();
} }
@Override
public long writtenBytes() { public long writtenBytes() {
return writtenBytes; return writtenBytes;
} }
@Override
public long totalBytes() { public long totalBytes() {
return file.getCount(); return file.getCount();
} }
@Override
public long transferTo(WritableByteChannel ch) throws IOException { public long transferTo(WritableByteChannel ch) throws IOException {
long localWrittenBytes = file.transferTo(ch, writtenBytes); long localWrittenBytes = file.transferTo(ch, writtenBytes);
writtenBytes += localWrittenBytes; writtenBytes += localWrittenBytes;
return localWrittenBytes; return localWrittenBytes;
} }
@Override
public long transferTo(DatagramChannel ch, SocketAddress raddr) public long transferTo(DatagramChannel ch, SocketAddress raddr)
throws IOException { throws IOException {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void release() { public void release() {
// Unpooled. // Unpooled.
} }
@ -298,26 +316,32 @@ final class SocketSendBufferPool {
super(); super();
} }
@Override
public final boolean finished() { public final boolean finished() {
return true; return true;
} }
@Override
public final long writtenBytes() { public final long writtenBytes() {
return 0; return 0;
} }
@Override
public final long totalBytes() { public final long totalBytes() {
return 0; return 0;
} }
@Override
public final long transferTo(WritableByteChannel ch) throws IOException { public final long transferTo(WritableByteChannel ch) throws IOException {
return 0; return 0;
} }
@Override
public final long transferTo(DatagramChannel ch, SocketAddress raddr) throws IOException { public final long transferTo(DatagramChannel ch, SocketAddress raddr) throws IOException {
return 0; return 0;
} }
@Override
public void release() { public void release() {
// Unpooled. // Unpooled.
} }

View File

@ -95,10 +95,12 @@ public class OioClientSocketChannelFactory implements ClientSocketChannelFactory
sink = new OioClientSocketPipelineSink(workerExecutor); sink = new OioClientSocketPipelineSink(workerExecutor);
} }
@Override
public SocketChannel newChannel(ChannelPipeline pipeline) { public SocketChannel newChannel(ChannelPipeline pipeline) {
return new OioClientSocketChannel(this, pipeline, sink); return new OioClientSocketChannel(this, pipeline, sink);
} }
@Override
public void releaseExternalResources() { public void releaseExternalResources() {
ExecutorUtil.terminate(workerExecutor); ExecutorUtil.terminate(workerExecutor);
} }

View File

@ -52,6 +52,7 @@ class OioClientSocketPipelineSink extends AbstractChannelSink {
this.workerExecutor = workerExecutor; this.workerExecutor = workerExecutor;
} }
@Override
public void eventSunk( public void eventSunk(
ChannelPipeline pipeline, ChannelEvent e) throws Exception { ChannelPipeline pipeline, ChannelEvent e) throws Exception {
OioClientSocketChannel channel = (OioClientSocketChannel) e.getChannel(); OioClientSocketChannel channel = (OioClientSocketChannel) e.getChannel();

View File

@ -78,10 +78,12 @@ final class OioDatagramChannel extends AbstractChannel
fireChannelOpen(this); fireChannelOpen(this);
} }
@Override
public DatagramChannelConfig getConfig() { public DatagramChannelConfig getConfig() {
return config; return config;
} }
@Override
public InetSocketAddress getLocalAddress() { public InetSocketAddress getLocalAddress() {
InetSocketAddress localAddress = this.localAddress; InetSocketAddress localAddress = this.localAddress;
if (localAddress == null) { if (localAddress == null) {
@ -96,6 +98,7 @@ final class OioDatagramChannel extends AbstractChannel
return localAddress; return localAddress;
} }
@Override
public InetSocketAddress getRemoteAddress() { public InetSocketAddress getRemoteAddress() {
InetSocketAddress remoteAddress = this.remoteAddress; InetSocketAddress remoteAddress = this.remoteAddress;
if (remoteAddress == null) { if (remoteAddress == null) {
@ -110,10 +113,12 @@ final class OioDatagramChannel extends AbstractChannel
return remoteAddress; return remoteAddress;
} }
@Override
public boolean isBound() { public boolean isBound() {
return isOpen() && socket.isBound(); return isOpen() && socket.isBound();
} }
@Override
public boolean isConnected() { public boolean isConnected() {
return isOpen() && socket.isConnected(); return isOpen() && socket.isConnected();
} }
@ -137,6 +142,7 @@ final class OioDatagramChannel extends AbstractChannel
} }
} }
@Override
public void joinGroup(InetAddress multicastAddress) { public void joinGroup(InetAddress multicastAddress) {
ensureBound(); ensureBound();
try { try {
@ -146,6 +152,7 @@ final class OioDatagramChannel extends AbstractChannel
} }
} }
@Override
public void joinGroup( public void joinGroup(
InetSocketAddress multicastAddress, NetworkInterface networkInterface) { InetSocketAddress multicastAddress, NetworkInterface networkInterface) {
ensureBound(); ensureBound();
@ -164,6 +171,7 @@ final class OioDatagramChannel extends AbstractChannel
} }
} }
@Override
public void leaveGroup(InetAddress multicastAddress) { public void leaveGroup(InetAddress multicastAddress) {
try { try {
socket.leaveGroup(multicastAddress); socket.leaveGroup(multicastAddress);
@ -172,6 +180,7 @@ final class OioDatagramChannel extends AbstractChannel
} }
} }
@Override
public void leaveGroup( public void leaveGroup(
InetSocketAddress multicastAddress, NetworkInterface networkInterface) { InetSocketAddress multicastAddress, NetworkInterface networkInterface) {
try { try {

View File

@ -98,10 +98,12 @@ public class OioDatagramChannelFactory implements DatagramChannelFactory {
sink = new OioDatagramPipelineSink(id, workerExecutor); sink = new OioDatagramPipelineSink(id, workerExecutor);
} }
@Override
public DatagramChannel newChannel(ChannelPipeline pipeline) { public DatagramChannel newChannel(ChannelPipeline pipeline) {
return new OioDatagramChannel(this, pipeline, sink); return new OioDatagramChannel(this, pipeline, sink);
} }
@Override
public void releaseExternalResources() { public void releaseExternalResources() {
ExecutorUtil.terminate(workerExecutor); ExecutorUtil.terminate(workerExecutor);
} }

View File

@ -49,6 +49,7 @@ class OioDatagramPipelineSink extends AbstractChannelSink {
this.workerExecutor = workerExecutor; this.workerExecutor = workerExecutor;
} }
@Override
public void eventSunk( public void eventSunk(
ChannelPipeline pipeline, ChannelEvent e) throws Exception { ChannelPipeline pipeline, ChannelEvent e) throws Exception {
OioDatagramChannel channel = (OioDatagramChannel) e.getChannel(); OioDatagramChannel channel = (OioDatagramChannel) e.getChannel();

View File

@ -45,6 +45,7 @@ class OioDatagramWorker implements Runnable {
this.channel = channel; this.channel = channel;
} }
@Override
public void run() { public void run() {
channel.workerThread = Thread.currentThread(); channel.workerThread = Thread.currentThread();
final MulticastSocket socket = channel.socket; final MulticastSocket socket = channel.socket;

View File

@ -84,18 +84,22 @@ class OioServerSocketChannel extends AbstractServerChannel
fireChannelOpen(this); fireChannelOpen(this);
} }
@Override
public ServerSocketChannelConfig getConfig() { public ServerSocketChannelConfig getConfig() {
return config; return config;
} }
@Override
public InetSocketAddress getLocalAddress() { public InetSocketAddress getLocalAddress() {
return (InetSocketAddress) socket.getLocalSocketAddress(); return (InetSocketAddress) socket.getLocalSocketAddress();
} }
@Override
public InetSocketAddress getRemoteAddress() { public InetSocketAddress getRemoteAddress() {
return null; return null;
} }
@Override
public boolean isBound() { public boolean isBound() {
return isOpen() && socket.isBound(); return isOpen() && socket.isBound();
} }

Some files were not shown because too many files have changed in this diff Show More