JsonAutoDetect (Jackson JSON Processor)
Date: 2013-07-14

org.codehaus.jackson.annotate

## Annotation Type JsonAutoDetect

-     @Target(value=TYPE)
      @Retention(value=RUNTIME)
      public @interface JsonAutoDetect

  Class annotation that can be used to define which kinds of Methods are to be detected by auto-detection. Auto-detection means using name conventions and/or signature templates to find methods to use for data binding. For example, so-called "getters" can be auto-detected by looking for public member methods that return a value, do not take argument, and have prefix "get" in their name.

  Pseudo-value `NONE` means that all auto-detection is disabled for the specific class that annotation is applied to (including its super-types, but only when resolving that class). Pseudo-value `ALWAYS` means that auto-detection is enabled for all method types for the class in similar way.

  The default value is `ALWAYS`: that is, by default, auto-detection is enabled for all classes unless instructed otherwise.

  Starting with version 1.5, it is also possible to use more fine-grained definitions, to basically define minimum visibility level needed. Defaults are different for different types (getters need to be public; setters can have any access modifier, for example).

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `JsonAutoDetect.Visibility` | `creatorVisibility` Minimum visibility required for auto-detecting Creator methods, except for no-argument constructors (which are always detected no matter what).
    `JsonAutoDetect.Visibility` | `fieldVisibility` Minimum visibility required for auto-detecting member fields.
    `JsonAutoDetect.Visibility` | `getterVisibility` Minimum visibility required for auto-detecting regular getter methods.
    `JsonAutoDetect.Visibility` | `isGetterVisibility` Minimum visibility required for auto-detecting is-getter methods.
    `JsonAutoDetect.Visibility` | `setterVisibility` Minimum visibility required for auto-detecting setter methods.
    `JsonMethod[]` | `value` Types of property elements (getters, setters, fields, creators) that can be auto-detected.

- - ### Element Detail

    - #### value

          public abstract JsonMethod[] value

      Types of property elements (getters, setters, fields, creators) that can be auto-detected. NOTE: as of 1.5, it is recommended that instead of defining this property, distinct visibility properties are used instead. This because levels used with this method are not explicit, but global defaults that differ for different methods. As such, this property can be considered deprecated and only retained for backwards compatibility.
      Default:
        org.codehaus.jackson.annotate.JsonMethod.ALL

    - #### getterVisibility

          public abstract JsonAutoDetect.Visibility getterVisibility

      Minimum visibility required for auto-detecting regular getter methods.
      Since:
        1.5
      Default:
        org.codehaus.jackson.annotate.JsonAutoDetect.Visibility.DEFAULT

    - #### isGetterVisibility

          public abstract JsonAutoDetect.Visibility isGetterVisibility

      Minimum visibility required for auto-detecting is-getter methods.
      Since:
        1.5
      Default:
        org.codehaus.jackson.annotate.JsonAutoDetect.Visibility.DEFAULT

    - #### setterVisibility

          public abstract JsonAutoDetect.Visibility setterVisibility

      Minimum visibility required for auto-detecting setter methods.
      Since:
        1.5
      Default:
        org.codehaus.jackson.annotate.JsonAutoDetect.Visibility.DEFAULT

    - #### creatorVisibility

          public abstract JsonAutoDetect.Visibility creatorVisibility

      Minimum visibility required for auto-detecting Creator methods, except for no-argument constructors (which are always detected no matter what).
      Since:
        1.5
      Default:
        org.codehaus.jackson.annotate.JsonAutoDetect.Visibility.DEFAULT

    - #### fieldVisibility

          public abstract JsonAutoDetect.Visibility fieldVisibility

      Minimum visibility required for auto-detecting member fields.
      Since:
        1.5
      Default:
        org.codehaus.jackson.annotate.JsonAutoDetect.Visibility.DEFAULT