| package org.codehaus.jackson.annotate; |
| |
| import java.lang.annotation.ElementType; |
| import java.lang.annotation.Retention; |
| import java.lang.annotation.RetentionPolicy; |
| import java.lang.annotation.Target; |
| |
| /** |
| * Marker annotation that can be used to define a non-static |
| * method as a "setter" or "getter" for a logical property |
| * (depending on its signature), |
| * or non-static object field to be used (serialized, deserialized) as |
| * a logical property. |
| *<p> |
| * Default value ("") indicates that the field name is used |
| * as the property name without any modifications, but it |
| * can be specified to non-empty value to specify different |
| * name. Property name refers to name used externally, as |
| * the field name in Json objects. |
| *<p> |
| * NOTE: since version 1.1, annotation has also been applicable |
| * to fields (not with 1.0). |
| *<p> |
| * NOTE: since version 1.2, annotation has also been applicable |
| * to (constructor) parameters |
| */ |
| @Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER}) |
| @Retention(RetentionPolicy.RUNTIME) |
| @JacksonAnnotation |
| public @interface JsonProperty |
| { |
| /** |
| * Defines name of the logical property, i.e. Json object field |
| * name to use for the property: if empty String (which is the |
| * default), will use name of the field that is annotated. |
| */ |
| String value() default ""; |
| } |