summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/amazon/carbonado/adapter/DateTimeAdapter.java123
1 files changed, 46 insertions, 77 deletions
diff --git a/src/main/java/com/amazon/carbonado/adapter/DateTimeAdapter.java b/src/main/java/com/amazon/carbonado/adapter/DateTimeAdapter.java
index d9b3577..fc12319 100644
--- a/src/main/java/com/amazon/carbonado/adapter/DateTimeAdapter.java
+++ b/src/main/java/com/amazon/carbonado/adapter/DateTimeAdapter.java
@@ -76,12 +76,6 @@ public @interface DateTimeAdapter {
* default time zone.
*/
String timeZone() default "";
-
- /**
- * Optionally specify a time zone for the DateTime value as persisted.
- */
- String timeZonePersisted() default "";
- String timeZoneActual() default "";
/**
* Adapter implementation for {@link DateTimeAdapter}.
@@ -130,7 +124,7 @@ public @interface DateTimeAdapter {
.toFormatter();
}
- private static DateTimeZone getDisplayDateTimeZone(DateTimeAdapter ann) {
+ private static DateTimeZone toDateTimeZone(DateTimeAdapter ann) {
String id;
if (ann == null || (id = ann.timeZone()) == null || id.length() == 0) {
return null;
@@ -138,26 +132,8 @@ public @interface DateTimeAdapter {
return DateTimeZone.forID(id);
}
- private static DateTimeZone getPersistedDateTimeZone(DateTimeAdapter ann) {
- String id;
- if (ann == null || (id = ann.timeZonePersisted()) == null || id.length() == 0) {
- return getDisplayDateTimeZone(ann);
- }
- return DateTimeZone.forID(id);
- }
-
- private static DateTimeZone getActualDateTimeZone(DateTimeAdapter ann) {
- String id;
- if (ann == null || (id = ann.timeZoneActual()) == null || id.length() == 0) {
- return getDisplayDateTimeZone(ann);
- }
- return DateTimeZone.forID(id);
- }
-
private final String mPropertyName;
- private final DateTimeZone mPersistedZone;
- private final DateTimeZone mActualZone;
- private final DateTimeZone mDisplayZone;
+ private final DateTimeZone mZone;
private final DateTimeFormatter mDateTimeParser;
/**
@@ -166,7 +142,7 @@ public @interface DateTimeAdapter {
* @param ann specific annotation that binds to this adapter class
*/
public Adapter(Class<?> type, String propertyName, DateTimeAdapter ann) {
- this(type, propertyName, getDisplayDateTimeZone(ann), getPersistedDateTimeZone(ann), getActualDateTimeZone(ann));
+ this(type, propertyName, toDateTimeZone(ann));
}
/**
@@ -174,27 +150,20 @@ public @interface DateTimeAdapter {
* @param propertyName name of property with
* @param zone time zone to apply, or null to use default
*/
- public Adapter(Class<?> type, String propertyName, DateTimeZone displayZone, DateTimeZone persistedZone, DateTimeZone actualZone) {
+ public Adapter(Class<?> type, String propertyName, DateTimeZone zone) {
mPropertyName = propertyName;
- mDisplayZone = displayZone;
- mPersistedZone = persistedZone;
- mActualZone = actualZone;
- if (!mPersistedZone.equals(mActualZone))
- DateTimeZone.setDefault(mActualZone);
- mDateTimeParser = cDateTimeParser.withZone(persistedZone);
+ mZone = zone;
+ mDateTimeParser = cDateTimeParser.withZone(zone);
}
- public Adapter(Class<?> type, String propertyName, DateTimeZone displayZone) {
- this(type, propertyName, displayZone, displayZone, displayZone);
- }
// Adapt to DateTime...
public DateTime adaptToDateTime(long instant) {
- return new DateTime(instant, mPersistedZone);
+ return new DateTime(instant, mZone);
}
public DateTime adaptToDateTime(Long instant) {
- return instant == null ? null : (new DateTime(instant, mPersistedZone).withZoneRetainFields(mActualZone)).withZone(mDisplayZone);
+ return instant == null ? null : new DateTime(instant, mZone);
}
public DateTime adaptToDateTime(String isoDateString) {
@@ -202,116 +171,116 @@ public @interface DateTimeAdapter {
}
public DateTime adaptToDateTime(Date date) {
- return date == null ? null : (new DateTime(date, mPersistedZone).withZoneRetainFields(mActualZone)).withZone(mDisplayZone);
+ return date == null ? null : new DateTime(date, mZone);
}
public DateTime adaptToDateTime(java.sql.Date date) {
- return date == null ? null : new DateTime(date.getTime(), mPersistedZone).withZoneRetainFields(mActualZone).withZone(mDisplayZone);
+ return date == null ? null : new DateTime(date.getTime(), mZone);
}
public DateTime adaptToDateTime(Time time) {
- return time == null ? null : new DateTime(time.getTime(), mPersistedZone).withZoneRetainFields(mActualZone).withZone(mDisplayZone);
+ return time == null ? null : new DateTime(time.getTime(), mZone);
}
public DateTime adaptToDateTime(Timestamp timestamp) {
- return timestamp == null ? null : new DateTime(timestamp.getTime(), mPersistedZone).withZoneRetainFields(mActualZone).withZone(mDisplayZone);
+ return timestamp == null ? null : new DateTime(timestamp.getTime(), mZone);
}
// Adapt to DateMidnight...
public DateMidnight adaptToDateMidnight(long instant) {
- return new DateMidnight(instant, mPersistedZone);
+ return new DateMidnight(instant, mZone);
}
public DateMidnight adaptToDateMidnight(Long instant) {
- return instant == null ? null : new DateMidnight(instant, mPersistedZone);
+ return instant == null ? null : new DateMidnight(instant, mZone);
}
public DateMidnight adaptToDateMidnight(String isoDateString) {
- return isoDateString == null ? null : new DateMidnight(isoDateString, mPersistedZone);
+ return isoDateString == null ? null : new DateMidnight(isoDateString, mZone);
}
public DateMidnight adaptToDateMidnight(Date date) {
- return date == null ? null : new DateMidnight(date, mPersistedZone);
+ return date == null ? null : new DateMidnight(date, mZone);
}
public DateMidnight adaptToDateMidnight(java.sql.Date date) {
- return date == null ? null : new DateMidnight(date.getTime(), mPersistedZone);
+ return date == null ? null : new DateMidnight(date.getTime(), mZone);
}
public DateMidnight adaptToDateMidnight(Time time) {
- return time == null ? null : new DateMidnight(time.getTime(), mPersistedZone);
+ return time == null ? null : new DateMidnight(time.getTime(), mZone);
}
public DateMidnight adaptToDateMidnight(Timestamp timestamp) {
- return timestamp == null ? null : new DateMidnight(timestamp.getTime(), mPersistedZone);
+ return timestamp == null ? null : new DateMidnight(timestamp.getTime(), mZone);
}
// Adapt to LocalDateTime...
public LocalDateTime adaptToLocalDateTime(long instant) {
- return new LocalDateTime(instant, mPersistedZone);
+ return new LocalDateTime(instant, mZone);
}
public LocalDateTime adaptToLocalDateTime(Long instant) {
- return instant == null ? null : new LocalDateTime(instant, mPersistedZone);
+ return instant == null ? null : new LocalDateTime(instant, mZone);
}
public LocalDateTime adaptToLocalDateTime(String isoDateString) {
- return isoDateString == null ? null : new LocalDateTime(isoDateString, mPersistedZone);
+ return isoDateString == null ? null : new LocalDateTime(isoDateString, mZone);
}
public LocalDateTime adaptToLocalDateTime(Date date) {
- return date == null ? null : new LocalDateTime(date, mPersistedZone);
+ return date == null ? null : new LocalDateTime(date, mZone);
}
public LocalDateTime adaptToLocalDateTime(java.sql.Date date) {
- return date == null ? null : new LocalDateTime(date.getTime(), mPersistedZone);
+ return date == null ? null : new LocalDateTime(date.getTime(), mZone);
}
public LocalDateTime adaptToLocalDateTime(Time time) {
- return time == null ? null : new LocalDateTime(time.getTime(), mPersistedZone);
+ return time == null ? null : new LocalDateTime(time.getTime(), mZone);
}
public LocalDateTime adaptToLocalDateTime(Timestamp timestamp) {
- return timestamp == null ? null : new LocalDateTime(timestamp.getTime(), mPersistedZone);
+ return timestamp == null ? null : new LocalDateTime(timestamp.getTime(), mZone);
}
// Adapt to LocalDate...
public LocalDate adaptToLocalDate(long instant) {
- return new LocalDate(instant, mPersistedZone);
+ return new LocalDate(instant, mZone);
}
public LocalDate adaptToLocalDate(Long instant) {
- return instant == null ? null : new LocalDate(instant, mPersistedZone);
+ return instant == null ? null : new LocalDate(instant, mZone);
}
public LocalDate adaptToLocalDate(String isoDateString) {
- return isoDateString == null ? null : new LocalDate(isoDateString, mPersistedZone);
+ return isoDateString == null ? null : new LocalDate(isoDateString, mZone);
}
public LocalDate adaptToLocalDate(Date date) {
- return date == null ? null : new LocalDate(date, mPersistedZone);
+ return date == null ? null : new LocalDate(date, mZone);
}
public LocalDate adaptToLocalDate(java.sql.Date date) {
- return date == null ? null : new LocalDate(date.getTime(), mPersistedZone);
+ return date == null ? null : new LocalDate(date.getTime(), mZone);
}
public LocalDate adaptToLocalDate(Time time) {
- return time == null ? null : new LocalDate(time.getTime(), mPersistedZone);
+ return time == null ? null : new LocalDate(time.getTime(), mZone);
}
public LocalDate adaptToLocalDate(Timestamp timestamp) {
- return timestamp == null ? null : new LocalDate(timestamp.getTime(), mPersistedZone);
+ return timestamp == null ? null : new LocalDate(timestamp.getTime(), mZone);
}
// Adapt from DateTime and DateMidnight... (accept the more generic ReadableInstant)
public long adaptToLong(ReadableInstant instant) {
if (instant != null) {
- return new DateTime(instant, mDisplayZone).withZoneRetainFields(mPersistedZone).getMillis();
+ return instant.getMillis();
}
throw new IllegalArgumentException
("Cannot adapt null instant into long for property \"" +
@@ -346,7 +315,7 @@ public @interface DateTimeAdapter {
public long adaptToLong(LocalDateTime dateTime) {
if (dateTime != null) {
- return dateTime.toDateTime(mPersistedZone).getMillis();
+ return dateTime.toDateTime(mZone).getMillis();
}
throw new IllegalArgumentException
("Cannot adapt null datetime into long for property \"" +
@@ -354,7 +323,7 @@ public @interface DateTimeAdapter {
}
public Long adaptToLongObj(LocalDateTime dateTime) {
- return dateTime == null ? null : dateTime.toDateTime(mPersistedZone).getMillis();
+ return dateTime == null ? null : dateTime.toDateTime(mZone).getMillis();
}
public String adaptToString(LocalDateTime dateTime) {
@@ -362,27 +331,27 @@ public @interface DateTimeAdapter {
}
public Date adaptToDate(LocalDateTime dateTime) {
- return dateTime == null ? null : dateTime.toDateTime(mPersistedZone).toDate();
+ return dateTime == null ? null : dateTime.toDateTime(mZone).toDate();
}
public java.sql.Date adaptToSqlDate(LocalDateTime dateTime) {
return dateTime == null ? null
- : new java.sql.Date(dateTime.toDateTime(mPersistedZone).getMillis());
+ : new java.sql.Date(dateTime.toDateTime(mZone).getMillis());
}
public Time adaptToSqlTime(LocalDateTime dateTime) {
- return dateTime == null ? null : new Time(dateTime.toDateTime(mPersistedZone).getMillis());
+ return dateTime == null ? null : new Time(dateTime.toDateTime(mZone).getMillis());
}
public Timestamp adaptToSqlTimestamp(LocalDateTime dateTime) {
- return dateTime == null ? null : new Timestamp(dateTime.toDateTime(mPersistedZone).getMillis());
+ return dateTime == null ? null : new Timestamp(dateTime.toDateTime(mZone).getMillis());
}
// Adapt from LocalDate...
public long adaptToLong(LocalDate date) {
if (date != null) {
- return date.toDateMidnight(mPersistedZone).getMillis();
+ return date.toDateMidnight(mZone).getMillis();
}
throw new IllegalArgumentException
("Cannot adapt null date into long for property \"" +
@@ -390,7 +359,7 @@ public @interface DateTimeAdapter {
}
public Long adaptToLongObj(LocalDate date) {
- return date == null ? null : date.toDateMidnight(mPersistedZone).getMillis();
+ return date == null ? null : date.toDateMidnight(mZone).getMillis();
}
public String adaptToString(LocalDate date) {
@@ -398,15 +367,15 @@ public @interface DateTimeAdapter {
}
public Date adaptToDate(LocalDate date) {
- return date == null ? null : date.toDateMidnight(mPersistedZone).toDate();
+ return date == null ? null : date.toDateMidnight(mZone).toDate();
}
public java.sql.Date adaptToSqlDate(LocalDate date) {
- return date == null ? null : new java.sql.Date(date.toDateMidnight(mPersistedZone).getMillis());
+ return date == null ? null : new java.sql.Date(date.toDateMidnight(mZone).getMillis());
}
public Timestamp adaptToSqlTimestamp(LocalDate date) {
- return date == null ? null : new Timestamp(date.toDateMidnight(mPersistedZone).getMillis());
+ return date == null ? null : new Timestamp(date.toDateMidnight(mZone).getMillis());
}
// Adapt to Date...
@@ -452,7 +421,7 @@ public @interface DateTimeAdapter {
}
public String adaptToString(Date date) {
- return date == null ? null : new DateTime(date, mPersistedZone).toString();
+ return date == null ? null : new DateTime(date, mZone).toString();
}
public java.sql.Date adaptToSqlDate(Date date) {