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}