SimpleMixInResolver
Date: 2016-12-04

com.fasterxml.jackson.databind.introspect

## Class SimpleMixInResolver

- java.lang.Object
- - com.fasterxml.jackson.databind.introspect.SimpleMixInResolver

- All Implemented Interfaces:
    ClassIntrospector.MixInResolver, java.io.Serializable

      public class SimpleMixInResolver
      extends java.lang.Object
      implements ClassIntrospector.MixInResolver, java.io.Serializable

  Simple implementation of `ClassIntrospector.MixInResolver` that just uses a `Map` for containing mapping from target to mix-in classes.

  Implementation is only thread-safe after initialization (that is, when underlying Map is not modified but only read).

  Since:
    2.6
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.Map<ClassKey,java.lang.Class<?>>` | `_localMixIns` Simple mix-in targets defined locally.
    `protected ClassIntrospector.MixInResolver` | `_overrides` External resolver that gets called before looking at any locally defined mix-in target classes.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `SimpleMixInResolver(ClassIntrospector.MixInResolver overrides)`
    `protected` | `SimpleMixInResolver(ClassIntrospector.MixInResolver overrides, java.util.Map<ClassKey,java.lang.Class<?>> mixins)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addLocalDefinition(java.lang.Class<?> target, java.lang.Class<?> mixinSource)`
    `SimpleMixInResolver` | `copy()` Method called to create a new, non-shared copy, to be used by different `ObjectMapper` instance, and one that should not be connected to this instance, if resolver has mutable state.
    `java.lang.Class<?>` | `findMixInClassFor(java.lang.Class<?> cls)` Method that will check if there are "mix-in" classes (with mix-in annotations) for given class
    `int` | `localSize()`
    `void` | `setLocalDefinitions(java.util.Map<java.lang.Class<?>,java.lang.Class<?>> sourceMixins)`
    `SimpleMixInResolver` | `withoutLocalDefinitions()` Mutant factory method that constructs a new instance that has no locally defined mix-in/target mappings.
    `SimpleMixInResolver` | `withOverrides(ClassIntrospector.MixInResolver overrides)` Mutant factory for constructor a new resolver instance with given mix-in resolver override.

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

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

- - ### Field Detail

    - #### _overrides

          protected final ClassIntrospector.MixInResolver _overrides

      External resolver that gets called before looking at any locally defined mix-in target classes.

    - #### _localMixIns

          protected java.util.Map<ClassKey,java.lang.Class<?>> _localMixIns

      Simple mix-in targets defined locally.

  - ### Constructor Detail

    - #### SimpleMixInResolver

          public SimpleMixInResolver(ClassIntrospector.MixInResolver overrides)

    - #### SimpleMixInResolver

          protected SimpleMixInResolver(ClassIntrospector.MixInResolver overrides,
                             java.util.Map<ClassKey,java.lang.Class<?>> mixins)

  - ### Method Detail

    - #### withOverrides

          public SimpleMixInResolver withOverrides(ClassIntrospector.MixInResolver overrides)

      Mutant factory for constructor a new resolver instance with given mix-in resolver override.

    - #### withoutLocalDefinitions

          public SimpleMixInResolver withoutLocalDefinitions()

      Mutant factory method that constructs a new instance that has no locally defined mix-in/target mappings.

    - #### setLocalDefinitions

          public void setLocalDefinitions(java.util.Map<java.lang.Class<?>,java.lang.Class<?>> sourceMixins)

    - #### addLocalDefinition

          public void addLocalDefinition(java.lang.Class<?> target,
                                java.lang.Class<?> mixinSource)

    - #### copy

          public SimpleMixInResolver copy()

      Description copied from interface: `ClassIntrospector.MixInResolver`
      Method called to create a new, non-shared copy, to be used by different `ObjectMapper` instance, and one that should not be connected to this instance, if resolver has mutable state. If resolver is immutable may simply return `this`.
      Specified by:
        `copy` in interface `ClassIntrospector.MixInResolver`

    - #### findMixInClassFor

          public java.lang.Class<?> findMixInClassFor(java.lang.Class<?> cls)

      Description copied from interface: `ClassIntrospector.MixInResolver`
      Method that will check if there are "mix-in" classes (with mix-in annotations) for given class
      Specified by:
        `findMixInClassFor` in interface `ClassIntrospector.MixInResolver`

    - #### localSize

          public int localSize()