Annotation use for configuring deserialization aspects, by attaching
to "setter" methods or fields, or to value classes.
When annotating value classes, configuration is used for instances
of the value class but can be overridden by more specific annotations
(ones that attach to methods or fields).
All other annotations regarding behavior during building should be on Builder
class and NOT on target POJO class: for example @JsonIgnoreProperties should be on
Builder to prevent "unknown property" errors.
Deserializer class to use for deserializing associated value.
Depending on what is annotated,
value is either an instance of annotated class (used globablly
anywhere where class deserializer is needed); or only used for
deserializing property access via a setter method.
Deserializer class to use for deserializing contents (elements
of a Collection/array, values of Maps) of annotated property.
Can only be used on instances (methods, fields, constructors),
and not value classes themselves.
Annotation for specifying if an external Builder class is to
be used for building up deserialized instances of annotated
class. If so, an instance of referenced class is first constructed
(possibly using a Creator method; or if none defined, using default
constructor), and its "with-methods" are used for populating fields;
and finally "build-method" is invoked to complete deserialization.
Which helper object (if any) is to be used to convert from Jackson-bound
intermediate type (source type of converter) into actual property type
(which must be same as result type of converter). This is often used
for two-step deserialization; Jackson binds data into suitable intermediate
type (like Tree representation), and converter then builds actual property
Concrete type to deserialize content (elements
of a Collection/array, values of Maps) values as,
instead of type otherwise declared.
Must be a subtype of declared type; otherwise an exception may be
thrown by deserializer.