Since I ended up naming the little protected helper method "toIntFlag",

let's have it go ahead and return a flag rather than the bit position.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2752 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
ray.j.greenwell
2010-03-02 05:38:35 +00:00
parent b4c8b3fda8
commit 8a371eebf9
@@ -52,7 +52,7 @@ public class ByteEnumUtil
{ {
int flags = 0; int flags = 0;
for (E value : set) { for (E value : set) {
flags |= (1 << toIntFlag(value)); flags |= toIntFlag(value);
} }
return flags; return flags;
} }
@@ -64,7 +64,7 @@ public class ByteEnumUtil
{ {
EnumSet<E> set = EnumSet.noneOf(eclass); EnumSet<E> set = EnumSet.noneOf(eclass);
for (E value : eclass.getEnumConstants()) { for (E value : eclass.getEnumConstants()) {
if ((flags & (1 << toIntFlag(value))) != 0) { if ((flags & toIntFlag(value)) != 0) {
set.add(value); set.add(value);
} }
} }
@@ -75,7 +75,7 @@ public class ByteEnumUtil
* A helper function for setToInt() and intToSet() that validates that the specified * A helper function for setToInt() and intToSet() that validates that the specified
* ByteEnum value is not null and has a code between 0 and 31, inclusive. * ByteEnum value is not null and has a code between 0 and 31, inclusive.
*/ */
protected static <E extends Enum<E> & ByteEnum> byte toIntFlag (E value) protected static <E extends Enum<E> & ByteEnum> int toIntFlag (E value)
{ {
byte code = value.toByte(); // allow this to throw NPE byte code = value.toByte(); // allow this to throw NPE
if (code < 0 || code > 31) { if (code < 0 || code > 31) {
@@ -83,7 +83,7 @@ public class ByteEnumUtil
"ByteEnum code is outside the range that can be turned into an int " + "ByteEnum code is outside the range that can be turned into an int " +
"[value=" + value + ", code=" + code + "]"); "[value=" + value + ", code=" + code + "]");
} }
return code; return (1 << code);
} }
// TODO: setToByteArray() and byteArrayToSet(), for larger ByteEnums? // TODO: setToByteArray() and byteArrayToSet(), for larger ByteEnums?