/** * Secondary lookup method used for matchers that operate with more complex * matching rules, such as case-insensitive matchers. */ protected int matchSecondary(String toMatch) { if (_backupMatcher == null) { return MATCH_UNKNOWN_NAME; } // 04-Dec-2017, tatu: Note that we absolutely MUST do another lookup even if // key does not change; thing being that we are now using secondary index, // contents of which MAY be different from primary one. Specifically, if original // keys are not all lower-case, we would induce a miss if skipping lookup here. return _backupMatcher.matchName(toMatch.toLowerCase()); }
return matcher.matchName(""); return matcher.matchByQuad(q);
public static List<String> stringsFromNames(List<Named> fields, final boolean alreadyInterned) { // 29-Jan-2018, tatu: With seemingly simple definition (commented out) getting // strange "java.lang.NoClassDefFoundError: Could not initialize class java.util.stream.StreamOpFlag" // so having to replace with bit different /* return fields.stream() .map(n -> _fromName(n, alreadyInterned)) .collect(Collectors.toList()); */ ArrayList<String> result = new ArrayList<String>(fields.size()); for (Named n : fields) { result.add(_fromName(n, alreadyInterned)); } return result; }
if (match >= 0) { // gotcha! (expected case) _inputPtr = _quadPtr; name = matcher.nameLookup()[match]; } else { match = matcher.matchName(name);
return matcher.matchByQuad(_quad1, q2);
public static BinaryNameMatcher constructCaseInsensitive(List<Named> fields, boolean alreadyInterned) { final List<String> names = FieldNameMatcher.stringsFromNames(fields, alreadyInterned); return _construct(names, SimpleNameMatcher.constructCaseInsensitive(names)); }
_currToken = JsonToken.FIELD_NAME; _parsingContext.setCurrentName(""); return matcher.matchName(""); case 0x30: // long shared case 0x31: _parsingContext.setCurrentName(name); _currToken = JsonToken.FIELD_NAME; return matcher.matchName(name); return matcher.matchName(currentName()); _parsingContext.setCurrentName(name); _currToken = JsonToken.FIELD_NAME; return matcher.matchName(name); if (match >= 0) { // gotcha! (expected case) _inputPtr += len; final String name = matcher.nameLookup()[match]; _parsingContext.setCurrentName(name); if (_seenNames != null) { if (match >= 0) { // gotcha! (expected case) _inputPtr += len; final String name = matcher.nameLookup()[match]; _parsingContext.setCurrentName(name); if (_seenNames != null) {
return matcher.matchByQuad(_quad1, q2, q3);
@Override public int nextFieldName(FieldNameMatcher matcher) throws IOException { String str = nextFieldName(); if (str != null) { return matcher.matchName(str); } if (_currToken == JsonToken.END_OBJECT) { return FieldNameMatcher.MATCH_END_OBJECT; } return FieldNameMatcher.MATCH_ODD_TOKEN; }
return matcher.matchByQuad(_quadBuffer, qlen);
@Override public int currentFieldName(FieldNameMatcher matcher) throws IOException { if (_currToken == JsonToken.FIELD_NAME) { return matcher.matchName(currentName()); } if (_currToken == JsonToken.END_OBJECT) { return FieldNameMatcher.MATCH_END_OBJECT; } return FieldNameMatcher.MATCH_ODD_TOKEN; }
return matcher.matchByQuad(q); return matcher.matchByQuad(q1, q2); _quad2 = q2; _quad3 = q3; return matcher.matchByQuad(q1, q2, q3);
@Override public int nextFieldName(FieldNameMatcher matcher) throws IOException { // NOTE: call `nextToken()` to handle delegation String str = nextFieldName(); if (str != null) { // 15-Nov-2017, tatu: Can not assume intern()ing aspects when delegating... return matcher.matchName(str); } if (hasToken(JsonToken.END_OBJECT)) { return FieldNameMatcher.MATCH_END_OBJECT; } return FieldNameMatcher.MATCH_ODD_TOKEN; }
return matcher.matchByQuad(_quadBuffer, offset);
@Override public int nextFieldName(FieldNameMatcher matcher) throws IOException { String str = nextFieldName(); if (str != null) { // 15-Nov-2017, tatu: We can not rely on name being interned here return matcher.matchName(str); } if (hasToken(JsonToken.END_OBJECT)) { return FieldNameMatcher.MATCH_END_OBJECT; } return FieldNameMatcher.MATCH_ODD_TOKEN; }
private int _nextFieldName2(FieldNameMatcher matcher) throws IOException { JsonToken t = nextToken(); if (t == JsonToken.FIELD_NAME) { return matcher.matchName(currentName()); } if (t == JsonToken.END_OBJECT) { return FieldNameMatcher.MATCH_END_OBJECT; } return FieldNameMatcher.MATCH_ODD_TOKEN; }
_currToken = JsonToken.FIELD_NAME; return matcher.matchName(name);
_currToken = JsonToken.FIELD_NAME; return matcher.matchName(name);