Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,18 @@
*/
package io.vertx.db2client.impl;

import java.sql.RowId;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.OffsetDateTime;
import java.time.OffsetTime;
import java.time.temporal.Temporal;
import java.util.List;
import java.util.UUID;

import io.vertx.core.buffer.Buffer;
import io.vertx.db2client.impl.drda.DB2RowId;
import io.vertx.sqlclient.data.Numeric;
import io.vertx.sqlclient.impl.RowBase;
import io.vertx.sqlclient.internal.RowDesc;

import java.sql.RowId;
import java.time.*;
import java.time.temporal.Temporal;
import java.util.List;
import java.util.UUID;

public class DB2RowImpl extends RowBase {

private final RowDesc rowDesc;
Expand Down Expand Up @@ -161,16 +156,6 @@ public UUID[] getArrayOfUUIDs(String column) {
throw new UnsupportedOperationException();
}

private Byte getByte(int pos) {
Object val = getValue(pos);
if (val instanceof Byte) {
return (Byte) val;
} else if (val instanceof Number) {
return ((Number) val).byteValue();
}
return null;
}

private Duration getDuration(int pos) {
Object val = getValue(pos);
if (val instanceof Duration) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,16 +117,6 @@ public UUID[] getArrayOfUUIDs(String column) {
throw new UnsupportedOperationException();
}

private Byte getByte(int pos) {
Object val = getValue(pos);
if (val instanceof Byte) {
return (Byte) val;
} else if (val instanceof Number) {
return ((Number) val).byteValue();
}
return null;
}

private Object getEnum(Class enumType, int position) {
Object val = getValue(position);
if (val instanceof String) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,16 +157,6 @@ public Boolean getBoolean(int pos) {
return null;
}

private Byte getByte(int pos) {
Object val = getValue(pos);
if (val instanceof Byte) {
return (Byte) val;
} else if (val instanceof Number) {
return ((Number) val).byteValue();
}
return null;
}

private Duration getDuration(int pos) {
Object val = getValue(pos);
if (val instanceof Duration) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ public <T> T get(Class<T> type, int position) {
Class<?> componentType = type.getComponentType();
if (componentType == Boolean.class) {
return type.cast(getArrayOfBooleans(position));
} else if (componentType == Byte.class) {
return type.cast(getArrayOfBytes(position));
} else if (componentType == Short.class) {
return type.cast(getArrayOfShorts(position));
} else if (componentType == Integer.class) {
Expand Down Expand Up @@ -121,6 +123,8 @@ public <T> T get(Class<T> type, int position) {
} else {
if (type == Boolean.class) {
return type.cast(getBoolean(position));
} else if (type == Byte.class) {
return type.cast(getByte(position));
} else if (type == Short.class) {
return type.cast(getShort(position));
} else if (type == Integer.class) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,7 @@

import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
import io.vertx.tests.sqlclient.templates.wrappers.BooleanWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.DoubleWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.FloatWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.IntegerWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.JsonArrayWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.JsonObjectWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.LongWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.ShortWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.StringWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.*;

public class DataObjectMapper {

Expand All @@ -22,6 +14,14 @@ public static Boolean fromBoolean(BooleanWrapper v) {
return v.get();
}

public static ByteWrapper toByte(Byte v) {
return new ByteWrapper(v);
}

public static Byte fromByte(ByteWrapper v) {
return v.get();
}

public static ShortWrapper toShort(Short v) {
return new ShortWrapper(v);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,28 +25,11 @@
import io.vertx.sqlclient.RowSet;
import io.vertx.sqlclient.templates.SqlTemplate;
import io.vertx.sqlclient.templates.TupleMapper;
import io.vertx.tests.sqlclient.templates.wrappers.BooleanWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.DoubleWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.FloatWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.IntegerWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.JsonArrayWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.JsonObjectWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.LongWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.ShortWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.StringWrapper;
import io.vertx.tests.sqlclient.templates.wrappers.*;
import org.junit.Test;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.OffsetDateTime;
import java.time.OffsetTime;
import java.time.ZoneOffset;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.UUID;
import java.time.*;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;

Expand Down Expand Up @@ -76,10 +59,16 @@ public void testBoolean(TestContext ctx) {
testGet(ctx, "BOOLEAN[]", new Boolean[]{false, true}, Arrays.asList(false, true), "addedBooleans", TestDataObject::getAddedBooleans);
}

@Test
public void testByte(TestContext ctx) {
testNumber(ctx, "INT2", (byte) 4);
testNumberArray(ctx, "INT2[]", new Byte[]{1, 2, 3});
}

@Test
public void testShort(TestContext ctx) {
testNumber(ctx, "INT2", (short)4);
testNumberArray(ctx, "INT2[]", new Short[]{1,2,3});
testNumber(ctx, "INT2", (short) 4);
testNumberArray(ctx, "INT2[]", new Short[]{1, 2, 3});
}

@Test
Expand Down Expand Up @@ -107,11 +96,13 @@ public void testDouble(TestContext ctx) {
}

private void testNumber(TestContext ctx, String sqlType, Object value) {
testNumber(ctx, sqlType, value, (byte) 4, "primitiveByte", TestDataObject::getPrimitiveByte);
testNumber(ctx, sqlType, value, (short)4, "primitiveShort", TestDataObject::getPrimitiveShort);
testNumber(ctx, sqlType,value, 4, "primitiveInt", TestDataObject::getPrimitiveInt);
testNumber(ctx, sqlType,value, 4L, "primitiveLong", TestDataObject::getPrimitiveLong);
testNumber(ctx, sqlType,value, 4F, "primitiveFloat", TestDataObject::getPrimitiveFloat);
testNumber(ctx, sqlType,value, 4D, "primitiveDouble", TestDataObject::getPrimitiveDouble);
testNumber(ctx, sqlType, value, (byte) 4, "boxedByte", TestDataObject::getBoxedByte);
testNumber(ctx, sqlType, value, (short)4, "boxedShort", TestDataObject::getBoxedShort);
testNumber(ctx, sqlType,value, 4, "boxedInteger", TestDataObject::getBoxedInteger);
testNumber(ctx, sqlType,value, 4L, "boxedLong", TestDataObject::getBoxedLong);
Expand All @@ -120,16 +111,19 @@ private void testNumber(TestContext ctx, String sqlType, Object value) {
}

private void testNumberArray(TestContext ctx, String sqlType, Object value) {
testNumber(ctx, sqlType, value, Arrays.asList((byte) 1, (byte) 2, (byte) 3), "byteList", TestDataObject::getByteList);
testNumber(ctx, sqlType, value, Arrays.asList((short)1,(short)2,(short)3), "shortList", TestDataObject::getShortList);
testNumber(ctx, sqlType, value, Arrays.asList(1,2,3), "integerList", TestDataObject::getIntegerList);
testNumber(ctx, sqlType, value, Arrays.asList(1L,2L,3L), "longList", TestDataObject::getLongList);
testNumber(ctx, sqlType, value, Arrays.asList(1F,2F,3F), "floatList", TestDataObject::getFloatList);
testNumber(ctx, sqlType, value, Arrays.asList(1D,2D,3D), "doubleList", TestDataObject::getDoubleList);
testNumber(ctx, sqlType, value, new HashSet<>(Arrays.asList((byte) 1, (byte) 2, (byte) 3)), "byteSet", TestDataObject::getByteSet);
testNumber(ctx, sqlType, value, new HashSet<>(Arrays.asList((short)1,(short)2,(short)3)), "shortSet", TestDataObject::getShortSet);
testNumber(ctx, sqlType, value, new HashSet<>(Arrays.asList(1,2,3)), "integerSet", TestDataObject::getIntegerSet);
testNumber(ctx, sqlType, value, new HashSet<>(Arrays.asList(1L,2L,3L)), "longSet", TestDataObject::getLongSet);
testNumber(ctx, sqlType, value, new HashSet<>(Arrays.asList(1F,2F,3F)), "floatSet", TestDataObject::getFloatSet);
testNumber(ctx, sqlType, value, new HashSet<>(Arrays.asList(1D,2D,3D)), "doubleSet", TestDataObject::getDoubleSet);
testNumber(ctx, sqlType, value, Arrays.asList((byte) 1, (byte) 2, (byte) 3), "addedBytes", TestDataObject::getAddedBytes);
testNumber(ctx, sqlType, value, Arrays.asList((short)1,(short)2,(short)3), "addedShorts", TestDataObject::getAddedShorts);
testNumber(ctx, sqlType, value, Arrays.asList(1,2,3), "addedIntegers", TestDataObject::getAddedIntegers);
testNumber(ctx, sqlType, value, Arrays.asList(1L,2L,3L), "addedLongs", TestDataObject::getAddedLongs);
Expand Down Expand Up @@ -268,6 +262,18 @@ public void testBooleanMethodMappedDataObject(TestContext ctx) {
testGet(ctx, "JSON[]", new Object[] {true}, Collections.singletonList(new BooleanWrapper(true)), "addedBooleanMethodMappedDataObjects", TestDataObject::getAddedBooleanMethodMappedDataObjects);
}

@Test
public void testByteMethodMappedDataObject(TestContext ctx) {
testGet(ctx, "INT2", 4, new ByteWrapper((byte) 4), "byteMethodMappedDataObject", TestDataObject::getByteMethodMappedDataObject);
testGet(ctx, "INT2[]", new Byte[]{4}, Collections.singletonList(new ByteWrapper((byte) 4)), "byteMethodMappedDataObjectList", TestDataObject::getByteMethodMappedDataObjectList);
testGet(ctx, "INT2[]", new Byte[]{4}, Collections.singleton(new ByteWrapper((byte) 4)), "byteMethodMappedDataObjectSet", TestDataObject::getByteMethodMappedDataObjectSet);
testGet(ctx, "INT2[]", new Byte[]{4}, Collections.singletonList(new ByteWrapper((byte) 4)), "addedByteMethodMappedDataObjects", TestDataObject::getAddedByteMethodMappedDataObjects);
testGet(ctx, "JSON", 4, new ByteWrapper((byte) 4), "byteMethodMappedDataObject", TestDataObject::getByteMethodMappedDataObject);
testGet(ctx, "JSON[]", new Object[]{4}, Collections.singletonList(new ByteWrapper((byte) 4)), "byteMethodMappedDataObjectList", TestDataObject::getByteMethodMappedDataObjectList);
testGet(ctx, "JSON[]", new Object[]{4}, Collections.singleton(new ByteWrapper((byte) 4)), "byteMethodMappedDataObjectSet", TestDataObject::getByteMethodMappedDataObjectSet);
testGet(ctx, "JSON[]", new Object[]{4}, Collections.singletonList(new ByteWrapper((byte) 4)), "addedByteMethodMappedDataObjects", TestDataObject::getAddedByteMethodMappedDataObjects);
}

@Test
public void testShortMethodMappedDataObject(TestContext ctx) {
testGet(ctx, "INT2", 4, new ShortWrapper((short)4), "shortMethodMappedDataObject", TestDataObject::getShortMethodMappedDataObject);
Expand Down
Loading