Java 类com.fasterxml.jackson.core.json.DupDetector 实例源码

项目:GitHub    文件:GeneratorBase.java   
@Override
public JsonGenerator enable(Feature f) {
    final int mask = f.getMask();
    _features |= mask;
    if ((mask & DERIVED_FEATURES_MASK) != 0) {
        // why not switch? Requires addition of a generated class, alas
        if (f == Feature.WRITE_NUMBERS_AS_STRINGS) {
            _cfgNumbersAsStrings = true;
        } else if (f == Feature.ESCAPE_NON_ASCII) {
            setHighestNonEscapedChar(127);
        } else if (f == Feature.STRICT_DUPLICATE_DETECTION) {
            if (_outputContext.getDupDetector() == null) { // but only if disabled currently
                _outputContext = _outputContext.withDupDetector(DupDetector.rootDetector(this));
            }
        }
    }
    return this;
}
项目:GitHub    文件:GeneratorBase.java   
/**
 * Helper method called to verify changes to standard features.
 *
 * @param newFeatureFlags Bitflag of standard features after they were changed
 * @param changedFeatures Bitflag of standard features for which setting
 *    did change
 *
 * @since 2.7
 */
protected void _checkStdFeatureChanges(int newFeatureFlags, int changedFeatures)
{
    if ((changedFeatures & DERIVED_FEATURES_MASK) == 0) {
        return;
    }
    _cfgNumbersAsStrings = Feature.WRITE_NUMBERS_AS_STRINGS.enabledIn(newFeatureFlags);
    if (Feature.ESCAPE_NON_ASCII.enabledIn(changedFeatures)) {
        if (Feature.ESCAPE_NON_ASCII.enabledIn(newFeatureFlags)) {
            setHighestNonEscapedChar(127);
        } else {
            setHighestNonEscapedChar(0);
        }
    }
    if (Feature.STRICT_DUPLICATE_DETECTION.enabledIn(changedFeatures)) {
        if (Feature.STRICT_DUPLICATE_DETECTION.enabledIn(newFeatureFlags)) { // enabling
            if (_outputContext.getDupDetector() == null) { // but only if disabled currently
                _outputContext = _outputContext.withDupDetector(DupDetector.rootDetector(this));
            }
        } else { // disabling
            _outputContext = _outputContext.withDupDetector(null);
        }
    }
}
项目:GitHub    文件:GeneratorBase.java   
protected GeneratorBase(ObjectWriteContext writeCtxt, int features) {
    super();
    _objectWriteContext = writeCtxt;
    _features = features;
    DupDetector dups = Feature.STRICT_DUPLICATE_DETECTION.enabledIn(features)
            ? DupDetector.rootDetector(this) : null;
    _outputContext = JsonWriteContext.createRootContext(dups);
    _cfgNumbersAsStrings = Feature.WRITE_NUMBERS_AS_STRINGS.enabledIn(features);
}
项目:GitHub    文件:ParserBase.java   
protected ParserBase(ObjectReadContext readCtxt,
        IOContext ctxt, int features) {
    super(readCtxt, features);
    _ioContext = ctxt;
    _textBuffer = ctxt.constructTextBuffer();
    DupDetector dups = Feature.STRICT_DUPLICATE_DETECTION.enabledIn(features)
            ? DupDetector.rootDetector(this) : null;
    _parsingContext = JsonReadContext.createRootContext(dups);
}
项目:GitHub    文件:ParserBase.java   
@Override
public JsonParser enable(Feature f) {
    _features |= f.getMask();
    if (f == Feature.STRICT_DUPLICATE_DETECTION) { // enabling dup detection?
        if (_parsingContext.getDupDetector() == null) { // but only if disabled currently
            _parsingContext = _parsingContext.withDupDetector(DupDetector.rootDetector(this));
        }
    }
    return this;
}
项目:Beam    文件:GeneratorBase.java   
protected GeneratorBase(int features, ObjectCodec codec)
{
    super();
    _features = features;
    DupDetector dups = Feature.STRICT_DUPLICATE_DETECTION.enabledIn(features)
            ? DupDetector.rootDetector(this) : null;
    _writeContext = JsonWriteContext.createRootContext(dups);
    _objectCodec = codec;
    _cfgNumbersAsStrings = Feature.WRITE_NUMBERS_AS_STRINGS.enabledIn(features);
}
项目:Beam    文件:ParserBase.java   
protected ParserBase(IOContext ctxt, int features)
{
    super();
    _features = features;
    _ioContext = ctxt;
    _textBuffer = ctxt.constructTextBuffer();
    DupDetector dups = Feature.STRICT_DUPLICATE_DETECTION.enabledIn(features)
            ? DupDetector.rootDetector(this) : null;
    JsonReadContext readCtxt = JsonReadContext.createRootContext(dups);
    _parsingContext = readCtxt;
}