Class BasicBeanDescription


  • public class BasicBeanDescription
    extends BeanDescription
    Default BeanDescription implementation. Can theoretically be subclassed to customize some aspects of property introspection.
    • Field Detail

      • _classInfo

        protected final AnnotatedClass _classInfo
        Information collected about the class introspected.
      • _bindings

        protected TypeBindings _bindings
        We may need type bindings for the bean type. If so, we'll construct it lazily
      • _ignoredPropertyNames

        protected Set<String> _ignoredPropertyNames
        Set of properties that can be ignored during deserialization, due to being marked as ignored.
      • _ignoredPropertyNamesForDeser

        protected Set<String> _ignoredPropertyNamesForDeser
        Since:
        1.9.4
    • Method Detail

      • forOtherUse

        public static BasicBeanDescription forOtherUse​(MapperConfig<?> config,
                                                       JavaType type,
                                                       AnnotatedClass ac)
        Factory method to use for constructing an instance to use for purposes other than building serializers or deserializers; will only have information on class, not on properties.
        Since:
        1.9
      • getIgnoredPropertyNamesForDeser

        public Set<String> getIgnoredPropertyNamesForDeser()
      • hasKnownClassAnnotations

        public boolean hasKnownClassAnnotations()
        Method for checking whether class being described has any annotations recognized by registered annotation introspector.
        Specified by:
        hasKnownClassAnnotations in class BeanDescription
      • bindingsForBeanType

        public TypeBindings bindingsForBeanType()
        Description copied from class: BeanDescription
        Accessor for type bindings that may be needed to fully resolve types of member object, such as return and argument types of methods and constructors, and types of fields.
        Specified by:
        bindingsForBeanType in class BeanDescription
      • findDefaultConstructor

        public AnnotatedConstructor findDefaultConstructor()
        Method that will locate the no-arg constructor for this class, if it has one, and that constructor has not been marked as ignorable.
        Specified by:
        findDefaultConstructor in class BeanDescription
        Since:
        1.9
      • instantiateBean

        public Object instantiateBean​(boolean fixAccess)
        Method called to create a "default instance" of the bean, currently only needed for obtaining default field values which may be used for suppressing serialization of fields that have "not changed".
        Parameters:
        fixAccess - If true, method is allowed to fix access to the default constructor (to be able to call non-public constructor); if false, has to use constructor as is.
        Returns:
        Instance of class represented by this descriptor, if suitable default constructor was found; null otherwise.
      • findSingleArgConstructor

        public Constructor<?> findSingleArgConstructor​(Class<?>... argTypes)
        Method that can be called to locate a single-arg constructor that takes specified exact type (will not accept supertype constructors)
        Parameters:
        argTypes - Type(s) of the argument that we are looking for
      • findFactoryMethod

        public Method findFactoryMethod​(Class<?>... expArgTypes)
        Method that can be called to find if introspected class declares a static "valueOf" factory method that returns an instance of introspected type, given one of acceptable types.
        Parameters:
        expArgTypes - Types that the matching single argument factory method can take: will also accept super types of these types (ie. arg just has to be assignable from expArgType)
      • isFactoryMethod

        protected boolean isFactoryMethod​(AnnotatedMethod am)
      • findCreatorPropertyNames

        public List<String> findCreatorPropertyNames()
        Method for getting ordered list of named Creator properties. Returns an empty list is none found. If multiple Creator methods are defined, order between properties from different methods is undefined; however, properties for each such Creator are ordered properly relative to each other. For the usual case of just a single Creator, named properties are thus properly ordered.
      • findSerializationInclusion

        public JsonSerialize.Inclusion findSerializationInclusion​(JsonSerialize.Inclusion defValue)
        Method for determining whether null properties should be written out for a Bean of introspected type. This is based on global feature (lowest priority, passed as argument) and per-class annotation (highest priority).
      • findBackReferenceProperties

        public Map<String,​AnnotatedMember> findBackReferenceProperties()
        Method for locating all back-reference properties (setters, fields) bean has
        Since:
        1.6
      • _findPropertyFields

        public LinkedHashMap<String,​AnnotatedField> _findPropertyFields​(Collection<String> ignoredProperties,
                                                                              boolean forSerialization)
        Parameters:
        ignoredProperties - (optional) names of properties to ignore; any fields that would be recognized as one of these properties is ignored.
        forSerialization - If true, will collect serializable property fields; if false, deserializable
        Returns:
        Ordered Map with logical property name as key, and matching field as value.