@Override public void write(DataOutput out) throws IOException { Data.Builder builder = Data.newBuilder(); builder.setDate(this.eventDate); if (null != this.dataType) builder.setDataType(this.dataType.typeName()); if (null != this.uid) builder.setUid(this.uid.toString()); for (String error : errors) builder.addErrors(error); if (null != this.visibility) builder.setVisibility(ByteString.copyFrom(this.visibility.getExpression())); if (null != this.rawFileName) builder.setRawFileName(this.rawFileName); builder.setRawRecordNumber(this.rawRecordNumber); builder.setRawFileTimeStamp(this.rawFileTimeStamp); builder.addAllUuids(this.ids); if (null != this.rawData) builder.setRawData(ByteString.copyFrom(this.rawData)); builder.setRequiresMasking(this.requiresMasking); Data data = builder.build(); byte[] buf = data.toByteArray(); out.writeInt(buf.length); out.write(buf); this.dataOutputSize = buf.length; }