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

  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 LABEL_FIELD_DESC = new org.apache.thrift.protocol.TField("label", org.apache.thrift.protocol.TType.STRING, (short)2);
  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)3);
  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)4);
  private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.STRING, (short)5);
  private static final org.apache.thrift.protocol.TField ETL_INFO_FIELD_DESC = new org.apache.thrift.protocol.TField("etl_info", org.apache.thrift.protocol.TType.STRING, (short)6);
  private static final org.apache.thrift.protocol.TField TASK_INFO_FIELD_DESC = new org.apache.thrift.protocol.TField("task_info", org.apache.thrift.protocol.TType.STRING, (short)7);
  private static final org.apache.thrift.protocol.TField ERROR_MSG_FIELD_DESC = new org.apache.thrift.protocol.TField("error_msg", org.apache.thrift.protocol.TType.STRING, (short)8);
  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)9);
  private static final org.apache.thrift.protocol.TField ETL_START_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("etl_start_time", org.apache.thrift.protocol.TType.STRING, (short)10);
  private static final org.apache.thrift.protocol.TField ETL_FINISH_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("etl_finish_time", org.apache.thrift.protocol.TType.STRING, (short)11);
  private static final org.apache.thrift.protocol.TField LOAD_START_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("load_start_time", org.apache.thrift.protocol.TType.STRING, (short)12);
  private static final org.apache.thrift.protocol.TField LOAD_FINISH_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("load_finish_time", org.apache.thrift.protocol.TType.STRING, (short)13);
  private static final org.apache.thrift.protocol.TField URL_FIELD_DESC = new org.apache.thrift.protocol.TField("url", org.apache.thrift.protocol.TType.STRING, (short)14);
  private static final org.apache.thrift.protocol.TField JOB_DETAILS_FIELD_DESC = new org.apache.thrift.protocol.TField("job_details", org.apache.thrift.protocol.TType.STRING, (short)15);
  private static final org.apache.thrift.protocol.TField TRANSACTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("transaction_id", org.apache.thrift.protocol.TType.STRING, (short)16);
  private static final org.apache.thrift.protocol.TField ERROR_TABLETS_FIELD_DESC = new org.apache.thrift.protocol.TField("error_tablets", org.apache.thrift.protocol.TType.STRING, (short)17);
  private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)18);
  private static final org.apache.thrift.protocol.TField COMMENT_FIELD_DESC = new org.apache.thrift.protocol.TField("comment", org.apache.thrift.protocol.TType.STRING, (short)19);
  private static final org.apache.thrift.protocol.TField FIRST_ERROR_MSG_FIELD_DESC = new org.apache.thrift.protocol.TField("first_error_msg", org.apache.thrift.protocol.TType.STRING, (short)20);

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

  public @org.apache.thrift.annotation.Nullable java.lang.String job_id; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String label; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String state; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String progress; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String type; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String etl_info; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String task_info; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String error_msg; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String create_time; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String etl_start_time; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String etl_finish_time; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String load_start_time; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String load_finish_time; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String url; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String job_details; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String transaction_id; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String error_tablets; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String user; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String comment; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String first_error_msg; // 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"),
    LABEL((short)2, "label"),
    STATE((short)3, "state"),
    PROGRESS((short)4, "progress"),
    TYPE((short)5, "type"),
    ETL_INFO((short)6, "etl_info"),
    TASK_INFO((short)7, "task_info"),
    ERROR_MSG((short)8, "error_msg"),
    CREATE_TIME((short)9, "create_time"),
    ETL_START_TIME((short)10, "etl_start_time"),
    ETL_FINISH_TIME((short)11, "etl_finish_time"),
    LOAD_START_TIME((short)12, "load_start_time"),
    LOAD_FINISH_TIME((short)13, "load_finish_time"),
    URL((short)14, "url"),
    JOB_DETAILS((short)15, "job_details"),
    TRANSACTION_ID((short)16, "transaction_id"),
    ERROR_TABLETS((short)17, "error_tablets"),
    USER((short)18, "user"),
    COMMENT((short)19, "comment"),
    FIRST_ERROR_MSG((short)20, "first_error_msg");

    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: // LABEL
          return LABEL;
        case 3: // STATE
          return STATE;
        case 4: // PROGRESS
          return PROGRESS;
        case 5: // TYPE
          return TYPE;
        case 6: // ETL_INFO
          return ETL_INFO;
        case 7: // TASK_INFO
          return TASK_INFO;
        case 8: // ERROR_MSG
          return ERROR_MSG;
        case 9: // CREATE_TIME
          return CREATE_TIME;
        case 10: // ETL_START_TIME
          return ETL_START_TIME;
        case 11: // ETL_FINISH_TIME
          return ETL_FINISH_TIME;
        case 12: // LOAD_START_TIME
          return LOAD_START_TIME;
        case 13: // LOAD_FINISH_TIME
          return LOAD_FINISH_TIME;
        case 14: // URL
          return URL;
        case 15: // JOB_DETAILS
          return JOB_DETAILS;
        case 16: // TRANSACTION_ID
          return TRANSACTION_ID;
        case 17: // ERROR_TABLETS
          return ERROR_TABLETS;
        case 18: // USER
          return USER;
        case 19: // COMMENT
          return COMMENT;
        case 20: // FIRST_ERROR_MSG
          return FIRST_ERROR_MSG;
        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 _Fields optionals[] = {_Fields.JOB_ID,_Fields.LABEL,_Fields.STATE,_Fields.PROGRESS,_Fields.TYPE,_Fields.ETL_INFO,_Fields.TASK_INFO,_Fields.ERROR_MSG,_Fields.CREATE_TIME,_Fields.ETL_START_TIME,_Fields.ETL_FINISH_TIME,_Fields.LOAD_START_TIME,_Fields.LOAD_FINISH_TIME,_Fields.URL,_Fields.JOB_DETAILS,_Fields.TRANSACTION_ID,_Fields.ERROR_TABLETS,_Fields.USER,_Fields.COMMENT,_Fields.FIRST_ERROR_MSG};
  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.LABEL, new org.apache.thrift.meta_data.FieldMetaData("label", 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.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.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.ETL_INFO, new org.apache.thrift.meta_data.FieldMetaData("etl_info", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.TASK_INFO, new org.apache.thrift.meta_data.FieldMetaData("task_info", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.ERROR_MSG, new org.apache.thrift.meta_data.FieldMetaData("error_msg", 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.ETL_START_TIME, new org.apache.thrift.meta_data.FieldMetaData("etl_start_time", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.ETL_FINISH_TIME, new org.apache.thrift.meta_data.FieldMetaData("etl_finish_time", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.LOAD_START_TIME, new org.apache.thrift.meta_data.FieldMetaData("load_start_time", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.LOAD_FINISH_TIME, new org.apache.thrift.meta_data.FieldMetaData("load_finish_time", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.URL, new org.apache.thrift.meta_data.FieldMetaData("url", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.JOB_DETAILS, new org.apache.thrift.meta_data.FieldMetaData("job_details", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.TRANSACTION_ID, new org.apache.thrift.meta_data.FieldMetaData("transaction_id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.ERROR_TABLETS, new org.apache.thrift.meta_data.FieldMetaData("error_tablets", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.COMMENT, new org.apache.thrift.meta_data.FieldMetaData("comment", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.FIRST_ERROR_MSG, new org.apache.thrift.meta_data.FieldMetaData("first_error_msg", 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(TLoadJob.class, metaDataMap);
  }

  public TLoadJob() {
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TLoadJob(TLoadJob other) {
    if (other.isSetJobId()) {
      this.job_id = other.job_id;
    }
    if (other.isSetLabel()) {
      this.label = other.label;
    }
    if (other.isSetState()) {
      this.state = other.state;
    }
    if (other.isSetProgress()) {
      this.progress = other.progress;
    }
    if (other.isSetType()) {
      this.type = other.type;
    }
    if (other.isSetEtlInfo()) {
      this.etl_info = other.etl_info;
    }
    if (other.isSetTaskInfo()) {
      this.task_info = other.task_info;
    }
    if (other.isSetErrorMsg()) {
      this.error_msg = other.error_msg;
    }
    if (other.isSetCreateTime()) {
      this.create_time = other.create_time;
    }
    if (other.isSetEtlStartTime()) {
      this.etl_start_time = other.etl_start_time;
    }
    if (other.isSetEtlFinishTime()) {
      this.etl_finish_time = other.etl_finish_time;
    }
    if (other.isSetLoadStartTime()) {
      this.load_start_time = other.load_start_time;
    }
    if (other.isSetLoadFinishTime()) {
      this.load_finish_time = other.load_finish_time;
    }
    if (other.isSetUrl()) {
      this.url = other.url;
    }
    if (other.isSetJobDetails()) {
      this.job_details = other.job_details;
    }
    if (other.isSetTransactionId()) {
      this.transaction_id = other.transaction_id;
    }
    if (other.isSetErrorTablets()) {
      this.error_tablets = other.error_tablets;
    }
    if (other.isSetUser()) {
      this.user = other.user;
    }
    if (other.isSetComment()) {
      this.comment = other.comment;
    }
    if (other.isSetFirstErrorMsg()) {
      this.first_error_msg = other.first_error_msg;
    }
  }

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

  @Override
  public void clear() {
    this.job_id = null;
    this.label = null;
    this.state = null;
    this.progress = null;
    this.type = null;
    this.etl_info = null;
    this.task_info = null;
    this.error_msg = null;
    this.create_time = null;
    this.etl_start_time = null;
    this.etl_finish_time = null;
    this.load_start_time = null;
    this.load_finish_time = null;
    this.url = null;
    this.job_details = null;
    this.transaction_id = null;
    this.error_tablets = null;
    this.user = null;
    this.comment = null;
    this.first_error_msg = null;
  }

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

  public TLoadJob 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 getLabel() {
    return this.label;
  }

  public TLoadJob setLabel(@org.apache.thrift.annotation.Nullable java.lang.String label) {
    this.label = label;
    return this;
  }

  public void unsetLabel() {
    this.label = null;
  }

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

  public void setLabelIsSet(boolean value) {
    if (!value) {
      this.label = null;
    }
  }

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

  public TLoadJob 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 getProgress() {
    return this.progress;
  }

  public TLoadJob 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 getType() {
    return this.type;
  }

  public TLoadJob setType(@org.apache.thrift.annotation.Nullable java.lang.String type) {
    this.type = type;
    return this;
  }

  public void unsetType() {
    this.type = null;
  }

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

  public void setTypeIsSet(boolean value) {
    if (!value) {
      this.type = null;
    }
  }

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

  public TLoadJob setEtlInfo(@org.apache.thrift.annotation.Nullable java.lang.String etl_info) {
    this.etl_info = etl_info;
    return this;
  }

  public void unsetEtlInfo() {
    this.etl_info = null;
  }

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

  public void setEtlInfoIsSet(boolean value) {
    if (!value) {
      this.etl_info = null;
    }
  }

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

  public TLoadJob setTaskInfo(@org.apache.thrift.annotation.Nullable java.lang.String task_info) {
    this.task_info = task_info;
    return this;
  }

  public void unsetTaskInfo() {
    this.task_info = null;
  }

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

  public void setTaskInfoIsSet(boolean value) {
    if (!value) {
      this.task_info = null;
    }
  }

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

  public TLoadJob setErrorMsg(@org.apache.thrift.annotation.Nullable java.lang.String error_msg) {
    this.error_msg = error_msg;
    return this;
  }

  public void unsetErrorMsg() {
    this.error_msg = null;
  }

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

  public void setErrorMsgIsSet(boolean value) {
    if (!value) {
      this.error_msg = null;
    }
  }

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

  public TLoadJob 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 getEtlStartTime() {
    return this.etl_start_time;
  }

  public TLoadJob setEtlStartTime(@org.apache.thrift.annotation.Nullable java.lang.String etl_start_time) {
    this.etl_start_time = etl_start_time;
    return this;
  }

  public void unsetEtlStartTime() {
    this.etl_start_time = null;
  }

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

  public void setEtlStartTimeIsSet(boolean value) {
    if (!value) {
      this.etl_start_time = null;
    }
  }

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

  public TLoadJob setEtlFinishTime(@org.apache.thrift.annotation.Nullable java.lang.String etl_finish_time) {
    this.etl_finish_time = etl_finish_time;
    return this;
  }

  public void unsetEtlFinishTime() {
    this.etl_finish_time = null;
  }

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

  public void setEtlFinishTimeIsSet(boolean value) {
    if (!value) {
      this.etl_finish_time = null;
    }
  }

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

  public TLoadJob setLoadStartTime(@org.apache.thrift.annotation.Nullable java.lang.String load_start_time) {
    this.load_start_time = load_start_time;
    return this;
  }

  public void unsetLoadStartTime() {
    this.load_start_time = null;
  }

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

  public void setLoadStartTimeIsSet(boolean value) {
    if (!value) {
      this.load_start_time = null;
    }
  }

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

  public TLoadJob setLoadFinishTime(@org.apache.thrift.annotation.Nullable java.lang.String load_finish_time) {
    this.load_finish_time = load_finish_time;
    return this;
  }

  public void unsetLoadFinishTime() {
    this.load_finish_time = null;
  }

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

  public void setLoadFinishTimeIsSet(boolean value) {
    if (!value) {
      this.load_finish_time = null;
    }
  }

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

  public TLoadJob setUrl(@org.apache.thrift.annotation.Nullable java.lang.String url) {
    this.url = url;
    return this;
  }

  public void unsetUrl() {
    this.url = null;
  }

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

  public void setUrlIsSet(boolean value) {
    if (!value) {
      this.url = null;
    }
  }

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

  public TLoadJob setJobDetails(@org.apache.thrift.annotation.Nullable java.lang.String job_details) {
    this.job_details = job_details;
    return this;
  }

  public void unsetJobDetails() {
    this.job_details = null;
  }

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

  public void setJobDetailsIsSet(boolean value) {
    if (!value) {
      this.job_details = null;
    }
  }

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

  public TLoadJob setTransactionId(@org.apache.thrift.annotation.Nullable java.lang.String transaction_id) {
    this.transaction_id = transaction_id;
    return this;
  }

  public void unsetTransactionId() {
    this.transaction_id = null;
  }

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

  public void setTransactionIdIsSet(boolean value) {
    if (!value) {
      this.transaction_id = null;
    }
  }

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

  public TLoadJob setErrorTablets(@org.apache.thrift.annotation.Nullable java.lang.String error_tablets) {
    this.error_tablets = error_tablets;
    return this;
  }

  public void unsetErrorTablets() {
    this.error_tablets = null;
  }

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

  public void setErrorTabletsIsSet(boolean value) {
    if (!value) {
      this.error_tablets = null;
    }
  }

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

  public TLoadJob setUser(@org.apache.thrift.annotation.Nullable java.lang.String user) {
    this.user = user;
    return this;
  }

  public void unsetUser() {
    this.user = null;
  }

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

  public void setUserIsSet(boolean value) {
    if (!value) {
      this.user = null;
    }
  }

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

  public TLoadJob setComment(@org.apache.thrift.annotation.Nullable java.lang.String comment) {
    this.comment = comment;
    return this;
  }

  public void unsetComment() {
    this.comment = null;
  }

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

  public void setCommentIsSet(boolean value) {
    if (!value) {
      this.comment = null;
    }
  }

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

  public TLoadJob setFirstErrorMsg(@org.apache.thrift.annotation.Nullable java.lang.String first_error_msg) {
    this.first_error_msg = first_error_msg;
    return this;
  }

  public void unsetFirstErrorMsg() {
    this.first_error_msg = null;
  }

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

  public void setFirstErrorMsgIsSet(boolean value) {
    if (!value) {
      this.first_error_msg = 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 LABEL:
      if (value == null) {
        unsetLabel();
      } else {
        setLabel((java.lang.String)value);
      }
      break;

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

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

    case TYPE:
      if (value == null) {
        unsetType();
      } else {
        setType((java.lang.String)value);
      }
      break;

    case ETL_INFO:
      if (value == null) {
        unsetEtlInfo();
      } else {
        setEtlInfo((java.lang.String)value);
      }
      break;

    case TASK_INFO:
      if (value == null) {
        unsetTaskInfo();
      } else {
        setTaskInfo((java.lang.String)value);
      }
      break;

    case ERROR_MSG:
      if (value == null) {
        unsetErrorMsg();
      } else {
        setErrorMsg((java.lang.String)value);
      }
      break;

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

    case ETL_START_TIME:
      if (value == null) {
        unsetEtlStartTime();
      } else {
        setEtlStartTime((java.lang.String)value);
      }
      break;

    case ETL_FINISH_TIME:
      if (value == null) {
        unsetEtlFinishTime();
      } else {
        setEtlFinishTime((java.lang.String)value);
      }
      break;

    case LOAD_START_TIME:
      if (value == null) {
        unsetLoadStartTime();
      } else {
        setLoadStartTime((java.lang.String)value);
      }
      break;

    case LOAD_FINISH_TIME:
      if (value == null) {
        unsetLoadFinishTime();
      } else {
        setLoadFinishTime((java.lang.String)value);
      }
      break;

    case URL:
      if (value == null) {
        unsetUrl();
      } else {
        setUrl((java.lang.String)value);
      }
      break;

    case JOB_DETAILS:
      if (value == null) {
        unsetJobDetails();
      } else {
        setJobDetails((java.lang.String)value);
      }
      break;

    case TRANSACTION_ID:
      if (value == null) {
        unsetTransactionId();
      } else {
        setTransactionId((java.lang.String)value);
      }
      break;

    case ERROR_TABLETS:
      if (value == null) {
        unsetErrorTablets();
      } else {
        setErrorTablets((java.lang.String)value);
      }
      break;

    case USER:
      if (value == null) {
        unsetUser();
      } else {
        setUser((java.lang.String)value);
      }
      break;

    case COMMENT:
      if (value == null) {
        unsetComment();
      } else {
        setComment((java.lang.String)value);
      }
      break;

    case FIRST_ERROR_MSG:
      if (value == null) {
        unsetFirstErrorMsg();
      } else {
        setFirstErrorMsg((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 LABEL:
      return getLabel();

    case STATE:
      return getState();

    case PROGRESS:
      return getProgress();

    case TYPE:
      return getType();

    case ETL_INFO:
      return getEtlInfo();

    case TASK_INFO:
      return getTaskInfo();

    case ERROR_MSG:
      return getErrorMsg();

    case CREATE_TIME:
      return getCreateTime();

    case ETL_START_TIME:
      return getEtlStartTime();

    case ETL_FINISH_TIME:
      return getEtlFinishTime();

    case LOAD_START_TIME:
      return getLoadStartTime();

    case LOAD_FINISH_TIME:
      return getLoadFinishTime();

    case URL:
      return getUrl();

    case JOB_DETAILS:
      return getJobDetails();

    case TRANSACTION_ID:
      return getTransactionId();

    case ERROR_TABLETS:
      return getErrorTablets();

    case USER:
      return getUser();

    case COMMENT:
      return getComment();

    case FIRST_ERROR_MSG:
      return getFirstErrorMsg();

    }
    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 LABEL:
      return isSetLabel();
    case STATE:
      return isSetState();
    case PROGRESS:
      return isSetProgress();
    case TYPE:
      return isSetType();
    case ETL_INFO:
      return isSetEtlInfo();
    case TASK_INFO:
      return isSetTaskInfo();
    case ERROR_MSG:
      return isSetErrorMsg();
    case CREATE_TIME:
      return isSetCreateTime();
    case ETL_START_TIME:
      return isSetEtlStartTime();
    case ETL_FINISH_TIME:
      return isSetEtlFinishTime();
    case LOAD_START_TIME:
      return isSetLoadStartTime();
    case LOAD_FINISH_TIME:
      return isSetLoadFinishTime();
    case URL:
      return isSetUrl();
    case JOB_DETAILS:
      return isSetJobDetails();
    case TRANSACTION_ID:
      return isSetTransactionId();
    case ERROR_TABLETS:
      return isSetErrorTablets();
    case USER:
      return isSetUser();
    case COMMENT:
      return isSetComment();
    case FIRST_ERROR_MSG:
      return isSetFirstErrorMsg();
    }
    throw new java.lang.IllegalStateException();
  }

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

  public boolean equals(TLoadJob 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_label = true && this.isSetLabel();
    boolean that_present_label = true && that.isSetLabel();
    if (this_present_label || that_present_label) {
      if (!(this_present_label && that_present_label))
        return false;
      if (!this.label.equals(that.label))
        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_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_type = true && this.isSetType();
    boolean that_present_type = true && that.isSetType();
    if (this_present_type || that_present_type) {
      if (!(this_present_type && that_present_type))
        return false;
      if (!this.type.equals(that.type))
        return false;
    }

    boolean this_present_etl_info = true && this.isSetEtlInfo();
    boolean that_present_etl_info = true && that.isSetEtlInfo();
    if (this_present_etl_info || that_present_etl_info) {
      if (!(this_present_etl_info && that_present_etl_info))
        return false;
      if (!this.etl_info.equals(that.etl_info))
        return false;
    }

    boolean this_present_task_info = true && this.isSetTaskInfo();
    boolean that_present_task_info = true && that.isSetTaskInfo();
    if (this_present_task_info || that_present_task_info) {
      if (!(this_present_task_info && that_present_task_info))
        return false;
      if (!this.task_info.equals(that.task_info))
        return false;
    }

    boolean this_present_error_msg = true && this.isSetErrorMsg();
    boolean that_present_error_msg = true && that.isSetErrorMsg();
    if (this_present_error_msg || that_present_error_msg) {
      if (!(this_present_error_msg && that_present_error_msg))
        return false;
      if (!this.error_msg.equals(that.error_msg))
        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_etl_start_time = true && this.isSetEtlStartTime();
    boolean that_present_etl_start_time = true && that.isSetEtlStartTime();
    if (this_present_etl_start_time || that_present_etl_start_time) {
      if (!(this_present_etl_start_time && that_present_etl_start_time))
        return false;
      if (!this.etl_start_time.equals(that.etl_start_time))
        return false;
    }

    boolean this_present_etl_finish_time = true && this.isSetEtlFinishTime();
    boolean that_present_etl_finish_time = true && that.isSetEtlFinishTime();
    if (this_present_etl_finish_time || that_present_etl_finish_time) {
      if (!(this_present_etl_finish_time && that_present_etl_finish_time))
        return false;
      if (!this.etl_finish_time.equals(that.etl_finish_time))
        return false;
    }

    boolean this_present_load_start_time = true && this.isSetLoadStartTime();
    boolean that_present_load_start_time = true && that.isSetLoadStartTime();
    if (this_present_load_start_time || that_present_load_start_time) {
      if (!(this_present_load_start_time && that_present_load_start_time))
        return false;
      if (!this.load_start_time.equals(that.load_start_time))
        return false;
    }

    boolean this_present_load_finish_time = true && this.isSetLoadFinishTime();
    boolean that_present_load_finish_time = true && that.isSetLoadFinishTime();
    if (this_present_load_finish_time || that_present_load_finish_time) {
      if (!(this_present_load_finish_time && that_present_load_finish_time))
        return false;
      if (!this.load_finish_time.equals(that.load_finish_time))
        return false;
    }

    boolean this_present_url = true && this.isSetUrl();
    boolean that_present_url = true && that.isSetUrl();
    if (this_present_url || that_present_url) {
      if (!(this_present_url && that_present_url))
        return false;
      if (!this.url.equals(that.url))
        return false;
    }

    boolean this_present_job_details = true && this.isSetJobDetails();
    boolean that_present_job_details = true && that.isSetJobDetails();
    if (this_present_job_details || that_present_job_details) {
      if (!(this_present_job_details && that_present_job_details))
        return false;
      if (!this.job_details.equals(that.job_details))
        return false;
    }

    boolean this_present_transaction_id = true && this.isSetTransactionId();
    boolean that_present_transaction_id = true && that.isSetTransactionId();
    if (this_present_transaction_id || that_present_transaction_id) {
      if (!(this_present_transaction_id && that_present_transaction_id))
        return false;
      if (!this.transaction_id.equals(that.transaction_id))
        return false;
    }

    boolean this_present_error_tablets = true && this.isSetErrorTablets();
    boolean that_present_error_tablets = true && that.isSetErrorTablets();
    if (this_present_error_tablets || that_present_error_tablets) {
      if (!(this_present_error_tablets && that_present_error_tablets))
        return false;
      if (!this.error_tablets.equals(that.error_tablets))
        return false;
    }

    boolean this_present_user = true && this.isSetUser();
    boolean that_present_user = true && that.isSetUser();
    if (this_present_user || that_present_user) {
      if (!(this_present_user && that_present_user))
        return false;
      if (!this.user.equals(that.user))
        return false;
    }

    boolean this_present_comment = true && this.isSetComment();
    boolean that_present_comment = true && that.isSetComment();
    if (this_present_comment || that_present_comment) {
      if (!(this_present_comment && that_present_comment))
        return false;
      if (!this.comment.equals(that.comment))
        return false;
    }

    boolean this_present_first_error_msg = true && this.isSetFirstErrorMsg();
    boolean that_present_first_error_msg = true && that.isSetFirstErrorMsg();
    if (this_present_first_error_msg || that_present_first_error_msg) {
      if (!(this_present_first_error_msg && that_present_first_error_msg))
        return false;
      if (!this.first_error_msg.equals(that.first_error_msg))
        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 + ((isSetLabel()) ? 131071 : 524287);
    if (isSetLabel())
      hashCode = hashCode * 8191 + label.hashCode();

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

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

    hashCode = hashCode * 8191 + ((isSetType()) ? 131071 : 524287);
    if (isSetType())
      hashCode = hashCode * 8191 + type.hashCode();

    hashCode = hashCode * 8191 + ((isSetEtlInfo()) ? 131071 : 524287);
    if (isSetEtlInfo())
      hashCode = hashCode * 8191 + etl_info.hashCode();

    hashCode = hashCode * 8191 + ((isSetTaskInfo()) ? 131071 : 524287);
    if (isSetTaskInfo())
      hashCode = hashCode * 8191 + task_info.hashCode();

    hashCode = hashCode * 8191 + ((isSetErrorMsg()) ? 131071 : 524287);
    if (isSetErrorMsg())
      hashCode = hashCode * 8191 + error_msg.hashCode();

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

    hashCode = hashCode * 8191 + ((isSetEtlStartTime()) ? 131071 : 524287);
    if (isSetEtlStartTime())
      hashCode = hashCode * 8191 + etl_start_time.hashCode();

    hashCode = hashCode * 8191 + ((isSetEtlFinishTime()) ? 131071 : 524287);
    if (isSetEtlFinishTime())
      hashCode = hashCode * 8191 + etl_finish_time.hashCode();

    hashCode = hashCode * 8191 + ((isSetLoadStartTime()) ? 131071 : 524287);
    if (isSetLoadStartTime())
      hashCode = hashCode * 8191 + load_start_time.hashCode();

    hashCode = hashCode * 8191 + ((isSetLoadFinishTime()) ? 131071 : 524287);
    if (isSetLoadFinishTime())
      hashCode = hashCode * 8191 + load_finish_time.hashCode();

    hashCode = hashCode * 8191 + ((isSetUrl()) ? 131071 : 524287);
    if (isSetUrl())
      hashCode = hashCode * 8191 + url.hashCode();

    hashCode = hashCode * 8191 + ((isSetJobDetails()) ? 131071 : 524287);
    if (isSetJobDetails())
      hashCode = hashCode * 8191 + job_details.hashCode();

    hashCode = hashCode * 8191 + ((isSetTransactionId()) ? 131071 : 524287);
    if (isSetTransactionId())
      hashCode = hashCode * 8191 + transaction_id.hashCode();

    hashCode = hashCode * 8191 + ((isSetErrorTablets()) ? 131071 : 524287);
    if (isSetErrorTablets())
      hashCode = hashCode * 8191 + error_tablets.hashCode();

    hashCode = hashCode * 8191 + ((isSetUser()) ? 131071 : 524287);
    if (isSetUser())
      hashCode = hashCode * 8191 + user.hashCode();

    hashCode = hashCode * 8191 + ((isSetComment()) ? 131071 : 524287);
    if (isSetComment())
      hashCode = hashCode * 8191 + comment.hashCode();

    hashCode = hashCode * 8191 + ((isSetFirstErrorMsg()) ? 131071 : 524287);
    if (isSetFirstErrorMsg())
      hashCode = hashCode * 8191 + first_error_msg.hashCode();

    return hashCode;
  }

  @Override
  public int compareTo(TLoadJob 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(isSetLabel(), other.isSetLabel());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetLabel()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.label, other.label);
      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(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(isSetType(), other.isSetType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, other.type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetEtlInfo(), other.isSetEtlInfo());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEtlInfo()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.etl_info, other.etl_info);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetTaskInfo(), other.isSetTaskInfo());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTaskInfo()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.task_info, other.task_info);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetErrorMsg(), other.isSetErrorMsg());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetErrorMsg()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error_msg, other.error_msg);
      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(isSetEtlStartTime(), other.isSetEtlStartTime());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEtlStartTime()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.etl_start_time, other.etl_start_time);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetEtlFinishTime(), other.isSetEtlFinishTime());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEtlFinishTime()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.etl_finish_time, other.etl_finish_time);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetLoadStartTime(), other.isSetLoadStartTime());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetLoadStartTime()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.load_start_time, other.load_start_time);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetLoadFinishTime(), other.isSetLoadFinishTime());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetLoadFinishTime()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.load_finish_time, other.load_finish_time);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetUrl(), other.isSetUrl());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetUrl()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.url, other.url);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetJobDetails(), other.isSetJobDetails());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetJobDetails()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.job_details, other.job_details);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetTransactionId(), other.isSetTransactionId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTransactionId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transaction_id, other.transaction_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetErrorTablets(), other.isSetErrorTablets());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetErrorTablets()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error_tablets, other.error_tablets);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetUser(), other.isSetUser());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetUser()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetComment(), other.isSetComment());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetComment()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.comment, other.comment);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetFirstErrorMsg(), other.isSetFirstErrorMsg());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetFirstErrorMsg()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.first_error_msg, other.first_error_msg);
      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("TLoadJob(");
    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 (isSetLabel()) {
      if (!first) sb.append(", ");
      sb.append("label:");
      if (this.label == null) {
        sb.append("null");
      } else {
        sb.append(this.label);
      }
      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 (isSetProgress()) {
      if (!first) sb.append(", ");
      sb.append("progress:");
      if (this.progress == null) {
        sb.append("null");
      } else {
        sb.append(this.progress);
      }
      first = false;
    }
    if (isSetType()) {
      if (!first) sb.append(", ");
      sb.append("type:");
      if (this.type == null) {
        sb.append("null");
      } else {
        sb.append(this.type);
      }
      first = false;
    }
    if (isSetEtlInfo()) {
      if (!first) sb.append(", ");
      sb.append("etl_info:");
      if (this.etl_info == null) {
        sb.append("null");
      } else {
        sb.append(this.etl_info);
      }
      first = false;
    }
    if (isSetTaskInfo()) {
      if (!first) sb.append(", ");
      sb.append("task_info:");
      if (this.task_info == null) {
        sb.append("null");
      } else {
        sb.append(this.task_info);
      }
      first = false;
    }
    if (isSetErrorMsg()) {
      if (!first) sb.append(", ");
      sb.append("error_msg:");
      if (this.error_msg == null) {
        sb.append("null");
      } else {
        sb.append(this.error_msg);
      }
      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 (isSetEtlStartTime()) {
      if (!first) sb.append(", ");
      sb.append("etl_start_time:");
      if (this.etl_start_time == null) {
        sb.append("null");
      } else {
        sb.append(this.etl_start_time);
      }
      first = false;
    }
    if (isSetEtlFinishTime()) {
      if (!first) sb.append(", ");
      sb.append("etl_finish_time:");
      if (this.etl_finish_time == null) {
        sb.append("null");
      } else {
        sb.append(this.etl_finish_time);
      }
      first = false;
    }
    if (isSetLoadStartTime()) {
      if (!first) sb.append(", ");
      sb.append("load_start_time:");
      if (this.load_start_time == null) {
        sb.append("null");
      } else {
        sb.append(this.load_start_time);
      }
      first = false;
    }
    if (isSetLoadFinishTime()) {
      if (!first) sb.append(", ");
      sb.append("load_finish_time:");
      if (this.load_finish_time == null) {
        sb.append("null");
      } else {
        sb.append(this.load_finish_time);
      }
      first = false;
    }
    if (isSetUrl()) {
      if (!first) sb.append(", ");
      sb.append("url:");
      if (this.url == null) {
        sb.append("null");
      } else {
        sb.append(this.url);
      }
      first = false;
    }
    if (isSetJobDetails()) {
      if (!first) sb.append(", ");
      sb.append("job_details:");
      if (this.job_details == null) {
        sb.append("null");
      } else {
        sb.append(this.job_details);
      }
      first = false;
    }
    if (isSetTransactionId()) {
      if (!first) sb.append(", ");
      sb.append("transaction_id:");
      if (this.transaction_id == null) {
        sb.append("null");
      } else {
        sb.append(this.transaction_id);
      }
      first = false;
    }
    if (isSetErrorTablets()) {
      if (!first) sb.append(", ");
      sb.append("error_tablets:");
      if (this.error_tablets == null) {
        sb.append("null");
      } else {
        sb.append(this.error_tablets);
      }
      first = false;
    }
    if (isSetUser()) {
      if (!first) sb.append(", ");
      sb.append("user:");
      if (this.user == null) {
        sb.append("null");
      } else {
        sb.append(this.user);
      }
      first = false;
    }
    if (isSetComment()) {
      if (!first) sb.append(", ");
      sb.append("comment:");
      if (this.comment == null) {
        sb.append("null");
      } else {
        sb.append(this.comment);
      }
      first = false;
    }
    if (isSetFirstErrorMsg()) {
      if (!first) sb.append(", ");
      sb.append("first_error_msg:");
      if (this.first_error_msg == null) {
        sb.append("null");
      } else {
        sb.append(this.first_error_msg);
      }
      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 {
      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 TLoadJobStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public TLoadJobStandardScheme getScheme() {
      return new TLoadJobStandardScheme();
    }
  }

  private static class TLoadJobStandardScheme extends org.apache.thrift.scheme.StandardScheme<TLoadJob> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, TLoadJob 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: // LABEL
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.label = iprot.readString();
              struct.setLabelIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // 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 4: // 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 5: // TYPE
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.type = iprot.readString();
              struct.setTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // ETL_INFO
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.etl_info = iprot.readString();
              struct.setEtlInfoIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // TASK_INFO
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.task_info = iprot.readString();
              struct.setTaskInfoIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // ERROR_MSG
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.error_msg = iprot.readString();
              struct.setErrorMsgIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // 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 10: // ETL_START_TIME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.etl_start_time = iprot.readString();
              struct.setEtlStartTimeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 11: // ETL_FINISH_TIME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.etl_finish_time = iprot.readString();
              struct.setEtlFinishTimeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 12: // LOAD_START_TIME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.load_start_time = iprot.readString();
              struct.setLoadStartTimeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 13: // LOAD_FINISH_TIME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.load_finish_time = iprot.readString();
              struct.setLoadFinishTimeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 14: // URL
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.url = iprot.readString();
              struct.setUrlIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 15: // JOB_DETAILS
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.job_details = iprot.readString();
              struct.setJobDetailsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 16: // TRANSACTION_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.transaction_id = iprot.readString();
              struct.setTransactionIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 17: // ERROR_TABLETS
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.error_tablets = iprot.readString();
              struct.setErrorTabletsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 18: // USER
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.user = iprot.readString();
              struct.setUserIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 19: // COMMENT
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.comment = iprot.readString();
              struct.setCommentIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 20: // FIRST_ERROR_MSG
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.first_error_msg = iprot.readString();
              struct.setFirstErrorMsgIsSet(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, TLoadJob 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.label != null) {
        if (struct.isSetLabel()) {
          oprot.writeFieldBegin(LABEL_FIELD_DESC);
          oprot.writeString(struct.label);
          oprot.writeFieldEnd();
        }
      }
      if (struct.state != null) {
        if (struct.isSetState()) {
          oprot.writeFieldBegin(STATE_FIELD_DESC);
          oprot.writeString(struct.state);
          oprot.writeFieldEnd();
        }
      }
      if (struct.progress != null) {
        if (struct.isSetProgress()) {
          oprot.writeFieldBegin(PROGRESS_FIELD_DESC);
          oprot.writeString(struct.progress);
          oprot.writeFieldEnd();
        }
      }
      if (struct.type != null) {
        if (struct.isSetType()) {
          oprot.writeFieldBegin(TYPE_FIELD_DESC);
          oprot.writeString(struct.type);
          oprot.writeFieldEnd();
        }
      }
      if (struct.etl_info != null) {
        if (struct.isSetEtlInfo()) {
          oprot.writeFieldBegin(ETL_INFO_FIELD_DESC);
          oprot.writeString(struct.etl_info);
          oprot.writeFieldEnd();
        }
      }
      if (struct.task_info != null) {
        if (struct.isSetTaskInfo()) {
          oprot.writeFieldBegin(TASK_INFO_FIELD_DESC);
          oprot.writeString(struct.task_info);
          oprot.writeFieldEnd();
        }
      }
      if (struct.error_msg != null) {
        if (struct.isSetErrorMsg()) {
          oprot.writeFieldBegin(ERROR_MSG_FIELD_DESC);
          oprot.writeString(struct.error_msg);
          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.etl_start_time != null) {
        if (struct.isSetEtlStartTime()) {
          oprot.writeFieldBegin(ETL_START_TIME_FIELD_DESC);
          oprot.writeString(struct.etl_start_time);
          oprot.writeFieldEnd();
        }
      }
      if (struct.etl_finish_time != null) {
        if (struct.isSetEtlFinishTime()) {
          oprot.writeFieldBegin(ETL_FINISH_TIME_FIELD_DESC);
          oprot.writeString(struct.etl_finish_time);
          oprot.writeFieldEnd();
        }
      }
      if (struct.load_start_time != null) {
        if (struct.isSetLoadStartTime()) {
          oprot.writeFieldBegin(LOAD_START_TIME_FIELD_DESC);
          oprot.writeString(struct.load_start_time);
          oprot.writeFieldEnd();
        }
      }
      if (struct.load_finish_time != null) {
        if (struct.isSetLoadFinishTime()) {
          oprot.writeFieldBegin(LOAD_FINISH_TIME_FIELD_DESC);
          oprot.writeString(struct.load_finish_time);
          oprot.writeFieldEnd();
        }
      }
      if (struct.url != null) {
        if (struct.isSetUrl()) {
          oprot.writeFieldBegin(URL_FIELD_DESC);
          oprot.writeString(struct.url);
          oprot.writeFieldEnd();
        }
      }
      if (struct.job_details != null) {
        if (struct.isSetJobDetails()) {
          oprot.writeFieldBegin(JOB_DETAILS_FIELD_DESC);
          oprot.writeString(struct.job_details);
          oprot.writeFieldEnd();
        }
      }
      if (struct.transaction_id != null) {
        if (struct.isSetTransactionId()) {
          oprot.writeFieldBegin(TRANSACTION_ID_FIELD_DESC);
          oprot.writeString(struct.transaction_id);
          oprot.writeFieldEnd();
        }
      }
      if (struct.error_tablets != null) {
        if (struct.isSetErrorTablets()) {
          oprot.writeFieldBegin(ERROR_TABLETS_FIELD_DESC);
          oprot.writeString(struct.error_tablets);
          oprot.writeFieldEnd();
        }
      }
      if (struct.user != null) {
        if (struct.isSetUser()) {
          oprot.writeFieldBegin(USER_FIELD_DESC);
          oprot.writeString(struct.user);
          oprot.writeFieldEnd();
        }
      }
      if (struct.comment != null) {
        if (struct.isSetComment()) {
          oprot.writeFieldBegin(COMMENT_FIELD_DESC);
          oprot.writeString(struct.comment);
          oprot.writeFieldEnd();
        }
      }
      if (struct.first_error_msg != null) {
        if (struct.isSetFirstErrorMsg()) {
          oprot.writeFieldBegin(FIRST_ERROR_MSG_FIELD_DESC);
          oprot.writeString(struct.first_error_msg);
          oprot.writeFieldEnd();
        }
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

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

  private static class TLoadJobTupleScheme extends org.apache.thrift.scheme.TupleScheme<TLoadJob> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TLoadJob 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.isSetLabel()) {
        optionals.set(1);
      }
      if (struct.isSetState()) {
        optionals.set(2);
      }
      if (struct.isSetProgress()) {
        optionals.set(3);
      }
      if (struct.isSetType()) {
        optionals.set(4);
      }
      if (struct.isSetEtlInfo()) {
        optionals.set(5);
      }
      if (struct.isSetTaskInfo()) {
        optionals.set(6);
      }
      if (struct.isSetErrorMsg()) {
        optionals.set(7);
      }
      if (struct.isSetCreateTime()) {
        optionals.set(8);
      }
      if (struct.isSetEtlStartTime()) {
        optionals.set(9);
      }
      if (struct.isSetEtlFinishTime()) {
        optionals.set(10);
      }
      if (struct.isSetLoadStartTime()) {
        optionals.set(11);
      }
      if (struct.isSetLoadFinishTime()) {
        optionals.set(12);
      }
      if (struct.isSetUrl()) {
        optionals.set(13);
      }
      if (struct.isSetJobDetails()) {
        optionals.set(14);
      }
      if (struct.isSetTransactionId()) {
        optionals.set(15);
      }
      if (struct.isSetErrorTablets()) {
        optionals.set(16);
      }
      if (struct.isSetUser()) {
        optionals.set(17);
      }
      if (struct.isSetComment()) {
        optionals.set(18);
      }
      if (struct.isSetFirstErrorMsg()) {
        optionals.set(19);
      }
      oprot.writeBitSet(optionals, 20);
      if (struct.isSetJobId()) {
        oprot.writeString(struct.job_id);
      }
      if (struct.isSetLabel()) {
        oprot.writeString(struct.label);
      }
      if (struct.isSetState()) {
        oprot.writeString(struct.state);
      }
      if (struct.isSetProgress()) {
        oprot.writeString(struct.progress);
      }
      if (struct.isSetType()) {
        oprot.writeString(struct.type);
      }
      if (struct.isSetEtlInfo()) {
        oprot.writeString(struct.etl_info);
      }
      if (struct.isSetTaskInfo()) {
        oprot.writeString(struct.task_info);
      }
      if (struct.isSetErrorMsg()) {
        oprot.writeString(struct.error_msg);
      }
      if (struct.isSetCreateTime()) {
        oprot.writeString(struct.create_time);
      }
      if (struct.isSetEtlStartTime()) {
        oprot.writeString(struct.etl_start_time);
      }
      if (struct.isSetEtlFinishTime()) {
        oprot.writeString(struct.etl_finish_time);
      }
      if (struct.isSetLoadStartTime()) {
        oprot.writeString(struct.load_start_time);
      }
      if (struct.isSetLoadFinishTime()) {
        oprot.writeString(struct.load_finish_time);
      }
      if (struct.isSetUrl()) {
        oprot.writeString(struct.url);
      }
      if (struct.isSetJobDetails()) {
        oprot.writeString(struct.job_details);
      }
      if (struct.isSetTransactionId()) {
        oprot.writeString(struct.transaction_id);
      }
      if (struct.isSetErrorTablets()) {
        oprot.writeString(struct.error_tablets);
      }
      if (struct.isSetUser()) {
        oprot.writeString(struct.user);
      }
      if (struct.isSetComment()) {
        oprot.writeString(struct.comment);
      }
      if (struct.isSetFirstErrorMsg()) {
        oprot.writeString(struct.first_error_msg);
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TLoadJob struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet incoming = iprot.readBitSet(20);
      if (incoming.get(0)) {
        struct.job_id = iprot.readString();
        struct.setJobIdIsSet(true);
      }
      if (incoming.get(1)) {
        struct.label = iprot.readString();
        struct.setLabelIsSet(true);
      }
      if (incoming.get(2)) {
        struct.state = iprot.readString();
        struct.setStateIsSet(true);
      }
      if (incoming.get(3)) {
        struct.progress = iprot.readString();
        struct.setProgressIsSet(true);
      }
      if (incoming.get(4)) {
        struct.type = iprot.readString();
        struct.setTypeIsSet(true);
      }
      if (incoming.get(5)) {
        struct.etl_info = iprot.readString();
        struct.setEtlInfoIsSet(true);
      }
      if (incoming.get(6)) {
        struct.task_info = iprot.readString();
        struct.setTaskInfoIsSet(true);
      }
      if (incoming.get(7)) {
        struct.error_msg = iprot.readString();
        struct.setErrorMsgIsSet(true);
      }
      if (incoming.get(8)) {
        struct.create_time = iprot.readString();
        struct.setCreateTimeIsSet(true);
      }
      if (incoming.get(9)) {
        struct.etl_start_time = iprot.readString();
        struct.setEtlStartTimeIsSet(true);
      }
      if (incoming.get(10)) {
        struct.etl_finish_time = iprot.readString();
        struct.setEtlFinishTimeIsSet(true);
      }
      if (incoming.get(11)) {
        struct.load_start_time = iprot.readString();
        struct.setLoadStartTimeIsSet(true);
      }
      if (incoming.get(12)) {
        struct.load_finish_time = iprot.readString();
        struct.setLoadFinishTimeIsSet(true);
      }
      if (incoming.get(13)) {
        struct.url = iprot.readString();
        struct.setUrlIsSet(true);
      }
      if (incoming.get(14)) {
        struct.job_details = iprot.readString();
        struct.setJobDetailsIsSet(true);
      }
      if (incoming.get(15)) {
        struct.transaction_id = iprot.readString();
        struct.setTransactionIdIsSet(true);
      }
      if (incoming.get(16)) {
        struct.error_tablets = iprot.readString();
        struct.setErrorTabletsIsSet(true);
      }
      if (incoming.get(17)) {
        struct.user = iprot.readString();
        struct.setUserIsSet(true);
      }
      if (incoming.get(18)) {
        struct.comment = iprot.readString();
        struct.setCommentIsSet(true);
      }
      if (incoming.get(19)) {
        struct.first_error_msg = iprot.readString();
        struct.setFirstErrorMsgIsSet(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();
  }
}