Annotation Type JsonPOJOBuilder


  • @Target({ANNOTATION_TYPE,TYPE})
    @Retention(RUNTIME)
    public @interface JsonPOJOBuilder
    Annotation used to configure details of a Builder class: instances of which are used as Builders for deserialized POJO values, instead of POJOs being instantiated using constructors or factory methods. Note that this annotation is NOT used to define what is the Builder class for a POJO: rather, this is determined by JsonDeserialize.builder() property of JsonDeserialize.

    Annotation is typically used if the naming convention of a Builder class is different from defaults:

    • By default, setters are expected to have names like `withName()` (for property "name"); override by withPrefix() property.

    In addition to configuration using this annotation, note that many other configuration annotations are also applied to Builders, for example JsonIgnoreProperties can be used to ignore "unknown" properties.

    Since:
    2.0
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      java.lang.String buildMethodName
      Property to use for re-defining which zero-argument method is considered the actual "build-method": method called after all data has been bound, and the actual instance needs to be instantiated.
      java.lang.String withPrefix
      Property used for (re)defining name prefix to use for auto-detecting "with-methods": methods that are similar to "set-methods" (in that they take an argument), but that may also return the new builder instance to use (which may be 'this', or a new modified builder instance).
    • Field Detail

      • DEFAULT_BUILD_METHOD

        static final java.lang.String DEFAULT_BUILD_METHOD
        Since:
        2.9
      • DEFAULT_WITH_PREFIX

        static final java.lang.String DEFAULT_WITH_PREFIX
        Since:
        2.9
    • Element Detail

      • buildMethodName

        java.lang.String buildMethodName
        Property to use for re-defining which zero-argument method is considered the actual "build-method": method called after all data has been bound, and the actual instance needs to be instantiated.

        Default value is "build".

        Default:
        "build"
      • withPrefix

        java.lang.String withPrefix
        Property used for (re)defining name prefix to use for auto-detecting "with-methods": methods that are similar to "set-methods" (in that they take an argument), but that may also return the new builder instance to use (which may be 'this', or a new modified builder instance). Note that in addition to this prefix, it is also possible to use JsonProperty annotation to indicate "with-methods" (as well as JsonSetter).

        Default value is "with", so that method named "withValue()" would be used for binding JSON property "value" (using type indicated by the argument; or one defined with annotations.

        Default:
        "with"