java.lang.Object
edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.core.json.DupDetector

public class DupDetector extends Object
Helper class used if JsonParser.Feature.STRICT_DUPLICATE_DETECTION is enabled. Optimized to try to limit memory usage and processing overhead for smallest entries, but without adding trashing (immutable objects would achieve optimal memory usage but lead to significant number of discarded temp objects for scopes with large number of entries). Another consideration is trying to limit actual number of compiled classes as it contributes significantly to overall jar size (due to linkage etc).
Since:
2.3
  • Field Details

    • _source

      protected final Object _source
      We need to store a back-reference here to parser/generator.
    • _firstName

      protected String _firstName
    • _secondName

      protected String _secondName
    • _seen

      protected HashSet<String> _seen
      Lazily constructed set of names already seen within this context.
  • Method Details

    • rootDetector

      public static DupDetector rootDetector(JsonParser p)
    • rootDetector

      public static DupDetector rootDetector(JsonGenerator g)
    • child

      public DupDetector child()
    • reset

      public void reset()
    • findLocation

      public JsonLocation findLocation()
    • getSource

      public Object getSource()
      Returns:
      Source object (parser / generator) used to construct this detector
      Since:
      2.7
    • isDup

      public boolean isDup(String name) throws JsonParseException
      Method called to check whether a newly encountered property name would be a duplicate within this context, and if not, update the state to remember having seen the property name for checking more property names
      Parameters:
      name - Property seen
      Returns:
      True if the property had already been seen before in this context
      Throws:
      JsonParseException - to report possible operation problem (default implementation never throws it)