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