This is an automated email from the git hooks/post-receive script. tjaalton pushed a commit to branch master in repository jackson-annotations.
commit b61db147bb9ef98782f25d7c8d9802615ebdddb1 Author: Tatu Saloranta <[email protected]> Date: Thu Mar 27 20:36:01 2014 -0700 Add @JsonFormat.Value#timeZoneAsString() --- release-notes/VERSION | 1 + .../fasterxml/jackson/annotation/JsonFormat.java | 63 +++++++++++++++++----- 2 files changed, 52 insertions(+), 12 deletions(-) diff --git a/release-notes/VERSION b/release-notes/VERSION index c805620..3e64d17 100644 --- a/release-notes/VERSION +++ b/release-notes/VERSION @@ -5,6 +5,7 @@ NOTE: Annotations module will never contain changes in patch versions, only .0 releases can have changes. #31: Allow use of `@JsonPropertyOrder` for properties (not just classes) +- Add `JsonFormat.Value#timeZoneAsString` (needed by Joda module) ------------------------------------------------------------------------ === History: === diff --git a/src/main/java/com/fasterxml/jackson/annotation/JsonFormat.java b/src/main/java/com/fasterxml/jackson/annotation/JsonFormat.java index 0efce6c..a0e9e92 100644 --- a/src/main/java/com/fasterxml/jackson/annotation/JsonFormat.java +++ b/src/main/java/com/fasterxml/jackson/annotation/JsonFormat.java @@ -185,7 +185,11 @@ public @interface JsonFormat private final String pattern; private final Shape shape; private final Locale locale; - private final TimeZone timezone; + + private final String timezoneStr; + + // lazily constructed when created from annotations + private TimeZone _timezone; public Value() { this("", Shape.ANY, "", ""); @@ -197,11 +201,12 @@ public @interface JsonFormat public Value(String p, Shape sh, String localeStr, String tzStr) { - this(p, sh - ,(localeStr == null || localeStr.length() == 0 || DEFAULT_LOCALE.equals(localeStr)) ? - null : new Locale(localeStr) - ,(tzStr == null || tzStr.length() == 0 || DEFAULT_TIMEZONE.equals(tzStr)) ? - null : TimeZone.getTimeZone(tzStr) + this(p, sh, + (localeStr == null || localeStr.length() == 0 || DEFAULT_LOCALE.equals(localeStr)) ? + null : new Locale(localeStr), + (tzStr == null || tzStr.length() == 0 || DEFAULT_TIMEZONE.equals(tzStr)) ? + null : tzStr, + null ); } @@ -213,40 +218,74 @@ public @interface JsonFormat pattern = p; shape = sh; locale = l; - timezone = tz; + _timezone = tz; + timezoneStr = null; + } + + /** + * @since 2.4 + */ + public Value(String p, Shape sh, Locale l, String tzStr, TimeZone tz) + { + pattern = p; + shape = sh; + locale = l; + _timezone = tz; + timezoneStr = tzStr; } /** * @since 2.1 */ public Value withPattern(String p) { - return new Value(p, shape, locale, timezone); + return new Value(p, shape, locale, timezoneStr, _timezone); } /** * @since 2.1 */ public Value withShape(Shape s) { - return new Value(pattern, s, locale, timezone); + return new Value(pattern, s, locale, timezoneStr, _timezone); } /** * @since 2.1 */ public Value withLocale(Locale l) { - return new Value(pattern, shape, l, timezone); + return new Value(pattern, shape, l, timezoneStr, _timezone); } /** * @since 2.1 */ public Value withTimeZone(TimeZone tz) { - return new Value(pattern, shape, locale, tz); + return new Value(pattern, shape, locale, null, tz); } public String getPattern() { return pattern; } public Shape getShape() { return shape; } public Locale getLocale() { return locale; } - public TimeZone getTimeZone() { return timezone; } + + /** + * Alternate access (compared to {@link #getTimeZone()}) which is useful + * when caller just wants time zone id to convert, but not as JDK + * provided {@link TimeZone} + * + * @since 2.4 + */ + public String timeZoneAsString() { + if (_timezone != null) { + return _timezone.getID(); + } + return timezoneStr; + } + + public TimeZone getTimeZone() { + TimeZone tz = _timezone; + if (tz == null) { + _timezone = tz = TimeZone.getTimeZone(timezoneStr); + } + return tz; + } } } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jackson-annotations.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

