@Override protected final void _verifyValueWrite(String typeMsg) throws IOException { int status = _writeContext.writeValue(); if (status == JsonWriteContext.STATUS_EXPECT_NAME) { _reportError("Can not "+typeMsg+", expecting field name"); } }
private void _failSizedArrayOrObject() throws IOException { _reportError(String.format("%s size mismatch: number of element encoded is not equal to reported array/map size.", _writeContext.typeDesc())); }
@Override protected final void _verifyValueWrite(String typeMsg) throws IOException { int status = _writeContext.writeValue(); if (status == JsonWriteContext.STATUS_EXPECT_NAME) { _reportError("Can not "+typeMsg+", expecting field name"); } }
@Override // since 2.8 public final void writeFieldId(long size) throws IOException { if (_writeContext.writeFieldName(String.valueOf(size)) == JsonWriteContext.STATUS_EXPECT_VALUE) { _reportError("Can not write a field name, expecting a value"); } _writeNumberNoCheck(size); }
private final void closeComplexElement() throws IOException { switch (_currentRemainingElements) { case INDEFINITE_LENGTH: _writeByte(BYTE_BREAK); break; case 0: // expected for sized ones break; default: _reportError(String.format("%s size mismatch: expected %d more elements", _writeContext.typeDesc(), _currentRemainingElements)); } _currentRemainingElements = (_elementCountsPtr == 0) ? INDEFINITE_LENGTH : _elementCounts[--_elementCountsPtr]; }
@Override public final void writeFieldName(String name) throws IOException { if (_writeContext.writeFieldName(name) == JsonWriteContext.STATUS_EXPECT_VALUE) { _reportError("Can not write a field name, expecting a value"); } _writeString(name); }
@Override public final void writeFieldName(String name) throws IOException { if (_writeContext.writeFieldName(name) == JsonWriteContext.STATUS_EXPECT_VALUE) { _reportError("Can not write a field name, expecting a value"); } _writeString(name); }
@Override public final void writeFieldName(String name) throws IOException { if (_writeContext.writeFieldName(name) == JsonWriteContext.STATUS_EXPECT_VALUE) { _reportError("Can not write a field name, expecting a value"); } _writeString(name); }
@Override public int writeBinary(InputStream data, int dataLength) throws IOException { /* * 28-Mar-2014, tatu: Theoretically we could implement encoder that uses * chunking to output binary content of unknown (a priori) length. But * for no let's require knowledge of length, for simplicity: may be * revisited in future. */ if (dataLength < 0) { throw new UnsupportedOperationException( "Must pass actual length for CBOR encoded data"); } _verifyValueWrite("write Binary value"); int missing; _writeLengthMarker(PREFIX_TYPE_BYTES, dataLength); missing = _writeBytes(data, dataLength); if (missing > 0) { _reportError("Too few bytes available: missing " + missing + " bytes (out of " + dataLength + ")"); } return dataLength; }
@Override public final void writeEndArray() throws IOException { if (!_writeContext.inArray()) { _reportError("Current context not Array but "+_writeContext.typeDesc()); } closeComplexElement(); _writeContext = _writeContext.getParent(); }
@Override public final void writeEndArray() throws IOException { if (!_writeContext.inArray()) { _reportError("Current context not an ARRAY but "+_writeContext.getTypeDesc()); } _writeByte(BYTE_BREAK); _writeContext = _writeContext.getParent(); }
@Override public final void writeEndObject() throws IOException { if (!_writeContext.inObject()) { _reportError("Current context not Object but "+ _writeContext.typeDesc()); } closeComplexElement(); _writeContext = _writeContext.getParent(); }
@Override public final void writeEndArray() throws IOException { if (!_writeContext.inArray()) { _reportError("Current context not an ARRAY but "+_writeContext.getTypeDesc()); } _writeByte(BYTE_BREAK); _writeContext = _writeContext.getParent(); }
@Override public final void writeEndObject() throws IOException { if (!_writeContext.inObject()) { _reportError("Current context not an object but "+_writeContext.getTypeDesc()); } _writeContext = _writeContext.getParent(); _writeByte(BYTE_BREAK); }
@Override public final void writeEndObject() throws IOException { if (!_writeContext.inObject()) { _reportError("Current context not an object but "+_writeContext.getTypeDesc()); } _writeContext = _writeContext.getParent(); _writeByte(BYTE_BREAK); }
@Override public final void writeStringField(String fieldName, String value) throws IOException { if (_writeContext.writeFieldName(fieldName) == JsonWriteContext.STATUS_EXPECT_VALUE) { _reportError("Can not write a field name, expecting a value"); } _writeString(fieldName); // inlined from 'writeString()' if (value == null) { writeNull(); return; } _verifyValueWrite("write String value"); _writeString(value); }
@Override public final void writeStringField(String fieldName, String value) throws IOException { if (_writeContext.writeFieldName(fieldName) == JsonWriteContext.STATUS_EXPECT_VALUE) { _reportError("Can not write a field name, expecting a value"); } _writeString(fieldName); // inlined from 'writeString()' if (value == null) { writeNull(); return; } _verifyValueWrite("write String value"); _writeString(value); }
@Override public final void writeStringField(String fieldName, String value) throws IOException { if (_writeContext.writeFieldName(fieldName) == JsonWriteContext.STATUS_EXPECT_VALUE) { _reportError("Can not write a field name, expecting a value"); } _writeString(fieldName); // inlined from 'writeString()' if (value == null) { writeNull(); return; } _verifyValueWrite("write String value"); _writeString(value); }
@Override public final void writeFieldName(SerializableString name) throws IOException { // Object is a value, need to verify it's allowed if (_writeContext.writeFieldName(name.getValue()) == JsonWriteContext.STATUS_EXPECT_VALUE) { _reportError("Can not write a field name, expecting a value"); } byte[] raw = name.asUnquotedUTF8(); final int len = raw.length; if (len == 0) { _writeByte(BYTE_EMPTY_STRING); return; } _writeLengthMarker(PREFIX_TYPE_TEXT, len); _writeBytes(raw, 0, len); }
@Override public final void writeFieldName(SerializableString name) throws IOException { // Object is a value, need to verify it's allowed if (_writeContext.writeFieldName(name.getValue()) == JsonWriteContext.STATUS_EXPECT_VALUE) { _reportError("Can not write a field name, expecting a value"); } byte[] raw = name.asUnquotedUTF8(); final int len = raw.length; if (len == 0) { _writeByte(BYTE_EMPTY_STRING); return; } _writeLengthMarker(PREFIX_TYPE_TEXT, len); _writeBytes(raw, 0, len); }