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}