Resolved issue: NETTY-298 Make ChannelBuffer setter/writer methods to accept int for narrower types

This commit is contained in:
Trustin Lee 2010-03-03 05:35:01 +00:00
parent a3bae359bd
commit 5558f02003
13 changed files with 47 additions and 44 deletions

View File

@ -171,8 +171,8 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
dst.writerIndex(dst.writerIndex() + length); dst.writerIndex(dst.writerIndex() + length);
} }
public void setChar(int index, char value) { public void setChar(int index, int value) {
setShort(index, (short) value); setShort(index, value);
} }
public void setFloat(int index, float value) { public void setFloat(int index, float value) {
@ -398,11 +398,11 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
return newReaderIndex - oldReaderIndex; return newReaderIndex - oldReaderIndex;
} }
public void writeByte(byte value) { public void writeByte(int value) {
setByte(writerIndex ++, value); setByte(writerIndex ++, value);
} }
public void writeShort(short value) { public void writeShort(int value) {
setShort(writerIndex, value); setShort(writerIndex, value);
writerIndex += 2; writerIndex += 2;
} }
@ -422,8 +422,8 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
writerIndex += 8; writerIndex += 8;
} }
public void writeChar(char value) { public void writeChar(int value) {
writeShort((short) value); writeShort(value);
} }
public void writeFloat(float value) { public void writeFloat(float value) {

View File

@ -88,7 +88,7 @@ public class BigEndianHeapChannelBuffer extends HeapChannelBuffer {
((long) array[index+7] & 0xff) << 0; ((long) array[index+7] & 0xff) << 0;
} }
public void setShort(int index, short 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);
} }

View File

