package org.apache.avro.generic; import org.apache.avro.Schema; import org.apache.avro.io.Encoder; import java.io.IOException; public class FilteredRecordWriter extends GenericDatumWriter { private final GenericData data; public FilteredRecordWriter(Schema root, GenericData data) { super(root, data); this.data = data; } @Override public void writeRecord(Schema schema, Object datum, Encoder out) throws IOException { Object state = data.getRecordState(datum, schema); for (Schema.Field f : schema.getFields()) { if(f.schema().getType() != Schema.Type.NULL) { writeField(datum, f, out, state); } } } }