java.lang.Object
edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.introspect.SimpleMixInResolver
All Implemented Interfaces:
ClassIntrospector.MixInResolver, Serializable

public class SimpleMixInResolver extends Object implements ClassIntrospector.MixInResolver, 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:
  • Field Details

    • _overrides

      protected final ClassIntrospector.MixInResolver _overrides
      External resolver that gets called before looking at any locally defined mix-in target classes.
    • _localMixIns

      protected Map<ClassKey,Class<?>> _localMixIns
      Simple mix-in targets defined locally.
  • Constructor Details

  • Method Details

    • 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(Map<Class<?>,Class<?>> sourceMixins)
    • addLocalDefinition

      public void addLocalDefinition(Class<?> target, 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 Class<?> findMixInClassFor(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()
    • hasMixIns

      public boolean hasMixIns()
      Method that may be called for optimization purposes, to see if calls to mix-in resolver may be avoided. Return value of true means that it is possible that a mix-in class will be found; false that no mix-in will ever be found. In latter case caller can avoid calls altogether.

      Note that the reason for "empty" resolvers is to use "null object" for simplifying code.

      Returns:
      True, if this resolver MAY have mix-ins to apply; false if not (it is "empty")
      Since:
      2.10.1