@Override protected Writer _createWriter(OutputStream out, JsonEncoding enc, IOContext ctxt) throws IOException { if (enc == JsonEncoding.UTF8) { return new UTF8Writer(out); } return new OutputStreamWriter(out, enc.getJavaName()); }
public UTF8Writer(OutputStream out) { _out = out; _bufferHolder = _findBufferHolder(); byte[] buffer = _bufferHolder[0]; if (buffer == null) { buffer = new byte[DEFAULT_BUFFER_SIZE]; } else { _bufferHolder[0] = null; } _outBuffer = buffer; /* Max. expansion for a single char (in unmodified UTF-8) is * 4 bytes (or 3 depending on how you view it -- 4 when recombining * surrogate pairs) */ _outBufferEnd = _outBuffer.length - 4; _outPtr = 0; }
write(cbuf[off]); char second = cbuf[off++]; --len; write(convertSurrogate(second)); throwIllegal(c); break; c = convertSurrogate(cbuf[off++]); if (c > 0x10FFFF) { // illegal in JSON as well as in XML _outPtr = outPtr; throwIllegal(c);
c = convertSurrogate(c); throwIllegal(c); } else { // 4 bytes if (c > 0x10FFFF) { // illegal throwIllegal(c);
@Override public Writer append(char c) throws IOException { write(c); return this; }
@Override public void close() throws IOException { if (_out != null) { if (_outPtr > 0) { _out.write(_outBuffer, 0, _outPtr); _outPtr = 0; } OutputStream out = _out; _out = null; if (_bufferHolder != null) { byte[] buf = _outBuffer; if (buf != null) { _outBuffer = null; _bufferHolder[0] = buf; } } out.close(); /* Let's 'flush' orphan surrogate, no matter what; but only * after cleanly closing everything else. */ int code = _surrogate; _surrogate = 0; if (code > 0) { throwIllegal(code); } } }
c = convertSurrogate(c); throwIllegal(c); } else { // 4 bytes if (c > 0x10FFFF) { // illegal throwIllegal(c);
@Override public void write(char[] cbuf) throws IOException { write(cbuf, 0, cbuf.length); }
@Override public void close() throws IOException { if (_out != null) { if (_outPtr > 0) { _out.write(_outBuffer, 0, _outPtr); _outPtr = 0; } OutputStream out = _out; _out = null; if (_bufferHolder != null) { byte[] buf = _outBuffer; if (buf != null) { _outBuffer = null; _bufferHolder[0] = buf; } } out.close(); /* Let's 'flush' orphan surrogate, no matter what; but only * after cleanly closing everything else. */ int code = _surrogate; _surrogate = 0; if (code > 0) { throwIllegal(code); } } }
write(str.charAt(off)); char second = str.charAt(off++); --len; write(convertSurrogate(second)); throwIllegal(c); break; c = convertSurrogate(str.charAt(off++)); if (c > 0x10FFFF) { // illegal, as per RFC 4627 _outPtr = outPtr; throwIllegal(c);
c = convertSurrogate(c); throwIllegal(c); } else { // 4 bytes if (c > 0x10FFFF) { // illegal throwIllegal(c);
@Override public void write(String str) throws IOException { write(str, 0, str.length()); }
@Override protected Writer _createWriter(OutputStream out, JsonEncoding enc, IOContext ctxt) throws IOException { if (enc == JsonEncoding.UTF8) { return new UTF8Writer(out); } return new OutputStreamWriter(out, enc.getJavaName()); }
public UTF8Writer(OutputStream out) { _out = out; _bufferHolder = _findBufferHolder(); byte[] buffer = _bufferHolder[0]; if (buffer == null) { buffer = new byte[DEFAULT_BUFFER_SIZE]; } else { _bufferHolder[0] = null; } _outBuffer = buffer; /* Max. expansion for a single char (in unmodified UTF-8) is * 4 bytes (or 3 depending on how you view it -- 4 when recombining * surrogate pairs) */ _outBufferEnd = _outBuffer.length - 4; _outPtr = 0; }
@Override public void close() throws IOException { if (_out != null) { if (_outPtr > 0) { _out.write(_outBuffer, 0, _outPtr); _outPtr = 0; } OutputStream out = _out; _out = null; if (_bufferHolder != null) { byte[] buf = _outBuffer; if (buf != null) { _outBuffer = null; _bufferHolder[0] = buf; } } out.close(); /* Let's 'flush' orphan surrogate, no matter what; but only * after cleanly closing everything else. */ int code = _surrogate; _surrogate = 0; if (code > 0) { throwIllegal(code); } } }
write(cbuf[off]); char second = cbuf[off++]; --len; write(convertSurrogate(second)); throwIllegal(c); break; c = convertSurrogate(cbuf[off++]); if (c > 0x10FFFF) { // illegal in JSON as well as in XML _outPtr = outPtr; throwIllegal(c);
@Override public Writer append(char c) throws IOException { write(c); return this; }
@Override protected Writer _createWriter(IOContext ioCtxt, OutputStream out, JsonEncoding enc) throws IOException { if (enc == JsonEncoding.UTF8) { return new UTF8Writer(out); } return new OutputStreamWriter(out, enc.getJavaName()); }
public UTF8Writer(OutputStream out) { _out = out; _bufferHolder = _findBufferHolder(); byte[] buffer = _bufferHolder[0]; if (buffer == null) { buffer = new byte[DEFAULT_BUFFER_SIZE]; } else { _bufferHolder[0] = null; } _outBuffer = buffer; /* Max. expansion for a single char (in unmodified UTF-8) is * 4 bytes (or 3 depending on how you view it -- 4 when recombining * surrogate pairs) */ _outBufferEnd = _outBuffer.length - 4; _outPtr = 0; }
write(str.charAt(off)); char second = str.charAt(off++); --len; write(convertSurrogate(second)); throwIllegal(c); break; c = convertSurrogate(str.charAt(off++)); if (c > 0x10FFFF) { // illegal, as per RFC 4627 _outPtr = outPtr; throwIllegal(c);