/** * @since 2.7 */ public TokenBuffer(JsonParser p, DeserializationContext ctxt) { _objectCodec = p.getCodec(); _parentContext = p.getParsingContext(); _generatorFeatures = DEFAULT_GENERATOR_FEATURES; _writeContext = JsonWriteContext.createRootContext(null); // at first we have just one segment _first = _last = new Segment(); _appendAt = 0; _hasNativeTypeIds = p.canReadTypeId(); _hasNativeObjectIds = p.canReadObjectId(); _mayHaveNativeIds = _hasNativeTypeIds | _hasNativeObjectIds; _forceBigDecimal = (ctxt == null) ? false : ctxt.isEnabled(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS); }
boolean hasIds = checkIds && (segment.hasIds()); segment = segment.next(); if (segment == null) break; hasIds = checkIds && (segment.hasIds()); JsonToken t = segment.type(ptr); if (t == null) break; Object ob = segment.get(ptr); if (ob instanceof SerializableString) { gen.writeFieldName((SerializableString) ob); case VALUE_STRING: Object ob = segment.get(ptr); if (ob instanceof SerializableString) { gen.writeString((SerializableString) ob); Object n = segment.get(ptr); if (n instanceof Integer) { gen.writeNumber((Integer) n); Object n = segment.get(ptr); if (n instanceof Double) { gen.writeNumber(((Double) n).doubleValue()); Object value = segment.get(ptr);
private final void assignNativeIds(int index, Object objectId, Object typeId) { if (_nativeIds == null) { _nativeIds = new TreeMap<Integer,Object>(); } if (objectId != null) { _nativeIds.put(_objectIdIndex(index), objectId); } if (typeId != null) { _nativeIds.put(_typeIdIndex(index), typeId); } }
boolean hasIds = checkIds && (segment.hasIds()); segment = segment.next(); if (segment == null) break; hasIds = checkIds && (segment.hasIds()); JsonToken t = segment.type(ptr); if (t == null) break; Object id = segment.findObjectId(ptr); if (id != null) { jgen.writeObjectId(id); id = segment.findTypeId(ptr); if (id != null) { jgen.writeTypeId(id); Object ob = segment.get(ptr); if (ob instanceof SerializableString) { jgen.writeFieldName((SerializableString) ob); Object ob = segment.get(ptr); if (ob instanceof SerializableString) { jgen.writeString((SerializableString) ob); Object n = segment.get(ptr); if (n instanceof Integer) { jgen.writeNumber((Integer) n);
boolean hasIds = checkIds && (segment.hasIds()); segment = segment.next(); if (segment == null) break; hasIds = checkIds && (segment.hasIds()); JsonToken t = segment.type(ptr); if (t == null) break; Object id = segment.findObjectId(ptr); if (id != null) { jgen.writeObjectId(id); id = segment.findTypeId(ptr); if (id != null) { jgen.writeTypeId(id); Object ob = segment.get(ptr); if (ob instanceof SerializableString) { jgen.writeFieldName((SerializableString) ob); Object ob = segment.get(ptr); if (ob instanceof SerializableString) { jgen.writeString((SerializableString) ob); Object n = segment.get(ptr); if (n instanceof Integer) { jgen.writeNumber((Integer) n);
if (++ptr >= Segment.TOKENS_PER_SEGMENT) { ptr = 0; segment = segment.next(); if (segment == null) break; JsonToken t = segment.type(ptr); if (t == null) break; Object ob = segment.get(ptr); if (ob instanceof SerializableString) { jgen.writeFieldName((SerializableString) ob); Object ob = segment.get(ptr); if (ob instanceof SerializableString) { jgen.writeString((SerializableString) ob); Number n = (Number) segment.get(ptr); if (n instanceof BigInteger) { jgen.writeNumber((BigInteger) n); Object n = segment.get(ptr); if (n instanceof BigDecimal) { jgen.writeNumber((BigDecimal) n); break; case VALUE_EMBEDDED_OBJECT: jgen.writeObject(segment.get(ptr)); break; default:
if (++ptr >= Segment.TOKENS_PER_SEGMENT) { ptr = 0; segment = segment.next(); if (segment == null) break; JsonToken t = segment.type(ptr); if (t == null) break; Object ob = segment.get(ptr); if (ob instanceof SerializableString) { jgen.writeFieldName((SerializableString) ob); Object ob = segment.get(ptr); if (ob instanceof SerializableString) { jgen.writeString((SerializableString) ob); Number n = (Number) segment.get(ptr); if (n instanceof BigInteger) { jgen.writeNumber((BigInteger) n); Object n = segment.get(ptr); if (n instanceof BigDecimal) { jgen.writeNumber((BigDecimal) n); break; case VALUE_EMBEDDED_OBJECT: jgen.writeObject(segment.get(ptr)); break; default:
@Override public JsonToken nextToken() throws IOException { // If we are closed, nothing more to do if (_closed || (_segment == null)) return null; // Ok, then: any more tokens? if (++_segmentPtr >= Segment.TOKENS_PER_SEGMENT) { _segmentPtr = 0; _segment = _segment.next(); if (_segment == null) { return null; } } _currToken = _segment.type(_segmentPtr); // Field name? Need to update context if (_currToken == JsonToken.FIELD_NAME) { Object ob = _currentObject(); String name = (ob instanceof String) ? ((String) ob) : ob.toString(); _parsingContext.setCurrentName(name); } else if (_currToken == JsonToken.START_OBJECT) { _parsingContext = _parsingContext.createChildObjectContext(); } else if (_currToken == JsonToken.START_ARRAY) { _parsingContext = _parsingContext.createChildArrayContext(); } else if (_currToken == JsonToken.END_OBJECT || _currToken == JsonToken.END_ARRAY) { // Closing JSON Object/Array? Close matching context _parsingContext = _parsingContext.parentOrCopy(); } return _currToken; }
@Override public String nextFieldName() throws IOException { // inlined common case from nextToken() if (_closed || (_segment == null)) { return null; } int ptr = _segmentPtr+1; if ((ptr < Segment.TOKENS_PER_SEGMENT) && (_segment.type(ptr) == JsonToken.FIELD_NAME)) { _segmentPtr = ptr; _currToken = JsonToken.FIELD_NAME; Object ob = _segment.get(ptr); // inlined _currentObject(); String name = (ob instanceof String) ? ((String) ob) : ob.toString(); _parsingContext.setCurrentName(name); return name; } return (nextToken() == JsonToken.FIELD_NAME) ? getCurrentName() : null; }
protected final Object _currentObject() { return _segment.get(_segmentPtr); }
@Override public String nextFieldName() throws IOException { // inlined common case from nextToken() if (_closed || (_segment == null)) return null; int ptr = _segmentPtr+1; if (ptr < Segment.TOKENS_PER_SEGMENT && _segment.type(ptr) == JsonToken.FIELD_NAME) { _segmentPtr = ptr; Object ob = _segment.get(ptr); // inlined _currentObject(); String name = (ob instanceof String) ? ((String) ob) : ob.toString(); _parsingContext.setCurrentName(name); return name; } return (nextToken() == JsonToken.FIELD_NAME) ? getCurrentName() : null; }
protected final Object _currentObject() { return _segment.get(_segmentPtr); }
protected final Object _currentObject() { return _segment.get(_segmentPtr); }
protected final Object _currentObject() { return _segment.get(_segmentPtr); }
protected final Object _currentObject() { return _segment.get(_segmentPtr); }