Author: mheath
Date: Thu Feb 21 14:08:09 2008
New Revision: 630021

URL: http://svn.apache.org/viewvc?rev=630021&view=rev
Log:
Modified enum getters and setters to use unsigned byte and unsigned short (so 
we can have enum with an ordinal value > 127 for bytes and ordinals > 32767 for 
shorts.)

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoBuffer.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoBuffer.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoBuffer.java?rev=630021&r1=630020&r2=630021&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoBuffer.java 
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoBuffer.java 
Thu Feb 21 14:08:09 2008
@@ -1800,22 +1800,22 @@
 
     @Override
     public <E extends Enum<E>> E getEnum(Class<E> enumClass) {
-        return toEnum(enumClass, get());
+        return toEnum(enumClass, getUnsigned());
     }
 
     @Override
     public <E extends Enum<E>> E getEnum(int index, Class<E> enumClass) {
-        return toEnum(enumClass, get(index));
+        return toEnum(enumClass, getUnsigned(index));
     }
 
     @Override
     public <E extends Enum<E>> E getEnumShort(Class<E> enumClass) {
-        return toEnum(enumClass, getShort());
+        return toEnum(enumClass, getUnsignedShort() & 0xffff);
     }
 
     @Override
     public <E extends Enum<E>> E getEnumShort(int index, Class<E> enumClass) {
-        return toEnum(enumClass, getShort(index));
+        return toEnum(enumClass, getUnsignedShort(index) & 0xffff);
     }
 
     @Override
@@ -1823,14 +1823,13 @@
         return toEnum(enumClass, getInt());
     }
 
-    @Override
     public <E extends Enum<E>> E getEnumInt(int index, Class<E> enumClass) {
         return toEnum(enumClass, getInt(index));
     }
 
     @Override
     public IoBuffer putEnum(Enum<?> e) {
-        if (e.ordinal() > Byte.MAX_VALUE) {
+        if (e.ordinal() > BYTE_MASK) {
             throw new IllegalArgumentException(enumConversionErrorMessage(e,
                     "byte"));
         }
@@ -1839,7 +1838,7 @@
 
     @Override
     public IoBuffer putEnum(int index, Enum<?> e) {
-        if (e.ordinal() > Byte.MAX_VALUE) {
+        if (e.ordinal() > BYTE_MASK) {
             throw new IllegalArgumentException(enumConversionErrorMessage(e,
                     "byte"));
         }
@@ -1848,7 +1847,7 @@
 
     @Override
     public IoBuffer putEnumShort(Enum<?> e) {
-        if (e.ordinal() > Short.MAX_VALUE) {
+        if (e.ordinal() > SHORT_MASK) {
             throw new IllegalArgumentException(enumConversionErrorMessage(e,
                     "short"));
         }
@@ -1857,7 +1856,7 @@
 
     @Override
     public IoBuffer putEnumShort(int index, Enum<?> e) {
-        if (e.ordinal() > Short.MAX_VALUE) {
+        if (e.ordinal() > SHORT_MASK) {
             throw new IllegalArgumentException(enumConversionErrorMessage(e,
                     "short"));
         }


Reply via email to