@Override public void writeInt(int n) throws IOException { parser.advance(Symbol.INT); out.writeNumber(n); }
@Override public void writeLong(long n) throws IOException { parser.advance(Symbol.LONG); out.writeNumber(n); }
@Override public void writeNull() throws IOException { parser.advance(Symbol.NULL); out.writeNull(); }
@Override public void writeBoolean(boolean b) throws IOException { parser.advance(Symbol.BOOLEAN); out.writeBoolean(b); }
@Override public void writeString(Utf8 utf8) throws IOException { parser.advance(Symbol.STRING); out.writeString(utf8); }
@Override public void writeFloat(float f) throws IOException { parser.advance(Symbol.FLOAT); out.writeFloat(f); }
@Override public void writeDouble(double d) throws IOException { parser.advance(Symbol.DOUBLE); out.writeDouble(d); }
@Override public void writeString(CharSequence charSequence) throws IOException { parser.advance(Symbol.STRING); out.writeString(charSequence); }
@Override public void writeBoolean(boolean b) throws IOException { parser.advance(Symbol.BOOLEAN); out.writeBoolean(b); }
@Override public void writeString(String str) throws IOException { parser.advance(Symbol.STRING); out.writeString(str); }
@Override public void writeBytes(byte[] bytes, int start, int len) throws IOException { parser.advance(Symbol.BYTES); writeByteArray(bytes, start, len); }
@Override public void writeArrayStart() throws IOException { parser.advance(Symbol.ARRAY_START); out.writeStartArray(); push(); isEmpty.set(depth()); }
@Override public void writeArrayEnd() throws IOException { parser.advance(Symbol.ARRAY_END); out.writeArrayEnd(); pop(); }
@Override public void writeMapEnd() throws IOException { parser.advance(Symbol.MAP_END); out.writeMapEnd(); pop(); }
@Override public void writeMapStart() throws IOException { push(); isEmpty.set(depth()); parser.advance(Symbol.MAP_START); out.writeStartObject(); }
@Override public void writeIndex(int unionIndex) throws IOException { parser.advance(Symbol.UNION); Symbol.Alternative top = (Symbol.Alternative) parser.popSymbol(); Symbol symbol = top.getSymbol(unionIndex); if (symbol != Symbol.NULL) { out.writeStartObject(); out.writeFieldName(top.getLabel(unionIndex)); parser.pushSymbol(Symbol.UNION_END); } parser.pushSymbol(symbol); }
@Override public void writeFixed(byte[] bytes, int start, int len) throws IOException { parser.advance(Symbol.FIXED); Symbol.IntCheckAction top = (Symbol.IntCheckAction) parser.popSymbol(); if (len != top.size) { throw new AvroTypeException( "Incorrect length for fixed binary: expected " + top.size + " but received " + len + " bytes."); } out.writeFixed(bytes, start, len); }