BasicClassIntrospector
Date: 2016-12-04

com.fasterxml.jackson.databind.introspect

## Class BasicClassIntrospector

- java.lang.Object
- - com.fasterxml.jackson.databind.introspect.ClassIntrospector
  - - com.fasterxml.jackson.databind.introspect.BasicClassIntrospector

- All Implemented Interfaces:
    java.io.Serializable

      public class BasicClassIntrospector
      extends ClassIntrospector
      implements java.io.Serializable

  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.introspect.ClassIntrospector

      `ClassIntrospector.MixInResolver`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected LRUMap<JavaType,BasicBeanDescription>` | `_cachedFCA` Looks like 'forClassAnnotations()' gets called so frequently that we should consider caching to avoid some of the lookups.
    `protected static BasicBeanDescription` | `BOOLEAN_DESC`
    `static BasicClassIntrospector` | `instance` Deprecated.
    `protected static BasicBeanDescription` | `INT_DESC`
    `protected static BasicBeanDescription` | `LONG_DESC`
    `protected static BasicBeanDescription` | `STRING_DESC`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BasicClassIntrospector()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected BasicBeanDescription` | `_findStdJdkCollectionDesc(MapperConfig<?> cfg, JavaType type)`
    `protected BasicBeanDescription` | `_findStdTypeDesc(JavaType type)` Method called to see if type is one of core JDK types that we have cached for efficiency.
    `protected boolean` | `_isStdJDKCollection(JavaType type)` Helper method used to decide whether we can omit introspection for members (methods, fields, constructors); we may do so for a limited number of container types JDK provides.
    `protected POJOPropertiesCollector` | `collectProperties(MapperConfig<?> config, JavaType type, ClassIntrospector.MixInResolver r, boolean forSerialization, java.lang.String mutatorPrefix)`
    `protected POJOPropertiesCollector` | `collectPropertiesWithBuilder(MapperConfig<?> config, JavaType type, ClassIntrospector.MixInResolver r, boolean forSerialization)`
    `protected POJOPropertiesCollector` | `constructPropertyCollector(MapperConfig<?> config, AnnotatedClass ac, JavaType type, boolean forSerialization, java.lang.String mutatorPrefix)` Overridable method called for creating `POJOPropertiesCollector` instance to use; override is needed if a custom sub-class is to be used.
    `BasicBeanDescription` | `forClassAnnotations(MapperConfig<?> config, JavaType type, ClassIntrospector.MixInResolver r)` Factory method that constructs an introspector that only has information regarding annotations class itself (or its supertypes) has, but nothing on methods or constructors.
    `BasicBeanDescription` | `forCreation(DeserializationConfig cfg, JavaType type, ClassIntrospector.MixInResolver r)` Factory method that constructs an introspector that has information necessary for creating instances of given class ("creator"), as well as class annotations, but no information on member methods
    `BasicBeanDescription` | `forDeserialization(DeserializationConfig cfg, JavaType type, ClassIntrospector.MixInResolver r)` Factory method that constructs an introspector that has all information needed for deserialization purposes.
    `BasicBeanDescription` | `forDeserializationWithBuilder(DeserializationConfig cfg, JavaType type, ClassIntrospector.MixInResolver r)` Factory method that constructs an introspector that has all information needed for constructing deserializers that use intermediate Builder objects.
    `BasicBeanDescription` | `forDirectClassAnnotations(MapperConfig<?> config, JavaType type, ClassIntrospector.MixInResolver r)` Factory method that constructs an introspector that only has information regarding annotations class itself has (but NOT including its supertypes), but nothing on methods or constructors.
    `BasicBeanDescription` | `forSerialization(SerializationConfig cfg, JavaType type, ClassIntrospector.MixInResolver r)` Factory method that constructs an introspector that has all information needed for serialization purposes.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### STRING_DESC

          protected static final BasicBeanDescription STRING_DESC

    - #### BOOLEAN_DESC

          protected static final BasicBeanDescription BOOLEAN_DESC

    - #### INT_DESC

          protected static final BasicBeanDescription INT_DESC

    - #### LONG_DESC

          protected static final BasicBeanDescription LONG_DESC

    - #### instance

          @Deprecated
          public static final BasicClassIntrospector instance

      Deprecated.

    - #### _cachedFCA

          protected final LRUMap<JavaType,BasicBeanDescription> _cachedFCA

      Looks like 'forClassAnnotations()' gets called so frequently that we should consider caching to avoid some of the lookups.
      Since:
        2.5

  - ### Constructor Detail

    - #### BasicClassIntrospector

          public BasicClassIntrospector()

  - ### Method Detail

    - #### forSerialization

          public BasicBeanDescription forSerialization(SerializationConfig cfg,
                                              JavaType type,
                                              ClassIntrospector.MixInResolver r)

      Description copied from class: `ClassIntrospector`
      Factory method that constructs an introspector that has all information needed for serialization purposes.
      Specified by:
        `forSerialization` in class `ClassIntrospector`

    - #### forDeserialization

          public BasicBeanDescription forDeserialization(DeserializationConfig cfg,
                                                JavaType type,
                                                ClassIntrospector.MixInResolver r)

      Description copied from class: `ClassIntrospector`
      Factory method that constructs an introspector that has all information needed for deserialization purposes.
      Specified by:
        `forDeserialization` in class `ClassIntrospector`

    - #### forDeserializationWithBuilder

          public BasicBeanDescription forDeserializationWithBuilder(DeserializationConfig cfg,
                                                           JavaType type,
                                                           ClassIntrospector.MixInResolver r)

      Description copied from class: `ClassIntrospector`
      Factory method that constructs an introspector that has all information needed for constructing deserializers that use intermediate Builder objects.
      Specified by:
        `forDeserializationWithBuilder` in class `ClassIntrospector`

    - #### forCreation

          public BasicBeanDescription forCreation(DeserializationConfig cfg,
                                         JavaType type,
                                         ClassIntrospector.MixInResolver r)

      Description copied from class: `ClassIntrospector`
      Factory method that constructs an introspector that has information necessary for creating instances of given class ("creator"), as well as class annotations, but no information on member methods
      Specified by:
        `forCreation` in class `ClassIntrospector`

    - #### forClassAnnotations

          public BasicBeanDescription forClassAnnotations(MapperConfig<?> config,
                                                 JavaType type,
                                                 ClassIntrospector.MixInResolver r)

      Description copied from class: `ClassIntrospector`
      Factory method that constructs an introspector that only has information regarding annotations class itself (or its supertypes) has, but nothing on methods or constructors.
      Specified by:
        `forClassAnnotations` in class `ClassIntrospector`

    - #### forDirectClassAnnotations

          public BasicBeanDescription forDirectClassAnnotations(MapperConfig<?> config,
                                                       JavaType type,
                                                       ClassIntrospector.MixInResolver r)

      Description copied from class: `ClassIntrospector`
      Factory method that constructs an introspector that only has information regarding annotations class itself has (but NOT including its supertypes), but nothing on methods or constructors.
      Specified by:
        `forDirectClassAnnotations` in class `ClassIntrospector`

    - #### collectProperties

          protected POJOPropertiesCollector collectProperties(MapperConfig<?> config,
                                                  JavaType type,
                                                  ClassIntrospector.MixInResolver r,
                                                  boolean forSerialization,
                                                  java.lang.String mutatorPrefix)

    - #### collectPropertiesWithBuilder

          protected POJOPropertiesCollector collectPropertiesWithBuilder(MapperConfig<?> config,
                                                             JavaType type,
                                                             ClassIntrospector.MixInResolver r,
                                                             boolean forSerialization)

    - #### constructPropertyCollector

          protected POJOPropertiesCollector constructPropertyCollector(MapperConfig<?> config,
                                                           AnnotatedClass ac,
                                                           JavaType type,
                                                           boolean forSerialization,
                                                           java.lang.String mutatorPrefix)

      Overridable method called for creating `POJOPropertiesCollector` instance to use; override is needed if a custom sub-class is to be used.

    - #### _findStdTypeDesc

          protected BasicBeanDescription _findStdTypeDesc(JavaType type)

      Method called to see if type is one of core JDK types that we have cached for efficiency.

    - #### _isStdJDKCollection

          protected boolean _isStdJDKCollection(JavaType type)

      Helper method used to decide whether we can omit introspection for members (methods, fields, constructors); we may do so for a limited number of container types JDK provides.

    - #### _findStdJdkCollectionDesc

          protected BasicBeanDescription _findStdJdkCollectionDesc(MapperConfig<?> cfg,
                                                       JavaType type)