THudiFileDesc.java

/**
 * Autogenerated by Thrift Compiler (0.16.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package org.apache.doris.thrift;

@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.16.0)", date = "2026-05-14")
public class THudiFileDesc implements org.apache.thrift.TBase<THudiFileDesc, THudiFileDesc._Fields>, java.io.Serializable, Cloneable, Comparable<THudiFileDesc> {
  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("THudiFileDesc");

  private static final org.apache.thrift.protocol.TField INSTANT_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("instant_time", org.apache.thrift.protocol.TType.STRING, (short)1);
  private static final org.apache.thrift.protocol.TField SERDE_FIELD_DESC = new org.apache.thrift.protocol.TField("serde", org.apache.thrift.protocol.TType.STRING, (short)2);
  private static final org.apache.thrift.protocol.TField INPUT_FORMAT_FIELD_DESC = new org.apache.thrift.protocol.TField("input_format", org.apache.thrift.protocol.TType.STRING, (short)3);
  private static final org.apache.thrift.protocol.TField BASE_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("base_path", org.apache.thrift.protocol.TType.STRING, (short)4);
  private static final org.apache.thrift.protocol.TField DATA_FILE_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("data_file_path", org.apache.thrift.protocol.TType.STRING, (short)5);
  private static final org.apache.thrift.protocol.TField DATA_FILE_LENGTH_FIELD_DESC = new org.apache.thrift.protocol.TField("data_file_length", org.apache.thrift.protocol.TType.I64, (short)6);
  private static final org.apache.thrift.protocol.TField DELTA_LOGS_FIELD_DESC = new org.apache.thrift.protocol.TField("delta_logs", org.apache.thrift.protocol.TType.LIST, (short)7);
  private static final org.apache.thrift.protocol.TField COLUMN_NAMES_FIELD_DESC = new org.apache.thrift.protocol.TField("column_names", org.apache.thrift.protocol.TType.LIST, (short)8);
  private static final org.apache.thrift.protocol.TField COLUMN_TYPES_FIELD_DESC = new org.apache.thrift.protocol.TField("column_types", org.apache.thrift.protocol.TType.LIST, (short)9);
  private static final org.apache.thrift.protocol.TField NESTED_FIELDS_FIELD_DESC = new org.apache.thrift.protocol.TField("nested_fields", org.apache.thrift.protocol.TType.LIST, (short)10);
  private static final org.apache.thrift.protocol.TField HUDI_JNI_SCANNER_FIELD_DESC = new org.apache.thrift.protocol.TField("hudi_jni_scanner", org.apache.thrift.protocol.TType.STRING, (short)11);
  private static final org.apache.thrift.protocol.TField SCHEMA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("schema_id", org.apache.thrift.protocol.TType.I64, (short)12);

  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new THudiFileDescStandardSchemeFactory();
  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new THudiFileDescTupleSchemeFactory();

  public @org.apache.thrift.annotation.Nullable java.lang.String instant_time; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String serde; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String input_format; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String base_path; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String data_file_path; // optional
  public long data_file_length; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> delta_logs; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> column_names; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> column_types; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> nested_fields; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String hudi_jni_scanner; // optional
  public long schema_id; // optional

  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
    INSTANT_TIME((short)1, "instant_time"),
    SERDE((short)2, "serde"),
    INPUT_FORMAT((short)3, "input_format"),
    BASE_PATH((short)4, "base_path"),
    DATA_FILE_PATH((short)5, "data_file_path"),
    DATA_FILE_LENGTH((short)6, "data_file_length"),
    DELTA_LOGS((short)7, "delta_logs"),
    COLUMN_NAMES((short)8, "column_names"),
    COLUMN_TYPES((short)9, "column_types"),
    NESTED_FIELDS((short)10, "nested_fields"),
    HUDI_JNI_SCANNER((short)11, "hudi_jni_scanner"),
    SCHEMA_ID((short)12, "schema_id");

    private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

    static {
      for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
        byName.put(field.getFieldName(), field);
      }
    }

    /**
     * Find the _Fields constant that matches fieldId, or null if its not found.
     */
    @org.apache.thrift.annotation.Nullable
    public static _Fields findByThriftId(int fieldId) {
      switch(fieldId) {
        case 1: // INSTANT_TIME
          return INSTANT_TIME;
        case 2: // SERDE
          return SERDE;
        case 3: // INPUT_FORMAT
          return INPUT_FORMAT;
        case 4: // BASE_PATH
          return BASE_PATH;
        case 5: // DATA_FILE_PATH
          return DATA_FILE_PATH;
        case 6: // DATA_FILE_LENGTH
          return DATA_FILE_LENGTH;
        case 7: // DELTA_LOGS
          return DELTA_LOGS;
        case 8: // COLUMN_NAMES
          return COLUMN_NAMES;
        case 9: // COLUMN_TYPES
          return COLUMN_TYPES;
        case 10: // NESTED_FIELDS
          return NESTED_FIELDS;
        case 11: // HUDI_JNI_SCANNER
          return HUDI_JNI_SCANNER;
        case 12: // SCHEMA_ID
          return SCHEMA_ID;
        default:
          return null;
      }
    }

    /**
     * Find the _Fields constant that matches fieldId, throwing an exception
     * if it is not found.
     */
    public static _Fields findByThriftIdOrThrow(int fieldId) {
      _Fields fields = findByThriftId(fieldId);
      if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
      return fields;
    }

    /**
     * Find the _Fields constant that matches name, or null if its not found.
     */
    @org.apache.thrift.annotation.Nullable
    public static _Fields findByName(java.lang.String name) {
      return byName.get(name);
    }

    private final short _thriftId;
    private final java.lang.String _fieldName;

    _Fields(short thriftId, java.lang.String fieldName) {
      _thriftId = thriftId;
      _fieldName = fieldName;
    }

    public short getThriftFieldId() {
      return _thriftId;
    }

    public java.lang.String getFieldName() {
      return _fieldName;
    }
  }

  // isset id assignments
  private static final int __DATA_FILE_LENGTH_ISSET_ID = 0;
  private static final int __SCHEMA_ID_ISSET_ID = 1;
  private byte __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.INSTANT_TIME,_Fields.SERDE,_Fields.INPUT_FORMAT,_Fields.BASE_PATH,_Fields.DATA_FILE_PATH,_Fields.DATA_FILE_LENGTH,_Fields.DELTA_LOGS,_Fields.COLUMN_NAMES,_Fields.COLUMN_TYPES,_Fields.NESTED_FIELDS,_Fields.HUDI_JNI_SCANNER,_Fields.SCHEMA_ID};
  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
  static {
    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
    tmpMap.put(_Fields.INSTANT_TIME, new org.apache.thrift.meta_data.FieldMetaData("instant_time", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.SERDE, new org.apache.thrift.meta_data.FieldMetaData("serde", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.INPUT_FORMAT, new org.apache.thrift.meta_data.FieldMetaData("input_format", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.BASE_PATH, new org.apache.thrift.meta_data.FieldMetaData("base_path", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.DATA_FILE_PATH, new org.apache.thrift.meta_data.FieldMetaData("data_file_path", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.DATA_FILE_LENGTH, new org.apache.thrift.meta_data.FieldMetaData("data_file_length", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.DELTA_LOGS, new org.apache.thrift.meta_data.FieldMetaData("delta_logs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    tmpMap.put(_Fields.COLUMN_NAMES, new org.apache.thrift.meta_data.FieldMetaData("column_names", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    tmpMap.put(_Fields.COLUMN_TYPES, new org.apache.thrift.meta_data.FieldMetaData("column_types", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    tmpMap.put(_Fields.NESTED_FIELDS, new org.apache.thrift.meta_data.FieldMetaData("nested_fields", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    tmpMap.put(_Fields.HUDI_JNI_SCANNER, new org.apache.thrift.meta_data.FieldMetaData("hudi_jni_scanner", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.SCHEMA_ID, new org.apache.thrift.meta_data.FieldMetaData("schema_id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(THudiFileDesc.class, metaDataMap);
  }

  public THudiFileDesc() {
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public THudiFileDesc(THudiFileDesc other) {
    __isset_bitfield = other.__isset_bitfield;
    if (other.isSetInstantTime()) {
      this.instant_time = other.instant_time;
    }
    if (other.isSetSerde()) {
      this.serde = other.serde;
    }
    if (other.isSetInputFormat()) {
      this.input_format = other.input_format;
    }
    if (other.isSetBasePath()) {
      this.base_path = other.base_path;
    }
    if (other.isSetDataFilePath()) {
      this.data_file_path = other.data_file_path;
    }
    this.data_file_length = other.data_file_length;
    if (other.isSetDeltaLogs()) {
      java.util.List<java.lang.String> __this__delta_logs = new java.util.ArrayList<java.lang.String>(other.delta_logs);
      this.delta_logs = __this__delta_logs;
    }
    if (other.isSetColumnNames()) {
      java.util.List<java.lang.String> __this__column_names = new java.util.ArrayList<java.lang.String>(other.column_names);
      this.column_names = __this__column_names;
    }
    if (other.isSetColumnTypes()) {
      java.util.List<java.lang.String> __this__column_types = new java.util.ArrayList<java.lang.String>(other.column_types);
      this.column_types = __this__column_types;
    }
    if (other.isSetNestedFields()) {
      java.util.List<java.lang.String> __this__nested_fields = new java.util.ArrayList<java.lang.String>(other.nested_fields);
      this.nested_fields = __this__nested_fields;
    }
    if (other.isSetHudiJniScanner()) {
      this.hudi_jni_scanner = other.hudi_jni_scanner;
    }
    this.schema_id = other.schema_id;
  }

  public THudiFileDesc deepCopy() {
    return new THudiFileDesc(this);
  }

  @Override
  public void clear() {
    this.instant_time = null;
    this.serde = null;
    this.input_format = null;
    this.base_path = null;
    this.data_file_path = null;
    setDataFileLengthIsSet(false);
    this.data_file_length = 0;
    this.delta_logs = null;
    this.column_names = null;
    this.column_types = null;
    this.nested_fields = null;
    this.hudi_jni_scanner = null;
    setSchemaIdIsSet(false);
    this.schema_id = 0;
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getInstantTime() {
    return this.instant_time;
  }

  public THudiFileDesc setInstantTime(@org.apache.thrift.annotation.Nullable java.lang.String instant_time) {
    this.instant_time = instant_time;
    return this;
  }

  public void unsetInstantTime() {
    this.instant_time = null;
  }

  /** Returns true if field instant_time is set (has been assigned a value) and false otherwise */
  public boolean isSetInstantTime() {
    return this.instant_time != null;
  }

  public void setInstantTimeIsSet(boolean value) {
    if (!value) {
      this.instant_time = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getSerde() {
    return this.serde;
  }

  public THudiFileDesc setSerde(@org.apache.thrift.annotation.Nullable java.lang.String serde) {
    this.serde = serde;
    return this;
  }

  public void unsetSerde() {
    this.serde = null;
  }

  /** Returns true if field serde is set (has been assigned a value) and false otherwise */
  public boolean isSetSerde() {
    return this.serde != null;
  }

  public void setSerdeIsSet(boolean value) {
    if (!value) {
      this.serde = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getInputFormat() {
    return this.input_format;
  }

  public THudiFileDesc setInputFormat(@org.apache.thrift.annotation.Nullable java.lang.String input_format) {
    this.input_format = input_format;
    return this;
  }

  public void unsetInputFormat() {
    this.input_format = null;
  }

  /** Returns true if field input_format is set (has been assigned a value) and false otherwise */
  public boolean isSetInputFormat() {
    return this.input_format != null;
  }

  public void setInputFormatIsSet(boolean value) {
    if (!value) {
      this.input_format = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getBasePath() {
    return this.base_path;
  }

  public THudiFileDesc setBasePath(@org.apache.thrift.annotation.Nullable java.lang.String base_path) {
    this.base_path = base_path;
    return this;
  }

  public void unsetBasePath() {
    this.base_path = null;
  }

  /** Returns true if field base_path is set (has been assigned a value) and false otherwise */
  public boolean isSetBasePath() {
    return this.base_path != null;
  }

  public void setBasePathIsSet(boolean value) {
    if (!value) {
      this.base_path = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getDataFilePath() {
    return this.data_file_path;
  }

  public THudiFileDesc setDataFilePath(@org.apache.thrift.annotation.Nullable java.lang.String data_file_path) {
    this.data_file_path = data_file_path;
    return this;
  }

  public void unsetDataFilePath() {
    this.data_file_path = null;
  }

  /** Returns true if field data_file_path is set (has been assigned a value) and false otherwise */
  public boolean isSetDataFilePath() {
    return this.data_file_path != null;
  }

  public void setDataFilePathIsSet(boolean value) {
    if (!value) {
      this.data_file_path = null;
    }
  }

  public long getDataFileLength() {
    return this.data_file_length;
  }

  public THudiFileDesc setDataFileLength(long data_file_length) {
    this.data_file_length = data_file_length;
    setDataFileLengthIsSet(true);
    return this;
  }

  public void unsetDataFileLength() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DATA_FILE_LENGTH_ISSET_ID);
  }

  /** Returns true if field data_file_length is set (has been assigned a value) and false otherwise */
  public boolean isSetDataFileLength() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DATA_FILE_LENGTH_ISSET_ID);
  }

  public void setDataFileLengthIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DATA_FILE_LENGTH_ISSET_ID, value);
  }

  public int getDeltaLogsSize() {
    return (this.delta_logs == null) ? 0 : this.delta_logs.size();
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Iterator<java.lang.String> getDeltaLogsIterator() {
    return (this.delta_logs == null) ? null : this.delta_logs.iterator();
  }

  public void addToDeltaLogs(java.lang.String elem) {
    if (this.delta_logs == null) {
      this.delta_logs = new java.util.ArrayList<java.lang.String>();
    }
    this.delta_logs.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<java.lang.String> getDeltaLogs() {
    return this.delta_logs;
  }

  public THudiFileDesc setDeltaLogs(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> delta_logs) {
    this.delta_logs = delta_logs;
    return this;
  }

  public void unsetDeltaLogs() {
    this.delta_logs = null;
  }

  /** Returns true if field delta_logs is set (has been assigned a value) and false otherwise */
  public boolean isSetDeltaLogs() {
    return this.delta_logs != null;
  }

  public void setDeltaLogsIsSet(boolean value) {
    if (!value) {
      this.delta_logs = null;
    }
  }

  public int getColumnNamesSize() {
    return (this.column_names == null) ? 0 : this.column_names.size();
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Iterator<java.lang.String> getColumnNamesIterator() {
    return (this.column_names == null) ? null : this.column_names.iterator();
  }

  public void addToColumnNames(java.lang.String elem) {
    if (this.column_names == null) {
      this.column_names = new java.util.ArrayList<java.lang.String>();
    }
    this.column_names.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<java.lang.String> getColumnNames() {
    return this.column_names;
  }

  public THudiFileDesc setColumnNames(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> column_names) {
    this.column_names = column_names;
    return this;
  }

  public void unsetColumnNames() {
    this.column_names = null;
  }

  /** Returns true if field column_names is set (has been assigned a value) and false otherwise */
  public boolean isSetColumnNames() {
    return this.column_names != null;
  }

  public void setColumnNamesIsSet(boolean value) {
    if (!value) {
      this.column_names = null;
    }
  }

  public int getColumnTypesSize() {
    return (this.column_types == null) ? 0 : this.column_types.size();
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Iterator<java.lang.String> getColumnTypesIterator() {
    return (this.column_types == null) ? null : this.column_types.iterator();
  }

  public void addToColumnTypes(java.lang.String elem) {
    if (this.column_types == null) {
      this.column_types = new java.util.ArrayList<java.lang.String>();
    }
    this.column_types.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<java.lang.String> getColumnTypes() {
    return this.column_types;
  }

  public THudiFileDesc setColumnTypes(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> column_types) {
    this.column_types = column_types;
    return this;
  }

  public void unsetColumnTypes() {
    this.column_types = null;
  }

  /** Returns true if field column_types is set (has been assigned a value) and false otherwise */
  public boolean isSetColumnTypes() {
    return this.column_types != null;
  }

  public void setColumnTypesIsSet(boolean value) {
    if (!value) {
      this.column_types = null;
    }
  }

  public int getNestedFieldsSize() {
    return (this.nested_fields == null) ? 0 : this.nested_fields.size();
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Iterator<java.lang.String> getNestedFieldsIterator() {
    return (this.nested_fields == null) ? null : this.nested_fields.iterator();
  }

  public void addToNestedFields(java.lang.String elem) {
    if (this.nested_fields == null) {
      this.nested_fields = new java.util.ArrayList<java.lang.String>();
    }
    this.nested_fields.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<java.lang.String> getNestedFields() {
    return this.nested_fields;
  }

  public THudiFileDesc setNestedFields(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> nested_fields) {
    this.nested_fields = nested_fields;
    return this;
  }

  public void unsetNestedFields() {
    this.nested_fields = null;
  }

  /** Returns true if field nested_fields is set (has been assigned a value) and false otherwise */
  public boolean isSetNestedFields() {
    return this.nested_fields != null;
  }

  public void setNestedFieldsIsSet(boolean value) {
    if (!value) {
      this.nested_fields = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getHudiJniScanner() {
    return this.hudi_jni_scanner;
  }

  public THudiFileDesc setHudiJniScanner(@org.apache.thrift.annotation.Nullable java.lang.String hudi_jni_scanner) {
    this.hudi_jni_scanner = hudi_jni_scanner;
    return this;
  }

  public void unsetHudiJniScanner() {
    this.hudi_jni_scanner = null;
  }

  /** Returns true if field hudi_jni_scanner is set (has been assigned a value) and false otherwise */
  public boolean isSetHudiJniScanner() {
    return this.hudi_jni_scanner != null;
  }

  public void setHudiJniScannerIsSet(boolean value) {
    if (!value) {
      this.hudi_jni_scanner = null;
    }
  }

  public long getSchemaId() {
    return this.schema_id;
  }

  public THudiFileDesc setSchemaId(long schema_id) {
    this.schema_id = schema_id;
    setSchemaIdIsSet(true);
    return this;
  }

  public void unsetSchemaId() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SCHEMA_ID_ISSET_ID);
  }

  /** Returns true if field schema_id is set (has been assigned a value) and false otherwise */
  public boolean isSetSchemaId() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SCHEMA_ID_ISSET_ID);
  }

  public void setSchemaIdIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SCHEMA_ID_ISSET_ID, value);
  }

  public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
    switch (field) {
    case INSTANT_TIME:
      if (value == null) {
        unsetInstantTime();
      } else {
        setInstantTime((java.lang.String)value);
      }
      break;

    case SERDE:
      if (value == null) {
        unsetSerde();
      } else {
        setSerde((java.lang.String)value);
      }
      break;

    case INPUT_FORMAT:
      if (value == null) {
        unsetInputFormat();
      } else {
        setInputFormat((java.lang.String)value);
      }
      break;

    case BASE_PATH:
      if (value == null) {
        unsetBasePath();
      } else {
        setBasePath((java.lang.String)value);
      }
      break;

    case DATA_FILE_PATH:
      if (value == null) {
        unsetDataFilePath();
      } else {
        setDataFilePath((java.lang.String)value);
      }
      break;

    case DATA_FILE_LENGTH:
      if (value == null) {
        unsetDataFileLength();
      } else {
        setDataFileLength((java.lang.Long)value);
      }
      break;

    case DELTA_LOGS:
      if (value == null) {
        unsetDeltaLogs();
      } else {
        setDeltaLogs((java.util.List<java.lang.String>)value);
      }
      break;

    case COLUMN_NAMES:
      if (value == null) {
        unsetColumnNames();
      } else {
        setColumnNames((java.util.List<java.lang.String>)value);
      }
      break;

    case COLUMN_TYPES:
      if (value == null) {
        unsetColumnTypes();
      } else {
        setColumnTypes((java.util.List<java.lang.String>)value);
      }
      break;

    case NESTED_FIELDS:
      if (value == null) {
        unsetNestedFields();
      } else {
        setNestedFields((java.util.List<java.lang.String>)value);
      }
      break;

    case HUDI_JNI_SCANNER:
      if (value == null) {
        unsetHudiJniScanner();
      } else {
        setHudiJniScanner((java.lang.String)value);
      }
      break;

    case SCHEMA_ID:
      if (value == null) {
        unsetSchemaId();
      } else {
        setSchemaId((java.lang.Long)value);
      }
      break;

    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.Object getFieldValue(_Fields field) {
    switch (field) {
    case INSTANT_TIME:
      return getInstantTime();

    case SERDE:
      return getSerde();

    case INPUT_FORMAT:
      return getInputFormat();

    case BASE_PATH:
      return getBasePath();

    case DATA_FILE_PATH:
      return getDataFilePath();

    case DATA_FILE_LENGTH:
      return getDataFileLength();

    case DELTA_LOGS:
      return getDeltaLogs();

    case COLUMN_NAMES:
      return getColumnNames();

    case COLUMN_TYPES:
      return getColumnTypes();

    case NESTED_FIELDS:
      return getNestedFields();

    case HUDI_JNI_SCANNER:
      return getHudiJniScanner();

    case SCHEMA_ID:
      return getSchemaId();

    }
    throw new java.lang.IllegalStateException();
  }

  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
  public boolean isSet(_Fields field) {
    if (field == null) {
      throw new java.lang.IllegalArgumentException();
    }

    switch (field) {
    case INSTANT_TIME:
      return isSetInstantTime();
    case SERDE:
      return isSetSerde();
    case INPUT_FORMAT:
      return isSetInputFormat();
    case BASE_PATH:
      return isSetBasePath();
    case DATA_FILE_PATH:
      return isSetDataFilePath();
    case DATA_FILE_LENGTH:
      return isSetDataFileLength();
    case DELTA_LOGS:
      return isSetDeltaLogs();
    case COLUMN_NAMES:
      return isSetColumnNames();
    case COLUMN_TYPES:
      return isSetColumnTypes();
    case NESTED_FIELDS:
      return isSetNestedFields();
    case HUDI_JNI_SCANNER:
      return isSetHudiJniScanner();
    case SCHEMA_ID:
      return isSetSchemaId();
    }
    throw new java.lang.IllegalStateException();
  }

  @Override
  public boolean equals(java.lang.Object that) {
    if (that instanceof THudiFileDesc)
      return this.equals((THudiFileDesc)that);
    return false;
  }

  public boolean equals(THudiFileDesc that) {
    if (that == null)
      return false;
    if (this == that)
      return true;

    boolean this_present_instant_time = true && this.isSetInstantTime();
    boolean that_present_instant_time = true && that.isSetInstantTime();
    if (this_present_instant_time || that_present_instant_time) {
      if (!(this_present_instant_time && that_present_instant_time))
        return false;
      if (!this.instant_time.equals(that.instant_time))
        return false;
    }

    boolean this_present_serde = true && this.isSetSerde();
    boolean that_present_serde = true && that.isSetSerde();
    if (this_present_serde || that_present_serde) {
      if (!(this_present_serde && that_present_serde))
        return false;
      if (!this.serde.equals(that.serde))
        return false;
    }

    boolean this_present_input_format = true && this.isSetInputFormat();
    boolean that_present_input_format = true && that.isSetInputFormat();
    if (this_present_input_format || that_present_input_format) {
      if (!(this_present_input_format && that_present_input_format))
        return false;
      if (!this.input_format.equals(that.input_format))
        return false;
    }

    boolean this_present_base_path = true && this.isSetBasePath();
    boolean that_present_base_path = true && that.isSetBasePath();
    if (this_present_base_path || that_present_base_path) {
      if (!(this_present_base_path && that_present_base_path))
        return false;
      if (!this.base_path.equals(that.base_path))
        return false;
    }

    boolean this_present_data_file_path = true && this.isSetDataFilePath();
    boolean that_present_data_file_path = true && that.isSetDataFilePath();
    if (this_present_data_file_path || that_present_data_file_path) {
      if (!(this_present_data_file_path && that_present_data_file_path))
        return false;
      if (!this.data_file_path.equals(that.data_file_path))
        return false;
    }

    boolean this_present_data_file_length = true && this.isSetDataFileLength();
    boolean that_present_data_file_length = true && that.isSetDataFileLength();
    if (this_present_data_file_length || that_present_data_file_length) {
      if (!(this_present_data_file_length && that_present_data_file_length))
        return false;
      if (this.data_file_length != that.data_file_length)
        return false;
    }

    boolean this_present_delta_logs = true && this.isSetDeltaLogs();
    boolean that_present_delta_logs = true && that.isSetDeltaLogs();
    if (this_present_delta_logs || that_present_delta_logs) {
      if (!(this_present_delta_logs && that_present_delta_logs))
        return false;
      if (!this.delta_logs.equals(that.delta_logs))
        return false;
    }

    boolean this_present_column_names = true && this.isSetColumnNames();
    boolean that_present_column_names = true && that.isSetColumnNames();
    if (this_present_column_names || that_present_column_names) {
      if (!(this_present_column_names && that_present_column_names))
        return false;
      if (!this.column_names.equals(that.column_names))
        return false;
    }

    boolean this_present_column_types = true && this.isSetColumnTypes();
    boolean that_present_column_types = true && that.isSetColumnTypes();
    if (this_present_column_types || that_present_column_types) {
      if (!(this_present_column_types && that_present_column_types))
        return false;
      if (!this.column_types.equals(that.column_types))
        return false;
    }

    boolean this_present_nested_fields = true && this.isSetNestedFields();
    boolean that_present_nested_fields = true && that.isSetNestedFields();
    if (this_present_nested_fields || that_present_nested_fields) {
      if (!(this_present_nested_fields && that_present_nested_fields))
        return false;
      if (!this.nested_fields.equals(that.nested_fields))
        return false;
    }

    boolean this_present_hudi_jni_scanner = true && this.isSetHudiJniScanner();
    boolean that_present_hudi_jni_scanner = true && that.isSetHudiJniScanner();
    if (this_present_hudi_jni_scanner || that_present_hudi_jni_scanner) {
      if (!(this_present_hudi_jni_scanner && that_present_hudi_jni_scanner))
        return false;
      if (!this.hudi_jni_scanner.equals(that.hudi_jni_scanner))
        return false;
    }

    boolean this_present_schema_id = true && this.isSetSchemaId();
    boolean that_present_schema_id = true && that.isSetSchemaId();
    if (this_present_schema_id || that_present_schema_id) {
      if (!(this_present_schema_id && that_present_schema_id))
        return false;
      if (this.schema_id != that.schema_id)
        return false;
    }

    return true;
  }

  @Override
  public int hashCode() {
    int hashCode = 1;

    hashCode = hashCode * 8191 + ((isSetInstantTime()) ? 131071 : 524287);
    if (isSetInstantTime())
      hashCode = hashCode * 8191 + instant_time.hashCode();

    hashCode = hashCode * 8191 + ((isSetSerde()) ? 131071 : 524287);
    if (isSetSerde())
      hashCode = hashCode * 8191 + serde.hashCode();

    hashCode = hashCode * 8191 + ((isSetInputFormat()) ? 131071 : 524287);
    if (isSetInputFormat())
      hashCode = hashCode * 8191 + input_format.hashCode();

    hashCode = hashCode * 8191 + ((isSetBasePath()) ? 131071 : 524287);
    if (isSetBasePath())
      hashCode = hashCode * 8191 + base_path.hashCode();

    hashCode = hashCode * 8191 + ((isSetDataFilePath()) ? 131071 : 524287);
    if (isSetDataFilePath())
      hashCode = hashCode * 8191 + data_file_path.hashCode();

    hashCode = hashCode * 8191 + ((isSetDataFileLength()) ? 131071 : 524287);
    if (isSetDataFileLength())
      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(data_file_length);

    hashCode = hashCode * 8191 + ((isSetDeltaLogs()) ? 131071 : 524287);
    if (isSetDeltaLogs())
      hashCode = hashCode * 8191 + delta_logs.hashCode();

    hashCode = hashCode * 8191 + ((isSetColumnNames()) ? 131071 : 524287);
    if (isSetColumnNames())
      hashCode = hashCode * 8191 + column_names.hashCode();

    hashCode = hashCode * 8191 + ((isSetColumnTypes()) ? 131071 : 524287);
    if (isSetColumnTypes())
      hashCode = hashCode * 8191 + column_types.hashCode();

    hashCode = hashCode * 8191 + ((isSetNestedFields()) ? 131071 : 524287);
    if (isSetNestedFields())
      hashCode = hashCode * 8191 + nested_fields.hashCode();

    hashCode = hashCode * 8191 + ((isSetHudiJniScanner()) ? 131071 : 524287);
    if (isSetHudiJniScanner())
      hashCode = hashCode * 8191 + hudi_jni_scanner.hashCode();

    hashCode = hashCode * 8191 + ((isSetSchemaId()) ? 131071 : 524287);
    if (isSetSchemaId())
      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(schema_id);

    return hashCode;
  }

  @Override
  public int compareTo(THudiFileDesc other) {
    if (!getClass().equals(other.getClass())) {
      return getClass().getName().compareTo(other.getClass().getName());
    }

    int lastComparison = 0;

    lastComparison = java.lang.Boolean.compare(isSetInstantTime(), other.isSetInstantTime());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetInstantTime()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.instant_time, other.instant_time);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetSerde(), other.isSetSerde());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSerde()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.serde, other.serde);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetInputFormat(), other.isSetInputFormat());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetInputFormat()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.input_format, other.input_format);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetBasePath(), other.isSetBasePath());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBasePath()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.base_path, other.base_path);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetDataFilePath(), other.isSetDataFilePath());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDataFilePath()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.data_file_path, other.data_file_path);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetDataFileLength(), other.isSetDataFileLength());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDataFileLength()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.data_file_length, other.data_file_length);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetDeltaLogs(), other.isSetDeltaLogs());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDeltaLogs()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.delta_logs, other.delta_logs);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetColumnNames(), other.isSetColumnNames());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetColumnNames()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.column_names, other.column_names);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetColumnTypes(), other.isSetColumnTypes());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetColumnTypes()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.column_types, other.column_types);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetNestedFields(), other.isSetNestedFields());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetNestedFields()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nested_fields, other.nested_fields);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetHudiJniScanner(), other.isSetHudiJniScanner());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetHudiJniScanner()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hudi_jni_scanner, other.hudi_jni_scanner);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetSchemaId(), other.isSetSchemaId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSchemaId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.schema_id, other.schema_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    return 0;
  }

  @org.apache.thrift.annotation.Nullable
  public _Fields fieldForId(int fieldId) {
    return _Fields.findByThriftId(fieldId);
  }

  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
    scheme(iprot).read(iprot, this);
  }

  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
    scheme(oprot).write(oprot, this);
  }

  @Override
  public java.lang.String toString() {
    java.lang.StringBuilder sb = new java.lang.StringBuilder("THudiFileDesc(");
    boolean first = true;

    if (isSetInstantTime()) {
      sb.append("instant_time:");
      if (this.instant_time == null) {
        sb.append("null");
      } else {
        sb.append(this.instant_time);
      }
      first = false;
    }
    if (isSetSerde()) {
      if (!first) sb.append(", ");
      sb.append("serde:");
      if (this.serde == null) {
        sb.append("null");
      } else {
        sb.append(this.serde);
      }
      first = false;
    }
    if (isSetInputFormat()) {
      if (!first) sb.append(", ");
      sb.append("input_format:");
      if (this.input_format == null) {
        sb.append("null");
      } else {
        sb.append(this.input_format);
      }
      first = false;
    }
    if (isSetBasePath()) {
      if (!first) sb.append(", ");
      sb.append("base_path:");
      if (this.base_path == null) {
        sb.append("null");
      } else {
        sb.append(this.base_path);
      }
      first = false;
    }
    if (isSetDataFilePath()) {
      if (!first) sb.append(", ");
      sb.append("data_file_path:");
      if (this.data_file_path == null) {
        sb.append("null");
      } else {
        sb.append(this.data_file_path);
      }
      first = false;
    }
    if (isSetDataFileLength()) {
      if (!first) sb.append(", ");
      sb.append("data_file_length:");
      sb.append(this.data_file_length);
      first = false;
    }
    if (isSetDeltaLogs()) {
      if (!first) sb.append(", ");
      sb.append("delta_logs:");
      if (this.delta_logs == null) {
        sb.append("null");
      } else {
        sb.append(this.delta_logs);
      }
      first = false;
    }
    if (isSetColumnNames()) {
      if (!first) sb.append(", ");
      sb.append("column_names:");
      if (this.column_names == null) {
        sb.append("null");
      } else {
        sb.append(this.column_names);
      }
      first = false;
    }
    if (isSetColumnTypes()) {
      if (!first) sb.append(", ");
      sb.append("column_types:");
      if (this.column_types == null) {
        sb.append("null");
      } else {
        sb.append(this.column_types);
      }
      first = false;
    }
    if (isSetNestedFields()) {
      if (!first) sb.append(", ");
      sb.append("nested_fields:");
      if (this.nested_fields == null) {
        sb.append("null");
      } else {
        sb.append(this.nested_fields);
      }
      first = false;
    }
    if (isSetHudiJniScanner()) {
      if (!first) sb.append(", ");
      sb.append("hudi_jni_scanner:");
      if (this.hudi_jni_scanner == null) {
        sb.append("null");
      } else {
        sb.append(this.hudi_jni_scanner);
      }
      first = false;
    }
    if (isSetSchemaId()) {
      if (!first) sb.append(", ");
      sb.append("schema_id:");
      sb.append(this.schema_id);
      first = false;
    }
    sb.append(")");
    return sb.toString();
  }

  public void validate() throws org.apache.thrift.TException {
    // check for required fields
    // check for sub-struct validity
  }

  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
    try {
      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
    } catch (org.apache.thrift.TException te) {
      throw new java.io.IOException(te);
    }
  }

  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
    try {
      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
      __isset_bitfield = 0;
      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
    } catch (org.apache.thrift.TException te) {
      throw new java.io.IOException(te);
    }
  }

  private static class THudiFileDescStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public THudiFileDescStandardScheme getScheme() {
      return new THudiFileDescStandardScheme();
    }
  }

  private static class THudiFileDescStandardScheme extends org.apache.thrift.scheme.StandardScheme<THudiFileDesc> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, THudiFileDesc struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField schemeField;
      iprot.readStructBegin();
      while (true)
      {
        schemeField = iprot.readFieldBegin();
        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (schemeField.id) {
          case 1: // INSTANT_TIME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.instant_time = iprot.readString();
              struct.setInstantTimeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // SERDE
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.serde = iprot.readString();
              struct.setSerdeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // INPUT_FORMAT
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.input_format = iprot.readString();
              struct.setInputFormatIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // BASE_PATH
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.base_path = iprot.readString();
              struct.setBasePathIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // DATA_FILE_PATH
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.data_file_path = iprot.readString();
              struct.setDataFilePathIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // DATA_FILE_LENGTH
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.data_file_length = iprot.readI64();
              struct.setDataFileLengthIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // DELTA_LOGS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list148 = iprot.readListBegin();
                struct.delta_logs = new java.util.ArrayList<java.lang.String>(_list148.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _elem149;
                for (int _i150 = 0; _i150 < _list148.size; ++_i150)
                {
                  _elem149 = iprot.readString();
                  struct.delta_logs.add(_elem149);
                }
                iprot.readListEnd();
              }
              struct.setDeltaLogsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // COLUMN_NAMES
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list151 = iprot.readListBegin();
                struct.column_names = new java.util.ArrayList<java.lang.String>(_list151.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _elem152;
                for (int _i153 = 0; _i153 < _list151.size; ++_i153)
                {
                  _elem152 = iprot.readString();
                  struct.column_names.add(_elem152);
                }
                iprot.readListEnd();
              }
              struct.setColumnNamesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // COLUMN_TYPES
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list154 = iprot.readListBegin();
                struct.column_types = new java.util.ArrayList<java.lang.String>(_list154.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _elem155;
                for (int _i156 = 0; _i156 < _list154.size; ++_i156)
                {
                  _elem155 = iprot.readString();
                  struct.column_types.add(_elem155);
                }
                iprot.readListEnd();
              }
              struct.setColumnTypesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // NESTED_FIELDS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list157 = iprot.readListBegin();
                struct.nested_fields = new java.util.ArrayList<java.lang.String>(_list157.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _elem158;
                for (int _i159 = 0; _i159 < _list157.size; ++_i159)
                {
                  _elem158 = iprot.readString();
                  struct.nested_fields.add(_elem158);
                }
                iprot.readListEnd();
              }
              struct.setNestedFieldsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 11: // HUDI_JNI_SCANNER
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.hudi_jni_scanner = iprot.readString();
              struct.setHudiJniScannerIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 12: // SCHEMA_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.schema_id = iprot.readI64();
              struct.setSchemaIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

      // check for required fields of primitive type, which can't be checked in the validate method
      struct.validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot, THudiFileDesc struct) throws org.apache.thrift.TException {
      struct.validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (struct.instant_time != null) {
        if (struct.isSetInstantTime()) {
          oprot.writeFieldBegin(INSTANT_TIME_FIELD_DESC);
          oprot.writeString(struct.instant_time);
          oprot.writeFieldEnd();
        }
      }
      if (struct.serde != null) {
        if (struct.isSetSerde()) {
          oprot.writeFieldBegin(SERDE_FIELD_DESC);
          oprot.writeString(struct.serde);
          oprot.writeFieldEnd();
        }
      }
      if (struct.input_format != null) {
        if (struct.isSetInputFormat()) {
          oprot.writeFieldBegin(INPUT_FORMAT_FIELD_DESC);
          oprot.writeString(struct.input_format);
          oprot.writeFieldEnd();
        }
      }
      if (struct.base_path != null) {
        if (struct.isSetBasePath()) {
          oprot.writeFieldBegin(BASE_PATH_FIELD_DESC);
          oprot.writeString(struct.base_path);
          oprot.writeFieldEnd();
        }
      }
      if (struct.data_file_path != null) {
        if (struct.isSetDataFilePath()) {
          oprot.writeFieldBegin(DATA_FILE_PATH_FIELD_DESC);
          oprot.writeString(struct.data_file_path);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetDataFileLength()) {
        oprot.writeFieldBegin(DATA_FILE_LENGTH_FIELD_DESC);
        oprot.writeI64(struct.data_file_length);
        oprot.writeFieldEnd();
      }
      if (struct.delta_logs != null) {
        if (struct.isSetDeltaLogs()) {
          oprot.writeFieldBegin(DELTA_LOGS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.delta_logs.size()));
            for (java.lang.String _iter160 : struct.delta_logs)
            {
              oprot.writeString(_iter160);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.column_names != null) {
        if (struct.isSetColumnNames()) {
          oprot.writeFieldBegin(COLUMN_NAMES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.column_names.size()));
            for (java.lang.String _iter161 : struct.column_names)
            {
              oprot.writeString(_iter161);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.column_types != null) {
        if (struct.isSetColumnTypes()) {
          oprot.writeFieldBegin(COLUMN_TYPES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.column_types.size()));
            for (java.lang.String _iter162 : struct.column_types)
            {
              oprot.writeString(_iter162);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.nested_fields != null) {
        if (struct.isSetNestedFields()) {
          oprot.writeFieldBegin(NESTED_FIELDS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.nested_fields.size()));
            for (java.lang.String _iter163 : struct.nested_fields)
            {
              oprot.writeString(_iter163);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.hudi_jni_scanner != null) {
        if (struct.isSetHudiJniScanner()) {
          oprot.writeFieldBegin(HUDI_JNI_SCANNER_FIELD_DESC);
          oprot.writeString(struct.hudi_jni_scanner);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetSchemaId()) {
        oprot.writeFieldBegin(SCHEMA_ID_FIELD_DESC);
        oprot.writeI64(struct.schema_id);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

  private static class THudiFileDescTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public THudiFileDescTupleScheme getScheme() {
      return new THudiFileDescTupleScheme();
    }
  }

  private static class THudiFileDescTupleScheme extends org.apache.thrift.scheme.TupleScheme<THudiFileDesc> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, THudiFileDesc struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet optionals = new java.util.BitSet();
      if (struct.isSetInstantTime()) {
        optionals.set(0);
      }
      if (struct.isSetSerde()) {
        optionals.set(1);
      }
      if (struct.isSetInputFormat()) {
        optionals.set(2);
      }
      if (struct.isSetBasePath()) {
        optionals.set(3);
      }
      if (struct.isSetDataFilePath()) {
        optionals.set(4);
      }
      if (struct.isSetDataFileLength()) {
        optionals.set(5);
      }
      if (struct.isSetDeltaLogs()) {
        optionals.set(6);
      }
      if (struct.isSetColumnNames()) {
        optionals.set(7);
      }
      if (struct.isSetColumnTypes()) {
        optionals.set(8);
      }
      if (struct.isSetNestedFields()) {
        optionals.set(9);
      }
      if (struct.isSetHudiJniScanner()) {
        optionals.set(10);
      }
      if (struct.isSetSchemaId()) {
        optionals.set(11);
      }
      oprot.writeBitSet(optionals, 12);
      if (struct.isSetInstantTime()) {
        oprot.writeString(struct.instant_time);
      }
      if (struct.isSetSerde()) {
        oprot.writeString(struct.serde);
      }
      if (struct.isSetInputFormat()) {
        oprot.writeString(struct.input_format);
      }
      if (struct.isSetBasePath()) {
        oprot.writeString(struct.base_path);
      }
      if (struct.isSetDataFilePath()) {
        oprot.writeString(struct.data_file_path);
      }
      if (struct.isSetDataFileLength()) {
        oprot.writeI64(struct.data_file_length);
      }
      if (struct.isSetDeltaLogs()) {
        {
          oprot.writeI32(struct.delta_logs.size());
          for (java.lang.String _iter164 : struct.delta_logs)
          {
            oprot.writeString(_iter164);
          }
        }
      }
      if (struct.isSetColumnNames()) {
        {
          oprot.writeI32(struct.column_names.size());
          for (java.lang.String _iter165 : struct.column_names)
          {
            oprot.writeString(_iter165);
          }
        }
      }
      if (struct.isSetColumnTypes()) {
        {
          oprot.writeI32(struct.column_types.size());
          for (java.lang.String _iter166 : struct.column_types)
          {
            oprot.writeString(_iter166);
          }
        }
      }
      if (struct.isSetNestedFields()) {
        {
          oprot.writeI32(struct.nested_fields.size());
          for (java.lang.String _iter167 : struct.nested_fields)
          {
            oprot.writeString(_iter167);
          }
        }
      }
      if (struct.isSetHudiJniScanner()) {
        oprot.writeString(struct.hudi_jni_scanner);
      }
      if (struct.isSetSchemaId()) {
        oprot.writeI64(struct.schema_id);
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, THudiFileDesc struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet incoming = iprot.readBitSet(12);
      if (incoming.get(0)) {
        struct.instant_time = iprot.readString();
        struct.setInstantTimeIsSet(true);
      }
      if (incoming.get(1)) {
        struct.serde = iprot.readString();
        struct.setSerdeIsSet(true);
      }
      if (incoming.get(2)) {
        struct.input_format = iprot.readString();
        struct.setInputFormatIsSet(true);
      }
      if (incoming.get(3)) {
        struct.base_path = iprot.readString();
        struct.setBasePathIsSet(true);
      }
      if (incoming.get(4)) {
        struct.data_file_path = iprot.readString();
        struct.setDataFilePathIsSet(true);
      }
      if (incoming.get(5)) {
        struct.data_file_length = iprot.readI64();
        struct.setDataFileLengthIsSet(true);
      }
      if (incoming.get(6)) {
        {
          org.apache.thrift.protocol.TList _list168 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
          struct.delta_logs = new java.util.ArrayList<java.lang.String>(_list168.size);
          @org.apache.thrift.annotation.Nullable java.lang.String _elem169;
          for (int _i170 = 0; _i170 < _list168.size; ++_i170)
          {
            _elem169 = iprot.readString();
            struct.delta_logs.add(_elem169);
          }
        }
        struct.setDeltaLogsIsSet(true);
      }
      if (incoming.get(7)) {
        {
          org.apache.thrift.protocol.TList _list171 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
          struct.column_names = new java.util.ArrayList<java.lang.String>(_list171.size);
          @org.apache.thrift.annotation.Nullable java.lang.String _elem172;
          for (int _i173 = 0; _i173 < _list171.size; ++_i173)
          {
            _elem172 = iprot.readString();
            struct.column_names.add(_elem172);
          }
        }
        struct.setColumnNamesIsSet(true);
      }
      if (incoming.get(8)) {
        {
          org.apache.thrift.protocol.TList _list174 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
          struct.column_types = new java.util.ArrayList<java.lang.String>(_list174.size);
          @org.apache.thrift.annotation.Nullable java.lang.String _elem175;
          for (int _i176 = 0; _i176 < _list174.size; ++_i176)
          {
            _elem175 = iprot.readString();
            struct.column_types.add(_elem175);
          }
        }
        struct.setColumnTypesIsSet(true);
      }
      if (incoming.get(9)) {
        {
          org.apache.thrift.protocol.TList _list177 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
          struct.nested_fields = new java.util.ArrayList<java.lang.String>(_list177.size);
          @org.apache.thrift.annotation.Nullable java.lang.String _elem178;
          for (int _i179 = 0; _i179 < _list177.size; ++_i179)
          {
            _elem178 = iprot.readString();
            struct.nested_fields.add(_elem178);
          }
        }
        struct.setNestedFieldsIsSet(true);
      }
      if (incoming.get(10)) {
        struct.hudi_jni_scanner = iprot.readString();
        struct.setHudiJniScannerIsSet(true);
      }
      if (incoming.get(11)) {
        struct.schema_id = iprot.readI64();
        struct.setSchemaIdIsSet(true);
      }
    }
  }

  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
  }
}