/** * Stores the provided {@code value} to the provided byte {@code buffer} at the specified {@code * index} using the provided {@code wordSize} in bytes. Note that only integer and short sizes are * supported. * * @param buffer the byte buffer to which the value is stored * @param wordSize the number of bytes used to store the provided value * @param index the index to which the value is stored * @param value the value that is stored assuming it does not require more than the specified * number of bytes. */ private static void storeWordInBuffer(ByteBuffer buffer, int wordSize, int index, int value) { int wordIndex = index * wordSize; if (wordSize == SHORT_NUM_BYTES) { buffer.putShort(wordIndex, (short) value); } else { buffer.putInt(wordIndex, value); } }
/** * Stores a value which is read from the provided {@code objectInput} to the provided byte {@code * buffer} at the specified {@code index}. * * @param objectInput the object input stream from which the value is read * @param wordSize the number of bytes used to store the value read from the stream * @param outputBuffer the byte buffer to which the value is stored * @param index the index where the value is stored in the buffer * @throws IOException if an error occurred reading from the object input stream */ private static void readExternalWord(ObjectInput objectInput, int wordSize, ByteBuffer outputBuffer, int index) { int wordIndex = index * wordSize; if (wordSize == SHORT_NUM_BYTES) { outputBuffer.putShort(wordIndex, objectInput.readShort()); } else { outputBuffer.putInt(wordIndex, objectInput.readInt()); } }