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 de.bytefish.pgbulkinsert.pgsql.converter.IValueConverter;
006import de.bytefish.pgbulkinsert.pgsql.converter.LocalDateTimeConverter;
007
008import java.io.DataOutputStream;
009import java.time.LocalDateTime;
010
011public class LocalDateTimeValueHandler extends BaseValueHandler<LocalDateTime> {
012
013    private IValueConverter<LocalDateTime, Long> dateTimeConverter;
014
015    public LocalDateTimeValueHandler() {
016        this(new LocalDateTimeConverter());
017    }
018
019    public LocalDateTimeValueHandler(IValueConverter<LocalDateTime, Long> dateTimeConverter) {
020
021        this.dateTimeConverter = dateTimeConverter;
022    }
023
024    @Override
025    protected void internalHandle(DataOutputStream buffer, final LocalDateTime value) throws Exception {
026        buffer.writeInt(8);
027        buffer.writeLong(dateTimeConverter.convert(value));
028    }
029
030    @Override
031    public int getLength(LocalDateTime value) {
032        return 8;
033    }
034}