public static byte[] encodeUuidToBinary(final UUID uuid, final UuidRepresentation uuidRepresentation) { byte[] binaryData = new byte[16]; writeLongToArrayBigEndian(binaryData, 0, uuid.getMostSignificantBits()); writeLongToArrayBigEndian(binaryData, 8, uuid.getLeastSignificantBits()); switch(uuidRepresentation) { case C_SHARP_LEGACY: reverseByteArray(binaryData, 0, 4); reverseByteArray(binaryData, 4, 2); reverseByteArray(binaryData, 6, 2); break; case JAVA_LEGACY: reverseByteArray(binaryData, 0, 8); reverseByteArray(binaryData, 8, 8); break; case PYTHON_LEGACY: case STANDARD: break; default: throw new BSONException("Unexpected UUID representation"); } return binaryData; }