@@ -0,0 +1,3322 @@
+package com.fasterxml.jackson.annotation;%0A%0Aimport java.lang.annotation.ElementType;%0Aimport java.lang.annotation.Retention;%0Aimport java.lang.annotation.RetentionPolicy;%0Aimport java.lang.annotation.Target;%0A%0A/**%0A * General-purpose annotation used for configuring details of how%0A * values of properties are to be serialized.%0A * Unlike most other Jackson annotations, annotation does not%0A * have specific universal interpretation: instead, effect depends on datatype%0A * of property being annotated (or more specifically, deserializer%0A * and serializer being used).%0A *%3Cp%3E%0A * Common uses include choosing between alternate representations -- for example,%0A * whether %7B@link java.util.Date%7D is to be serialized as number (Java timestamp)%0A * or String (such as ISO-8601 compatible time value) -- as well as configuring%0A * exact details with %7B@link #pattern%7D property.%0A * %0A * @since 2.0%0A */%0A@Target(%7BElementType.ANNOTATION_TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER%7D)%0A@Retention(RetentionPolicy.RUNTIME)%0A@JacksonAnnotation%0Apublic @interface JsonFormat%0A%7B%0A%0A    /**%0A     * Datatype-specific additional piece of configuration that may be used%0A     * to further refine formatting aspects. This may, for example, determine%0A     * low-level format String used for %7B@link java.util.Date%7D serialization;%0A     * however, exact use is determined by specific %3Ccode%3EJsonSerializer%3C/code%3E%0A     */%0A    public String pattern() default %22%22;%0A%0A    public Shape shape() default Shape.ANY;%0A    %0A    /*%0A    /**********************************************************%0A    /* Value enumeration(s) needed%0A    /**********************************************************%0A     */%0A%0A    /**%0A     * Value enumeration used for indicating preferred Shape; translates%0A     * loosely to JSON types, with some extra values to indicate less precise%0A     * choices (i.e. allowing one of multiple actual shapes)%0A     */%0A    public enum Shape%0A    %7B%0A        /**%0A         * Marker enum value that indicates %22default%22 (or %22whatever%22) choice; needed%0A         * since Annotations can not have null values for enums.%0A         */%0A        ANY,%0A%0A        /**%0A         * Value that indicates shape should not be structural (that is, not%0A         * %7B@link #ARRAY%7D or %7B@link #OBJECT%7D, but can be any other shape.%0A         */%0A        SCALAR,%0A%0A        /**%0A         * Value that indicates that (JSON) Array type should be used.%0A         */%0A        ARRAY,%0A        %0A        /**%0A         * Value that indicates that (JSON) Object type should be used.%0A         */%0A        OBJECT,%0A%0A        /**%0A         * Value that indicates that a numeric (JSON) type should be used%0A         * (but does not specify whether integer or floating-point representation%0A         * should be used)%0A         */%0A        NUMBER,%0A%0A        /**%0A         * Value that indicates that floating-point numeric type should be used%0A         */%0A        NUMBER_FLOAT,%0A%0A        /**%0A         * Value that indicates that integer number type should be used%0A         * (and not %7B@link #NUMBER_FLOAT%7D).%0A         */%0A        NUMBER_INT,%0A%0A        /**%0A         * Value that indicates that (JSON) String type should be used.%0A         */%0A        STRING,%0A        %0A        /**%0A         * Value that indicates that (JSON) boolean type%0A         * (true, false) should be used.%0A         */%0A        BOOLEAN%0A        ;%0A    %7D%0A%7D%0A

Work on [JACKSON-714], add @JsonFormat annotation