public CBORReadContext createChildArrayContext(int expEntryCount) { CBORReadContext ctxt = _child; if (ctxt == null) { _child = ctxt = new CBORReadContext(this, (_dups == null) ? null : _dups.child(), TYPE_ARRAY, expEntryCount); } else { ctxt.reset(TYPE_ARRAY, expEntryCount); } return ctxt; }
public void setCurrentName(String name) throws JsonProcessingException { _currentName = name; if (_dups != null) { _checkDup(_dups, name); } }
/** * Method that can be called to get the name associated with * the current event. */ @Override public String getCurrentName() throws IOException { if (_currToken == JsonToken.START_OBJECT || _currToken == JsonToken.START_ARRAY) { CBORReadContext parent = _parsingContext.getParent(); return parent.getCurrentName(); } return _parsingContext.getCurrentName(); }
@Override public void overrideCurrentName(String name) { // Simple, but need to look for START_OBJECT/ARRAY's "off-by-one" thing: CBORReadContext ctxt = _parsingContext; if (_currToken == JsonToken.START_OBJECT || _currToken == JsonToken.START_ARRAY) { ctxt = ctxt.getParent(); } // Unfortunate, but since we did not expose exceptions, need to wrap try { ctxt.setCurrentName(name); } catch (IOException e) { throw new IllegalStateException(e); } }
if (_parsingContext.inObject()) { if (_currToken != JsonToken.FIELD_NAME) { _tagValue = -1; if (!_parsingContext.expectMoreValues()) { _parsingContext = _parsingContext.getParent(); return (_currToken = JsonToken.END_OBJECT); if (!_parsingContext.expectMoreValues()) { _tagValue = -1; _parsingContext = _parsingContext.getParent(); return (_currToken = JsonToken.END_ARRAY); _parsingContext = _parsingContext.createChildArrayContext(len); _parsingContext = _parsingContext.createChildObjectContext(len); return (_currToken = JsonToken.VALUE_NUMBER_FLOAT); case 31: // Break if (_parsingContext.inArray()) { if (!_parsingContext.hasExpectedLength()) { _parsingContext = _parsingContext.getParent(); return (_currToken = JsonToken.END_ARRAY);
if (_parsingContext.inObject() && _currToken != JsonToken.FIELD_NAME) { _numTypesValid = NR_UNKNOWN; if (_tokenIncomplete) { _tagValue = -1; if (!_parsingContext.expectMoreValues()) { _parsingContext = _parsingContext.getParent(); _currToken = JsonToken.END_OBJECT; return false; if (i == lenMarker) { _inputPtr = ptr+i; _parsingContext.setCurrentName(str.getValue()); _currToken = JsonToken.FIELD_NAME; return true;
protected void _reportUnexpectedBreak() throws IOException { if (_parsingContext.inRoot()) { throw _constructError("Unexpected Break (0xFF) token in Root context"); } throw _constructError("Unexpected Break (0xFF) token in definite length (" +_parsingContext.getExpectedLength()+") " +(_parsingContext.inObject() ? "Object" : "Array" )); }
if (!_parsingContext.hasExpectedLength()) { _parsingContext = _parsingContext.getParent(); return JsonToken.END_OBJECT; _parsingContext.setCurrentName(name); return JsonToken.FIELD_NAME;
@Override public char[] getTextCharacters() throws IOException { if (_currToken != null) { // null only before/after document if (_tokenIncomplete) { _finishToken(); } if (_currToken == JsonToken.VALUE_STRING) { return _textBuffer.getTextBuffer(); } if (_currToken == JsonToken.FIELD_NAME) { return _parsingContext.getCurrentName().toCharArray(); } if ((_currToken == JsonToken.VALUE_NUMBER_INT) || (_currToken == JsonToken.VALUE_NUMBER_FLOAT)) { return getNumberValue().toString().toCharArray(); } return _currToken.asCharArray(); } return null; }
public static CBORReadContext createRootContext(DupDetector dups) { return new CBORReadContext(null, dups, TYPE_ROOT, -1); }
public CBORParser(IOContext ctxt, int parserFeatures, int cborFeatures, ObjectCodec codec, ByteQuadsCanonicalizer sym, InputStream in, byte[] inputBuffer, int start, int end, boolean bufferRecyclable) { super(parserFeatures); _ioContext = ctxt; _objectCodec = codec; _symbols = sym; _inputStream = in; _inputBuffer = inputBuffer; _inputPtr = start; _inputEnd = end; _bufferRecyclable = bufferRecyclable; _textBuffer = ctxt.constructTextBuffer(); DupDetector dups = JsonParser.Feature.STRICT_DUPLICATE_DETECTION.enabledIn(parserFeatures) ? DupDetector.rootDetector(this) : null; _parsingContext = CBORReadContext.createRootContext(dups); _tokenInputRow = -1; _tokenInputCol = -1; }
case TYPE_ARRAY: sb.append('['); sb.append(getCurrentIndex()); sb.append(']'); break;
_parsingContext = _parsingContext.createChildArrayContext(len);
if (_parsingContext.inObject()) { if (_currToken != JsonToken.FIELD_NAME) { _tagValue = -1; if (!_parsingContext.expectMoreValues()) { _parsingContext = _parsingContext.getParent(); return (_currToken = JsonToken.END_OBJECT); if (!_parsingContext.expectMoreValues()) { _tagValue = -1; _parsingContext = _parsingContext.getParent(); return (_currToken = JsonToken.END_ARRAY); _parsingContext = _parsingContext.createChildArrayContext(len); _parsingContext = _parsingContext.createChildObjectContext(len); return (_currToken = JsonToken.VALUE_NUMBER_FLOAT); case 31: // Break if (_parsingContext.inArray()) { if (!_parsingContext.hasExpectedLength()) { _parsingContext = _parsingContext.getParent(); return (_currToken = JsonToken.END_ARRAY);
if (_parsingContext.inObject() && _currToken != JsonToken.FIELD_NAME) { _numTypesValid = NR_UNKNOWN; if (_tokenIncomplete) { _tagValue = -1; if (!_parsingContext.expectMoreValues()) { _parsingContext = _parsingContext.getParent(); _currToken = JsonToken.END_OBJECT; return false; if (i == lenMarker) { _inputPtr = ptr+i; _parsingContext.setCurrentName(str.getValue()); _currToken = JsonToken.FIELD_NAME; return true;
protected void _reportUnexpectedBreak() throws IOException { if (_parsingContext.inRoot()) { throw _constructError("Unexpected Break (0xFF) token in Root context"); } throw _constructError("Unexpected Break (0xFF) token in definite length (" +_parsingContext.getExpectedLength()+") " +(_parsingContext.inObject() ? "Object" : "Array" )); }
if (!_parsingContext.hasExpectedLength()) { _parsingContext = _parsingContext.getParent(); return JsonToken.END_OBJECT; _parsingContext.setCurrentName(name); return JsonToken.FIELD_NAME;
@Override public void overrideCurrentName(String name) { // Simple, but need to look for START_OBJECT/ARRAY's "off-by-one" thing: CBORReadContext ctxt = _parsingContext; if (_currToken == JsonToken.START_OBJECT || _currToken == JsonToken.START_ARRAY) { ctxt = ctxt.getParent(); } // Unfortunate, but since we did not expose exceptions, need to wrap try { ctxt.setCurrentName(name); } catch (IOException e) { throw new IllegalStateException(e); } }
@Override public int getTextLength() throws IOException { if (_currToken != null) { // null only before/after document if (_tokenIncomplete) { _finishToken(); } if (_currToken == JsonToken.VALUE_STRING) { return _textBuffer.size(); } if (_currToken == JsonToken.FIELD_NAME) { return _parsingContext.getCurrentName().length(); } if ((_currToken == JsonToken.VALUE_NUMBER_INT) || (_currToken == JsonToken.VALUE_NUMBER_FLOAT)) { return getNumberValue().toString().length(); } return _currToken.asCharArray().length; } return 0; }
public static CBORReadContext createRootContext(DupDetector dups) { return new CBORReadContext(null, dups, TYPE_ROOT, -1); }