[jackson-annotations] 03/207: Move a few annotations from databind to here; ones that have no external dependencies

Timo Aaltonen tjaalton at moszumanska.debian.org
Sat Sep 6 13:55:33 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 cd6848600bd3db6148186e3f2ca59b95416209e9
Author: Tatu Saloranta <tsaloranta at gmail.com>
Date:   Fri Dec 23 08:54:35 2011 -0800

    Move a few annotations from databind to here; ones that have no external dependencies
---
 .../jackson/annotation/JacksonInject.java          | 28 ++++++++++++++++++
 .../fasterxml/jackson/annotation/JsonFilter.java   | 27 +++++++++++++++++
 .../fasterxml/jackson/annotation/JsonRootName.java | 25 ++++++++++++++++
 .../com/fasterxml/jackson/annotation/JsonView.java | 34 ++++++++++++++++++++++
 4 files changed, 114 insertions(+)

diff --git a/src/main/java/com/fasterxml/jackson/annotation/JacksonInject.java b/src/main/java/com/fasterxml/jackson/annotation/JacksonInject.java
new file mode 100644
index 0000000..74663d8
--- /dev/null
+++ b/src/main/java/com/fasterxml/jackson/annotation/JacksonInject.java
@@ -0,0 +1,28 @@
+package com.fasterxml.jackson.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import com.fasterxml.jackson.annotation.JacksonAnnotation;
+
+/**
+ * Jackson-specific annotation used for indicating that value of
+ * annotated property will be "injected", i.e. set based on value
+ * configured by <code>ObjectMapper</code> (usually on per-call basis).
+ * Usually property is not deserialized from JSON, although it possible
+ * to have injected value as default and still allow optional override
+ * from JSON.
+ */
+ at Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
+ at Retention(RetentionPolicy.RUNTIME)
+ at JacksonAnnotation
+public @interface JacksonInject
+{
+    /**
+     * Logical id of the value to inject; if not specified (or specified
+     * as empty String), will use id based on declared type of property.
+     */
+    public String value() default "";
+}
diff --git a/src/main/java/com/fasterxml/jackson/annotation/JsonFilter.java b/src/main/java/com/fasterxml/jackson/annotation/JsonFilter.java
new file mode 100644
index 0000000..29ac851
--- /dev/null
+++ b/src/main/java/com/fasterxml/jackson/annotation/JsonFilter.java
@@ -0,0 +1,27 @@
+package com.fasterxml.jackson.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Annotation used to indicate which logical filter is to be used
+ * for filtering out properties of type (class) annotated;
+ * association made by this annotation declaring ids of filters,
+ * and  {@link com.fasterxml.jackson.databind.ObjectMapper} (or objects
+ * it delegates to) providing matching filters by id.
+ * Filters to use are of type
+ * {@link com.fasterxml.jackson.databind.ser.BeanPropertyFilter} and
+ * are registered through {@link com.fasterxml.jackson.databind.ObjectMapper}
+ */
+ at Target(ElementType.TYPE)
+ at Retention(RetentionPolicy.RUNTIME)
+ at com.fasterxml.jackson.annotation.JacksonAnnotation
+public @interface JsonFilter
+{
+    /**
+     * Id of filter to use; if empty String (""), no filter is to be used.
+     */
+    public String value();
+}
diff --git a/src/main/java/com/fasterxml/jackson/annotation/JsonRootName.java b/src/main/java/com/fasterxml/jackson/annotation/JsonRootName.java
new file mode 100644
index 0000000..08c1d93
--- /dev/null
+++ b/src/main/java/com/fasterxml/jackson/annotation/JsonRootName.java
@@ -0,0 +1,25 @@
+package com.fasterxml.jackson.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Annotation similar to {@link javax.xml.bind.annotation.XmlRootElement},
+ * used to indicate name to use for root-level wrapping, if wrapping is
+ * enabled. Annotation itself does not indicate that wrapping should
+ * be used; but if it is, name used for serialization should be name
+ * specified here, and deserializer will expect the name as well.
+ */
+ at Target(ElementType.TYPE)
+ at Retention(RetentionPolicy.RUNTIME)
+ at com.fasterxml.jackson.annotation.JacksonAnnotation
+public @interface JsonRootName
+{
+    /**
+     * Root name to use if root-level wrapping is enabled.
+     */
+    public String value();
+
+}
diff --git a/src/main/java/com/fasterxml/jackson/annotation/JsonView.java b/src/main/java/com/fasterxml/jackson/annotation/JsonView.java
new file mode 100644
index 0000000..8d72a2e
--- /dev/null
+++ b/src/main/java/com/fasterxml/jackson/annotation/JsonView.java
@@ -0,0 +1,34 @@
+package com.fasterxml.jackson.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import com.fasterxml.jackson.annotation.JacksonAnnotation;
+
+/**
+ * Annotation used for indicating view(s) that the property
+ * that is defined by method or field annotated is part of.
+ *<p>
+ * An example annotation would be:
+ *<pre>
+ *  \@JsonView(BasicView.class)
+ *</pre>
+ * which would specify that property annotated would be included
+ * when processing (serializing, deserializing) View identified
+ * by <code>BasicView.class</code> (or its sub-class).
+ * If multiple View class identifiers are included, property will
+ * be part of all of them.
+ */
+ at Target({ElementType.METHOD, ElementType.FIELD})
+ at Retention(RetentionPolicy.RUNTIME)
+ at JacksonAnnotation
+public @interface JsonView {
+    /**
+     * View or views that annotated element is part of. Views are identified
+     * by classes, and use expected class inheritance relationship: child
+     * views contain all elements parent views have, for example.
+     */
+    public Class<?>[] value() default { };
+}

-- 
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