예제 #1
0
 protected short[] readFlags(IDataInput input) {
   boolean hasNextFlag = true;
   short[] flagsArray = new short[2];
   int i = 0;
   while (hasNextFlag) {
     short flags = (short) input.readUnsignedByte();
     log.debug("Unsigned byte: {}", flags);
     if (i == flagsArray.length) {
       short[] tempArray = new short[i * 2];
       System.arraycopy(flagsArray, 0, tempArray, 0, flagsArray.length);
       flagsArray = tempArray;
     }
     flagsArray[i] = flags;
     if ((flags & 0x80) != 0) {
       hasNextFlag = true;
     } else {
       hasNextFlag = false;
     }
     ++i;
   }
   log.debug("Flag count: {}", flagsArray.length);
   return flagsArray;
 }