All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.hudi.avro.model.HoodieWriteStat Maven / Gradle / Ivy

/**
 * Autogenerated by Avro
 *
 * DO NOT EDIT DIRECTLY
 */
package org.apache.hudi.avro.model;

import org.apache.avro.generic.GenericArray;
import org.apache.avro.specific.SpecificData;
import org.apache.avro.util.Utf8;
import org.apache.avro.message.BinaryMessageEncoder;
import org.apache.avro.message.BinaryMessageDecoder;
import org.apache.avro.message.SchemaStore;

@org.apache.avro.specific.AvroGenerated
public class HoodieWriteStat extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
  private static final long serialVersionUID = -7657389832893929925L;
  public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"HoodieWriteStat\",\"namespace\":\"org.apache.hudi.avro.model\",\"fields\":[{\"name\":\"fileId\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"default\":null},{\"name\":\"path\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"default\":null},{\"name\":\"prevCommit\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"default\":null},{\"name\":\"numWrites\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"numDeletes\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"numUpdateWrites\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"totalWriteBytes\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"totalWriteErrors\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"partitionPath\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"default\":null},{\"name\":\"totalLogRecords\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"totalLogFiles\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"totalUpdatedRecordsCompacted\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"numInserts\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"totalLogBlocks\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"totalCorruptLogBlock\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"totalRollbackBlocks\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"fileSizeInBytes\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"logVersion\",\"type\":[\"null\",\"int\"],\"default\":null},{\"name\":\"logOffset\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"baseFile\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"default\":null},{\"name\":\"logFiles\",\"type\":[\"null\",{\"type\":\"array\",\"items\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"default\":null}],\"default\":null},{\"name\":\"cdcStats\",\"type\":[\"null\",{\"type\":\"map\",\"values\":\"long\",\"avro.java.string\":\"String\",\"default\":null}],\"default\":null}]}");
  public static org.apache.avro.Schema getClassSchema() { return SCHEMA$; }

  private static SpecificData MODEL$ = new SpecificData();

  private static final BinaryMessageEncoder ENCODER =
      new BinaryMessageEncoder(MODEL$, SCHEMA$);

  private static final BinaryMessageDecoder DECODER =
      new BinaryMessageDecoder(MODEL$, SCHEMA$);

  /**
   * Return the BinaryMessageEncoder instance used by this class.
   * @return the message encoder used by this class
   */
  public static BinaryMessageEncoder getEncoder() {
    return ENCODER;
  }

  /**
   * Return the BinaryMessageDecoder instance used by this class.
   * @return the message decoder used by this class
   */
  public static BinaryMessageDecoder getDecoder() {
    return DECODER;
  }

  /**
   * Create a new BinaryMessageDecoder instance for this class that uses the specified {@link SchemaStore}.
   * @param resolver a {@link SchemaStore} used to find schemas by fingerprint
   * @return a BinaryMessageDecoder instance for this class backed by the given SchemaStore
   */
  public static BinaryMessageDecoder createDecoder(SchemaStore resolver) {
    return new BinaryMessageDecoder(MODEL$, SCHEMA$, resolver);
  }

  /**
   * Serializes this HoodieWriteStat to a ByteBuffer.
   * @return a buffer holding the serialized data for this instance
   * @throws java.io.IOException if this instance could not be serialized
   */
  public java.nio.ByteBuffer toByteBuffer() throws java.io.IOException {
    return ENCODER.encode(this);
  }

  /**
   * Deserializes a HoodieWriteStat from a ByteBuffer.
   * @param b a byte buffer holding serialized data for an instance of this class
   * @return a HoodieWriteStat instance decoded from the given buffer
   * @throws java.io.IOException if the given bytes could not be deserialized into an instance of this class
   */
  public static HoodieWriteStat fromByteBuffer(
      java.nio.ByteBuffer b) throws java.io.IOException {
    return DECODER.decode(b);
  }

   private java.lang.String fileId;
   private java.lang.String path;
   private java.lang.String prevCommit;
   private java.lang.Long numWrites;
   private java.lang.Long numDeletes;
   private java.lang.Long numUpdateWrites;
   private java.lang.Long totalWriteBytes;
   private java.lang.Long totalWriteErrors;
   private java.lang.String partitionPath;
   private java.lang.Long totalLogRecords;
   private java.lang.Long totalLogFiles;
   private java.lang.Long totalUpdatedRecordsCompacted;
   private java.lang.Long numInserts;
   private java.lang.Long totalLogBlocks;
   private java.lang.Long totalCorruptLogBlock;
   private java.lang.Long totalRollbackBlocks;
   private java.lang.Long fileSizeInBytes;
   private java.lang.Integer logVersion;
   private java.lang.Long logOffset;
   private java.lang.String baseFile;
   private java.util.List logFiles;
   private java.util.Map cdcStats;

  /**
   * Default constructor.  Note that this does not initialize fields
   * to their default values from the schema.  If that is desired then
   * one should use newBuilder().
   */
  public HoodieWriteStat() {}

  /**
   * All-args constructor.
   * @param fileId The new value for fileId
   * @param path The new value for path
   * @param prevCommit The new value for prevCommit
   * @param numWrites The new value for numWrites
   * @param numDeletes The new value for numDeletes
   * @param numUpdateWrites The new value for numUpdateWrites
   * @param totalWriteBytes The new value for totalWriteBytes
   * @param totalWriteErrors The new value for totalWriteErrors
   * @param partitionPath The new value for partitionPath
   * @param totalLogRecords The new value for totalLogRecords
   * @param totalLogFiles The new value for totalLogFiles
   * @param totalUpdatedRecordsCompacted The new value for totalUpdatedRecordsCompacted
   * @param numInserts The new value for numInserts
   * @param totalLogBlocks The new value for totalLogBlocks
   * @param totalCorruptLogBlock The new value for totalCorruptLogBlock
   * @param totalRollbackBlocks The new value for totalRollbackBlocks
   * @param fileSizeInBytes The new value for fileSizeInBytes
   * @param logVersion The new value for logVersion
   * @param logOffset The new value for logOffset
   * @param baseFile The new value for baseFile
   * @param logFiles The new value for logFiles
   * @param cdcStats The new value for cdcStats
   */
  public HoodieWriteStat(java.lang.String fileId, java.lang.String path, java.lang.String prevCommit, java.lang.Long numWrites, java.lang.Long numDeletes, java.lang.Long numUpdateWrites, java.lang.Long totalWriteBytes, java.lang.Long totalWriteErrors, java.lang.String partitionPath, java.lang.Long totalLogRecords, java.lang.Long totalLogFiles, java.lang.Long totalUpdatedRecordsCompacted, java.lang.Long numInserts, java.lang.Long totalLogBlocks, java.lang.Long totalCorruptLogBlock, java.lang.Long totalRollbackBlocks, java.lang.Long fileSizeInBytes, java.lang.Integer logVersion, java.lang.Long logOffset, java.lang.String baseFile, java.util.List logFiles, java.util.Map cdcStats) {
    this.fileId = fileId;
    this.path = path;
    this.prevCommit = prevCommit;
    this.numWrites = numWrites;
    this.numDeletes = numDeletes;
    this.numUpdateWrites = numUpdateWrites;
    this.totalWriteBytes = totalWriteBytes;
    this.totalWriteErrors = totalWriteErrors;
    this.partitionPath = partitionPath;
    this.totalLogRecords = totalLogRecords;
    this.totalLogFiles = totalLogFiles;
    this.totalUpdatedRecordsCompacted = totalUpdatedRecordsCompacted;
    this.numInserts = numInserts;
    this.totalLogBlocks = totalLogBlocks;
    this.totalCorruptLogBlock = totalCorruptLogBlock;
    this.totalRollbackBlocks = totalRollbackBlocks;
    this.fileSizeInBytes = fileSizeInBytes;
    this.logVersion = logVersion;
    this.logOffset = logOffset;
    this.baseFile = baseFile;
    this.logFiles = logFiles;
    this.cdcStats = cdcStats;
  }

  public org.apache.avro.specific.SpecificData getSpecificData() { return MODEL$; }
  public org.apache.avro.Schema getSchema() { return SCHEMA$; }
  // Used by DatumWriter.  Applications should not call.
  public java.lang.Object get(int field$) {
    switch (field$) {
    case 0: return fileId;
    case 1: return path;
    case 2: return prevCommit;
    case 3: return numWrites;
    case 4: return numDeletes;
    case 5: return numUpdateWrites;
    case 6: return totalWriteBytes;
    case 7: return totalWriteErrors;
    case 8: return partitionPath;
    case 9: return totalLogRecords;
    case 10: return totalLogFiles;
    case 11: return totalUpdatedRecordsCompacted;
    case 12: return numInserts;
    case 13: return totalLogBlocks;
    case 14: return totalCorruptLogBlock;
    case 15: return totalRollbackBlocks;
    case 16: return fileSizeInBytes;
    case 17: return logVersion;
    case 18: return logOffset;
    case 19: return baseFile;
    case 20: return logFiles;
    case 21: return cdcStats;
    default: throw new IndexOutOfBoundsException("Invalid index: " + field$);
    }
  }

  // Used by DatumReader.  Applications should not call.
  @SuppressWarnings(value="unchecked")
  public void put(int field$, java.lang.Object value$) {
    switch (field$) {
    case 0: fileId = value$ != null ? value$.toString() : null; break;
    case 1: path = value$ != null ? value$.toString() : null; break;
    case 2: prevCommit = value$ != null ? value$.toString() : null; break;
    case 3: numWrites = (java.lang.Long)value$; break;
    case 4: numDeletes = (java.lang.Long)value$; break;
    case 5: numUpdateWrites = (java.lang.Long)value$; break;
    case 6: totalWriteBytes = (java.lang.Long)value$; break;
    case 7: totalWriteErrors = (java.lang.Long)value$; break;
    case 8: partitionPath = value$ != null ? value$.toString() : null; break;
    case 9: totalLogRecords = (java.lang.Long)value$; break;
    case 10: totalLogFiles = (java.lang.Long)value$; break;
    case 11: totalUpdatedRecordsCompacted = (java.lang.Long)value$; break;
    case 12: numInserts = (java.lang.Long)value$; break;
    case 13: totalLogBlocks = (java.lang.Long)value$; break;
    case 14: totalCorruptLogBlock = (java.lang.Long)value$; break;
    case 15: totalRollbackBlocks = (java.lang.Long)value$; break;
    case 16: fileSizeInBytes = (java.lang.Long)value$; break;
    case 17: logVersion = (java.lang.Integer)value$; break;
    case 18: logOffset = (java.lang.Long)value$; break;
    case 19: baseFile = value$ != null ? value$.toString() : null; break;
    case 20: logFiles = (java.util.List)value$; break;
    case 21: cdcStats = (java.util.Map)value$; break;
    default: throw new IndexOutOfBoundsException("Invalid index: " + field$);
    }
  }

  /**
   * Gets the value of the 'fileId' field.
   * @return The value of the 'fileId' field.
   */
  public java.lang.String getFileId() {
    return fileId;
  }


  /**
   * Sets the value of the 'fileId' field.
   * @param value the value to set.
   */
  public void setFileId(java.lang.String value) {
    this.fileId = value;
  }

  /**
   * Gets the value of the 'path' field.
   * @return The value of the 'path' field.
   */
  public java.lang.String getPath() {
    return path;
  }


  /**
   * Sets the value of the 'path' field.
   * @param value the value to set.
   */
  public void setPath(java.lang.String value) {
    this.path = value;
  }

  /**
   * Gets the value of the 'prevCommit' field.
   * @return The value of the 'prevCommit' field.
   */
  public java.lang.String getPrevCommit() {
    return prevCommit;
  }


  /**
   * Sets the value of the 'prevCommit' field.
   * @param value the value to set.
   */
  public void setPrevCommit(java.lang.String value) {
    this.prevCommit = value;
  }

  /**
   * Gets the value of the 'numWrites' field.
   * @return The value of the 'numWrites' field.
   */
  public java.lang.Long getNumWrites() {
    return numWrites;
  }


  /**
   * Sets the value of the 'numWrites' field.
   * @param value the value to set.
   */
  public void setNumWrites(java.lang.Long value) {
    this.numWrites = value;
  }

  /**
   * Gets the value of the 'numDeletes' field.
   * @return The value of the 'numDeletes' field.
   */
  public java.lang.Long getNumDeletes() {
    return numDeletes;
  }


  /**
   * Sets the value of the 'numDeletes' field.
   * @param value the value to set.
   */
  public void setNumDeletes(java.lang.Long value) {
    this.numDeletes = value;
  }

  /**
   * Gets the value of the 'numUpdateWrites' field.
   * @return The value of the 'numUpdateWrites' field.
   */
  public java.lang.Long getNumUpdateWrites() {
    return numUpdateWrites;
  }


  /**
   * Sets the value of the 'numUpdateWrites' field.
   * @param value the value to set.
   */
  public void setNumUpdateWrites(java.lang.Long value) {
    this.numUpdateWrites = value;
  }

  /**
   * Gets the value of the 'totalWriteBytes' field.
   * @return The value of the 'totalWriteBytes' field.
   */
  public java.lang.Long getTotalWriteBytes() {
    return totalWriteBytes;
  }


  /**
   * Sets the value of the 'totalWriteBytes' field.
   * @param value the value to set.
   */
  public void setTotalWriteBytes(java.lang.Long value) {
    this.totalWriteBytes = value;
  }

  /**
   * Gets the value of the 'totalWriteErrors' field.
   * @return The value of the 'totalWriteErrors' field.
   */
  public java.lang.Long getTotalWriteErrors() {
    return totalWriteErrors;
  }


  /**
   * Sets the value of the 'totalWriteErrors' field.
   * @param value the value to set.
   */
  public void setTotalWriteErrors(java.lang.Long value) {
    this.totalWriteErrors = value;
  }

  /**
   * Gets the value of the 'partitionPath' field.
   * @return The value of the 'partitionPath' field.
   */
  public java.lang.String getPartitionPath() {
    return partitionPath;
  }


  /**
   * Sets the value of the 'partitionPath' field.
   * @param value the value to set.
   */
  public void setPartitionPath(java.lang.String value) {
    this.partitionPath = value;
  }

  /**
   * Gets the value of the 'totalLogRecords' field.
   * @return The value of the 'totalLogRecords' field.
   */
  public java.lang.Long getTotalLogRecords() {
    return totalLogRecords;
  }


  /**
   * Sets the value of the 'totalLogRecords' field.
   * @param value the value to set.
   */
  public void setTotalLogRecords(java.lang.Long value) {
    this.totalLogRecords = value;
  }

  /**
   * Gets the value of the 'totalLogFiles' field.
   * @return The value of the 'totalLogFiles' field.
   */
  public java.lang.Long getTotalLogFiles() {
    return totalLogFiles;
  }


  /**
   * Sets the value of the 'totalLogFiles' field.
   * @param value the value to set.
   */
  public void setTotalLogFiles(java.lang.Long value) {
    this.totalLogFiles = value;
  }

  /**
   * Gets the value of the 'totalUpdatedRecordsCompacted' field.
   * @return The value of the 'totalUpdatedRecordsCompacted' field.
   */
  public java.lang.Long getTotalUpdatedRecordsCompacted() {
    return totalUpdatedRecordsCompacted;
  }


  /**
   * Sets the value of the 'totalUpdatedRecordsCompacted' field.
   * @param value the value to set.
   */
  public void setTotalUpdatedRecordsCompacted(java.lang.Long value) {
    this.totalUpdatedRecordsCompacted = value;
  }

  /**
   * Gets the value of the 'numInserts' field.
   * @return The value of the 'numInserts' field.
   */
  public java.lang.Long getNumInserts() {
    return numInserts;
  }


  /**
   * Sets the value of the 'numInserts' field.
   * @param value the value to set.
   */
  public void setNumInserts(java.lang.Long value) {
    this.numInserts = value;
  }

  /**
   * Gets the value of the 'totalLogBlocks' field.
   * @return The value of the 'totalLogBlocks' field.
   */
  public java.lang.Long getTotalLogBlocks() {
    return totalLogBlocks;
  }


  /**
   * Sets the value of the 'totalLogBlocks' field.
   * @param value the value to set.
   */
  public void setTotalLogBlocks(java.lang.Long value) {
    this.totalLogBlocks = value;
  }

  /**
   * Gets the value of the 'totalCorruptLogBlock' field.
   * @return The value of the 'totalCorruptLogBlock' field.
   */
  public java.lang.Long getTotalCorruptLogBlock() {
    return totalCorruptLogBlock;
  }


  /**
   * Sets the value of the 'totalCorruptLogBlock' field.
   * @param value the value to set.
   */
  public void setTotalCorruptLogBlock(java.lang.Long value) {
    this.totalCorruptLogBlock = value;
  }

  /**
   * Gets the value of the 'totalRollbackBlocks' field.
   * @return The value of the 'totalRollbackBlocks' field.
   */
  public java.lang.Long getTotalRollbackBlocks() {
    return totalRollbackBlocks;
  }


  /**
   * Sets the value of the 'totalRollbackBlocks' field.
   * @param value the value to set.
   */
  public void setTotalRollbackBlocks(java.lang.Long value) {
    this.totalRollbackBlocks = value;
  }

  /**
   * Gets the value of the 'fileSizeInBytes' field.
   * @return The value of the 'fileSizeInBytes' field.
   */
  public java.lang.Long getFileSizeInBytes() {
    return fileSizeInBytes;
  }


  /**
   * Sets the value of the 'fileSizeInBytes' field.
   * @param value the value to set.
   */
  public void setFileSizeInBytes(java.lang.Long value) {
    this.fileSizeInBytes = value;
  }

  /**
   * Gets the value of the 'logVersion' field.
   * @return The value of the 'logVersion' field.
   */
  public java.lang.Integer getLogVersion() {
    return logVersion;
  }


  /**
   * Sets the value of the 'logVersion' field.
   * @param value the value to set.
   */
  public void setLogVersion(java.lang.Integer value) {
    this.logVersion = value;
  }

  /**
   * Gets the value of the 'logOffset' field.
   * @return The value of the 'logOffset' field.
   */
  public java.lang.Long getLogOffset() {
    return logOffset;
  }


  /**
   * Sets the value of the 'logOffset' field.
   * @param value the value to set.
   */
  public void setLogOffset(java.lang.Long value) {
    this.logOffset = value;
  }

  /**
   * Gets the value of the 'baseFile' field.
   * @return The value of the 'baseFile' field.
   */
  public java.lang.String getBaseFile() {
    return baseFile;
  }


  /**
   * Sets the value of the 'baseFile' field.
   * @param value the value to set.
   */
  public void setBaseFile(java.lang.String value) {
    this.baseFile = value;
  }

  /**
   * Gets the value of the 'logFiles' field.
   * @return The value of the 'logFiles' field.
   */
  public java.util.List getLogFiles() {
    return logFiles;
  }


  /**
   * Sets the value of the 'logFiles' field.
   * @param value the value to set.
   */
  public void setLogFiles(java.util.List value) {
    this.logFiles = value;
  }

  /**
   * Gets the value of the 'cdcStats' field.
   * @return The value of the 'cdcStats' field.
   */
  public java.util.Map getCdcStats() {
    return cdcStats;
  }


  /**
   * Sets the value of the 'cdcStats' field.
   * @param value the value to set.
   */
  public void setCdcStats(java.util.Map value) {
    this.cdcStats = value;
  }

  /**
   * Creates a new HoodieWriteStat RecordBuilder.
   * @return A new HoodieWriteStat RecordBuilder
   */
  public static org.apache.hudi.avro.model.HoodieWriteStat.Builder newBuilder() {
    return new org.apache.hudi.avro.model.HoodieWriteStat.Builder();
  }

  /**
   * Creates a new HoodieWriteStat RecordBuilder by copying an existing Builder.
   * @param other The existing builder to copy.
   * @return A new HoodieWriteStat RecordBuilder
   */
  public static org.apache.hudi.avro.model.HoodieWriteStat.Builder newBuilder(org.apache.hudi.avro.model.HoodieWriteStat.Builder other) {
    if (other == null) {
      return new org.apache.hudi.avro.model.HoodieWriteStat.Builder();
    } else {
      return new org.apache.hudi.avro.model.HoodieWriteStat.Builder(other);
    }
  }

  /**
   * Creates a new HoodieWriteStat RecordBuilder by copying an existing HoodieWriteStat instance.
   * @param other The existing instance to copy.
   * @return A new HoodieWriteStat RecordBuilder
   */
  public static org.apache.hudi.avro.model.HoodieWriteStat.Builder newBuilder(org.apache.hudi.avro.model.HoodieWriteStat other) {
    if (other == null) {
      return new org.apache.hudi.avro.model.HoodieWriteStat.Builder();
    } else {
      return new org.apache.hudi.avro.model.HoodieWriteStat.Builder(other);
    }
  }

  /**
   * RecordBuilder for HoodieWriteStat instances.
   */
  @org.apache.avro.specific.AvroGenerated
  public static class Builder extends org.apache.avro.specific.SpecificRecordBuilderBase
    implements org.apache.avro.data.RecordBuilder {

    private java.lang.String fileId;
    private java.lang.String path;
    private java.lang.String prevCommit;
    private java.lang.Long numWrites;
    private java.lang.Long numDeletes;
    private java.lang.Long numUpdateWrites;
    private java.lang.Long totalWriteBytes;
    private java.lang.Long totalWriteErrors;
    private java.lang.String partitionPath;
    private java.lang.Long totalLogRecords;
    private java.lang.Long totalLogFiles;
    private java.lang.Long totalUpdatedRecordsCompacted;
    private java.lang.Long numInserts;
    private java.lang.Long totalLogBlocks;
    private java.lang.Long totalCorruptLogBlock;
    private java.lang.Long totalRollbackBlocks;
    private java.lang.Long fileSizeInBytes;
    private java.lang.Integer logVersion;
    private java.lang.Long logOffset;
    private java.lang.String baseFile;
    private java.util.List logFiles;
    private java.util.Map cdcStats;

    /** Creates a new Builder */
    private Builder() {
      super(SCHEMA$);
    }

    /**
     * Creates a Builder by copying an existing Builder.
     * @param other The existing Builder to copy.
     */
    private Builder(org.apache.hudi.avro.model.HoodieWriteStat.Builder other) {
      super(other);
      if (isValidValue(fields()[0], other.fileId)) {
        this.fileId = data().deepCopy(fields()[0].schema(), other.fileId);
        fieldSetFlags()[0] = other.fieldSetFlags()[0];
      }
      if (isValidValue(fields()[1], other.path)) {
        this.path = data().deepCopy(fields()[1].schema(), other.path);
        fieldSetFlags()[1] = other.fieldSetFlags()[1];
      }
      if (isValidValue(fields()[2], other.prevCommit)) {
        this.prevCommit = data().deepCopy(fields()[2].schema(), other.prevCommit);
        fieldSetFlags()[2] = other.fieldSetFlags()[2];
      }
      if (isValidValue(fields()[3], other.numWrites)) {
        this.numWrites = data().deepCopy(fields()[3].schema(), other.numWrites);
        fieldSetFlags()[3] = other.fieldSetFlags()[3];
      }
      if (isValidValue(fields()[4], other.numDeletes)) {
        this.numDeletes = data().deepCopy(fields()[4].schema(), other.numDeletes);
        fieldSetFlags()[4] = other.fieldSetFlags()[4];
      }
      if (isValidValue(fields()[5], other.numUpdateWrites)) {
        this.numUpdateWrites = data().deepCopy(fields()[5].schema(), other.numUpdateWrites);
        fieldSetFlags()[5] = other.fieldSetFlags()[5];
      }
      if (isValidValue(fields()[6], other.totalWriteBytes)) {
        this.totalWriteBytes = data().deepCopy(fields()[6].schema(), other.totalWriteBytes);
        fieldSetFlags()[6] = other.fieldSetFlags()[6];
      }
      if (isValidValue(fields()[7], other.totalWriteErrors)) {
        this.totalWriteErrors = data().deepCopy(fields()[7].schema(), other.totalWriteErrors);
        fieldSetFlags()[7] = other.fieldSetFlags()[7];
      }
      if (isValidValue(fields()[8], other.partitionPath)) {
        this.partitionPath = data().deepCopy(fields()[8].schema(), other.partitionPath);
        fieldSetFlags()[8] = other.fieldSetFlags()[8];
      }
      if (isValidValue(fields()[9], other.totalLogRecords)) {
        this.totalLogRecords = data().deepCopy(fields()[9].schema(), other.totalLogRecords);
        fieldSetFlags()[9] = other.fieldSetFlags()[9];
      }
      if (isValidValue(fields()[10], other.totalLogFiles)) {
        this.totalLogFiles = data().deepCopy(fields()[10].schema(), other.totalLogFiles);
        fieldSetFlags()[10] = other.fieldSetFlags()[10];
      }
      if (isValidValue(fields()[11], other.totalUpdatedRecordsCompacted)) {
        this.totalUpdatedRecordsCompacted = data().deepCopy(fields()[11].schema(), other.totalUpdatedRecordsCompacted);
        fieldSetFlags()[11] = other.fieldSetFlags()[11];
      }
      if (isValidValue(fields()[12], other.numInserts)) {
        this.numInserts = data().deepCopy(fields()[12].schema(), other.numInserts);
        fieldSetFlags()[12] = other.fieldSetFlags()[12];
      }
      if (isValidValue(fields()[13], other.totalLogBlocks)) {
        this.totalLogBlocks = data().deepCopy(fields()[13].schema(), other.totalLogBlocks);
        fieldSetFlags()[13] = other.fieldSetFlags()[13];
      }
      if (isValidValue(fields()[14], other.totalCorruptLogBlock)) {
        this.totalCorruptLogBlock = data().deepCopy(fields()[14].schema(), other.totalCorruptLogBlock);
        fieldSetFlags()[14] = other.fieldSetFlags()[14];
      }
      if (isValidValue(fields()[15], other.totalRollbackBlocks)) {
        this.totalRollbackBlocks = data().deepCopy(fields()[15].schema(), other.totalRollbackBlocks);
        fieldSetFlags()[15] = other.fieldSetFlags()[15];
      }
      if (isValidValue(fields()[16], other.fileSizeInBytes)) {
        this.fileSizeInBytes = data().deepCopy(fields()[16].schema(), other.fileSizeInBytes);
        fieldSetFlags()[16] = other.fieldSetFlags()[16];
      }
      if (isValidValue(fields()[17], other.logVersion)) {
        this.logVersion = data().deepCopy(fields()[17].schema(), other.logVersion);
        fieldSetFlags()[17] = other.fieldSetFlags()[17];
      }
      if (isValidValue(fields()[18], other.logOffset)) {
        this.logOffset = data().deepCopy(fields()[18].schema(), other.logOffset);
        fieldSetFlags()[18] = other.fieldSetFlags()[18];
      }
      if (isValidValue(fields()[19], other.baseFile)) {
        this.baseFile = data().deepCopy(fields()[19].schema(), other.baseFile);
        fieldSetFlags()[19] = other.fieldSetFlags()[19];
      }
      if (isValidValue(fields()[20], other.logFiles)) {
        this.logFiles = data().deepCopy(fields()[20].schema(), other.logFiles);
        fieldSetFlags()[20] = other.fieldSetFlags()[20];
      }
      if (isValidValue(fields()[21], other.cdcStats)) {
        this.cdcStats = data().deepCopy(fields()[21].schema(), other.cdcStats);
        fieldSetFlags()[21] = other.fieldSetFlags()[21];
      }
    }

    /**
     * Creates a Builder by copying an existing HoodieWriteStat instance
     * @param other The existing instance to copy.
     */
    private Builder(org.apache.hudi.avro.model.HoodieWriteStat other) {
      super(SCHEMA$);
      if (isValidValue(fields()[0], other.fileId)) {
        this.fileId = data().deepCopy(fields()[0].schema(), other.fileId);
        fieldSetFlags()[0] = true;
      }
      if (isValidValue(fields()[1], other.path)) {
        this.path = data().deepCopy(fields()[1].schema(), other.path);
        fieldSetFlags()[1] = true;
      }
      if (isValidValue(fields()[2], other.prevCommit)) {
        this.prevCommit = data().deepCopy(fields()[2].schema(), other.prevCommit);
        fieldSetFlags()[2] = true;
      }
      if (isValidValue(fields()[3], other.numWrites)) {
        this.numWrites = data().deepCopy(fields()[3].schema(), other.numWrites);
        fieldSetFlags()[3] = true;
      }
      if (isValidValue(fields()[4], other.numDeletes)) {
        this.numDeletes = data().deepCopy(fields()[4].schema(), other.numDeletes);
        fieldSetFlags()[4] = true;
      }
      if (isValidValue(fields()[5], other.numUpdateWrites)) {
        this.numUpdateWrites = data().deepCopy(fields()[5].schema(), other.numUpdateWrites);
        fieldSetFlags()[5] = true;
      }
      if (isValidValue(fields()[6], other.totalWriteBytes)) {
        this.totalWriteBytes = data().deepCopy(fields()[6].schema(), other.totalWriteBytes);
        fieldSetFlags()[6] = true;
      }
      if (isValidValue(fields()[7], other.totalWriteErrors)) {
        this.totalWriteErrors = data().deepCopy(fields()[7].schema(), other.totalWriteErrors);
        fieldSetFlags()[7] = true;
      }
      if (isValidValue(fields()[8], other.partitionPath)) {
        this.partitionPath = data().deepCopy(fields()[8].schema(), other.partitionPath);
        fieldSetFlags()[8] = true;
      }
      if (isValidValue(fields()[9], other.totalLogRecords)) {
        this.totalLogRecords = data().deepCopy(fields()[9].schema(), other.totalLogRecords);
        fieldSetFlags()[9] = true;
      }
      if (isValidValue(fields()[10], other.totalLogFiles)) {
        this.totalLogFiles = data().deepCopy(fields()[10].schema(), other.totalLogFiles);
        fieldSetFlags()[10] = true;
      }
      if (isValidValue(fields()[11], other.totalUpdatedRecordsCompacted)) {
        this.totalUpdatedRecordsCompacted = data().deepCopy(fields()[11].schema(), other.totalUpdatedRecordsCompacted);
        fieldSetFlags()[11] = true;
      }
      if (isValidValue(fields()[12], other.numInserts)) {
        this.numInserts = data().deepCopy(fields()[12].schema(), other.numInserts);
        fieldSetFlags()[12] = true;
      }
      if (isValidValue(fields()[13], other.totalLogBlocks)) {
        this.totalLogBlocks = data().deepCopy(fields()[13].schema(), other.totalLogBlocks);
        fieldSetFlags()[13] = true;
      }
      if (isValidValue(fields()[14], other.totalCorruptLogBlock)) {
        this.totalCorruptLogBlock = data().deepCopy(fields()[14].schema(), other.totalCorruptLogBlock);
        fieldSetFlags()[14] = true;
      }
      if (isValidValue(fields()[15], other.totalRollbackBlocks)) {
        this.totalRollbackBlocks = data().deepCopy(fields()[15].schema(), other.totalRollbackBlocks);
        fieldSetFlags()[15] = true;
      }
      if (isValidValue(fields()[16], other.fileSizeInBytes)) {
        this.fileSizeInBytes = data().deepCopy(fields()[16].schema(), other.fileSizeInBytes);
        fieldSetFlags()[16] = true;
      }
      if (isValidValue(fields()[17], other.logVersion)) {
        this.logVersion = data().deepCopy(fields()[17].schema(), other.logVersion);
        fieldSetFlags()[17] = true;
      }
      if (isValidValue(fields()[18], other.logOffset)) {
        this.logOffset = data().deepCopy(fields()[18].schema(), other.logOffset);
        fieldSetFlags()[18] = true;
      }
      if (isValidValue(fields()[19], other.baseFile)) {
        this.baseFile = data().deepCopy(fields()[19].schema(), other.baseFile);
        fieldSetFlags()[19] = true;
      }
      if (isValidValue(fields()[20], other.logFiles)) {
        this.logFiles = data().deepCopy(fields()[20].schema(), other.logFiles);
        fieldSetFlags()[20] = true;
      }
      if (isValidValue(fields()[21], other.cdcStats)) {
        this.cdcStats = data().deepCopy(fields()[21].schema(), other.cdcStats);
        fieldSetFlags()[21] = true;
      }
    }

    /**
      * Gets the value of the 'fileId' field.
      * @return The value.
      */
    public java.lang.String getFileId() {
      return fileId;
    }


    /**
      * Sets the value of the 'fileId' field.
      * @param value The value of 'fileId'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setFileId(java.lang.String value) {
      validate(fields()[0], value);
      this.fileId = value;
      fieldSetFlags()[0] = true;
      return this;
    }

    /**
      * Checks whether the 'fileId' field has been set.
      * @return True if the 'fileId' field has been set, false otherwise.
      */
    public boolean hasFileId() {
      return fieldSetFlags()[0];
    }


    /**
      * Clears the value of the 'fileId' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearFileId() {
      fileId = null;
      fieldSetFlags()[0] = false;
      return this;
    }

    /**
      * Gets the value of the 'path' field.
      * @return The value.
      */
    public java.lang.String getPath() {
      return path;
    }


    /**
      * Sets the value of the 'path' field.
      * @param value The value of 'path'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setPath(java.lang.String value) {
      validate(fields()[1], value);
      this.path = value;
      fieldSetFlags()[1] = true;
      return this;
    }

    /**
      * Checks whether the 'path' field has been set.
      * @return True if the 'path' field has been set, false otherwise.
      */
    public boolean hasPath() {
      return fieldSetFlags()[1];
    }


    /**
      * Clears the value of the 'path' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearPath() {
      path = null;
      fieldSetFlags()[1] = false;
      return this;
    }

    /**
      * Gets the value of the 'prevCommit' field.
      * @return The value.
      */
    public java.lang.String getPrevCommit() {
      return prevCommit;
    }


    /**
      * Sets the value of the 'prevCommit' field.
      * @param value The value of 'prevCommit'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setPrevCommit(java.lang.String value) {
      validate(fields()[2], value);
      this.prevCommit = value;
      fieldSetFlags()[2] = true;
      return this;
    }

    /**
      * Checks whether the 'prevCommit' field has been set.
      * @return True if the 'prevCommit' field has been set, false otherwise.
      */
    public boolean hasPrevCommit() {
      return fieldSetFlags()[2];
    }


    /**
      * Clears the value of the 'prevCommit' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearPrevCommit() {
      prevCommit = null;
      fieldSetFlags()[2] = false;
      return this;
    }

    /**
      * Gets the value of the 'numWrites' field.
      * @return The value.
      */
    public java.lang.Long getNumWrites() {
      return numWrites;
    }


    /**
      * Sets the value of the 'numWrites' field.
      * @param value The value of 'numWrites'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setNumWrites(java.lang.Long value) {
      validate(fields()[3], value);
      this.numWrites = value;
      fieldSetFlags()[3] = true;
      return this;
    }

    /**
      * Checks whether the 'numWrites' field has been set.
      * @return True if the 'numWrites' field has been set, false otherwise.
      */
    public boolean hasNumWrites() {
      return fieldSetFlags()[3];
    }


    /**
      * Clears the value of the 'numWrites' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearNumWrites() {
      numWrites = null;
      fieldSetFlags()[3] = false;
      return this;
    }

    /**
      * Gets the value of the 'numDeletes' field.
      * @return The value.
      */
    public java.lang.Long getNumDeletes() {
      return numDeletes;
    }


    /**
      * Sets the value of the 'numDeletes' field.
      * @param value The value of 'numDeletes'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setNumDeletes(java.lang.Long value) {
      validate(fields()[4], value);
      this.numDeletes = value;
      fieldSetFlags()[4] = true;
      return this;
    }

    /**
      * Checks whether the 'numDeletes' field has been set.
      * @return True if the 'numDeletes' field has been set, false otherwise.
      */
    public boolean hasNumDeletes() {
      return fieldSetFlags()[4];
    }


    /**
      * Clears the value of the 'numDeletes' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearNumDeletes() {
      numDeletes = null;
      fieldSetFlags()[4] = false;
      return this;
    }

    /**
      * Gets the value of the 'numUpdateWrites' field.
      * @return The value.
      */
    public java.lang.Long getNumUpdateWrites() {
      return numUpdateWrites;
    }


    /**
      * Sets the value of the 'numUpdateWrites' field.
      * @param value The value of 'numUpdateWrites'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setNumUpdateWrites(java.lang.Long value) {
      validate(fields()[5], value);
      this.numUpdateWrites = value;
      fieldSetFlags()[5] = true;
      return this;
    }

    /**
      * Checks whether the 'numUpdateWrites' field has been set.
      * @return True if the 'numUpdateWrites' field has been set, false otherwise.
      */
    public boolean hasNumUpdateWrites() {
      return fieldSetFlags()[5];
    }


    /**
      * Clears the value of the 'numUpdateWrites' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearNumUpdateWrites() {
      numUpdateWrites = null;
      fieldSetFlags()[5] = false;
      return this;
    }

    /**
      * Gets the value of the 'totalWriteBytes' field.
      * @return The value.
      */
    public java.lang.Long getTotalWriteBytes() {
      return totalWriteBytes;
    }


    /**
      * Sets the value of the 'totalWriteBytes' field.
      * @param value The value of 'totalWriteBytes'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setTotalWriteBytes(java.lang.Long value) {
      validate(fields()[6], value);
      this.totalWriteBytes = value;
      fieldSetFlags()[6] = true;
      return this;
    }

    /**
      * Checks whether the 'totalWriteBytes' field has been set.
      * @return True if the 'totalWriteBytes' field has been set, false otherwise.
      */
    public boolean hasTotalWriteBytes() {
      return fieldSetFlags()[6];
    }


    /**
      * Clears the value of the 'totalWriteBytes' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearTotalWriteBytes() {
      totalWriteBytes = null;
      fieldSetFlags()[6] = false;
      return this;
    }

    /**
      * Gets the value of the 'totalWriteErrors' field.
      * @return The value.
      */
    public java.lang.Long getTotalWriteErrors() {
      return totalWriteErrors;
    }


    /**
      * Sets the value of the 'totalWriteErrors' field.
      * @param value The value of 'totalWriteErrors'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setTotalWriteErrors(java.lang.Long value) {
      validate(fields()[7], value);
      this.totalWriteErrors = value;
      fieldSetFlags()[7] = true;
      return this;
    }

    /**
      * Checks whether the 'totalWriteErrors' field has been set.
      * @return True if the 'totalWriteErrors' field has been set, false otherwise.
      */
    public boolean hasTotalWriteErrors() {
      return fieldSetFlags()[7];
    }


    /**
      * Clears the value of the 'totalWriteErrors' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearTotalWriteErrors() {
      totalWriteErrors = null;
      fieldSetFlags()[7] = false;
      return this;
    }

    /**
      * Gets the value of the 'partitionPath' field.
      * @return The value.
      */
    public java.lang.String getPartitionPath() {
      return partitionPath;
    }


    /**
      * Sets the value of the 'partitionPath' field.
      * @param value The value of 'partitionPath'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setPartitionPath(java.lang.String value) {
      validate(fields()[8], value);
      this.partitionPath = value;
      fieldSetFlags()[8] = true;
      return this;
    }

    /**
      * Checks whether the 'partitionPath' field has been set.
      * @return True if the 'partitionPath' field has been set, false otherwise.
      */
    public boolean hasPartitionPath() {
      return fieldSetFlags()[8];
    }


    /**
      * Clears the value of the 'partitionPath' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearPartitionPath() {
      partitionPath = null;
      fieldSetFlags()[8] = false;
      return this;
    }

    /**
      * Gets the value of the 'totalLogRecords' field.
      * @return The value.
      */
    public java.lang.Long getTotalLogRecords() {
      return totalLogRecords;
    }


    /**
      * Sets the value of the 'totalLogRecords' field.
      * @param value The value of 'totalLogRecords'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setTotalLogRecords(java.lang.Long value) {
      validate(fields()[9], value);
      this.totalLogRecords = value;
      fieldSetFlags()[9] = true;
      return this;
    }

    /**
      * Checks whether the 'totalLogRecords' field has been set.
      * @return True if the 'totalLogRecords' field has been set, false otherwise.
      */
    public boolean hasTotalLogRecords() {
      return fieldSetFlags()[9];
    }


    /**
      * Clears the value of the 'totalLogRecords' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearTotalLogRecords() {
      totalLogRecords = null;
      fieldSetFlags()[9] = false;
      return this;
    }

    /**
      * Gets the value of the 'totalLogFiles' field.
      * @return The value.
      */
    public java.lang.Long getTotalLogFiles() {
      return totalLogFiles;
    }


    /**
      * Sets the value of the 'totalLogFiles' field.
      * @param value The value of 'totalLogFiles'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setTotalLogFiles(java.lang.Long value) {
      validate(fields()[10], value);
      this.totalLogFiles = value;
      fieldSetFlags()[10] = true;
      return this;
    }

    /**
      * Checks whether the 'totalLogFiles' field has been set.
      * @return True if the 'totalLogFiles' field has been set, false otherwise.
      */
    public boolean hasTotalLogFiles() {
      return fieldSetFlags()[10];
    }


    /**
      * Clears the value of the 'totalLogFiles' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearTotalLogFiles() {
      totalLogFiles = null;
      fieldSetFlags()[10] = false;
      return this;
    }

    /**
      * Gets the value of the 'totalUpdatedRecordsCompacted' field.
      * @return The value.
      */
    public java.lang.Long getTotalUpdatedRecordsCompacted() {
      return totalUpdatedRecordsCompacted;
    }


    /**
      * Sets the value of the 'totalUpdatedRecordsCompacted' field.
      * @param value The value of 'totalUpdatedRecordsCompacted'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setTotalUpdatedRecordsCompacted(java.lang.Long value) {
      validate(fields()[11], value);
      this.totalUpdatedRecordsCompacted = value;
      fieldSetFlags()[11] = true;
      return this;
    }

    /**
      * Checks whether the 'totalUpdatedRecordsCompacted' field has been set.
      * @return True if the 'totalUpdatedRecordsCompacted' field has been set, false otherwise.
      */
    public boolean hasTotalUpdatedRecordsCompacted() {
      return fieldSetFlags()[11];
    }


    /**
      * Clears the value of the 'totalUpdatedRecordsCompacted' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearTotalUpdatedRecordsCompacted() {
      totalUpdatedRecordsCompacted = null;
      fieldSetFlags()[11] = false;
      return this;
    }

    /**
      * Gets the value of the 'numInserts' field.
      * @return The value.
      */
    public java.lang.Long getNumInserts() {
      return numInserts;
    }


    /**
      * Sets the value of the 'numInserts' field.
      * @param value The value of 'numInserts'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setNumInserts(java.lang.Long value) {
      validate(fields()[12], value);
      this.numInserts = value;
      fieldSetFlags()[12] = true;
      return this;
    }

    /**
      * Checks whether the 'numInserts' field has been set.
      * @return True if the 'numInserts' field has been set, false otherwise.
      */
    public boolean hasNumInserts() {
      return fieldSetFlags()[12];
    }


    /**
      * Clears the value of the 'numInserts' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearNumInserts() {
      numInserts = null;
      fieldSetFlags()[12] = false;
      return this;
    }

    /**
      * Gets the value of the 'totalLogBlocks' field.
      * @return The value.
      */
    public java.lang.Long getTotalLogBlocks() {
      return totalLogBlocks;
    }


    /**
      * Sets the value of the 'totalLogBlocks' field.
      * @param value The value of 'totalLogBlocks'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setTotalLogBlocks(java.lang.Long value) {
      validate(fields()[13], value);
      this.totalLogBlocks = value;
      fieldSetFlags()[13] = true;
      return this;
    }

    /**
      * Checks whether the 'totalLogBlocks' field has been set.
      * @return True if the 'totalLogBlocks' field has been set, false otherwise.
      */
    public boolean hasTotalLogBlocks() {
      return fieldSetFlags()[13];
    }


    /**
      * Clears the value of the 'totalLogBlocks' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearTotalLogBlocks() {
      totalLogBlocks = null;
      fieldSetFlags()[13] = false;
      return this;
    }

    /**
      * Gets the value of the 'totalCorruptLogBlock' field.
      * @return The value.
      */
    public java.lang.Long getTotalCorruptLogBlock() {
      return totalCorruptLogBlock;
    }


    /**
      * Sets the value of the 'totalCorruptLogBlock' field.
      * @param value The value of 'totalCorruptLogBlock'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setTotalCorruptLogBlock(java.lang.Long value) {
      validate(fields()[14], value);
      this.totalCorruptLogBlock = value;
      fieldSetFlags()[14] = true;
      return this;
    }

    /**
      * Checks whether the 'totalCorruptLogBlock' field has been set.
      * @return True if the 'totalCorruptLogBlock' field has been set, false otherwise.
      */
    public boolean hasTotalCorruptLogBlock() {
      return fieldSetFlags()[14];
    }


    /**
      * Clears the value of the 'totalCorruptLogBlock' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearTotalCorruptLogBlock() {
      totalCorruptLogBlock = null;
      fieldSetFlags()[14] = false;
      return this;
    }

    /**
      * Gets the value of the 'totalRollbackBlocks' field.
      * @return The value.
      */
    public java.lang.Long getTotalRollbackBlocks() {
      return totalRollbackBlocks;
    }


    /**
      * Sets the value of the 'totalRollbackBlocks' field.
      * @param value The value of 'totalRollbackBlocks'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setTotalRollbackBlocks(java.lang.Long value) {
      validate(fields()[15], value);
      this.totalRollbackBlocks = value;
      fieldSetFlags()[15] = true;
      return this;
    }

    /**
      * Checks whether the 'totalRollbackBlocks' field has been set.
      * @return True if the 'totalRollbackBlocks' field has been set, false otherwise.
      */
    public boolean hasTotalRollbackBlocks() {
      return fieldSetFlags()[15];
    }


    /**
      * Clears the value of the 'totalRollbackBlocks' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearTotalRollbackBlocks() {
      totalRollbackBlocks = null;
      fieldSetFlags()[15] = false;
      return this;
    }

    /**
      * Gets the value of the 'fileSizeInBytes' field.
      * @return The value.
      */
    public java.lang.Long getFileSizeInBytes() {
      return fileSizeInBytes;
    }


    /**
      * Sets the value of the 'fileSizeInBytes' field.
      * @param value The value of 'fileSizeInBytes'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setFileSizeInBytes(java.lang.Long value) {
      validate(fields()[16], value);
      this.fileSizeInBytes = value;
      fieldSetFlags()[16] = true;
      return this;
    }

    /**
      * Checks whether the 'fileSizeInBytes' field has been set.
      * @return True if the 'fileSizeInBytes' field has been set, false otherwise.
      */
    public boolean hasFileSizeInBytes() {
      return fieldSetFlags()[16];
    }


    /**
      * Clears the value of the 'fileSizeInBytes' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearFileSizeInBytes() {
      fileSizeInBytes = null;
      fieldSetFlags()[16] = false;
      return this;
    }

    /**
      * Gets the value of the 'logVersion' field.
      * @return The value.
      */
    public java.lang.Integer getLogVersion() {
      return logVersion;
    }


    /**
      * Sets the value of the 'logVersion' field.
      * @param value The value of 'logVersion'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setLogVersion(java.lang.Integer value) {
      validate(fields()[17], value);
      this.logVersion = value;
      fieldSetFlags()[17] = true;
      return this;
    }

    /**
      * Checks whether the 'logVersion' field has been set.
      * @return True if the 'logVersion' field has been set, false otherwise.
      */
    public boolean hasLogVersion() {
      return fieldSetFlags()[17];
    }


    /**
      * Clears the value of the 'logVersion' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearLogVersion() {
      logVersion = null;
      fieldSetFlags()[17] = false;
      return this;
    }

    /**
      * Gets the value of the 'logOffset' field.
      * @return The value.
      */
    public java.lang.Long getLogOffset() {
      return logOffset;
    }


    /**
      * Sets the value of the 'logOffset' field.
      * @param value The value of 'logOffset'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setLogOffset(java.lang.Long value) {
      validate(fields()[18], value);
      this.logOffset = value;
      fieldSetFlags()[18] = true;
      return this;
    }

    /**
      * Checks whether the 'logOffset' field has been set.
      * @return True if the 'logOffset' field has been set, false otherwise.
      */
    public boolean hasLogOffset() {
      return fieldSetFlags()[18];
    }


    /**
      * Clears the value of the 'logOffset' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearLogOffset() {
      logOffset = null;
      fieldSetFlags()[18] = false;
      return this;
    }

    /**
      * Gets the value of the 'baseFile' field.
      * @return The value.
      */
    public java.lang.String getBaseFile() {
      return baseFile;
    }


    /**
      * Sets the value of the 'baseFile' field.
      * @param value The value of 'baseFile'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setBaseFile(java.lang.String value) {
      validate(fields()[19], value);
      this.baseFile = value;
      fieldSetFlags()[19] = true;
      return this;
    }

    /**
      * Checks whether the 'baseFile' field has been set.
      * @return True if the 'baseFile' field has been set, false otherwise.
      */
    public boolean hasBaseFile() {
      return fieldSetFlags()[19];
    }


    /**
      * Clears the value of the 'baseFile' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearBaseFile() {
      baseFile = null;
      fieldSetFlags()[19] = false;
      return this;
    }

    /**
      * Gets the value of the 'logFiles' field.
      * @return The value.
      */
    public java.util.List getLogFiles() {
      return logFiles;
    }


    /**
      * Sets the value of the 'logFiles' field.
      * @param value The value of 'logFiles'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setLogFiles(java.util.List value) {
      validate(fields()[20], value);
      this.logFiles = value;
      fieldSetFlags()[20] = true;
      return this;
    }

    /**
      * Checks whether the 'logFiles' field has been set.
      * @return True if the 'logFiles' field has been set, false otherwise.
      */
    public boolean hasLogFiles() {
      return fieldSetFlags()[20];
    }


    /**
      * Clears the value of the 'logFiles' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearLogFiles() {
      logFiles = null;
      fieldSetFlags()[20] = false;
      return this;
    }

    /**
      * Gets the value of the 'cdcStats' field.
      * @return The value.
      */
    public java.util.Map getCdcStats() {
      return cdcStats;
    }


    /**
      * Sets the value of the 'cdcStats' field.
      * @param value The value of 'cdcStats'.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder setCdcStats(java.util.Map value) {
      validate(fields()[21], value);
      this.cdcStats = value;
      fieldSetFlags()[21] = true;
      return this;
    }

    /**
      * Checks whether the 'cdcStats' field has been set.
      * @return True if the 'cdcStats' field has been set, false otherwise.
      */
    public boolean hasCdcStats() {
      return fieldSetFlags()[21];
    }


    /**
      * Clears the value of the 'cdcStats' field.
      * @return This builder.
      */
    public org.apache.hudi.avro.model.HoodieWriteStat.Builder clearCdcStats() {
      cdcStats = null;
      fieldSetFlags()[21] = false;
      return this;
    }

    @Override
    @SuppressWarnings("unchecked")
    public HoodieWriteStat build() {
      try {
        HoodieWriteStat record = new HoodieWriteStat();
        record.fileId = fieldSetFlags()[0] ? this.fileId : (java.lang.String) defaultValue(fields()[0]);
        record.path = fieldSetFlags()[1] ? this.path : (java.lang.String) defaultValue(fields()[1]);
        record.prevCommit = fieldSetFlags()[2] ? this.prevCommit : (java.lang.String) defaultValue(fields()[2]);
        record.numWrites = fieldSetFlags()[3] ? this.numWrites : (java.lang.Long) defaultValue(fields()[3]);
        record.numDeletes = fieldSetFlags()[4] ? this.numDeletes : (java.lang.Long) defaultValue(fields()[4]);
        record.numUpdateWrites = fieldSetFlags()[5] ? this.numUpdateWrites : (java.lang.Long) defaultValue(fields()[5]);
        record.totalWriteBytes = fieldSetFlags()[6] ? this.totalWriteBytes : (java.lang.Long) defaultValue(fields()[6]);
        record.totalWriteErrors = fieldSetFlags()[7] ? this.totalWriteErrors : (java.lang.Long) defaultValue(fields()[7]);
        record.partitionPath = fieldSetFlags()[8] ? this.partitionPath : (java.lang.String) defaultValue(fields()[8]);
        record.totalLogRecords = fieldSetFlags()[9] ? this.totalLogRecords : (java.lang.Long) defaultValue(fields()[9]);
        record.totalLogFiles = fieldSetFlags()[10] ? this.totalLogFiles : (java.lang.Long) defaultValue(fields()[10]);
        record.totalUpdatedRecordsCompacted = fieldSetFlags()[11] ? this.totalUpdatedRecordsCompacted : (java.lang.Long) defaultValue(fields()[11]);
        record.numInserts = fieldSetFlags()[12] ? this.numInserts : (java.lang.Long) defaultValue(fields()[12]);
        record.totalLogBlocks = fieldSetFlags()[13] ? this.totalLogBlocks : (java.lang.Long) defaultValue(fields()[13]);
        record.totalCorruptLogBlock = fieldSetFlags()[14] ? this.totalCorruptLogBlock : (java.lang.Long) defaultValue(fields()[14]);
        record.totalRollbackBlocks = fieldSetFlags()[15] ? this.totalRollbackBlocks : (java.lang.Long) defaultValue(fields()[15]);
        record.fileSizeInBytes = fieldSetFlags()[16] ? this.fileSizeInBytes : (java.lang.Long) defaultValue(fields()[16]);
        record.logVersion = fieldSetFlags()[17] ? this.logVersion : (java.lang.Integer) defaultValue(fields()[17]);
        record.logOffset = fieldSetFlags()[18] ? this.logOffset : (java.lang.Long) defaultValue(fields()[18]);
        record.baseFile = fieldSetFlags()[19] ? this.baseFile : (java.lang.String) defaultValue(fields()[19]);
        record.logFiles = fieldSetFlags()[20] ? this.logFiles : (java.util.List) defaultValue(fields()[20]);
        record.cdcStats = fieldSetFlags()[21] ? this.cdcStats : (java.util.Map) defaultValue(fields()[21]);
        return record;
      } catch (org.apache.avro.AvroMissingFieldException e) {
        throw e;
      } catch (java.lang.Exception e) {
        throw new org.apache.avro.AvroRuntimeException(e);
      }
    }
  }

  @SuppressWarnings("unchecked")
  private static final org.apache.avro.io.DatumWriter
    WRITER$ = (org.apache.avro.io.DatumWriter)MODEL$.createDatumWriter(SCHEMA$);

  @Override public void writeExternal(java.io.ObjectOutput out)
    throws java.io.IOException {
    WRITER$.write(this, SpecificData.getEncoder(out));
  }

  @SuppressWarnings("unchecked")
  private static final org.apache.avro.io.DatumReader
    READER$ = (org.apache.avro.io.DatumReader)MODEL$.createDatumReader(SCHEMA$);

  @Override public void readExternal(java.io.ObjectInput in)
    throws java.io.IOException {
    READER$.read(this, SpecificData.getDecoder(in));
  }

  @Override protected boolean hasCustomCoders() { return true; }

  @Override public void customEncode(org.apache.avro.io.Encoder out)
    throws java.io.IOException
  {
    if (this.fileId == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeString(this.fileId);
    }

    if (this.path == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeString(this.path);
    }

    if (this.prevCommit == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeString(this.prevCommit);
    }

    if (this.numWrites == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.numWrites);
    }

    if (this.numDeletes == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.numDeletes);
    }

    if (this.numUpdateWrites == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.numUpdateWrites);
    }

    if (this.totalWriteBytes == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.totalWriteBytes);
    }

    if (this.totalWriteErrors == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.totalWriteErrors);
    }

    if (this.partitionPath == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeString(this.partitionPath);
    }

    if (this.totalLogRecords == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.totalLogRecords);
    }

    if (this.totalLogFiles == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.totalLogFiles);
    }

    if (this.totalUpdatedRecordsCompacted == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.totalUpdatedRecordsCompacted);
    }

    if (this.numInserts == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.numInserts);
    }

    if (this.totalLogBlocks == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.totalLogBlocks);
    }

    if (this.totalCorruptLogBlock == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.totalCorruptLogBlock);
    }

    if (this.totalRollbackBlocks == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.totalRollbackBlocks);
    }

    if (this.fileSizeInBytes == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.fileSizeInBytes);
    }

    if (this.logVersion == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeInt(this.logVersion);
    }

    if (this.logOffset == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeLong(this.logOffset);
    }

    if (this.baseFile == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      out.writeString(this.baseFile);
    }

    if (this.logFiles == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      long size0 = this.logFiles.size();
      out.writeArrayStart();
      out.setItemCount(size0);
      long actualSize0 = 0;
      for (java.lang.String e0: this.logFiles) {
        actualSize0++;
        out.startItem();
        out.writeString(e0);
      }
      out.writeArrayEnd();
      if (actualSize0 != size0)
        throw new java.util.ConcurrentModificationException("Array-size written was " + size0 + ", but element count was " + actualSize0 + ".");
    }

    if (this.cdcStats == null) {
      out.writeIndex(0);
      out.writeNull();
    } else {
      out.writeIndex(1);
      long size1 = this.cdcStats.size();
      out.writeMapStart();
      out.setItemCount(size1);
      long actualSize1 = 0;
      for (java.util.Map.Entry e1: this.cdcStats.entrySet()) {
        actualSize1++;
        out.startItem();
        out.writeString(e1.getKey());
        java.lang.Long v1 = e1.getValue();
        out.writeLong(v1);
      }
      out.writeMapEnd();
      if (actualSize1 != size1)
      throw new java.util.ConcurrentModificationException("Map-size written was " + size1 + ", but element count was " + actualSize1 + ".");
    }

  }

  @Override public void customDecode(org.apache.avro.io.ResolvingDecoder in)
    throws java.io.IOException
  {
    org.apache.avro.Schema.Field[] fieldOrder = in.readFieldOrderIfDiff();
    if (fieldOrder == null) {
      if (in.readIndex() != 1) {
        in.readNull();
        this.fileId = null;
      } else {
        this.fileId = in.readString();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.path = null;
      } else {
        this.path = in.readString();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.prevCommit = null;
      } else {
        this.prevCommit = in.readString();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.numWrites = null;
      } else {
        this.numWrites = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.numDeletes = null;
      } else {
        this.numDeletes = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.numUpdateWrites = null;
      } else {
        this.numUpdateWrites = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.totalWriteBytes = null;
      } else {
        this.totalWriteBytes = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.totalWriteErrors = null;
      } else {
        this.totalWriteErrors = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.partitionPath = null;
      } else {
        this.partitionPath = in.readString();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.totalLogRecords = null;
      } else {
        this.totalLogRecords = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.totalLogFiles = null;
      } else {
        this.totalLogFiles = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.totalUpdatedRecordsCompacted = null;
      } else {
        this.totalUpdatedRecordsCompacted = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.numInserts = null;
      } else {
        this.numInserts = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.totalLogBlocks = null;
      } else {
        this.totalLogBlocks = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.totalCorruptLogBlock = null;
      } else {
        this.totalCorruptLogBlock = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.totalRollbackBlocks = null;
      } else {
        this.totalRollbackBlocks = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.fileSizeInBytes = null;
      } else {
        this.fileSizeInBytes = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.logVersion = null;
      } else {
        this.logVersion = in.readInt();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.logOffset = null;
      } else {
        this.logOffset = in.readLong();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.baseFile = null;
      } else {
        this.baseFile = in.readString();
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.logFiles = null;
      } else {
        long size0 = in.readArrayStart();
        java.util.List a0 = this.logFiles;
        if (a0 == null) {
          a0 = new SpecificData.Array((int)size0, SCHEMA$.getField("logFiles").schema().getTypes().get(1));
          this.logFiles = a0;
        } else a0.clear();
        SpecificData.Array ga0 = (a0 instanceof SpecificData.Array ? (SpecificData.Array)a0 : null);
        for ( ; 0 < size0; size0 = in.arrayNext()) {
          for ( ; size0 != 0; size0--) {
            java.lang.String e0 = (ga0 != null ? ga0.peek() : null);
            e0 = in.readString();
            a0.add(e0);
          }
        }
      }

      if (in.readIndex() != 1) {
        in.readNull();
        this.cdcStats = null;
      } else {
        long size1 = in.readMapStart();
        java.util.Map m1 = this.cdcStats; // Need fresh name due to limitation of macro system
        if (m1 == null) {
          m1 = new java.util.HashMap((int)size1);
          this.cdcStats = m1;
        } else m1.clear();
        for ( ; 0 < size1; size1 = in.mapNext()) {
          for ( ; size1 != 0; size1--) {
            java.lang.String k1 = null;
            k1 = in.readString();
            java.lang.Long v1 = null;
            v1 = in.readLong();
            m1.put(k1, v1);
          }
        }
      }

    } else {
      for (int i = 0; i < 22; i++) {
        switch (fieldOrder[i].pos()) {
        case 0:
          if (in.readIndex() != 1) {
            in.readNull();
            this.fileId = null;
          } else {
            this.fileId = in.readString();
          }
          break;

        case 1:
          if (in.readIndex() != 1) {
            in.readNull();
            this.path = null;
          } else {
            this.path = in.readString();
          }
          break;

        case 2:
          if (in.readIndex() != 1) {
            in.readNull();
            this.prevCommit = null;
          } else {
            this.prevCommit = in.readString();
          }
          break;

        case 3:
          if (in.readIndex() != 1) {
            in.readNull();
            this.numWrites = null;
          } else {
            this.numWrites = in.readLong();
          }
          break;

        case 4:
          if (in.readIndex() != 1) {
            in.readNull();
            this.numDeletes = null;
          } else {
            this.numDeletes = in.readLong();
          }
          break;

        case 5:
          if (in.readIndex() != 1) {
            in.readNull();
            this.numUpdateWrites = null;
          } else {
            this.numUpdateWrites = in.readLong();
          }
          break;

        case 6:
          if (in.readIndex() != 1) {
            in.readNull();
            this.totalWriteBytes = null;
          } else {
            this.totalWriteBytes = in.readLong();
          }
          break;

        case 7:
          if (in.readIndex() != 1) {
            in.readNull();
            this.totalWriteErrors = null;
          } else {
            this.totalWriteErrors = in.readLong();
          }
          break;

        case 8:
          if (in.readIndex() != 1) {
            in.readNull();
            this.partitionPath = null;
          } else {
            this.partitionPath = in.readString();
          }
          break;

        case 9:
          if (in.readIndex() != 1) {
            in.readNull();
            this.totalLogRecords = null;
          } else {
            this.totalLogRecords = in.readLong();
          }
          break;

        case 10:
          if (in.readIndex() != 1) {
            in.readNull();
            this.totalLogFiles = null;
          } else {
            this.totalLogFiles = in.readLong();
          }
          break;

        case 11:
          if (in.readIndex() != 1) {
            in.readNull();
            this.totalUpdatedRecordsCompacted = null;
          } else {
            this.totalUpdatedRecordsCompacted = in.readLong();
          }
          break;

        case 12:
          if (in.readIndex() != 1) {
            in.readNull();
            this.numInserts = null;
          } else {
            this.numInserts = in.readLong();
          }
          break;

        case 13:
          if (in.readIndex() != 1) {
            in.readNull();
            this.totalLogBlocks = null;
          } else {
            this.totalLogBlocks = in.readLong();
          }
          break;

        case 14:
          if (in.readIndex() != 1) {
            in.readNull();
            this.totalCorruptLogBlock = null;
          } else {
            this.totalCorruptLogBlock = in.readLong();
          }
          break;

        case 15:
          if (in.readIndex() != 1) {
            in.readNull();
            this.totalRollbackBlocks = null;
          } else {
            this.totalRollbackBlocks = in.readLong();
          }
          break;

        case 16:
          if (in.readIndex() != 1) {
            in.readNull();
            this.fileSizeInBytes = null;
          } else {
            this.fileSizeInBytes = in.readLong();
          }
          break;

        case 17:
          if (in.readIndex() != 1) {
            in.readNull();
            this.logVersion = null;
          } else {
            this.logVersion = in.readInt();
          }
          break;

        case 18:
          if (in.readIndex() != 1) {
            in.readNull();
            this.logOffset = null;
          } else {
            this.logOffset = in.readLong();
          }
          break;

        case 19:
          if (in.readIndex() != 1) {
            in.readNull();
            this.baseFile = null;
          } else {
            this.baseFile = in.readString();
          }
          break;

        case 20:
          if (in.readIndex() != 1) {
            in.readNull();
            this.logFiles = null;
          } else {
            long size0 = in.readArrayStart();
            java.util.List a0 = this.logFiles;
            if (a0 == null) {
              a0 = new SpecificData.Array((int)size0, SCHEMA$.getField("logFiles").schema().getTypes().get(1));
              this.logFiles = a0;
            } else a0.clear();
            SpecificData.Array ga0 = (a0 instanceof SpecificData.Array ? (SpecificData.Array)a0 : null);
            for ( ; 0 < size0; size0 = in.arrayNext()) {
              for ( ; size0 != 0; size0--) {
                java.lang.String e0 = (ga0 != null ? ga0.peek() : null);
                e0 = in.readString();
                a0.add(e0);
              }
            }
          }
          break;

        case 21:
          if (in.readIndex() != 1) {
            in.readNull();
            this.cdcStats = null;
          } else {
            long size1 = in.readMapStart();
            java.util.Map m1 = this.cdcStats; // Need fresh name due to limitation of macro system
            if (m1 == null) {
              m1 = new java.util.HashMap((int)size1);
              this.cdcStats = m1;
            } else m1.clear();
            for ( ; 0 < size1; size1 = in.mapNext()) {
              for ( ; size1 != 0; size1--) {
                java.lang.String k1 = null;
                k1 = in.readString();
                java.lang.Long v1 = null;
                v1 = in.readLong();
                m1.put(k1, v1);
              }
            }
          }
          break;

        default:
          throw new java.io.IOException("Corrupt ResolvingDecoder.");
        }
      }
    }
  }
}














© 2015 - 2024 Weber Informatics LLC | Privacy Policy