Guys? Any opinions on this idea?
On 18 Dec 2015 14:01, "Niels Basjes" <[email protected]> wrote:

> Hi,
>
> I'm working on a project where I'm putting Avro records into Kafka and at
> the other end pull them out again.
> For that purpose I wrote two methods 'toBytes' and 'fromBytes' in a
> separate class (see below).
>
> I see this as the type of problem many developers run into.
> Would it be a good idea to generate methods like these into the generated
> Java code?
>
> This would make it possible to serialize and deserialize singles records
> like this:
>
> byte [] someBytes = measurement.toBytes();
> Measurement m = Measurement.fromBytes(someBytes);
>
> Niels Basjes
>
> P.S. possibly not name it toBytes but getBytes (similar to what the String
> class has)
>
> public final class MeasurementSerializer {
>     private MeasurementSerializer() {
>     }
>
>     public static Measurement fromBytes(byte[] bytes) throws IOException {
>         try {
>             DatumReader<Measurement> reader = new 
> SpecificDatumReader<>(Measurement.getClassSchema());
>             Decoder decoder = DecoderFactory.get().binaryDecoder(bytes, null);
>             return reader.read(null, decoder);
>         } catch (RuntimeException rex) {
>             throw new IOException(rex.getMessage());
>         }
>     }
>
>     public static byte[] toBytes(Measurement measurement) throws IOException {
>         try {
>             ByteArrayOutputStream out = new ByteArrayOutputStream();
>             Encoder encoder = EncoderFactory.get().binaryEncoder(out, null);
>             SpecificDatumWriter<Measurement> writer = new 
> SpecificDatumWriter<>(Measurement.class);
>             writer.write(measurement, encoder);
>             encoder.flush();
>             out.close();
>             return out.toByteArray();
>         } catch (RuntimeException rex) {
>             throw new IOException(rex.getMessage());
>         }
>     }
> }
>
>
>
> --
> Best regards / Met vriendelijke groeten,
>
> Niels Basjes
>

Reply via email to