public void write(@Nullable T objectToWrite) throws IOException { if (objectsSorted && prevObject != null && strategy.compare(prevObject, objectToWrite) >= 0) { objectsSorted = false; } ++numWritten; // for compatibility with the format (see GenericIndexed javadoc for description of the format), // this field is used to store nullness marker, but in a better format this info can take 1 bit. valuesOut.writeInt(objectToWrite == null ? GenericIndexed.NULL_VALUE_SIZE_MARKER : 0); if (objectToWrite != null) { strategy.writeTo(objectToWrite, valuesOut); } if (!requireMultipleFiles) { headerOut.writeInt(Ints.checkedCast(valuesOut.size())); } else { headerOutLong.add(valuesOut.size()); } if (!requireMultipleFiles && getSerializedSize() > fileSizeLimit) { requireMultipleFiles = true; initializeHeaderOutLong(); } if (objectsSorted) { prevObject = objectToWrite; } }
public void write(@Nullable T objectToWrite) throws IOException { if (objectsSorted && prevObject != null && strategy.compare(prevObject, objectToWrite) >= 0) { objectsSorted = false; } ++numWritten; // for compatibility with the format (see GenericIndexed javadoc for description of the format), // this field is used to store nullness marker, but in a better format this info can take 1 bit. valuesOut.writeInt(objectToWrite == null ? GenericIndexed.NULL_VALUE_SIZE_MARKER : 0); if (objectToWrite != null) { strategy.writeTo(objectToWrite, valuesOut); } if (!requireMultipleFiles) { headerOut.writeInt(Ints.checkedCast(valuesOut.size())); } else { headerOutLong.add(valuesOut.size()); } if (!requireMultipleFiles && getSerializedSize() > fileSizeLimit) { requireMultipleFiles = true; initializeHeaderOutLong(); } if (objectsSorted) { prevObject = objectToWrite; } }