DATACMNS-623 - Added converter for JSR-310 Instant instances.

Made the converter types public to be able to reuse them from other projects.

Related tickets: DATAJPA-650.
This commit is contained in:
Oliver Gierke
2014-12-30 13:45:34 +01:00
parent d7ecaa8db0
commit c5d920fa69
2 changed files with 50 additions and 6 deletions

View File

@@ -19,6 +19,7 @@ import static java.time.Instant.*;
import static java.time.LocalDateTime.*;
import static java.time.ZoneId.*;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -59,11 +60,13 @@ public abstract class Jsr310Converters {
converters.add(LocalDateToDateConverter.INSTANCE);
converters.add(DateToLocalTimeConverter.INSTANCE);
converters.add(LocalTimeToDateConverter.INSTANCE);
converters.add(DateToInstantConverter.INSTANCE);
converters.add(InstantToDateConverter.INSTANCE);
return converters;
}
static enum DateToLocalDateTimeConverter implements Converter<Date, LocalDateTime> {
public static enum DateToLocalDateTimeConverter implements Converter<Date, LocalDateTime> {
INSTANCE;
@@ -73,7 +76,7 @@ public abstract class Jsr310Converters {
}
}
static enum LocalDateTimeToDateConverter implements Converter<LocalDateTime, Date> {
public static enum LocalDateTimeToDateConverter implements Converter<LocalDateTime, Date> {
INSTANCE;
@@ -83,7 +86,7 @@ public abstract class Jsr310Converters {
}
}
static enum DateToLocalDateConverter implements Converter<Date, LocalDate> {
public static enum DateToLocalDateConverter implements Converter<Date, LocalDate> {
INSTANCE;
@@ -93,7 +96,7 @@ public abstract class Jsr310Converters {
}
}
static enum LocalDateToDateConverter implements Converter<LocalDate, Date> {
public static enum LocalDateToDateConverter implements Converter<LocalDate, Date> {
INSTANCE;
@@ -103,7 +106,7 @@ public abstract class Jsr310Converters {
}
}
static enum DateToLocalTimeConverter implements Converter<Date, LocalTime> {
public static enum DateToLocalTimeConverter implements Converter<Date, LocalTime> {
INSTANCE;
@@ -113,7 +116,7 @@ public abstract class Jsr310Converters {
}
}
static enum LocalTimeToDateConverter implements Converter<LocalTime, Date> {
public static enum LocalTimeToDateConverter implements Converter<LocalTime, Date> {
INSTANCE;
@@ -122,4 +125,24 @@ public abstract class Jsr310Converters {
return source == null ? null : Date.from(source.atDate(LocalDate.now()).atZone(systemDefault()).toInstant());
}
}
public static enum DateToInstantConverter implements Converter<Date, Instant> {
INSTANCE;
@Override
public Instant convert(Date source) {
return source == null ? null : source.toInstant();
}
}
public static enum InstantToDateConverter implements Converter<Instant, Date> {
INSTANCE;
@Override
public Date convert(Instant source) {
return source == null ? null : Date.from(source.atZone(systemDefault()).toInstant());
}
}
}