Пример #1
0
 /*
  * It is assumed that the argument does hold a property block - all zeros is
  * a valid (not in use) block, so even if the Bits object has been exhausted a
  * result is returned, that has inUse() return false. Also, the argument is not
  * touched.
  */
 private PropertyBlock getPropertyBlock(Buffer buffer) {
   long header = buffer.getLong();
   PropertyType type = PropertyType.getPropertyType(header, true);
   if (type == null) {
     return null;
   }
   PropertyBlock toReturn = new PropertyBlock();
   // toReturn.setInUse( true );
   int numBlocks = type.calculateNumberOfBlocksUsed(header);
   long[] blockData = new long[numBlocks];
   blockData[0] = header; // we already have that
   for (int i = 1; i < numBlocks; i++) {
     blockData[i] = buffer.getLong();
   }
   toReturn.setValueBlocks(blockData);
   return toReturn;
 }