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