@ -151,12 +151,12 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
dst.put(data); dst.put(data);
} }
public void setByte(int index, byte value) { public void setByte(int index, int value) {
buffer.put(index, value); buffer.put(index, (byte) value);
} }
public void setShort(int index, short value) { public void setShort(int index, int value) {
buffer.putShort(index, value); buffer.putShort(index, (short) value);
} }
public void setMedium(int index, int value) { public void setMedium(int index, int value) {

View File

@ -718,7 +718,7 @@ public interface ChannelBuffer extends Comparable<ChannelBuffer> {
/** /**
* Sets the specified byte at the specified absolute {@code index} in this * Sets the specified byte at the specified absolute {@code index} in this
* buffer. * buffer. The 24 high-order bits of the specified value are ignored.
* This method does not modify {@code readerIndex} or {@code writerIndex} of * This method does not modify {@code readerIndex} or {@code writerIndex} of
* this buffer. * this buffer.
* *
@ -726,11 +726,12 @@ public interface ChannelBuffer extends Comparable<ChannelBuffer> {
* if the specified {@code index} is less than {@code 0} or * if the specified {@code index} is less than {@code 0} or
* {@code index + 1} is greater than {@code this.capacity} * {@code index + 1} is greater than {@code this.capacity}
*/ */
void setByte(int index, byte value); void setByte(int index, int value);
/** /**
* Sets the specified 16-bit short integer at the specified absolute * Sets the specified 16-bit short integer at the specified absolute
* {@code index} in this buffer. * {@code index} in this buffer. The 16 high-order bits of the specified
* value are ignored.
* This method does not modify {@code readerIndex} or {@code writerIndex} of * This method does not modify {@code readerIndex} or {@code writerIndex} of
* this buffer. * this buffer.
* *
@ -738,7 +739,7 @@ public interface ChannelBuffer extends Comparable<ChannelBuffer> {
* if the specified {@code index} is less than {@code 0} or * if the specified {@code index} is less than {@code 0} or
* {@code index + 2} is greater than {@code this.capacity} * {@code index + 2} is greater than {@code this.capacity}
*/ */
void setShort(int index, short value); void setShort(int index, int value);
/** /**
* Sets the specified 24-bit medium integer at the specified absolute * Sets the specified 24-bit medium integer at the specified absolute
@ -780,6 +781,7 @@ public interface ChannelBuffer extends Comparable<ChannelBuffer> {
/** /**
* Sets the specified 2-byte UTF-16 character at the specified absolute * Sets the specified 2-byte UTF-16 character at the specified absolute
* {@code index} in this buffer. * {@code index} in this buffer.
* The 16 high-order bits of the specified value are ignored.
* This method does not modify {@code readerIndex} or {@code writerIndex} of * This method does not modify {@code readerIndex} or {@code writerIndex} of
* this buffer. * this buffer.
* *
@ -787,7 +789,7 @@ public interface ChannelBuffer extends Comparable<ChannelBuffer> {
* if the specified {@code index} is less than {@code 0} or * if the specified {@code index} is less than {@code 0} or
* {@code index + 2} is greater than {@code this.capacity} * {@code index + 2} is greater than {@code this.capacity}
*/ */
void setChar(int index, char value); void setChar(int index, int value);
/** /**
* Sets the specified 32-bit floating-point number at the specified * Sets the specified 32-bit floating-point number at the specified
@ -1244,21 +1246,22 @@ public interface ChannelBuffer extends Comparable<ChannelBuffer> {
/** /**
* Sets the specified byte at the current {@code writerIndex} * Sets the specified byte at the current {@code writerIndex}
* and increases the {@code writerIndex} by {@code 1} in this buffer. * and increases the {@code writerIndex} by {@code 1} in this buffer.
* The 24 high-order bits of the specified value are ignored.
* *
* @throws IndexOutOfBoundsException * @throws IndexOutOfBoundsException
* if {@code this.writableBytes} is less than {@code 1} * if {@code this.writableBytes} is less than {@code 1}
*/ */
void writeByte(byte value); void writeByte(int value);
/** /**
* Sets the specified 16-bit short integer at the current * Sets the specified 16-bit short integer at the current
* {@code writerIndex} and increases the {@code writerIndex} by {@code 2} * {@code writerIndex} and increases the {@code writerIndex} by {@code 2}
* in this buffer. * in this buffer. The 16 high-order bits of the specified value are ignored.
* *
* @throws IndexOutOfBoundsException * @throws IndexOutOfBoundsException
* if {@code this.writableBytes} is less than {@code 2} * if {@code this.writableBytes} is less than {@code 2}
*/ */
void writeShort(short value); void writeShort(int value);
/** /**
* Sets the specified 24-bit medium integer at the current * Sets the specified 24-bit medium integer at the current
@ -1292,12 +1295,12 @@ public interface ChannelBuffer extends Comparable<ChannelBuffer> {
/** /**
* Sets the specified 2-byte UTF-16 character at the current * Sets the specified 2-byte UTF-16 character at the current
* {@code writerIndex} and increases the {@code writerIndex} by {@code 2} * {@code writerIndex} and increases the {@code writerIndex} by {@code 2}
* in this buffer. * in this buffer. The 16 high-order bits of the specified value are ignored.
* *
* @throws IndexOutOfBoundsException * @throws IndexOutOfBoundsException
* if {@code this.writableBytes} is less than {@code 2} * if {@code this.writableBytes} is less than {@code 2}
*/ */
void writeChar(char value); void writeChar(int value);
/** /**
* Sets the specified 32-bit floating point number at the current * Sets the specified 32-bit floating point number at the current

View File

@ -307,12 +307,12 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer {
} }
} }
public void setByte(int index, byte 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);
} }
public void setShort(int index, short 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]) {
components[componentId].setShort(index - indices[componentId], value); components[componentId].setShort(index - indices[componentId], value);

View File

@ -128,11 +128,11 @@ public class DuplicatedChannelBuffer extends AbstractChannelBuffer implements Wr
buffer.getBytes(index, dst); buffer.getBytes(index, dst);
} }
public void setByte(int index, byte value) { public void setByte(int index, int value) {
buffer.setByte(index, value); buffer.setByte(index, value);
} }
public void setShort(int index, short value) { public void setShort(int index, int value) {
buffer.setShort(index, value); buffer.setShort(index, value);
} }

View File

@ -156,11 +156,11 @@ public class DynamicChannelBuffer extends AbstractChannelBuffer {
buffer.getBytes(index, out, length); buffer.getBytes(index, out, length);
} }
public void setByte(int index, byte value) { public void setByte(int index, int value) {
buffer.setByte(index, value); buffer.setByte(index, value);
} }
public void setShort(int index, short value) { public void setShort(int index, int value) {
buffer.setShort(index, value); buffer.setShort(index, value);
} }
@ -199,13 +199,13 @@ public class DynamicChannelBuffer extends AbstractChannelBuffer {
} }
@Override @Override
public void writeByte(byte value) { public void writeByte(int value) {
ensureWritableBytes(1); ensureWritableBytes(1);
super.writeByte(value); super.writeByte(value);
} }
@Override @Override
public void writeShort(short value) { public void writeShort(int value) {
ensureWritableBytes(2); ensureWritableBytes(2);
super.writeShort(value); super.writeShort(value);
} }

View File

@ -121,8 +121,8 @@ public abstract class HeapChannelBuffer extends AbstractChannelBuffer {
return out.write(ByteBuffer.wrap(array, index, length)); return out.write(ByteBuffer.wrap(array, index, length));
} }
public void setByte(int index, byte value) { public void setByte(int index, int value) {
array[index] = value; array[index] = (byte) value;
} }
public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) { public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {

View File

@ -88,7 +88,7 @@ public class LittleEndianHeapChannelBuffer extends HeapChannelBuffer {
((long) array[index+7] & 0xff) << 56; ((long) array[index+7] & 0xff) << 56;
} }
public void setShort(int index, short 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);
} }

View File

@ -85,7 +85,7 @@ public class ReadOnlyChannelBuffer extends AbstractChannelBuffer implements Wrap
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
public void setByte(int index, byte value) { public void setByte(int index, int value) {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
@ -101,7 +101,7 @@ public class ReadOnlyChannelBuffer extends AbstractChannelBuffer implements Wrap
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }
public void setShort(int index, short value) { public void setShort(int index, int value) {
throw new ReadOnlyBufferException(); throw new ReadOnlyBufferException();
} }

View File

@ -148,12 +148,12 @@ public class SlicedChannelBuffer extends AbstractChannelBuffer implements Wrappe
buffer.getBytes(index + adjustment, dst); buffer.getBytes(index + adjustment, dst);
} }
public void setByte(int index, byte value) { public void setByte(int index, int value) {
checkIndex(index); checkIndex(index);
buffer.setByte(index + adjustment, value); buffer.setByte(index + adjustment, value);
} }
public void setShort(int index, short value) { public void setShort(int index, int value) {
checkIndex(index, 2); checkIndex(index, 2);
buffer.setShort(index + adjustment, value); buffer.setShort(index + adjustment, value);
} }

View File

@ -142,12 +142,12 @@ public class TruncatedChannelBuffer extends AbstractChannelBuffer implements Wra
buffer.getBytes(index, dst); buffer.getBytes(index, dst);
} }
public void setByte(int index, byte value) { public void setByte(int index, int value) {
checkIndex(index); checkIndex(index);
buffer.setByte(index, value); buffer.setByte(index, value);
} }
public void setShort(int index, short value) { public void setShort(int index, int value) {
checkIndex(index, 2); checkIndex(index, 2);
buffer.setShort(index, value); buffer.setShort(index, value);
} }

View File

@ -445,7 +445,7 @@ class ReplayingDecoderBuffer implements ChannelBuffer {
throw new UnreplayableOperationException(); throw new UnreplayableOperationException();
} }
public void setByte(int index, byte value) { public void setByte(int index, int value) {
throw new UnreplayableOperationException(); throw new UnreplayableOperationException();
} }
@ -503,11 +503,11 @@ class ReplayingDecoderBuffer implements ChannelBuffer {
throw new UnreplayableOperationException(); throw new UnreplayableOperationException();
} }
public void setShort(int index, short value) { public void setShort(int index, int value) {
throw new UnreplayableOperationException(); throw new UnreplayableOperationException();
} }
public void setChar(int index, char value) { public void setChar(int index, int value) {
throw new UnreplayableOperationException(); throw new UnreplayableOperationException();
} }
@ -613,7 +613,7 @@ class ReplayingDecoderBuffer implements ChannelBuffer {
return 0; return 0;
} }
public void writeByte(byte value) { public void writeByte(int value) {
throw new UnreplayableOperationException(); throw new UnreplayableOperationException();
} }
@ -674,11 +674,11 @@ class ReplayingDecoderBuffer implements ChannelBuffer {
throw new UnreplayableOperationException(); throw new UnreplayableOperationException();
} }
public void writeShort(short value) { public void writeShort(int value) {
throw new UnreplayableOperationException(); throw new UnreplayableOperationException();
} }
public void writeChar(char value) { public void writeChar(int value) {
throw new UnreplayableOperationException(); throw new UnreplayableOperationException();
} }