[jackson-annotations] 30/207: Add @JsonFormat details

Timo Aaltonen tjaalton at moszumanska.debian.org
Sat Sep 6 13:55:36 UTC 2014


This is an automated email from the git hooks/post-receive script.

tjaalton pushed a commit to branch master
in repository jackson-annotations.

commit 64c14d5dbf2e63f18d730af0dd174d342e770c15
Author: Tatu Saloranta <tsaloranta at gmail.com>
Date:   Tue Feb 21 21:03:57 2012 -0800

    Add @JsonFormat details
---
 .../fasterxml/jackson/annotation/JsonFormat.java   | 37 ++++++++++++++++++++--
 1 file changed, 35 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/fasterxml/jackson/annotation/JsonFormat.java b/src/main/java/com/fasterxml/jackson/annotation/JsonFormat.java
index 8f78fa0..e5da780 100644
--- a/src/main/java/com/fasterxml/jackson/annotation/JsonFormat.java
+++ b/src/main/java/com/fasterxml/jackson/annotation/JsonFormat.java
@@ -17,6 +17,13 @@ import java.lang.annotation.Target;
  * whether {@link java.util.Date} is to be serialized as number (Java timestamp)
  * or String (such as ISO-8601 compatible time value) -- as well as configuring
  * exact details with {@link #pattern} property.
+ *<p>
+ * As of Jackson 2.0, known special handling include:
+ *<ul>
+ * <li>{@link java.util.Date}: Shape can  be {@link Shape#STRING} or {@link Shape#NUMBER};
+ *    pattern may contain {@link java.text.SimpleDateFormat}-compatible pattern definition.
+ *   </li>
+ *</ul>
  * 
  * @since 2.0
  */
@@ -25,7 +32,6 @@ import java.lang.annotation.Target;
 @JacksonAnnotation
 public @interface JsonFormat
 {
-
     /**
      * Datatype-specific additional piece of configuration that may be used
      * to further refine formatting aspects. This may, for example, determine
@@ -38,7 +44,7 @@ public @interface JsonFormat
     
     /*
     /**********************************************************
-    /* Value enumeration(s) needed
+    /* Value enumeration(s), value class(es)
     /**********************************************************
      */
 
@@ -100,5 +106,32 @@ public @interface JsonFormat
          */
         BOOLEAN
         ;
+
+        public boolean isNumeric() {
+            return (this == NUMBER) || (this == NUMBER_INT) || (this == NUMBER_FLOAT);
+        }
+
+        public boolean isStructured() {
+            return (this == OBJECT) || (this == ARRAY);
+        }
+    }
+
+    /**
+     * Helper class used to contain information from a single {@link JsonFormat}
+     * annotation.
+     */
+    public static class Value
+    {
+        public final String pattern;
+        public final Shape shape;
+        
+        public Value(JsonFormat annotationInstance) {
+            this(annotationInstance.pattern(), annotationInstance.shape());
+        }
+
+        public Value(String p, Shape sh) {
+            pattern = p;
+            shape = sh;
+        }
     }
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jackson-annotations.git



More information about the pkg-java-commits mailing list