@Override public DataOutputStream getDataOutputStream() { return underlying.getDataOutputStream(); }
@Override protected void doWrite(final DataOutputExtended output, final Integer value) throws IOException { try { if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append(value)); } final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeShort(value); } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final String value) throws IOException { try { if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append(value)); } final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeUTF(value); } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final Boolean value) throws IOException { try { if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append(value)); } final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeBoolean(value); } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final Float value) throws IOException { try { if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append(value)); } final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeFloat(value); } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final Double value) throws IOException { try { if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append(value)); } final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeDouble(value); } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final Short value) throws IOException { try { if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append(value)); } final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeShort(value.shortValue()); } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final Integer value) throws IOException { try { if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append(value)); } final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeInt(value.intValue()); } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final Character value) throws IOException { try { if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append(value)); } final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeLong(value.charValue()); } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final Integer value) throws IOException { try { if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append(value)); } final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeByte(value); } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final Long value) throws IOException { try { if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append(value)); } final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeLong(value.intValue()); } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final Byte value) throws IOException { try { if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append(value)); } final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeByte(value.byteValue()); } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final Serializable value) throws IOException { try { if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append("[SERIALIZABLE]")); } // write out as blob of bytes final ObjectOutputStream oos = new ObjectOutputStream(output.getDataOutputStream()); oos.writeObject(value); oos.flush(); } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final byte[] values) throws IOException { try { final DataOutputStream outputStream = output.getDataOutputStream(); final int length = values.length; outputStream.writeInt(length); if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append("length:").append(length).append(" [BYTE ARRAY]")); } // rather than looping through the array, // we take advantage of optimization built into DataOutputStream outputStream.write(values); } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final float[] values) throws IOException { try { final StringBuilder buf = new StringBuilder(); final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeInt(values.length); if (LOG.isDebugEnabled()) { buf.append("length: ").append(values.length); } for (int i = 0; i < values.length; i++) { outputStream.writeFloat(values[i]); if (LOG.isDebugEnabled()) { buf.append(i == 0 ? ": " : ", "); buf.append(values[i]); } } if (LOG.isDebugEnabled()) { log(this, buf); } } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final double[] values) throws IOException { try { final StringBuilder buf = new StringBuilder(); final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeInt(values.length); if (LOG.isDebugEnabled()) { buf.append("length: ").append(values.length); } for (int i = 0; i < values.length; i++) { outputStream.writeDouble(values[i]); if (LOG.isDebugEnabled()) { buf.append(i == 0 ? ": " : ", "); buf.append(values[i]); } } if (LOG.isDebugEnabled()) { log(this, buf); } } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final Encodable[] values) throws IOException { try { final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeInt(values.length); if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append("length: ").append(values.length)); } for (final Encodable encodable : values) { // using FieldType to write out takes care of null handling FieldType.ENCODABLE.write(output, encodable); } } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final Serializable[] values) throws IOException { try { final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeInt(values.length); if (LOG.isDebugEnabled()) { log(this, new StringBuilder().append("length: ").append(values.length)); } for (final Serializable value : values) { // using FieldType to write out takes care of null handling FieldType.SERIALIZABLE.write(output, value); } } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final int[] values) throws IOException { try { final StringBuilder buf = new StringBuilder(); final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeInt(values.length); if (LOG.isDebugEnabled()) { buf.append("length: ").append(values.length); } for (int i = 0; i < values.length; i++) { outputStream.writeInt(values[i]); if (LOG.isDebugEnabled()) { buf.append(i == 0 ? ": " : ", "); buf.append(values[i]); } } if (LOG.isDebugEnabled()) { log(this, buf); } } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }
@Override protected void doWrite(final DataOutputExtended output, final String[] values) throws IOException { try { final StringBuilder buf = new StringBuilder(); final DataOutputStream outputStream = output.getDataOutputStream(); outputStream.writeInt(values.length); if (LOG.isDebugEnabled()) { buf.append("length: ").append(values.length); } for (int i = 0; i < values.length; i++) { // using FieldType to write out takes care of null handling FieldType.STRING.write(output, values[i]); if (LOG.isDebugEnabled()) { buf.append(i == 0 ? ": " : ", "); buf.append(values[i]); } } if (LOG.isDebugEnabled()) { log(this, buf); } } finally { if (LOG.isDebugEnabled()) { unlog(this); } } }