22
33package de .bytefish .pgbulkinsert .mapping ;
44
5+ import de .bytefish .pgbulkinsert .function .ToBooleanFunction ;
6+ import de .bytefish .pgbulkinsert .function .ToFloatFunction ;
57import de .bytefish .pgbulkinsert .model .ColumnDefinition ;
68import de .bytefish .pgbulkinsert .model .TableDefinition ;
79import de .bytefish .pgbulkinsert .pgsql .PgBinaryWriter ;
2022import java .time .LocalTime ;
2123import java .time .ZonedDateTime ;
2224import java .util .*;
23- import java .util .function .BiConsumer ;
24- import java .util .function .Function ;
25- import java .util .function .ToDoubleFunction ;
26- import java .util .function .ToIntFunction ;
25+ import java .util .function .*;
2726import java .util .stream .Collectors ;
2827
2928public abstract class AbstractMapping <TEntity > {
@@ -81,11 +80,17 @@ protected void mapBoolean(String columnName, Function<TEntity, Boolean> property
8180 map (columnName , DataType .Boolean , propertyGetter );
8281 }
8382
83+ protected void mapBooleanPrimitive (String columnName , ToBooleanFunction <TEntity > propertyGetter ) {
84+ addColumn (columnName , (binaryWriter , entity ) -> {
85+ binaryWriter .writeBoolean (propertyGetter .applyAsBoolean (entity ));
86+ });
87+ }
88+
8489 protected void mapByte (String columnName , Function <TEntity , Number > propertyGetter ) {
8590 map (columnName , DataType .Char , propertyGetter );
8691 }
8792
88- protected void mapByte (String columnName , ToIntFunction <TEntity > propertyGetter ) {
93+ protected void mapBytePrimitive (String columnName , ToIntFunction <TEntity > propertyGetter ) {
8994 addColumn (columnName , (binaryWriter , entity ) -> {
9095 binaryWriter .writeByte (propertyGetter .applyAsInt (entity ));
9196 });
@@ -95,7 +100,7 @@ protected void mapShort(String columnName, Function<TEntity, Number> propertyGet
95100 map (columnName , DataType .Int2 , propertyGetter );
96101 }
97102
98- protected void mapShort (String columnName , ToIntFunction <TEntity > propertyGetter ) {
103+ protected void mapShortPrimitive (String columnName , ToIntFunction <TEntity > propertyGetter ) {
99104 addColumn (columnName , (binaryWriter , entity ) -> {
100105 binaryWriter .writeShort (propertyGetter .applyAsInt (entity ));
101106 });
@@ -105,7 +110,7 @@ protected void mapInteger(String columnName, Function<TEntity, Number> propertyG
105110 map (columnName , DataType .Int4 , propertyGetter );
106111 }
107112
108- protected void mapInteger (String columnName , ToIntFunction <TEntity > propertyGetter ) {
113+ protected void mapIntegerPrimitive (String columnName , ToIntFunction <TEntity > propertyGetter ) {
109114 addColumn (columnName , (binaryWriter , entity ) -> {
110115 binaryWriter .writeInt (propertyGetter .applyAsInt (entity ));
111116 });
@@ -119,15 +124,27 @@ protected void mapLong(String columnName, Function<TEntity, Number> propertyGett
119124 map (columnName , DataType .Int8 , propertyGetter );
120125 }
121126
127+ protected void mapLongPrimitive (String columnName , ToLongFunction <TEntity > propertyGetter ) {
128+ addColumn (columnName , (binaryWriter , entity ) -> {
129+ binaryWriter .writeLong (propertyGetter .applyAsLong (entity ));
130+ });
131+ }
132+
122133 protected void mapFloat (String columnName , Function <TEntity , Number > propertyGetter ) {
123134 map (columnName , DataType .SinglePrecision , propertyGetter );
124135 }
125136
137+ protected void mapFloatPrimitive (String columnName , ToFloatFunction <TEntity > propertyGetter ) {
138+ addColumn (columnName , (binaryWriter , entity ) -> {
139+ binaryWriter .writeFloat (propertyGetter .applyAsFloat (entity ));
140+ });
141+ }
142+
126143 protected void mapDouble (String columnName , Function <TEntity , Number > propertyGetter ) {
127144 map (columnName , DataType .DoublePrecision , propertyGetter );
128145 }
129146
130- protected void mapDouble (String columnName , ToDoubleFunction <TEntity > propertyGetter ) {
147+ protected void mapDoublePrimitive (String columnName , ToDoubleFunction <TEntity > propertyGetter ) {
131148 addColumn (columnName , (binaryWriter , entity ) -> {
132149 binaryWriter .writeDouble (propertyGetter .applyAsDouble (entity ));
133150 });
0 commit comments