com.fasterxml.jackson.core.json

## Class DupDetector

- java.lang.Object
- - 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 Summary

Fields
`protected String` `_firstName`
`protected String` `_secondName`
`protected HashSet<String>` `_seen` Lazily constructed set of names already seen within this context.
`protected Object` `_source` We need to store a back-reference here to parser/generator.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`DupDetector` `child()`
`JsonLocation` `findLocation()`
`Object` `getSource()`
`boolean` `isDup(String name)` 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
`void` `reset()`
`static DupDetector` `rootDetector(JsonGenerator g)`
`static DupDetector` `rootDetector(JsonParser p)`

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

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

### Field Detail

#### _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 Detail

#### 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)