On Tue, Oct 21, 2014 at 10:11 AM, umahida <urvish.mah...@gmail.com> wrote:
> I have complicated nested POJOs. I am able to generate the schema using
> ReflectData tool.
> I want to convert them to Generic Record preferably or Indexed Records.


To convert from a reflect representation to generic you can serialize
instances with ReflectDatumWriter then read them with
GenericDatumReader.  For example, something like:

public Object reflectToGeneric(Object object, Schema s) {
    ReflectDatumWriter<Object> writer = new ReflectDatumWriter<Object>(s);
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    writer.write(object, EncoderFactory.get().directBinaryEncoder(out, null));
    GenericDatumReader<Object> reader = new GenericDatumReader<Object>(s);
    return reader.read(null,
DecoderFactory.get().binaryDecoder(out.toByteArray(), null));
}

If you're converting multiple objects it would be faster to reuse the
writer, reader, encoder, decoder, etc.

Doug

Reply via email to