Abstract class that defines API for objects that can be registered to participate in constructing {@link JsonDeserializer} instances(via {@link DeserializerFactory}). This is typically done by modules that want alter some aspects of deserialization process; and is preferable to sub-classing of {@link BeanDeserializerFactory}.
Note that Jackson 2.2 adds more methods for customization; with earlier versions only {@link BeanDeserializer} instances could be modified, but with 2.2 all typesof deserializers can be changed.
Sequence in which callback methods are called for {@link BeanDeserializer} is:
{@link #updateProperties} is called once all property definitions arecollected, and initial filtering (by ignorable type and explicit ignoral-by-bean) has been performed. {@link #updateBuilder} is called once all initial pieces for building deserializerhave been collected {@link #modifyDeserializer} is called after deserializer has been builtby {@link BeanDeserializerBuilder}but before it is returned to be used For other types of deserializers, methods called depend on type of values for which deserializer is being constructed; and only a single method is called since the process does not involve builders (unlike that of {@link BeanDeserializer}.
Default method implementations are "no-op"s, meaning that methods are implemented but have no effect; this is mostly so that new methods can be added in later versions.