TRoutineLoadJob.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 TRoutineLoadJob implements org.apache.thrift.TBase<TRoutineLoadJob, TRoutineLoadJob._Fields>, java.io.Serializable, Cloneable, Comparable<TRoutineLoadJob> {
  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TRoutineLoadJob");

  private static final org.apache.thrift.protocol.TField JOB_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("job_id", org.apache.thrift.protocol.TType.STRING, (short)1);
  private static final org.apache.thrift.protocol.TField JOB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("job_name", org.apache.thrift.protocol.TType.STRING, (short)2);
  private static final org.apache.thrift.protocol.TField CREATE_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("create_time", org.apache.thrift.protocol.TType.STRING, (short)3);
  private static final org.apache.thrift.protocol.TField PAUSE_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("pause_time", org.apache.thrift.protocol.TType.STRING, (short)4);
  private static final org.apache.thrift.protocol.TField END_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("end_time", org.apache.thrift.protocol.TType.STRING, (short)5);
  private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)6);
  private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("table_name", org.apache.thrift.protocol.TType.STRING, (short)7);
  private static final org.apache.thrift.protocol.TField STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("state", org.apache.thrift.protocol.TType.STRING, (short)8);
  private static final org.apache.thrift.protocol.TField CURRENT_TASK_NUM_FIELD_DESC = new org.apache.thrift.protocol.TField("current_task_num", org.apache.thrift.protocol.TType.STRING, (short)9);
  private static final org.apache.thrift.protocol.TField JOB_PROPERTIES_FIELD_DESC = new org.apache.thrift.protocol.TField("job_properties", org.apache.thrift.protocol.TType.STRING, (short)10);
  private static final org.apache.thrift.protocol.TField DATA_SOURCE_PROPERTIES_FIELD_DESC = new org.apache.thrift.protocol.TField("data_source_properties", org.apache.thrift.protocol.TType.STRING, (short)11);
  private static final org.apache.thrift.protocol.TField CUSTOM_PROPERTIES_FIELD_DESC = new org.apache.thrift.protocol.TField("custom_properties", org.apache.thrift.protocol.TType.STRING, (short)12);
  private static final org.apache.thrift.protocol.TField STATISTIC_FIELD_DESC = new org.apache.thrift.protocol.TField("statistic", org.apache.thrift.protocol.TType.STRING, (short)13);
  private static final org.apache.thrift.protocol.TField PROGRESS_FIELD_DESC = new org.apache.thrift.protocol.TField("progress", org.apache.thrift.protocol.TType.STRING, (short)14);
  private static final org.apache.thrift.protocol.TField LAG_FIELD_DESC = new org.apache.thrift.protocol.TField("lag", org.apache.thrift.protocol.TType.STRING, (short)15);
  private static final org.apache.thrift.protocol.TField REASON_OF_STATE_CHANGED_FIELD_DESC = new org.apache.thrift.protocol.TField("reason_of_state_changed", org.apache.thrift.protocol.TType.STRING, (short)16);
  private static final org.apache.thrift.protocol.TField ERROR_LOG_URLS_FIELD_DESC = new org.apache.thrift.protocol.TField("error_log_urls", org.apache.thrift.protocol.TType.STRING, (short)17);
  private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("user_name", org.apache.thrift.protocol.TType.STRING, (short)18);
  private static final org.apache.thrift.protocol.TField CURRENT_ABORT_TASK_NUM_FIELD_DESC = new org.apache.thrift.protocol.TField("current_abort_task_num", org.apache.thrift.protocol.TType.I32, (short)19);
  private static final org.apache.thrift.protocol.TField IS_ABNORMAL_PAUSE_FIELD_DESC = new org.apache.thrift.protocol.TField("is_abnormal_pause", org.apache.thrift.protocol.TType.BOOL, (short)20);
  private static final org.apache.thrift.protocol.TField COMPUTE_GROUP_FIELD_DESC = new org.apache.thrift.protocol.TField("compute_group", org.apache.thrift.protocol.TType.STRING, (short)21);

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

  public @org.apache.thrift.annotation.Nullable java.lang.String job_id; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String job_name; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String create_time; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String pause_time; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String end_time; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String db_name; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String table_name; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String state; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String current_task_num; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String job_properties; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String data_source_properties; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String custom_properties; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String statistic; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String progress; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String lag; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String reason_of_state_changed; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String error_log_urls; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String user_name; // optional
  public int current_abort_task_num; // optional
  public boolean is_abnormal_pause; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String compute_group; // 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 {
    JOB_ID((short)1, "job_id"),
    JOB_NAME((short)2, "job_name"),
    CREATE_TIME((short)3, "create_time"),
    PAUSE_TIME((short)4, "pause_time"),
    END_TIME((short)5, "end_time"),
    DB_NAME((short)6, "db_name"),
    TABLE_NAME((short)7, "table_name"),
    STATE((short)8, "state"),
    CURRENT_TASK_NUM((short)9, "current_task_num"),
    JOB_PROPERTIES((short)10, "job_properties"),
    DATA_SOURCE_PROPERTIES((short)11, "data_source_properties"),
    CUSTOM_PROPERTIES((short)12, "custom_properties"),
    STATISTIC((short)13, "statistic"),
    PROGRESS((short)14, "progress"),
    LAG((short)15, "lag"),
    REASON_OF_STATE_CHANGED((short)16, "reason_of_state_changed"),
    ERROR_LOG_URLS((short)17, "error_log_urls"),
    USER_NAME((short)18, "user_name"),
    CURRENT_ABORT_TASK_NUM((short)19, "current_abort_task_num"),
    IS_ABNORMAL_PAUSE((short)20, "is_abnormal_pause"),
    COMPUTE_GROUP((short)21, "compute_group");

    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: // JOB_ID
          return JOB_ID;
        case 2: // JOB_NAME
          return JOB_NAME;
        case 3: // CREATE_TIME
          return CREATE_TIME;
        case 4: // PAUSE_TIME
          return PAUSE_TIME;
        case 5: // END_TIME
          return END_TIME;
        case 6: // DB_NAME
          return DB_NAME;
        case 7: // TABLE_NAME
          return TABLE_NAME;
        case 8: // STATE
          return STATE;
        case 9: // CURRENT_TASK_NUM
          return CURRENT_TASK_NUM;
        case 10: // JOB_PROPERTIES
          return JOB_PROPERTIES;
        case 11: // DATA_SOURCE_PROPERTIES
          return DATA_SOURCE_PROPERTIES;
        case 12: // CUSTOM_PROPERTIES
          return CUSTOM_PROPERTIES;
        case 13: // STATISTIC
          return STATISTIC;
        case 14: // PROGRESS
          return PROGRESS;
        case 15: // LAG
          return LAG;
        case 16: // REASON_OF_STATE_CHANGED
          return REASON_OF_STATE_CHANGED;
        case 17: // ERROR_LOG_URLS
          return ERROR_LOG_URLS;
        case 18: // USER_NAME
          return USER_NAME;
        case 19: // CURRENT_ABORT_TASK_NUM
          return CURRENT_ABORT_TASK_NUM;
        case 20: // IS_ABNORMAL_PAUSE
          return IS_ABNORMAL_PAUSE;
        case 21: // COMPUTE_GROUP
          return COMPUTE_GROUP;
        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 __CURRENT_ABORT_TASK_NUM_ISSET_ID = 0;
  private static final int __IS_ABNORMAL_PAUSE_ISSET_ID = 1;
  private byte __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.JOB_ID,_Fields.JOB_NAME,_Fields.CREATE_TIME,_Fields.PAUSE_TIME,_Fields.END_TIME,_Fields.DB_NAME,_Fields.TABLE_NAME,_Fields.STATE,_Fields.CURRENT_TASK_NUM,_Fields.JOB_PROPERTIES,_Fields.DATA_SOURCE_PROPERTIES,_Fields.CUSTOM_PROPERTIES,_Fields.STATISTIC,_Fields.PROGRESS,_Fields.LAG,_Fields.REASON_OF_STATE_CHANGED,_Fields.ERROR_LOG_URLS,_Fields.USER_NAME,_Fields.CURRENT_ABORT_TASK_NUM,_Fields.IS_ABNORMAL_PAUSE,_Fields.COMPUTE_GROUP};
  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.JOB_ID, new org.apache.thrift.meta_data.FieldMetaData("job_id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.JOB_NAME, new org.apache.thrift.meta_data.FieldMetaData("job_name", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.CREATE_TIME, new org.apache.thrift.meta_data.FieldMetaData("create_time", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.PAUSE_TIME, new org.apache.thrift.meta_data.FieldMetaData("pause_time", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.END_TIME, new org.apache.thrift.meta_data.FieldMetaData("end_time", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("table_name", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.STATE, new org.apache.thrift.meta_data.FieldMetaData("state", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.CURRENT_TASK_NUM, new org.apache.thrift.meta_data.FieldMetaData("current_task_num", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.JOB_PROPERTIES, new org.apache.thrift.meta_data.FieldMetaData("job_properties", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.DATA_SOURCE_PROPERTIES, new org.apache.thrift.meta_data.FieldMetaData("data_source_properties", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.CUSTOM_PROPERTIES, new org.apache.thrift.meta_data.FieldMetaData("custom_properties", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.STATISTIC, new org.apache.thrift.meta_data.FieldMetaData("statistic", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.PROGRESS, new org.apache.thrift.meta_data.FieldMetaData("progress", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.LAG, new org.apache.thrift.meta_data.FieldMetaData("lag", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.REASON_OF_STATE_CHANGED, new org.apache.thrift.meta_data.FieldMetaData("reason_of_state_changed", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.ERROR_LOG_URLS, new org.apache.thrift.meta_data.FieldMetaData("error_log_urls", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("user_name", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.CURRENT_ABORT_TASK_NUM, new org.apache.thrift.meta_data.FieldMetaData("current_abort_task_num", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.IS_ABNORMAL_PAUSE, new org.apache.thrift.meta_data.FieldMetaData("is_abnormal_pause", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.COMPUTE_GROUP, new org.apache.thrift.meta_data.FieldMetaData("compute_group", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TRoutineLoadJob.class, metaDataMap);
  }

  public TRoutineLoadJob() {
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TRoutineLoadJob(TRoutineLoadJob other) {
    __isset_bitfield = other.__isset_bitfield;
    if (other.isSetJobId()) {
      this.job_id = other.job_id;
    }
    if (other.isSetJobName()) {
      this.job_name = other.job_name;
    }
    if (other.isSetCreateTime()) {
      this.create_time = other.create_time;
    }
    if (other.isSetPauseTime()) {
      this.pause_time = other.pause_time;
    }
    if (other.isSetEndTime()) {
      this.end_time = other.end_time;
    }
    if (other.isSetDbName()) {
      this.db_name = other.db_name;
    }
    if (other.isSetTableName()) {
      this.table_name = other.table_name;
    }
    if (other.isSetState()) {
      this.state = other.state;
    }
    if (other.isSetCurrentTaskNum()) {
      this.current_task_num = other.current_task_num;
    }
    if (other.isSetJobProperties()) {
      this.job_properties = other.job_properties;
    }
    if (other.isSetDataSourceProperties()) {
      this.data_source_properties = other.data_source_properties;
    }
    if (other.isSetCustomProperties()) {
      this.custom_properties = other.custom_properties;
    }
    if (other.isSetStatistic()) {
      this.statistic = other.statistic;
    }
    if (other.isSetProgress()) {
      this.progress = other.progress;
    }
    if (other.isSetLag()) {
      this.lag = other.lag;
    }
    if (other.isSetReasonOfStateChanged()) {
      this.reason_of_state_changed = other.reason_of_state_changed;
    }
    if (other.isSetErrorLogUrls()) {
      this.error_log_urls = other.error_log_urls;
    }
    if (other.isSetUserName()) {
      this.user_name = other.user_name;
    }
    this.current_abort_task_num = other.current_abort_task_num;
    this.is_abnormal_pause = other.is_abnormal_pause;
    if (other.isSetComputeGroup()) {
      this.compute_group = other.compute_group;
    }
  }

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

  @Override
  public void clear() {
    this.job_id = null;
    this.job_name = null;
    this.create_time = null;
    this.pause_time = null;
    this.end_time = null;
    this.db_name = null;
    this.table_name = null;
    this.state = null;
    this.current_task_num = null;
    this.job_properties = null;
    this.data_source_properties = null;
    this.custom_properties = null;
    this.statistic = null;
    this.progress = null;
    this.lag = null;
    this.reason_of_state_changed = null;
    this.error_log_urls = null;
    this.user_name = null;
    setCurrentAbortTaskNumIsSet(false);
    this.current_abort_task_num = 0;
    setIsAbnormalPauseIsSet(false);
    this.is_abnormal_pause = false;
    this.compute_group = null;
  }

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

  public TRoutineLoadJob setJobId(@org.apache.thrift.annotation.Nullable java.lang.String job_id) {
    this.job_id = job_id;
    return this;
  }

  public void unsetJobId() {
    this.job_id = null;
  }

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

  public void setJobIdIsSet(boolean value) {
    if (!value) {
      this.job_id = null;
    }
  }

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

  public TRoutineLoadJob setJobName(@org.apache.thrift.annotation.Nullable java.lang.String job_name) {
    this.job_name = job_name;
    return this;
  }

  public void unsetJobName() {
    this.job_name = null;
  }

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

  public void setJobNameIsSet(boolean value) {
    if (!value) {
      this.job_name = null;
    }
  }

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

  public TRoutineLoadJob setCreateTime(@org.apache.thrift.annotation.Nullable java.lang.String create_time) {
    this.create_time = create_time;
    return this;
  }

  public void unsetCreateTime() {
    this.create_time = null;
  }

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

  public void setCreateTimeIsSet(boolean value) {
    if (!value) {
      this.create_time = null;
    }
  }

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

  public TRoutineLoadJob setPauseTime(@org.apache.thrift.annotation.Nullable java.lang.String pause_time) {
    this.pause_time = pause_time;
    return this;
  }

  public void unsetPauseTime() {
    this.pause_time = null;
  }

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

  public void setPauseTimeIsSet(boolean value) {
    if (!value) {
      this.pause_time = null;
    }
  }

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

  public TRoutineLoadJob setEndTime(@org.apache.thrift.annotation.Nullable java.lang.String end_time) {
    this.end_time = end_time;
    return this;
  }

  public void unsetEndTime() {
    this.end_time = null;
  }

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

  public void setEndTimeIsSet(boolean value) {
    if (!value) {
      this.end_time = null;
    }
  }

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

  public TRoutineLoadJob setDbName(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
    this.db_name = db_name;
    return this;
  }

  public void unsetDbName() {
    this.db_name = null;
  }

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

  public void setDbNameIsSet(boolean value) {
    if (!value) {
      this.db_name = null;
    }
  }

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

  public TRoutineLoadJob setTableName(@org.apache.thrift.annotation.Nullable java.lang.String table_name) {
    this.table_name = table_name;
    return this;
  }

  public void unsetTableName() {
    this.table_name = null;
  }

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

  public void setTableNameIsSet(boolean value) {
    if (!value) {
      this.table_name = null;
    }
  }

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

  public TRoutineLoadJob setState(@org.apache.thrift.annotation.Nullable java.lang.String state) {
    this.state = state;
    return this;
  }

  public void unsetState() {
    this.state = null;
  }

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

  public void setStateIsSet(boolean value) {
    if (!value) {
      this.state = null;
    }
  }

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

  public TRoutineLoadJob setCurrentTaskNum(@org.apache.thrift.annotation.Nullable java.lang.String current_task_num) {
    this.current_task_num = current_task_num;
    return this;
  }

  public void unsetCurrentTaskNum() {
    this.current_task_num = null;
  }

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

  public void setCurrentTaskNumIsSet(boolean value) {
    if (!value) {
      this.current_task_num = null;
    }
  }

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

  public TRoutineLoadJob setJobProperties(@org.apache.thrift.annotation.Nullable java.lang.String job_properties) {
    this.job_properties = job_properties;
    return this;
  }

  public void unsetJobProperties() {
    this.job_properties = null;
  }

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

  public void setJobPropertiesIsSet(boolean value) {
    if (!value) {
      this.job_properties = null;
    }
  }

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

  public TRoutineLoadJob setDataSourceProperties(@org.apache.thrift.annotation.Nullable java.lang.String data_source_properties) {
    this.data_source_properties = data_source_properties;
    return this;
  }

  public void unsetDataSourceProperties() {
    this.data_source_properties = null;
  }

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

  public void setDataSourcePropertiesIsSet(boolean value) {
    if (!value) {
      this.data_source_properties = null;
    }
  }

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

  public TRoutineLoadJob setCustomProperties(@org.apache.thrift.annotation.Nullable java.lang.String custom_properties) {
    this.custom_properties = custom_properties;
    return this;
  }

  public void unsetCustomProperties() {
    this.custom_properties = null;
  }

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

  public void setCustomPropertiesIsSet(boolean value) {
    if (!value) {
      this.custom_properties = null;
    }
  }

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

  public TRoutineLoadJob setStatistic(@org.apache.thrift.annotation.Nullable java.lang.String statistic) {
    this.statistic = statistic;
    return this;
  }

  public void unsetStatistic() {
    this.statistic = null;
  }

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

  public void setStatisticIsSet(boolean value) {
    if (!value) {
      this.statistic = null;
    }
  }

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

  public TRoutineLoadJob setProgress(@org.apache.thrift.annotation.Nullable java.lang.String progress) {
    this.progress = progress;
    return this;
  }

  public void unsetProgress() {
    this.progress = null;
  }

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

  public void setProgressIsSet(boolean value) {
    if (!value) {
      this.progress = null;
    }
  }

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

  public TRoutineLoadJob setLag(@org.apache.thrift.annotation.Nullable java.lang.String lag) {
    this.lag = lag;
    return this;
  }

  public void unsetLag() {
    this.lag = null;
  }

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

  public void setLagIsSet(boolean value) {
    if (!value) {
      this.lag = null;
    }
  }

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

  public TRoutineLoadJob setReasonOfStateChanged(@org.apache.thrift.annotation.Nullable java.lang.String reason_of_state_changed) {
    this.reason_of_state_changed = reason_of_state_changed;
    return this;
  }

  public void unsetReasonOfStateChanged() {
    this.reason_of_state_changed = null;
  }

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

  public void setReasonOfStateChangedIsSet(boolean value) {
    if (!value) {
      this.reason_of_state_changed = null;
    }
  }

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

  public TRoutineLoadJob setErrorLogUrls(@org.apache.thrift.annotation.Nullable java.lang.String error_log_urls) {
    this.error_log_urls = error_log_urls;
    return this;
  }

  public void unsetErrorLogUrls() {
    this.error_log_urls = null;
  }

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

  public void setErrorLogUrlsIsSet(boolean value) {
    if (!value) {
      this.error_log_urls = null;
    }
  }

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

  public TRoutineLoadJob setUserName(@org.apache.thrift.annotation.Nullable java.lang.String user_name) {
    this.user_name = user_name;
    return this;
  }

  public void unsetUserName() {
    this.user_name = null;
  }

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

  public void setUserNameIsSet(boolean value) {
    if (!value) {
      this.user_name = null;
    }
  }

  public int getCurrentAbortTaskNum() {
    return this.current_abort_task_num;
  }

  public TRoutineLoadJob setCurrentAbortTaskNum(int current_abort_task_num) {
    this.current_abort_task_num = current_abort_task_num;
    setCurrentAbortTaskNumIsSet(true);
    return this;
  }

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

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

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

  public boolean isIsAbnormalPause() {
    return this.is_abnormal_pause;
  }

  public TRoutineLoadJob setIsAbnormalPause(boolean is_abnormal_pause) {
    this.is_abnormal_pause = is_abnormal_pause;
    setIsAbnormalPauseIsSet(true);
    return this;
  }

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

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

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

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

  public TRoutineLoadJob setComputeGroup(@org.apache.thrift.annotation.Nullable java.lang.String compute_group) {
    this.compute_group = compute_group;
    return this;
  }

  public void unsetComputeGroup() {
    this.compute_group = null;
  }

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

  public void setComputeGroupIsSet(boolean value) {
    if (!value) {
      this.compute_group = null;
    }
  }

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

    case JOB_NAME:
      if (value == null) {
        unsetJobName();
      } else {
        setJobName((java.lang.String)value);
      }
      break;

    case CREATE_TIME:
      if (value == null) {
        unsetCreateTime();
      } else {
        setCreateTime((java.lang.String)value);
      }
      break;

    case PAUSE_TIME:
      if (value == null) {
        unsetPauseTime();
      } else {
        setPauseTime((java.lang.String)value);
      }
      break;

    case END_TIME:
      if (value == null) {
        unsetEndTime();
      } else {
        setEndTime((java.lang.String)value);
      }
      break;

    case DB_NAME:
      if (value == null) {
        unsetDbName();
      } else {
        setDbName((java.lang.String)value);
      }
      break;

    case TABLE_NAME:
      if (value == null) {
        unsetTableName();
      } else {
        setTableName((java.lang.String)value);
      }
      break;

    case STATE:
      if (value == null) {
        unsetState();
      } else {
        setState((java.lang.String)value);
      }
      break;

    case CURRENT_TASK_NUM:
      if (value == null) {
        unsetCurrentTaskNum();
      } else {
        setCurrentTaskNum((java.lang.String)value);
      }
      break;

    case JOB_PROPERTIES:
      if (value == null) {
        unsetJobProperties();
      } else {
        setJobProperties((java.lang.String)value);
      }
      break;

    case DATA_SOURCE_PROPERTIES:
      if (value == null) {
        unsetDataSourceProperties();
      } else {
        setDataSourceProperties((java.lang.String)value);
      }
      break;

    case CUSTOM_PROPERTIES:
      if (value == null) {
        unsetCustomProperties();
      } else {
        setCustomProperties((java.lang.String)value);
      }
      break;

    case STATISTIC:
      if (value == null) {
        unsetStatistic();
      } else {
        setStatistic((java.lang.String)value);
      }
      break;

    case PROGRESS:
      if (value == null) {
        unsetProgress();
      } else {
        setProgress((java.lang.String)value);
      }
      break;

    case LAG:
      if (value == null) {
        unsetLag();
      } else {
        setLag((java.lang.String)value);
      }
      break;

    case REASON_OF_STATE_CHANGED:
      if (value == null) {
        unsetReasonOfStateChanged();
      } else {
        setReasonOfStateChanged((java.lang.String)value);
      }
      break;

    case ERROR_LOG_URLS:
      if (value == null) {
        unsetErrorLogUrls();
      } else {
        setErrorLogUrls((java.lang.String)value);
      }
      break;

    case USER_NAME:
      if (value == null) {
        unsetUserName();
      } else {
        setUserName((java.lang.String)value);
      }
      break;

    case CURRENT_ABORT_TASK_NUM:
      if (value == null) {
        unsetCurrentAbortTaskNum();
      } else {
        setCurrentAbortTaskNum((java.lang.Integer)value);
      }
      break;

    case IS_ABNORMAL_PAUSE:
      if (value == null) {
        unsetIsAbnormalPause();
      } else {
        setIsAbnormalPause((java.lang.Boolean)value);
      }
      break;

    case COMPUTE_GROUP:
      if (value == null) {
        unsetComputeGroup();
      } else {
        setComputeGroup((java.lang.String)value);
      }
      break;

    }
  }

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

    case JOB_NAME:
      return getJobName();

    case CREATE_TIME:
      return getCreateTime();

    case PAUSE_TIME:
      return getPauseTime();

    case END_TIME:
      return getEndTime();

    case DB_NAME:
      return getDbName();

    case TABLE_NAME:
      return getTableName();

    case STATE:
      return getState();

    case CURRENT_TASK_NUM:
      return getCurrentTaskNum();

    case JOB_PROPERTIES:
      return getJobProperties();

    case DATA_SOURCE_PROPERTIES:
      return getDataSourceProperties();

    case CUSTOM_PROPERTIES:
      return getCustomProperties();

    case STATISTIC:
      return getStatistic();

    case PROGRESS:
      return getProgress();

    case LAG:
      return getLag();

    case REASON_OF_STATE_CHANGED:
      return getReasonOfStateChanged();

    case ERROR_LOG_URLS:
      return getErrorLogUrls();

    case USER_NAME:
      return getUserName();

    case CURRENT_ABORT_TASK_NUM:
      return getCurrentAbortTaskNum();

    case IS_ABNORMAL_PAUSE:
      return isIsAbnormalPause();

    case COMPUTE_GROUP:
      return getComputeGroup();

    }
    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 JOB_ID:
      return isSetJobId();
    case JOB_NAME:
      return isSetJobName();
    case CREATE_TIME:
      return isSetCreateTime();
    case PAUSE_TIME:
      return isSetPauseTime();
    case END_TIME:
      return isSetEndTime();
    case DB_NAME:
      return isSetDbName();
    case TABLE_NAME:
      return isSetTableName();
    case STATE:
      return isSetState();
    case CURRENT_TASK_NUM:
      return isSetCurrentTaskNum();
    case JOB_PROPERTIES:
      return isSetJobProperties();
    case DATA_SOURCE_PROPERTIES:
      return isSetDataSourceProperties();
    case CUSTOM_PROPERTIES:
      return isSetCustomProperties();
    case STATISTIC:
      return isSetStatistic();
    case PROGRESS:
      return isSetProgress();
    case LAG:
      return isSetLag();
    case REASON_OF_STATE_CHANGED:
      return isSetReasonOfStateChanged();
    case ERROR_LOG_URLS:
      return isSetErrorLogUrls();
    case USER_NAME:
      return isSetUserName();
    case CURRENT_ABORT_TASK_NUM:
      return isSetCurrentAbortTaskNum();
    case IS_ABNORMAL_PAUSE:
      return isSetIsAbnormalPause();
    case COMPUTE_GROUP:
      return isSetComputeGroup();
    }
    throw new java.lang.IllegalStateException();
  }

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

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

    boolean this_present_job_id = true && this.isSetJobId();
    boolean that_present_job_id = true && that.isSetJobId();
    if (this_present_job_id || that_present_job_id) {
      if (!(this_present_job_id && that_present_job_id))
        return false;
      if (!this.job_id.equals(that.job_id))
        return false;
    }

    boolean this_present_job_name = true && this.isSetJobName();
    boolean that_present_job_name = true && that.isSetJobName();
    if (this_present_job_name || that_present_job_name) {
      if (!(this_present_job_name && that_present_job_name))
        return false;
      if (!this.job_name.equals(that.job_name))
        return false;
    }

    boolean this_present_create_time = true && this.isSetCreateTime();
    boolean that_present_create_time = true && that.isSetCreateTime();
    if (this_present_create_time || that_present_create_time) {
      if (!(this_present_create_time && that_present_create_time))
        return false;
      if (!this.create_time.equals(that.create_time))
        return false;
    }

    boolean this_present_pause_time = true && this.isSetPauseTime();
    boolean that_present_pause_time = true && that.isSetPauseTime();
    if (this_present_pause_time || that_present_pause_time) {
      if (!(this_present_pause_time && that_present_pause_time))
        return false;
      if (!this.pause_time.equals(that.pause_time))
        return false;
    }

    boolean this_present_end_time = true && this.isSetEndTime();
    boolean that_present_end_time = true && that.isSetEndTime();
    if (this_present_end_time || that_present_end_time) {
      if (!(this_present_end_time && that_present_end_time))
        return false;
      if (!this.end_time.equals(that.end_time))
        return false;
    }

    boolean this_present_db_name = true && this.isSetDbName();
    boolean that_present_db_name = true && that.isSetDbName();
    if (this_present_db_name || that_present_db_name) {
      if (!(this_present_db_name && that_present_db_name))
        return false;
      if (!this.db_name.equals(that.db_name))
        return false;
    }

    boolean this_present_table_name = true && this.isSetTableName();
    boolean that_present_table_name = true && that.isSetTableName();
    if (this_present_table_name || that_present_table_name) {
      if (!(this_present_table_name && that_present_table_name))
        return false;
      if (!this.table_name.equals(that.table_name))
        return false;
    }

    boolean this_present_state = true && this.isSetState();
    boolean that_present_state = true && that.isSetState();
    if (this_present_state || that_present_state) {
      if (!(this_present_state && that_present_state))
        return false;
      if (!this.state.equals(that.state))
        return false;
    }

    boolean this_present_current_task_num = true && this.isSetCurrentTaskNum();
    boolean that_present_current_task_num = true && that.isSetCurrentTaskNum();
    if (this_present_current_task_num || that_present_current_task_num) {
      if (!(this_present_current_task_num && that_present_current_task_num))
        return false;
      if (!this.current_task_num.equals(that.current_task_num))
        return false;
    }

    boolean this_present_job_properties = true && this.isSetJobProperties();
    boolean that_present_job_properties = true && that.isSetJobProperties();
    if (this_present_job_properties || that_present_job_properties) {
      if (!(this_present_job_properties && that_present_job_properties))
        return false;
      if (!this.job_properties.equals(that.job_properties))
        return false;
    }

    boolean this_present_data_source_properties = true && this.isSetDataSourceProperties();
    boolean that_present_data_source_properties = true && that.isSetDataSourceProperties();
    if (this_present_data_source_properties || that_present_data_source_properties) {
      if (!(this_present_data_source_properties && that_present_data_source_properties))
        return false;
      if (!this.data_source_properties.equals(that.data_source_properties))
        return false;
    }

    boolean this_present_custom_properties = true && this.isSetCustomProperties();
    boolean that_present_custom_properties = true && that.isSetCustomProperties();
    if (this_present_custom_properties || that_present_custom_properties) {
      if (!(this_present_custom_properties && that_present_custom_properties))
        return false;
      if (!this.custom_properties.equals(that.custom_properties))
        return false;
    }

    boolean this_present_statistic = true && this.isSetStatistic();
    boolean that_present_statistic = true && that.isSetStatistic();
    if (this_present_statistic || that_present_statistic) {
      if (!(this_present_statistic && that_present_statistic))
        return false;
      if (!this.statistic.equals(that.statistic))
        return false;
    }

    boolean this_present_progress = true && this.isSetProgress();
    boolean that_present_progress = true && that.isSetProgress();
    if (this_present_progress || that_present_progress) {
      if (!(this_present_progress && that_present_progress))
        return false;
      if (!this.progress.equals(that.progress))
        return false;
    }

    boolean this_present_lag = true && this.isSetLag();
    boolean that_present_lag = true && that.isSetLag();
    if (this_present_lag || that_present_lag) {
      if (!(this_present_lag && that_present_lag))
        return false;
      if (!this.lag.equals(that.lag))
        return false;
    }

    boolean this_present_reason_of_state_changed = true && this.isSetReasonOfStateChanged();
    boolean that_present_reason_of_state_changed = true && that.isSetReasonOfStateChanged();
    if (this_present_reason_of_state_changed || that_present_reason_of_state_changed) {
      if (!(this_present_reason_of_state_changed && that_present_reason_of_state_changed))
        return false;
      if (!this.reason_of_state_changed.equals(that.reason_of_state_changed))
        return false;
    }

    boolean this_present_error_log_urls = true && this.isSetErrorLogUrls();
    boolean that_present_error_log_urls = true && that.isSetErrorLogUrls();
    if (this_present_error_log_urls || that_present_error_log_urls) {
      if (!(this_present_error_log_urls && that_present_error_log_urls))
        return false;
      if (!this.error_log_urls.equals(that.error_log_urls))
        return false;
    }

    boolean this_present_user_name = true && this.isSetUserName();
    boolean that_present_user_name = true && that.isSetUserName();
    if (this_present_user_name || that_present_user_name) {
      if (!(this_present_user_name && that_present_user_name))
        return false;
      if (!this.user_name.equals(that.user_name))
        return false;
    }

    boolean this_present_current_abort_task_num = true && this.isSetCurrentAbortTaskNum();
    boolean that_present_current_abort_task_num = true && that.isSetCurrentAbortTaskNum();
    if (this_present_current_abort_task_num || that_present_current_abort_task_num) {
      if (!(this_present_current_abort_task_num && that_present_current_abort_task_num))
        return false;
      if (this.current_abort_task_num != that.current_abort_task_num)
        return false;
    }

    boolean this_present_is_abnormal_pause = true && this.isSetIsAbnormalPause();
    boolean that_present_is_abnormal_pause = true && that.isSetIsAbnormalPause();
    if (this_present_is_abnormal_pause || that_present_is_abnormal_pause) {
      if (!(this_present_is_abnormal_pause && that_present_is_abnormal_pause))
        return false;
      if (this.is_abnormal_pause != that.is_abnormal_pause)
        return false;
    }

    boolean this_present_compute_group = true && this.isSetComputeGroup();
    boolean that_present_compute_group = true && that.isSetComputeGroup();
    if (this_present_compute_group || that_present_compute_group) {
      if (!(this_present_compute_group && that_present_compute_group))
        return false;
      if (!this.compute_group.equals(that.compute_group))
        return false;
    }

    return true;
  }

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

    hashCode = hashCode * 8191 + ((isSetJobId()) ? 131071 : 524287);
    if (isSetJobId())
      hashCode = hashCode * 8191 + job_id.hashCode();

    hashCode = hashCode * 8191 + ((isSetJobName()) ? 131071 : 524287);
    if (isSetJobName())
      hashCode = hashCode * 8191 + job_name.hashCode();

    hashCode = hashCode * 8191 + ((isSetCreateTime()) ? 131071 : 524287);
    if (isSetCreateTime())
      hashCode = hashCode * 8191 + create_time.hashCode();

    hashCode = hashCode * 8191 + ((isSetPauseTime()) ? 131071 : 524287);
    if (isSetPauseTime())
      hashCode = hashCode * 8191 + pause_time.hashCode();

    hashCode = hashCode * 8191 + ((isSetEndTime()) ? 131071 : 524287);
    if (isSetEndTime())
      hashCode = hashCode * 8191 + end_time.hashCode();

    hashCode = hashCode * 8191 + ((isSetDbName()) ? 131071 : 524287);
    if (isSetDbName())
      hashCode = hashCode * 8191 + db_name.hashCode();

    hashCode = hashCode * 8191 + ((isSetTableName()) ? 131071 : 524287);
    if (isSetTableName())
      hashCode = hashCode * 8191 + table_name.hashCode();

    hashCode = hashCode * 8191 + ((isSetState()) ? 131071 : 524287);
    if (isSetState())
      hashCode = hashCode * 8191 + state.hashCode();

    hashCode = hashCode * 8191 + ((isSetCurrentTaskNum()) ? 131071 : 524287);
    if (isSetCurrentTaskNum())
      hashCode = hashCode * 8191 + current_task_num.hashCode();

    hashCode = hashCode * 8191 + ((isSetJobProperties()) ? 131071 : 524287);
    if (isSetJobProperties())
      hashCode = hashCode * 8191 + job_properties.hashCode();

    hashCode = hashCode * 8191 + ((isSetDataSourceProperties()) ? 131071 : 524287);
    if (isSetDataSourceProperties())
      hashCode = hashCode * 8191 + data_source_properties.hashCode();

    hashCode = hashCode * 8191 + ((isSetCustomProperties()) ? 131071 : 524287);
    if (isSetCustomProperties())
      hashCode = hashCode * 8191 + custom_properties.hashCode();

    hashCode = hashCode * 8191 + ((isSetStatistic()) ? 131071 : 524287);
    if (isSetStatistic())
      hashCode = hashCode * 8191 + statistic.hashCode();

    hashCode = hashCode * 8191 + ((isSetProgress()) ? 131071 : 524287);
    if (isSetProgress())
      hashCode = hashCode * 8191 + progress.hashCode();

    hashCode = hashCode * 8191 + ((isSetLag()) ? 131071 : 524287);
    if (isSetLag())
      hashCode = hashCode * 8191 + lag.hashCode();

    hashCode = hashCode * 8191 + ((isSetReasonOfStateChanged()) ? 131071 : 524287);
    if (isSetReasonOfStateChanged())
      hashCode = hashCode * 8191 + reason_of_state_changed.hashCode();

    hashCode = hashCode * 8191 + ((isSetErrorLogUrls()) ? 131071 : 524287);
    if (isSetErrorLogUrls())
      hashCode = hashCode * 8191 + error_log_urls.hashCode();

    hashCode = hashCode * 8191 + ((isSetUserName()) ? 131071 : 524287);
    if (isSetUserName())
      hashCode = hashCode * 8191 + user_name.hashCode();

    hashCode = hashCode * 8191 + ((isSetCurrentAbortTaskNum()) ? 131071 : 524287);
    if (isSetCurrentAbortTaskNum())
      hashCode = hashCode * 8191 + current_abort_task_num;

    hashCode = hashCode * 8191 + ((isSetIsAbnormalPause()) ? 131071 : 524287);
    if (isSetIsAbnormalPause())
      hashCode = hashCode * 8191 + ((is_abnormal_pause) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetComputeGroup()) ? 131071 : 524287);
    if (isSetComputeGroup())
      hashCode = hashCode * 8191 + compute_group.hashCode();

    return hashCode;
  }

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

    int lastComparison = 0;

    lastComparison = java.lang.Boolean.compare(isSetJobId(), other.isSetJobId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetJobId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.job_id, other.job_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetJobName(), other.isSetJobName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetJobName()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.job_name, other.job_name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetCreateTime(), other.isSetCreateTime());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCreateTime()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.create_time, other.create_time);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPauseTime(), other.isSetPauseTime());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPauseTime()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pause_time, other.pause_time);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetEndTime(), other.isSetEndTime());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEndTime()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.end_time, other.end_time);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetDbName(), other.isSetDbName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDbName()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetTableName(), other.isSetTableName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTableName()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.table_name, other.table_name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetState(), other.isSetState());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetState()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state, other.state);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetCurrentTaskNum(), other.isSetCurrentTaskNum());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCurrentTaskNum()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.current_task_num, other.current_task_num);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetJobProperties(), other.isSetJobProperties());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetJobProperties()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.job_properties, other.job_properties);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetDataSourceProperties(), other.isSetDataSourceProperties());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDataSourceProperties()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.data_source_properties, other.data_source_properties);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetCustomProperties(), other.isSetCustomProperties());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCustomProperties()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.custom_properties, other.custom_properties);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetStatistic(), other.isSetStatistic());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetStatistic()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.statistic, other.statistic);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetProgress(), other.isSetProgress());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetProgress()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.progress, other.progress);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetLag(), other.isSetLag());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetLag()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lag, other.lag);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetReasonOfStateChanged(), other.isSetReasonOfStateChanged());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetReasonOfStateChanged()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reason_of_state_changed, other.reason_of_state_changed);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetErrorLogUrls(), other.isSetErrorLogUrls());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetErrorLogUrls()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error_log_urls, other.error_log_urls);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetUserName(), other.isSetUserName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetUserName()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user_name, other.user_name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetCurrentAbortTaskNum(), other.isSetCurrentAbortTaskNum());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCurrentAbortTaskNum()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.current_abort_task_num, other.current_abort_task_num);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetIsAbnormalPause(), other.isSetIsAbnormalPause());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsAbnormalPause()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.is_abnormal_pause, other.is_abnormal_pause);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetComputeGroup(), other.isSetComputeGroup());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetComputeGroup()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.compute_group, other.compute_group);
      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("TRoutineLoadJob(");
    boolean first = true;

    if (isSetJobId()) {
      sb.append("job_id:");
      if (this.job_id == null) {
        sb.append("null");
      } else {
        sb.append(this.job_id);
      }
      first = false;
    }
    if (isSetJobName()) {
      if (!first) sb.append(", ");
      sb.append("job_name:");
      if (this.job_name == null) {
        sb.append("null");
      } else {
        sb.append(this.job_name);
      }
      first = false;
    }
    if (isSetCreateTime()) {
      if (!first) sb.append(", ");
      sb.append("create_time:");
      if (this.create_time == null) {
        sb.append("null");
      } else {
        sb.append(this.create_time);
      }
      first = false;
    }
    if (isSetPauseTime()) {
      if (!first) sb.append(", ");
      sb.append("pause_time:");
      if (this.pause_time == null) {
        sb.append("null");
      } else {
        sb.append(this.pause_time);
      }
      first = false;
    }
    if (isSetEndTime()) {
      if (!first) sb.append(", ");
      sb.append("end_time:");
      if (this.end_time == null) {
        sb.append("null");
      } else {
        sb.append(this.end_time);
      }
      first = false;
    }
    if (isSetDbName()) {
      if (!first) sb.append(", ");
      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
    }
    if (isSetTableName()) {
      if (!first) sb.append(", ");
      sb.append("table_name:");
      if (this.table_name == null) {
        sb.append("null");
      } else {
        sb.append(this.table_name);
      }
      first = false;
    }
    if (isSetState()) {
      if (!first) sb.append(", ");
      sb.append("state:");
      if (this.state == null) {
        sb.append("null");
      } else {
        sb.append(this.state);
      }
      first = false;
    }
    if (isSetCurrentTaskNum()) {
      if (!first) sb.append(", ");
      sb.append("current_task_num:");
      if (this.current_task_num == null) {
        sb.append("null");
      } else {
        sb.append(this.current_task_num);
      }
      first = false;
    }
    if (isSetJobProperties()) {
      if (!first) sb.append(", ");
      sb.append("job_properties:");
      if (this.job_properties == null) {
        sb.append("null");
      } else {
        sb.append(this.job_properties);
      }
      first = false;
    }
    if (isSetDataSourceProperties()) {
      if (!first) sb.append(", ");
      sb.append("data_source_properties:");
      if (this.data_source_properties == null) {
        sb.append("null");
      } else {
        sb.append(this.data_source_properties);
      }
      first = false;
    }
    if (isSetCustomProperties()) {
      if (!first) sb.append(", ");
      sb.append("custom_properties:");
      if (this.custom_properties == null) {
        sb.append("null");
      } else {
        sb.append(this.custom_properties);
      }
      first = false;
    }
    if (isSetStatistic()) {
      if (!first) sb.append(", ");
      sb.append("statistic:");
      if (this.statistic == null) {
        sb.append("null");
      } else {
        sb.append(this.statistic);
      }
      first = false;
    }
    if (isSetProgress()) {
      if (!first) sb.append(", ");
      sb.append("progress:");
      if (this.progress == null) {
        sb.append("null");
      } else {
        sb.append(this.progress);
      }
      first = false;
    }
    if (isSetLag()) {
      if (!first) sb.append(", ");
      sb.append("lag:");
      if (this.lag == null) {
        sb.append("null");
      } else {
        sb.append(this.lag);
      }
      first = false;
    }
    if (isSetReasonOfStateChanged()) {
      if (!first) sb.append(", ");
      sb.append("reason_of_state_changed:");
      if (this.reason_of_state_changed == null) {
        sb.append("null");
      } else {
        sb.append(this.reason_of_state_changed);
      }
      first = false;
    }
    if (isSetErrorLogUrls()) {
      if (!first) sb.append(", ");
      sb.append("error_log_urls:");
      if (this.error_log_urls == null) {
        sb.append("null");
      } else {
        sb.append(this.error_log_urls);
      }
      first = false;
    }
    if (isSetUserName()) {
      if (!first) sb.append(", ");
      sb.append("user_name:");
      if (this.user_name == null) {
        sb.append("null");
      } else {
        sb.append(this.user_name);
      }
      first = false;
    }
    if (isSetCurrentAbortTaskNum()) {
      if (!first) sb.append(", ");
      sb.append("current_abort_task_num:");
      sb.append(this.current_abort_task_num);
      first = false;
    }
    if (isSetIsAbnormalPause()) {
      if (!first) sb.append(", ");
      sb.append("is_abnormal_pause:");
      sb.append(this.is_abnormal_pause);
      first = false;
    }
    if (isSetComputeGroup()) {
      if (!first) sb.append(", ");
      sb.append("compute_group:");
      if (this.compute_group == null) {
        sb.append("null");
      } else {
        sb.append(this.compute_group);
      }
      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 TRoutineLoadJobStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public TRoutineLoadJobStandardScheme getScheme() {
      return new TRoutineLoadJobStandardScheme();
    }
  }

  private static class TRoutineLoadJobStandardScheme extends org.apache.thrift.scheme.StandardScheme<TRoutineLoadJob> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, TRoutineLoadJob 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: // JOB_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.job_id = iprot.readString();
              struct.setJobIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // JOB_NAME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.job_name = iprot.readString();
              struct.setJobNameIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // CREATE_TIME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.create_time = iprot.readString();
              struct.setCreateTimeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // PAUSE_TIME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.pause_time = iprot.readString();
              struct.setPauseTimeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // END_TIME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.end_time = iprot.readString();
              struct.setEndTimeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // DB_NAME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.db_name = iprot.readString();
              struct.setDbNameIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // TABLE_NAME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.table_name = iprot.readString();
              struct.setTableNameIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // STATE
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.state = iprot.readString();
              struct.setStateIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // CURRENT_TASK_NUM
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.current_task_num = iprot.readString();
              struct.setCurrentTaskNumIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // JOB_PROPERTIES
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.job_properties = iprot.readString();
              struct.setJobPropertiesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 11: // DATA_SOURCE_PROPERTIES
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.data_source_properties = iprot.readString();
              struct.setDataSourcePropertiesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 12: // CUSTOM_PROPERTIES
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.custom_properties = iprot.readString();
              struct.setCustomPropertiesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 13: // STATISTIC
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.statistic = iprot.readString();
              struct.setStatisticIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 14: // PROGRESS
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.progress = iprot.readString();
              struct.setProgressIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 15: // LAG
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.lag = iprot.readString();
              struct.setLagIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 16: // REASON_OF_STATE_CHANGED
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.reason_of_state_changed = iprot.readString();
              struct.setReasonOfStateChangedIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 17: // ERROR_LOG_URLS
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.error_log_urls = iprot.readString();
              struct.setErrorLogUrlsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 18: // USER_NAME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.user_name = iprot.readString();
              struct.setUserNameIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 19: // CURRENT_ABORT_TASK_NUM
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.current_abort_task_num = iprot.readI32();
              struct.setCurrentAbortTaskNumIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 20: // IS_ABNORMAL_PAUSE
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.is_abnormal_pause = iprot.readBool();
              struct.setIsAbnormalPauseIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 21: // COMPUTE_GROUP
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.compute_group = iprot.readString();
              struct.setComputeGroupIsSet(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, TRoutineLoadJob struct) throws org.apache.thrift.TException {
      struct.validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (struct.job_id != null) {
        if (struct.isSetJobId()) {
          oprot.writeFieldBegin(JOB_ID_FIELD_DESC);
          oprot.writeString(struct.job_id);
          oprot.writeFieldEnd();
        }
      }
      if (struct.job_name != null) {
        if (struct.isSetJobName()) {
          oprot.writeFieldBegin(JOB_NAME_FIELD_DESC);
          oprot.writeString(struct.job_name);
          oprot.writeFieldEnd();
        }
      }
      if (struct.create_time != null) {
        if (struct.isSetCreateTime()) {
          oprot.writeFieldBegin(CREATE_TIME_FIELD_DESC);
          oprot.writeString(struct.create_time);
          oprot.writeFieldEnd();
        }
      }
      if (struct.pause_time != null) {
        if (struct.isSetPauseTime()) {
          oprot.writeFieldBegin(PAUSE_TIME_FIELD_DESC);
          oprot.writeString(struct.pause_time);
          oprot.writeFieldEnd();
        }
      }
      if (struct.end_time != null) {
        if (struct.isSetEndTime()) {
          oprot.writeFieldBegin(END_TIME_FIELD_DESC);
          oprot.writeString(struct.end_time);
          oprot.writeFieldEnd();
        }
      }
      if (struct.db_name != null) {
        if (struct.isSetDbName()) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
      }
      if (struct.table_name != null) {
        if (struct.isSetTableName()) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.table_name);
          oprot.writeFieldEnd();
        }
      }
      if (struct.state != null) {
        if (struct.isSetState()) {
          oprot.writeFieldBegin(STATE_FIELD_DESC);
          oprot.writeString(struct.state);
          oprot.writeFieldEnd();
        }
      }
      if (struct.current_task_num != null) {
        if (struct.isSetCurrentTaskNum()) {
          oprot.writeFieldBegin(CURRENT_TASK_NUM_FIELD_DESC);
          oprot.writeString(struct.current_task_num);
          oprot.writeFieldEnd();
        }
      }
      if (struct.job_properties != null) {
        if (struct.isSetJobProperties()) {
          oprot.writeFieldBegin(JOB_PROPERTIES_FIELD_DESC);
          oprot.writeString(struct.job_properties);
          oprot.writeFieldEnd();
        }
      }
      if (struct.data_source_properties != null) {
        if (struct.isSetDataSourceProperties()) {
          oprot.writeFieldBegin(DATA_SOURCE_PROPERTIES_FIELD_DESC);
          oprot.writeString(struct.data_source_properties);
          oprot.writeFieldEnd();
        }
      }
      if (struct.custom_properties != null) {
        if (struct.isSetCustomProperties()) {
          oprot.writeFieldBegin(CUSTOM_PROPERTIES_FIELD_DESC);
          oprot.writeString(struct.custom_properties);
          oprot.writeFieldEnd();
        }
      }
      if (struct.statistic != null) {
        if (struct.isSetStatistic()) {
          oprot.writeFieldBegin(STATISTIC_FIELD_DESC);
          oprot.writeString(struct.statistic);
          oprot.writeFieldEnd();
        }
      }
      if (struct.progress != null) {
        if (struct.isSetProgress()) {
          oprot.writeFieldBegin(PROGRESS_FIELD_DESC);
          oprot.writeString(struct.progress);
          oprot.writeFieldEnd();
        }
      }
      if (struct.lag != null) {
        if (struct.isSetLag()) {
          oprot.writeFieldBegin(LAG_FIELD_DESC);
          oprot.writeString(struct.lag);
          oprot.writeFieldEnd();
        }
      }
      if (struct.reason_of_state_changed != null) {
        if (struct.isSetReasonOfStateChanged()) {
          oprot.writeFieldBegin(REASON_OF_STATE_CHANGED_FIELD_DESC);
          oprot.writeString(struct.reason_of_state_changed);
          oprot.writeFieldEnd();
        }
      }
      if (struct.error_log_urls != null) {
        if (struct.isSetErrorLogUrls()) {
          oprot.writeFieldBegin(ERROR_LOG_URLS_FIELD_DESC);
          oprot.writeString(struct.error_log_urls);
          oprot.writeFieldEnd();
        }
      }
      if (struct.user_name != null) {
        if (struct.isSetUserName()) {
          oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
          oprot.writeString(struct.user_name);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetCurrentAbortTaskNum()) {
        oprot.writeFieldBegin(CURRENT_ABORT_TASK_NUM_FIELD_DESC);
        oprot.writeI32(struct.current_abort_task_num);
        oprot.writeFieldEnd();
      }
      if (struct.isSetIsAbnormalPause()) {
        oprot.writeFieldBegin(IS_ABNORMAL_PAUSE_FIELD_DESC);
        oprot.writeBool(struct.is_abnormal_pause);
        oprot.writeFieldEnd();
      }
      if (struct.compute_group != null) {
        if (struct.isSetComputeGroup()) {
          oprot.writeFieldBegin(COMPUTE_GROUP_FIELD_DESC);
          oprot.writeString(struct.compute_group);
          oprot.writeFieldEnd();
        }
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

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

  private static class TRoutineLoadJobTupleScheme extends org.apache.thrift.scheme.TupleScheme<TRoutineLoadJob> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TRoutineLoadJob 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.isSetJobId()) {
        optionals.set(0);
      }
      if (struct.isSetJobName()) {
        optionals.set(1);
      }
      if (struct.isSetCreateTime()) {
        optionals.set(2);
      }
      if (struct.isSetPauseTime()) {
        optionals.set(3);
      }
      if (struct.isSetEndTime()) {
        optionals.set(4);
      }
      if (struct.isSetDbName()) {
        optionals.set(5);
      }
      if (struct.isSetTableName()) {
        optionals.set(6);
      }
      if (struct.isSetState()) {
        optionals.set(7);
      }
      if (struct.isSetCurrentTaskNum()) {
        optionals.set(8);
      }
      if (struct.isSetJobProperties()) {
        optionals.set(9);
      }
      if (struct.isSetDataSourceProperties()) {
        optionals.set(10);
      }
      if (struct.isSetCustomProperties()) {
        optionals.set(11);
      }
      if (struct.isSetStatistic()) {
        optionals.set(12);
      }
      if (struct.isSetProgress()) {
        optionals.set(13);
      }
      if (struct.isSetLag()) {
        optionals.set(14);
      }
      if (struct.isSetReasonOfStateChanged()) {
        optionals.set(15);
      }
      if (struct.isSetErrorLogUrls()) {
        optionals.set(16);
      }
      if (struct.isSetUserName()) {
        optionals.set(17);
      }
      if (struct.isSetCurrentAbortTaskNum()) {
        optionals.set(18);
      }
      if (struct.isSetIsAbnormalPause()) {
        optionals.set(19);
      }
      if (struct.isSetComputeGroup()) {
        optionals.set(20);
      }
      oprot.writeBitSet(optionals, 21);
      if (struct.isSetJobId()) {
        oprot.writeString(struct.job_id);
      }
      if (struct.isSetJobName()) {
        oprot.writeString(struct.job_name);
      }
      if (struct.isSetCreateTime()) {
        oprot.writeString(struct.create_time);
      }
      if (struct.isSetPauseTime()) {
        oprot.writeString(struct.pause_time);
      }
      if (struct.isSetEndTime()) {
        oprot.writeString(struct.end_time);
      }
      if (struct.isSetDbName()) {
        oprot.writeString(struct.db_name);
      }
      if (struct.isSetTableName()) {
        oprot.writeString(struct.table_name);
      }
      if (struct.isSetState()) {
        oprot.writeString(struct.state);
      }
      if (struct.isSetCurrentTaskNum()) {
        oprot.writeString(struct.current_task_num);
      }
      if (struct.isSetJobProperties()) {
        oprot.writeString(struct.job_properties);
      }
      if (struct.isSetDataSourceProperties()) {
        oprot.writeString(struct.data_source_properties);
      }
      if (struct.isSetCustomProperties()) {
        oprot.writeString(struct.custom_properties);
      }
      if (struct.isSetStatistic()) {
        oprot.writeString(struct.statistic);
      }
      if (struct.isSetProgress()) {
        oprot.writeString(struct.progress);
      }
      if (struct.isSetLag()) {
        oprot.writeString(struct.lag);
      }
      if (struct.isSetReasonOfStateChanged()) {
        oprot.writeString(struct.reason_of_state_changed);
      }
      if (struct.isSetErrorLogUrls()) {
        oprot.writeString(struct.error_log_urls);
      }
      if (struct.isSetUserName()) {
        oprot.writeString(struct.user_name);
      }
      if (struct.isSetCurrentAbortTaskNum()) {
        oprot.writeI32(struct.current_abort_task_num);
      }
      if (struct.isSetIsAbnormalPause()) {
        oprot.writeBool(struct.is_abnormal_pause);
      }
      if (struct.isSetComputeGroup()) {
        oprot.writeString(struct.compute_group);
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TRoutineLoadJob struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet incoming = iprot.readBitSet(21);
      if (incoming.get(0)) {
        struct.job_id = iprot.readString();
        struct.setJobIdIsSet(true);
      }
      if (incoming.get(1)) {
        struct.job_name = iprot.readString();
        struct.setJobNameIsSet(true);
      }
      if (incoming.get(2)) {
        struct.create_time = iprot.readString();
        struct.setCreateTimeIsSet(true);
      }
      if (incoming.get(3)) {
        struct.pause_time = iprot.readString();
        struct.setPauseTimeIsSet(true);
      }
      if (incoming.get(4)) {
        struct.end_time = iprot.readString();
        struct.setEndTimeIsSet(true);
      }
      if (incoming.get(5)) {
        struct.db_name = iprot.readString();
        struct.setDbNameIsSet(true);
      }
      if (incoming.get(6)) {
        struct.table_name = iprot.readString();
        struct.setTableNameIsSet(true);
      }
      if (incoming.get(7)) {
        struct.state = iprot.readString();
        struct.setStateIsSet(true);
      }
      if (incoming.get(8)) {
        struct.current_task_num = iprot.readString();
        struct.setCurrentTaskNumIsSet(true);
      }
      if (incoming.get(9)) {
        struct.job_properties = iprot.readString();
        struct.setJobPropertiesIsSet(true);
      }
      if (incoming.get(10)) {
        struct.data_source_properties = iprot.readString();
        struct.setDataSourcePropertiesIsSet(true);
      }
      if (incoming.get(11)) {
        struct.custom_properties = iprot.readString();
        struct.setCustomPropertiesIsSet(true);
      }
      if (incoming.get(12)) {
        struct.statistic = iprot.readString();
        struct.setStatisticIsSet(true);
      }
      if (incoming.get(13)) {
        struct.progress = iprot.readString();
        struct.setProgressIsSet(true);
      }
      if (incoming.get(14)) {
        struct.lag = iprot.readString();
        struct.setLagIsSet(true);
      }
      if (incoming.get(15)) {
        struct.reason_of_state_changed = iprot.readString();
        struct.setReasonOfStateChangedIsSet(true);
      }
      if (incoming.get(16)) {
        struct.error_log_urls = iprot.readString();
        struct.setErrorLogUrlsIsSet(true);
      }
      if (incoming.get(17)) {
        struct.user_name = iprot.readString();
        struct.setUserNameIsSet(true);
      }
      if (incoming.get(18)) {
        struct.current_abort_task_num = iprot.readI32();
        struct.setCurrentAbortTaskNumIsSet(true);
      }
      if (incoming.get(19)) {
        struct.is_abnormal_pause = iprot.readBool();
        struct.setIsAbnormalPauseIsSet(true);
      }
      if (incoming.get(20)) {
        struct.compute_group = iprot.readString();
        struct.setComputeGroupIsSet(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();
  }
}