@Override public Serialiser<Object, byte[]> getSerialisation() { return new AvroSerialiser(); }
@Override public Object deserialise(final byte[] bytes) throws SerialisationException { return deserialise(bytes, 0, bytes.length); }
@Override public byte[] serialise(final Object object) throws SerialisationException { Schema schema = ReflectData.get().getSchema(object.getClass()); DatumWriter<Object> datumWriter = new ReflectDatumWriter<>(schema); DataFileWriter<Object> dataFileWriter = new DataFileWriter<>(datumWriter); ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); try { dataFileWriter.create(schema, byteOut); dataFileWriter.append(object); dataFileWriter.flush(); } catch (final IOException e) { throw new SerialisationException("Unable to serialise given object of class: " + object.getClass().getName(), e); } finally { close(dataFileWriter); } return byteOut.toByteArray(); }
@Override public byte[] serialise(final Object object) throws SerialisationException { Schema schema = ReflectData.get().getSchema(object.getClass()); DatumWriter<Object> datumWriter = new ReflectDatumWriter<>(schema); DataFileWriter<Object> dataFileWriter = new DataFileWriter<>(datumWriter); ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); try { dataFileWriter.create(schema, byteOut); dataFileWriter.append(object); dataFileWriter.flush(); } catch (final IOException e) { throw new SerialisationException("Unable to serialise given object of class: " + object.getClass().getName(), e); } finally { close(dataFileWriter); } return byteOut.toByteArray(); }
@Override public Object deserialise(final byte[] bytes) throws SerialisationException { return deserialise(bytes, 0, bytes.length); }