use of java.time.LocalDateTime in project jOOQ by jOOQ.
the class DefaultBinding method get.
@SuppressWarnings("unchecked")
@Override
public void get(BindingGetResultSetContext<U> ctx) throws SQLException {
T result = null;
if (type == Blob.class) {
result = (T) ctx.resultSet().getBlob(ctx.index());
} else if (type == Boolean.class) {
result = (T) wasNull(ctx.resultSet(), Boolean.valueOf(ctx.resultSet().getBoolean(ctx.index())));
} else if (type == BigInteger.class) {
// The SQLite JDBC driver doesn't support BigDecimals
if (ctx.configuration().dialect() == SQLDialect.SQLITE) {
result = Convert.convert(ctx.resultSet().getString(ctx.index()), (Class<T>) BigInteger.class);
} else {
BigDecimal b = ctx.resultSet().getBigDecimal(ctx.index());
result = (T) (b == null ? null : b.toBigInteger());
}
} else if (type == BigDecimal.class) {
// The SQLite JDBC driver doesn't support BigDecimals
if (ctx.configuration().dialect() == SQLDialect.SQLITE) {
result = Convert.convert(ctx.resultSet().getString(ctx.index()), (Class<T>) BigDecimal.class);
} else {
result = (T) ctx.resultSet().getBigDecimal(ctx.index());
}
} else if (type == Byte.class) {
result = (T) wasNull(ctx.resultSet(), Byte.valueOf(ctx.resultSet().getByte(ctx.index())));
} else if (type == byte[].class) {
result = (T) ctx.resultSet().getBytes(ctx.index());
} else if (type == Clob.class) {
result = (T) ctx.resultSet().getClob(ctx.index());
} else if (type == Date.class) {
result = (T) getDate(ctx.family(), ctx.resultSet(), ctx.index());
} else if (type == Double.class) {
result = (T) wasNull(ctx.resultSet(), Double.valueOf(ctx.resultSet().getDouble(ctx.index())));
} else if (type == Float.class) {
result = (T) wasNull(ctx.resultSet(), Float.valueOf(ctx.resultSet().getFloat(ctx.index())));
} else if (type == Integer.class) {
result = (T) wasNull(ctx.resultSet(), Integer.valueOf(ctx.resultSet().getInt(ctx.index())));
} else if (type == LocalDate.class) {
result = (T) localDate(getDate(ctx.family(), ctx.resultSet(), ctx.index()));
} else if (type == LocalTime.class) {
result = (T) localTime(getTime(ctx.family(), ctx.resultSet(), ctx.index()));
} else if (type == LocalDateTime.class) {
result = (T) localDateTime(getTimestamp(ctx.family(), ctx.resultSet(), ctx.index()));
} else if (type == Long.class) {
result = (T) wasNull(ctx.resultSet(), Long.valueOf(ctx.resultSet().getLong(ctx.index())));
} else if (type == OffsetTime.class) {
result = (T) offsetTime(ctx.resultSet().getString(ctx.index()));
} else if (type == OffsetDateTime.class) {
result = (T) offsetDateTime(ctx.resultSet().getString(ctx.index()));
} else if (type == Short.class) {
result = (T) wasNull(ctx.resultSet(), Short.valueOf(ctx.resultSet().getShort(ctx.index())));
} else if (type == String.class) {
result = (T) ctx.resultSet().getString(ctx.index());
} else if (type == Time.class) {
result = (T) getTime(ctx.family(), ctx.resultSet(), ctx.index());
} else if (type == Timestamp.class) {
result = (T) getTimestamp(ctx.family(), ctx.resultSet(), ctx.index());
} else if (type == YearToMonth.class) {
if (ctx.family() == POSTGRES) {
Object object = ctx.resultSet().getObject(ctx.index());
result = (T) (object == null ? null : PostgresUtils.toYearToMonth(object));
} else {
String string = ctx.resultSet().getString(ctx.index());
result = (T) (string == null ? null : YearToMonth.valueOf(string));
}
} else if (type == DayToSecond.class) {
if (ctx.family() == POSTGRES) {
Object object = ctx.resultSet().getObject(ctx.index());
result = (T) (object == null ? null : PostgresUtils.toDayToSecond(object));
} else {
String string = ctx.resultSet().getString(ctx.index());
result = (T) (string == null ? null : DayToSecond.valueOf(string));
}
} else if (type == UByte.class) {
result = (T) Convert.convert(ctx.resultSet().getString(ctx.index()), UByte.class);
} else if (type == UShort.class) {
result = (T) Convert.convert(ctx.resultSet().getString(ctx.index()), UShort.class);
} else if (type == UInteger.class) {
result = (T) Convert.convert(ctx.resultSet().getString(ctx.index()), UInteger.class);
} else if (type == ULong.class) {
result = (T) Convert.convert(ctx.resultSet().getString(ctx.index()), ULong.class);
} else if (type == UUID.class) {
switch(ctx.family()) {
// java.util.UUID data type
case H2:
case POSTGRES:
{
result = (T) ctx.resultSet().getObject(ctx.index());
break;
}
// emulates the type
default:
{
result = (T) Convert.convert(ctx.resultSet().getString(ctx.index()), UUID.class);
break;
}
}
} else // The type byte[] is handled earlier. byte[][] can be handled here
if (type.isArray()) {
switch(ctx.family()) {
case POSTGRES:
{
result = pgGetArray(ctx, ctx.resultSet(), type, ctx.index());
break;
}
default:
// Note: due to a HSQLDB bug, it is not recommended to call rs.getObject() here:
// See https://sourceforge.net/tracker/?func=detail&aid=3181365&group_id=23316&atid=378131
result = (T) convertArray(ctx.resultSet().getArray(ctx.index()), (Class<? extends Object[]>) type);
break;
}
} else if (EnumType.class.isAssignableFrom(type)) {
result = (T) getEnumType((Class<EnumType>) type, ctx.resultSet().getString(ctx.index()));
} else if (Record.class.isAssignableFrom(type)) {
switch(ctx.family()) {
case POSTGRES:
result = (T) pgNewRecord(type, null, ctx.resultSet().getObject(ctx.index()));
break;
default:
result = (T) ctx.resultSet().getObject(ctx.index(), typeMap(type, ctx.configuration()));
break;
}
} else if (Result.class.isAssignableFrom(type)) {
ResultSet nested = (ResultSet) ctx.resultSet().getObject(ctx.index());
result = (T) DSL.using(ctx.configuration()).fetch(nested);
} else {
result = (T) unlob(ctx.resultSet().getObject(ctx.index()));
}
// [#4372] Attach records if possible / required
if (result instanceof Attachable && attachRecords(ctx.configuration()))
((Attachable) result).attach(ctx.configuration());
ctx.value(converter.from(result));
}
use of java.time.LocalDateTime in project javaslang by javaslang.
the class ArbitraryTest method shouldCreateArbitraryLocalDateTimeAdjustedWithGivenChronoUnit.
@Test
public void shouldCreateArbitraryLocalDateTimeAdjustedWithGivenChronoUnit() {
final LocalDateTime median = LocalDateTime.of(2017, 2, 17, 3, 40);
final Arbitrary<LocalDateTime> arbitrary = Arbitrary.localDateTime(median, ChronoUnit.YEARS);
final LocalDateTime date = arbitrary.apply(100).apply(predictableRandom);
assertThat(date).isEqualTo("2063-04-22T01:46:10.312");
}
use of java.time.LocalDateTime in project javaslang by javaslang.
the class ArbitraryTest method shouldIgnoreNegativeSignInRangeOfDates.
@Test
public void shouldIgnoreNegativeSignInRangeOfDates() {
final LocalDateTime median = LocalDateTime.now();
final Arbitrary<LocalDateTime> arbitrary = Arbitrary.localDateTime(median, ChronoUnit.DAYS);
Property.def("With negative size of -100 days, dates should be in range of +/- 100 days").forAll(arbitrary).suchThat(d -> d.isAfter(median.minusDays(100)) && d.isBefore(median.plusDays(100))).check(-100, 1000);
}
use of java.time.LocalDateTime in project javaslang by javaslang.
the class ArbitraryTest method shouldCreateDatesInInRangeOfSize.
@Test
public void shouldCreateDatesInInRangeOfSize() {
final LocalDateTime median = LocalDateTime.now();
final Arbitrary<LocalDateTime> arbitrary = Arbitrary.localDateTime(median, ChronoUnit.DAYS);
Property.def("With size of 100 days, dates should be in range of +/- 100 days").forAll(arbitrary).suchThat(d -> d.isAfter(median.minusDays(100)) && d.isBefore(median.plusDays(100))).check(100, 1000);
}
use of java.time.LocalDateTime in project morphia by mongodb.
the class Java8EntityTest method rangeQueries.
@Test
public void rangeQueries() {
Instant instant = Instant.ofEpochMilli(System.currentTimeMillis());
LocalDate localDate = LocalDate.of(1995, 10, 15);
LocalDateTime localDateTime = LocalDateTime.of(2016, 4, 10, 14, 15, 16, 123 * 1000000);
LocalTime localTime = LocalTime.of(10, 29, 15, 848493);
for (int i = 0; i < 10; i++) {
createEntity(getDs(), instant.plus(i, DAYS), localDate.plus(i, DAYS), localDateTime.plus(i, DAYS), localTime.plus(i, ChronoUnit.HOURS));
}
Assert.assertEquals(2L, getDs().find(Java8Entity.class).field("instant").lessThanOrEq(instant.plus(1, DAYS)).count());
Assert.assertEquals(1L, getDs().find(Java8Entity.class).field("localDate").equal(localDate.plus(1, DAYS)).count());
Assert.assertEquals(0L, getDs().find(Java8Entity.class).field("localDate").equal(localDate.minus(1, DAYS)).count());
Assert.assertEquals(9L, getDs().find(Java8Entity.class).field("localDateTime").notEqual(localDateTime.plus(6, DAYS)).count());
}
Aggregations