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.net.Inet6Address; 007 008public class Inet6AddressValueHandler extends BaseValueHandler<Inet6Address> { 009 010 private static final byte IPv6 = 3; 011 private static final int MASK = 128; 012 private static final byte IS_CIDR = 0; 013 014 @Override 015 protected void internalHandle(DataOutputStream buffer, final Inet6Address value) throws Exception { 016 buffer.writeInt(20); 017 018 buffer.writeByte(IPv6); 019 buffer.writeByte(MASK); 020 buffer.writeByte(IS_CIDR); 021 022 byte[] inet6AddressBytes = value.getAddress(); 023 buffer.writeByte(inet6AddressBytes.length); 024 buffer.write(inet6AddressBytes); 025 } 026 027 @Override 028 public int getLength(Inet6Address value) { 029 return 20; 030 } 031}