Пример #1
0
 @Override
 Object createArray(int length, Bits bits, int requiredBits) {
   if (length == 0) {
     return EMPTY_DOUBLE_ARRAY;
   }
   final double[] result = new double[length];
   for (int i = 0; i < length; i++) {
     result[i] = Double.longBitsToDouble(bits.getLong(requiredBits));
   }
   return result;
 }
 private void assertBitPackedArrayGetsCorrectlySerializedAndDeserialized(
     Object array, PropertyType type, int expectedBitsUsedPerItem, int expectedRecordCount) {
   Collection<DynamicRecord> records = storeArray(array);
   Pair<byte[], byte[]> asBytes = loadArray(records);
   assertArrayHeader(asBytes.first(), type, expectedBitsUsedPerItem);
   Bits bits = Bits.bitsFromBytes(asBytes.other());
   int length = Array.getLength(array);
   for (int i = 0; i < length; i++)
     assertEquals(
         ((Number) Array.get(array, i)).longValue(), bits.getLong(expectedBitsUsedPerItem));
 }
Пример #3
0
 @Override
 Object createArray(int length, Bits bits, int requiredBits) {
   if (length == 0) {
     return EMPTY_LONG_ARRAY;
   }
   final long[] result = new long[length];
   for (int i = 0; i < length; i++) {
     result[i] = bits.getLong(requiredBits);
   }
   return result;
 }
Пример #4
0
 public static long versionStringToLong(String storeVersion) {
   if (CommonAbstractStore.UNKNOWN_VERSION.equals(storeVersion)) {
     return -1;
   }
   Bits bits = Bits.bits(8);
   int length = storeVersion.length();
   if (length == 0 || length > 7) {
     throw new IllegalArgumentException(
         String.format(
             "The given string %s is not of proper size for a store version string",
             storeVersion));
   }
   bits.put(length, 8);
   for (int i = 0; i < length; i++) {
     char c = storeVersion.charAt(i);
     if (c < 0 || c >= 256)
       throw new IllegalArgumentException(
           String.format(
               "Store version strings should be encode-able as Latin1 - %s is not", storeVersion));
     bits.put(c, 8); // Just the lower byte
   }
   return bits.getLong();
 }