001// Licensed under the MIT license. See LICENSE file in the project root for full license information. 002 003package de.bytefish.pgbulkinsert.pgsql.handlers; 004 005import java.io.DataOutputStream; 006import java.nio.ByteBuffer; 007import java.util.Arrays; 008import java.util.UUID; 009 010public class UUIDValueHandler extends BaseValueHandler<UUID> { 011 012 @Override 013 protected void internalHandle(DataOutputStream buffer, final UUID value) throws Exception { 014 buffer.writeInt(16); 015 016 ByteBuffer bb = ByteBuffer.wrap(new byte[16]); 017 bb.putLong(value.getMostSignificantBits()); 018 bb.putLong(value.getLeastSignificantBits()); 019 020 buffer.writeInt(bb.getInt(0)); 021 buffer.writeShort(bb.getShort(4)); 022 buffer.writeShort(bb.getShort(6)); 023 024 buffer.write(Arrays.copyOfRange(bb.array(), 8, 16)); 025 } 026 027 @Override 028 public int getLength(UUID value) { 029 return 16; 030 } 031}