Subversion Repositories SmartDukaan

Rev

Rev 10864 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/**
 * Autogenerated by Thrift Compiler (0.7.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 */
package in.shop2020.purchase;

import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Set;
import java.util.HashSet;
import java.util.EnumSet;
import java.util.Collections;
import java.util.BitSet;
import java.nio.ByteBuffer;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class PurchaseReturn implements org.apache.thrift.TBase<PurchaseReturn, PurchaseReturn._Fields>, java.io.Serializable, Cloneable {
  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PurchaseReturn");

  private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.I64, (short)1);
  private static final org.apache.thrift.protocol.TField VENDOR_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("vendorId", org.apache.thrift.protocol.TType.I64, (short)2);
  private static final org.apache.thrift.protocol.TField AMOUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("amount", org.apache.thrift.protocol.TType.I64, (short)3);
  private static final org.apache.thrift.protocol.TField RETURN_TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField("returnTimestamp", org.apache.thrift.protocol.TType.I64, (short)4);
  private static final org.apache.thrift.protocol.TField IS_SETTLED_FIELD_DESC = new org.apache.thrift.protocol.TField("isSettled", org.apache.thrift.protocol.TType.BOOL, (short)5);
  private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)6);
  private static final org.apache.thrift.protocol.TField RETURN_INVENTORY_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("returnInventoryType", org.apache.thrift.protocol.TType.I32, (short)7);
  private static final org.apache.thrift.protocol.TField CURRENT_SETTLEMENT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("currentSettlementType", org.apache.thrift.protocol.TType.I32, (short)8);
  private static final org.apache.thrift.protocol.TField LATEST_SETTLEMENT_DATE_FIELD_DESC = new org.apache.thrift.protocol.TField("latestSettlementDate", org.apache.thrift.protocol.TType.I64, (short)9);
  private static final org.apache.thrift.protocol.TField PURCHASE_RETURN_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("purchaseReturnType", org.apache.thrift.protocol.TType.I32, (short)10);
  private static final org.apache.thrift.protocol.TField REASON_TEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("reasonText", org.apache.thrift.protocol.TType.STRING, (short)11);
  private static final org.apache.thrift.protocol.TField DOCUMENT_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("documentNumber", org.apache.thrift.protocol.TType.STRING, (short)12);
  private static final org.apache.thrift.protocol.TField CREATED_BY_FIELD_DESC = new org.apache.thrift.protocol.TField("createdBy", org.apache.thrift.protocol.TType.STRING, (short)13);
  private static final org.apache.thrift.protocol.TField UNSETTLED_AMOUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("unsettledAmount", org.apache.thrift.protocol.TType.I64, (short)14);

  private long id; // required
  private long vendorId; // required
  private long amount; // required
  private long returnTimestamp; // required
  private boolean isSettled; // required
  private PurchaseReturnType type; // required
  private PurchaseReturnInventoryType returnInventoryType; // required
  private SettlementType currentSettlementType; // required
  private long latestSettlementDate; // required
  private PrReasonType purchaseReturnType; // required
  private String reasonText; // required
  private String documentNumber; // required
  private String createdBy; // required
  private long unsettledAmount; // required

  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
    ID((short)1, "id"),
    VENDOR_ID((short)2, "vendorId"),
    AMOUNT((short)3, "amount"),
    RETURN_TIMESTAMP((short)4, "returnTimestamp"),
    IS_SETTLED((short)5, "isSettled"),
    /**
     * 
     * @see PurchaseReturnType
     */
    TYPE((short)6, "type"),
    /**
     * 
     * @see PurchaseReturnInventoryType
     */
    RETURN_INVENTORY_TYPE((short)7, "returnInventoryType"),
    /**
     * 
     * @see SettlementType
     */
    CURRENT_SETTLEMENT_TYPE((short)8, "currentSettlementType"),
    LATEST_SETTLEMENT_DATE((short)9, "latestSettlementDate"),
    /**
     * 
     * @see PrReasonType
     */
    PURCHASE_RETURN_TYPE((short)10, "purchaseReturnType"),
    REASON_TEXT((short)11, "reasonText"),
    DOCUMENT_NUMBER((short)12, "documentNumber"),
    CREATED_BY((short)13, "createdBy"),
    UNSETTLED_AMOUNT((short)14, "unsettledAmount");

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

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

    /**
     * Find the _Fields constant that matches fieldId, or null if its not found.
     */
    public static _Fields findByThriftId(int fieldId) {
      switch(fieldId) {
        case 1: // ID
          return ID;
        case 2: // VENDOR_ID
          return VENDOR_ID;
        case 3: // AMOUNT
          return AMOUNT;
        case 4: // RETURN_TIMESTAMP
          return RETURN_TIMESTAMP;
        case 5: // IS_SETTLED
          return IS_SETTLED;
        case 6: // TYPE
          return TYPE;
        case 7: // RETURN_INVENTORY_TYPE
          return RETURN_INVENTORY_TYPE;
        case 8: // CURRENT_SETTLEMENT_TYPE
          return CURRENT_SETTLEMENT_TYPE;
        case 9: // LATEST_SETTLEMENT_DATE
          return LATEST_SETTLEMENT_DATE;
        case 10: // PURCHASE_RETURN_TYPE
          return PURCHASE_RETURN_TYPE;
        case 11: // REASON_TEXT
          return REASON_TEXT;
        case 12: // DOCUMENT_NUMBER
          return DOCUMENT_NUMBER;
        case 13: // CREATED_BY
          return CREATED_BY;
        case 14: // UNSETTLED_AMOUNT
          return UNSETTLED_AMOUNT;
        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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
      return fields;
    }

    /**
     * Find the _Fields constant that matches name, or null if its not found.
     */
    public static _Fields findByName(String name) {
      return byName.get(name);
    }

    private final short _thriftId;
    private final String _fieldName;

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

    public short getThriftFieldId() {
      return _thriftId;
    }

    public String getFieldName() {
      return _fieldName;
    }
  }

  // isset id assignments
  private static final int __ID_ISSET_ID = 0;
  private static final int __VENDORID_ISSET_ID = 1;
  private static final int __AMOUNT_ISSET_ID = 2;
  private static final int __RETURNTIMESTAMP_ISSET_ID = 3;
  private static final int __ISSETTLED_ISSET_ID = 4;
  private static final int __LATESTSETTLEMENTDATE_ISSET_ID = 5;
  private static final int __UNSETTLEDAMOUNT_ISSET_ID = 6;
  private BitSet __isset_bit_vector = new BitSet(7);

  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
  static {
    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
    tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.VENDOR_ID, new org.apache.thrift.meta_data.FieldMetaData("vendorId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.AMOUNT, new org.apache.thrift.meta_data.FieldMetaData("amount", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.RETURN_TIMESTAMP, new org.apache.thrift.meta_data.FieldMetaData("returnTimestamp", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.IS_SETTLED, new org.apache.thrift.meta_data.FieldMetaData("isSettled", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, PurchaseReturnType.class)));
    tmpMap.put(_Fields.RETURN_INVENTORY_TYPE, new org.apache.thrift.meta_data.FieldMetaData("returnInventoryType", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, PurchaseReturnInventoryType.class)));
    tmpMap.put(_Fields.CURRENT_SETTLEMENT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("currentSettlementType", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SettlementType.class)));
    tmpMap.put(_Fields.LATEST_SETTLEMENT_DATE, new org.apache.thrift.meta_data.FieldMetaData("latestSettlementDate", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.PURCHASE_RETURN_TYPE, new org.apache.thrift.meta_data.FieldMetaData("purchaseReturnType", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, PrReasonType.class)));
    tmpMap.put(_Fields.REASON_TEXT, new org.apache.thrift.meta_data.FieldMetaData("reasonText", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.DOCUMENT_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("documentNumber", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.CREATED_BY, new org.apache.thrift.meta_data.FieldMetaData("createdBy", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.UNSETTLED_AMOUNT, new org.apache.thrift.meta_data.FieldMetaData("unsettledAmount", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    metaDataMap = Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(PurchaseReturn.class, metaDataMap);
  }

  public PurchaseReturn() {
  }

  public PurchaseReturn(
    long id,
    long vendorId,
    long amount,
    long returnTimestamp,
    boolean isSettled,
    PurchaseReturnType type,
    PurchaseReturnInventoryType returnInventoryType,
    SettlementType currentSettlementType,
    long latestSettlementDate,
    PrReasonType purchaseReturnType,
    String reasonText,
    String documentNumber,
    String createdBy,
    long unsettledAmount)
  {
    this();
    this.id = id;
    setIdIsSet(true);
    this.vendorId = vendorId;
    setVendorIdIsSet(true);
    this.amount = amount;
    setAmountIsSet(true);
    this.returnTimestamp = returnTimestamp;
    setReturnTimestampIsSet(true);
    this.isSettled = isSettled;
    setIsSettledIsSet(true);
    this.type = type;
    this.returnInventoryType = returnInventoryType;
    this.currentSettlementType = currentSettlementType;
    this.latestSettlementDate = latestSettlementDate;
    setLatestSettlementDateIsSet(true);
    this.purchaseReturnType = purchaseReturnType;
    this.reasonText = reasonText;
    this.documentNumber = documentNumber;
    this.createdBy = createdBy;
    this.unsettledAmount = unsettledAmount;
    setUnsettledAmountIsSet(true);
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public PurchaseReturn(PurchaseReturn other) {
    __isset_bit_vector.clear();
    __isset_bit_vector.or(other.__isset_bit_vector);
    this.id = other.id;
    this.vendorId = other.vendorId;
    this.amount = other.amount;
    this.returnTimestamp = other.returnTimestamp;
    this.isSettled = other.isSettled;
    if (other.isSetType()) {
      this.type = other.type;
    }
    if (other.isSetReturnInventoryType()) {
      this.returnInventoryType = other.returnInventoryType;
    }
    if (other.isSetCurrentSettlementType()) {
      this.currentSettlementType = other.currentSettlementType;
    }
    this.latestSettlementDate = other.latestSettlementDate;
    if (other.isSetPurchaseReturnType()) {
      this.purchaseReturnType = other.purchaseReturnType;
    }
    if (other.isSetReasonText()) {
      this.reasonText = other.reasonText;
    }
    if (other.isSetDocumentNumber()) {
      this.documentNumber = other.documentNumber;
    }
    if (other.isSetCreatedBy()) {
      this.createdBy = other.createdBy;
    }
    this.unsettledAmount = other.unsettledAmount;
  }

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

  @Override
  public void clear() {
    setIdIsSet(false);
    this.id = 0;
    setVendorIdIsSet(false);
    this.vendorId = 0;
    setAmountIsSet(false);
    this.amount = 0;
    setReturnTimestampIsSet(false);
    this.returnTimestamp = 0;
    setIsSettledIsSet(false);
    this.isSettled = false;
    this.type = null;
    this.returnInventoryType = null;
    this.currentSettlementType = null;
    setLatestSettlementDateIsSet(false);
    this.latestSettlementDate = 0;
    this.purchaseReturnType = null;
    this.reasonText = null;
    this.documentNumber = null;
    this.createdBy = null;
    setUnsettledAmountIsSet(false);
    this.unsettledAmount = 0;
  }

  public long getId() {
    return this.id;
  }

  public void setId(long id) {
    this.id = id;
    setIdIsSet(true);
  }

  public void unsetId() {
    __isset_bit_vector.clear(__ID_ISSET_ID);
  }

  /** Returns true if field id is set (has been assigned a value) and false otherwise */
  public boolean isSetId() {
    return __isset_bit_vector.get(__ID_ISSET_ID);
  }

  public void setIdIsSet(boolean value) {
    __isset_bit_vector.set(__ID_ISSET_ID, value);
  }

  public long getVendorId() {
    return this.vendorId;
  }

  public void setVendorId(long vendorId) {
    this.vendorId = vendorId;
    setVendorIdIsSet(true);
  }

  public void unsetVendorId() {
    __isset_bit_vector.clear(__VENDORID_ISSET_ID);
  }

  /** Returns true if field vendorId is set (has been assigned a value) and false otherwise */
  public boolean isSetVendorId() {
    return __isset_bit_vector.get(__VENDORID_ISSET_ID);
  }

  public void setVendorIdIsSet(boolean value) {
    __isset_bit_vector.set(__VENDORID_ISSET_ID, value);
  }

  public long getAmount() {
    return this.amount;
  }

  public void setAmount(long amount) {
    this.amount = amount;
    setAmountIsSet(true);
  }

  public void unsetAmount() {
    __isset_bit_vector.clear(__AMOUNT_ISSET_ID);
  }

  /** Returns true if field amount is set (has been assigned a value) and false otherwise */
  public boolean isSetAmount() {
    return __isset_bit_vector.get(__AMOUNT_ISSET_ID);
  }

  public void setAmountIsSet(boolean value) {
    __isset_bit_vector.set(__AMOUNT_ISSET_ID, value);
  }

  public long getReturnTimestamp() {
    return this.returnTimestamp;
  }

  public void setReturnTimestamp(long returnTimestamp) {
    this.returnTimestamp = returnTimestamp;
    setReturnTimestampIsSet(true);
  }

  public void unsetReturnTimestamp() {
    __isset_bit_vector.clear(__RETURNTIMESTAMP_ISSET_ID);
  }

  /** Returns true if field returnTimestamp is set (has been assigned a value) and false otherwise */
  public boolean isSetReturnTimestamp() {
    return __isset_bit_vector.get(__RETURNTIMESTAMP_ISSET_ID);
  }

  public void setReturnTimestampIsSet(boolean value) {
    __isset_bit_vector.set(__RETURNTIMESTAMP_ISSET_ID, value);
  }

  public boolean isIsSettled() {
    return this.isSettled;
  }

  public void setIsSettled(boolean isSettled) {
    this.isSettled = isSettled;
    setIsSettledIsSet(true);
  }

  public void unsetIsSettled() {
    __isset_bit_vector.clear(__ISSETTLED_ISSET_ID);
  }

  /** Returns true if field isSettled is set (has been assigned a value) and false otherwise */
  public boolean isSetIsSettled() {
    return __isset_bit_vector.get(__ISSETTLED_ISSET_ID);
  }

  public void setIsSettledIsSet(boolean value) {
    __isset_bit_vector.set(__ISSETTLED_ISSET_ID, value);
  }

  /**
   * 
   * @see PurchaseReturnType
   */
  public PurchaseReturnType getType() {
    return this.type;
  }

  /**
   * 
   * @see PurchaseReturnType
   */
  public void setType(PurchaseReturnType type) {
    this.type = type;
  }

  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;
    }
  }

  /**
   * 
   * @see PurchaseReturnInventoryType
   */
  public PurchaseReturnInventoryType getReturnInventoryType() {
    return this.returnInventoryType;
  }

  /**
   * 
   * @see PurchaseReturnInventoryType
   */
  public void setReturnInventoryType(PurchaseReturnInventoryType returnInventoryType) {
    this.returnInventoryType = returnInventoryType;
  }

  public void unsetReturnInventoryType() {
    this.returnInventoryType = null;
  }

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

  public void setReturnInventoryTypeIsSet(boolean value) {
    if (!value) {
      this.returnInventoryType = null;
    }
  }

  /**
   * 
   * @see SettlementType
   */
  public SettlementType getCurrentSettlementType() {
    return this.currentSettlementType;
  }

  /**
   * 
   * @see SettlementType
   */
  public void setCurrentSettlementType(SettlementType currentSettlementType) {
    this.currentSettlementType = currentSettlementType;
  }

  public void unsetCurrentSettlementType() {
    this.currentSettlementType = null;
  }

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

  public void setCurrentSettlementTypeIsSet(boolean value) {
    if (!value) {
      this.currentSettlementType = null;
    }
  }

  public long getLatestSettlementDate() {
    return this.latestSettlementDate;
  }

  public void setLatestSettlementDate(long latestSettlementDate) {
    this.latestSettlementDate = latestSettlementDate;
    setLatestSettlementDateIsSet(true);
  }

  public void unsetLatestSettlementDate() {
    __isset_bit_vector.clear(__LATESTSETTLEMENTDATE_ISSET_ID);
  }

  /** Returns true if field latestSettlementDate is set (has been assigned a value) and false otherwise */
  public boolean isSetLatestSettlementDate() {
    return __isset_bit_vector.get(__LATESTSETTLEMENTDATE_ISSET_ID);
  }

  public void setLatestSettlementDateIsSet(boolean value) {
    __isset_bit_vector.set(__LATESTSETTLEMENTDATE_ISSET_ID, value);
  }

  /**
   * 
   * @see PrReasonType
   */
  public PrReasonType getPurchaseReturnType() {
    return this.purchaseReturnType;
  }

  /**
   * 
   * @see PrReasonType
   */
  public void setPurchaseReturnType(PrReasonType purchaseReturnType) {
    this.purchaseReturnType = purchaseReturnType;
  }

  public void unsetPurchaseReturnType() {
    this.purchaseReturnType = null;
  }

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

  public void setPurchaseReturnTypeIsSet(boolean value) {
    if (!value) {
      this.purchaseReturnType = null;
    }
  }

  public String getReasonText() {
    return this.reasonText;
  }

  public void setReasonText(String reasonText) {
    this.reasonText = reasonText;
  }

  public void unsetReasonText() {
    this.reasonText = null;
  }

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

  public void setReasonTextIsSet(boolean value) {
    if (!value) {
      this.reasonText = null;
    }
  }

  public String getDocumentNumber() {
    return this.documentNumber;
  }

  public void setDocumentNumber(String documentNumber) {
    this.documentNumber = documentNumber;
  }

  public void unsetDocumentNumber() {
    this.documentNumber = null;
  }

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

  public void setDocumentNumberIsSet(boolean value) {
    if (!value) {
      this.documentNumber = null;
    }
  }

  public String getCreatedBy() {
    return this.createdBy;
  }

  public void setCreatedBy(String createdBy) {
    this.createdBy = createdBy;
  }

  public void unsetCreatedBy() {
    this.createdBy = null;
  }

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

  public void setCreatedByIsSet(boolean value) {
    if (!value) {
      this.createdBy = null;
    }
  }

  public long getUnsettledAmount() {
    return this.unsettledAmount;
  }

  public void setUnsettledAmount(long unsettledAmount) {
    this.unsettledAmount = unsettledAmount;
    setUnsettledAmountIsSet(true);
  }

  public void unsetUnsettledAmount() {
    __isset_bit_vector.clear(__UNSETTLEDAMOUNT_ISSET_ID);
  }

  /** Returns true if field unsettledAmount is set (has been assigned a value) and false otherwise */
  public boolean isSetUnsettledAmount() {
    return __isset_bit_vector.get(__UNSETTLEDAMOUNT_ISSET_ID);
  }

  public void setUnsettledAmountIsSet(boolean value) {
    __isset_bit_vector.set(__UNSETTLEDAMOUNT_ISSET_ID, value);
  }

  public void setFieldValue(_Fields field, Object value) {
    switch (field) {
    case ID:
      if (value == null) {
        unsetId();
      } else {
        setId((Long)value);
      }
      break;

    case VENDOR_ID:
      if (value == null) {
        unsetVendorId();
      } else {
        setVendorId((Long)value);
      }
      break;

    case AMOUNT:
      if (value == null) {
        unsetAmount();
      } else {
        setAmount((Long)value);
      }
      break;

    case RETURN_TIMESTAMP:
      if (value == null) {
        unsetReturnTimestamp();
      } else {
        setReturnTimestamp((Long)value);
      }
      break;

    case IS_SETTLED:
      if (value == null) {
        unsetIsSettled();
      } else {
        setIsSettled((Boolean)value);
      }
      break;

    case TYPE:
      if (value == null) {
        unsetType();
      } else {
        setType((PurchaseReturnType)value);
      }
      break;

    case RETURN_INVENTORY_TYPE:
      if (value == null) {
        unsetReturnInventoryType();
      } else {
        setReturnInventoryType((PurchaseReturnInventoryType)value);
      }
      break;

    case CURRENT_SETTLEMENT_TYPE:
      if (value == null) {
        unsetCurrentSettlementType();
      } else {
        setCurrentSettlementType((SettlementType)value);
      }
      break;

    case LATEST_SETTLEMENT_DATE:
      if (value == null) {
        unsetLatestSettlementDate();
      } else {
        setLatestSettlementDate((Long)value);
      }
      break;

    case PURCHASE_RETURN_TYPE:
      if (value == null) {
        unsetPurchaseReturnType();
      } else {
        setPurchaseReturnType((PrReasonType)value);
      }
      break;

    case REASON_TEXT:
      if (value == null) {
        unsetReasonText();
      } else {
        setReasonText((String)value);
      }
      break;

    case DOCUMENT_NUMBER:
      if (value == null) {
        unsetDocumentNumber();
      } else {
        setDocumentNumber((String)value);
      }
      break;

    case CREATED_BY:
      if (value == null) {
        unsetCreatedBy();
      } else {
        setCreatedBy((String)value);
      }
      break;

    case UNSETTLED_AMOUNT:
      if (value == null) {
        unsetUnsettledAmount();
      } else {
        setUnsettledAmount((Long)value);
      }
      break;

    }
  }

  public Object getFieldValue(_Fields field) {
    switch (field) {
    case ID:
      return Long.valueOf(getId());

    case VENDOR_ID:
      return Long.valueOf(getVendorId());

    case AMOUNT:
      return Long.valueOf(getAmount());

    case RETURN_TIMESTAMP:
      return Long.valueOf(getReturnTimestamp());

    case IS_SETTLED:
      return Boolean.valueOf(isIsSettled());

    case TYPE:
      return getType();

    case RETURN_INVENTORY_TYPE:
      return getReturnInventoryType();

    case CURRENT_SETTLEMENT_TYPE:
      return getCurrentSettlementType();

    case LATEST_SETTLEMENT_DATE:
      return Long.valueOf(getLatestSettlementDate());

    case PURCHASE_RETURN_TYPE:
      return getPurchaseReturnType();

    case REASON_TEXT:
      return getReasonText();

    case DOCUMENT_NUMBER:
      return getDocumentNumber();

    case CREATED_BY:
      return getCreatedBy();

    case UNSETTLED_AMOUNT:
      return Long.valueOf(getUnsettledAmount());

    }
    throw new 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 IllegalArgumentException();
    }

    switch (field) {
    case ID:
      return isSetId();
    case VENDOR_ID:
      return isSetVendorId();
    case AMOUNT:
      return isSetAmount();
    case RETURN_TIMESTAMP:
      return isSetReturnTimestamp();
    case IS_SETTLED:
      return isSetIsSettled();
    case TYPE:
      return isSetType();
    case RETURN_INVENTORY_TYPE:
      return isSetReturnInventoryType();
    case CURRENT_SETTLEMENT_TYPE:
      return isSetCurrentSettlementType();
    case LATEST_SETTLEMENT_DATE:
      return isSetLatestSettlementDate();
    case PURCHASE_RETURN_TYPE:
      return isSetPurchaseReturnType();
    case REASON_TEXT:
      return isSetReasonText();
    case DOCUMENT_NUMBER:
      return isSetDocumentNumber();
    case CREATED_BY:
      return isSetCreatedBy();
    case UNSETTLED_AMOUNT:
      return isSetUnsettledAmount();
    }
    throw new IllegalStateException();
  }

  @Override
  public boolean equals(Object that) {
    if (that == null)
      return false;
    if (that instanceof PurchaseReturn)
      return this.equals((PurchaseReturn)that);
    return false;
  }

  public boolean equals(PurchaseReturn that) {
    if (that == null)
      return false;

    boolean this_present_id = true;
    boolean that_present_id = true;
    if (this_present_id || that_present_id) {
      if (!(this_present_id && that_present_id))
        return false;
      if (this.id != that.id)
        return false;
    }

    boolean this_present_vendorId = true;
    boolean that_present_vendorId = true;
    if (this_present_vendorId || that_present_vendorId) {
      if (!(this_present_vendorId && that_present_vendorId))
        return false;
      if (this.vendorId != that.vendorId)
        return false;
    }

    boolean this_present_amount = true;
    boolean that_present_amount = true;
    if (this_present_amount || that_present_amount) {
      if (!(this_present_amount && that_present_amount))
        return false;
      if (this.amount != that.amount)
        return false;
    }

    boolean this_present_returnTimestamp = true;
    boolean that_present_returnTimestamp = true;
    if (this_present_returnTimestamp || that_present_returnTimestamp) {
      if (!(this_present_returnTimestamp && that_present_returnTimestamp))
        return false;
      if (this.returnTimestamp != that.returnTimestamp)
        return false;
    }

    boolean this_present_isSettled = true;
    boolean that_present_isSettled = true;
    if (this_present_isSettled || that_present_isSettled) {
      if (!(this_present_isSettled && that_present_isSettled))
        return false;
      if (this.isSettled != that.isSettled)
        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_returnInventoryType = true && this.isSetReturnInventoryType();
    boolean that_present_returnInventoryType = true && that.isSetReturnInventoryType();
    if (this_present_returnInventoryType || that_present_returnInventoryType) {
      if (!(this_present_returnInventoryType && that_present_returnInventoryType))
        return false;
      if (!this.returnInventoryType.equals(that.returnInventoryType))
        return false;
    }

    boolean this_present_currentSettlementType = true && this.isSetCurrentSettlementType();
    boolean that_present_currentSettlementType = true && that.isSetCurrentSettlementType();
    if (this_present_currentSettlementType || that_present_currentSettlementType) {
      if (!(this_present_currentSettlementType && that_present_currentSettlementType))
        return false;
      if (!this.currentSettlementType.equals(that.currentSettlementType))
        return false;
    }

    boolean this_present_latestSettlementDate = true;
    boolean that_present_latestSettlementDate = true;
    if (this_present_latestSettlementDate || that_present_latestSettlementDate) {
      if (!(this_present_latestSettlementDate && that_present_latestSettlementDate))
        return false;
      if (this.latestSettlementDate != that.latestSettlementDate)
        return false;
    }

    boolean this_present_purchaseReturnType = true && this.isSetPurchaseReturnType();
    boolean that_present_purchaseReturnType = true && that.isSetPurchaseReturnType();
    if (this_present_purchaseReturnType || that_present_purchaseReturnType) {
      if (!(this_present_purchaseReturnType && that_present_purchaseReturnType))
        return false;
      if (!this.purchaseReturnType.equals(that.purchaseReturnType))
        return false;
    }

    boolean this_present_reasonText = true && this.isSetReasonText();
    boolean that_present_reasonText = true && that.isSetReasonText();
    if (this_present_reasonText || that_present_reasonText) {
      if (!(this_present_reasonText && that_present_reasonText))
        return false;
      if (!this.reasonText.equals(that.reasonText))
        return false;
    }

    boolean this_present_documentNumber = true && this.isSetDocumentNumber();
    boolean that_present_documentNumber = true && that.isSetDocumentNumber();
    if (this_present_documentNumber || that_present_documentNumber) {
      if (!(this_present_documentNumber && that_present_documentNumber))
        return false;
      if (!this.documentNumber.equals(that.documentNumber))
        return false;
    }

    boolean this_present_createdBy = true && this.isSetCreatedBy();
    boolean that_present_createdBy = true && that.isSetCreatedBy();
    if (this_present_createdBy || that_present_createdBy) {
      if (!(this_present_createdBy && that_present_createdBy))
        return false;
      if (!this.createdBy.equals(that.createdBy))
        return false;
    }

    boolean this_present_unsettledAmount = true;
    boolean that_present_unsettledAmount = true;
    if (this_present_unsettledAmount || that_present_unsettledAmount) {
      if (!(this_present_unsettledAmount && that_present_unsettledAmount))
        return false;
      if (this.unsettledAmount != that.unsettledAmount)
        return false;
    }

    return true;
  }

  @Override
  public int hashCode() {
    return 0;
  }

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

    int lastComparison = 0;
    PurchaseReturn typedOther = (PurchaseReturn)other;

    lastComparison = Boolean.valueOf(isSetId()).compareTo(typedOther.isSetId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, typedOther.id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetVendorId()).compareTo(typedOther.isSetVendorId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVendorId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.vendorId, typedOther.vendorId);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetAmount()).compareTo(typedOther.isSetAmount());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetAmount()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.amount, typedOther.amount);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetReturnTimestamp()).compareTo(typedOther.isSetReturnTimestamp());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetReturnTimestamp()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.returnTimestamp, typedOther.returnTimestamp);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetIsSettled()).compareTo(typedOther.isSetIsSettled());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsSettled()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isSettled, typedOther.isSettled);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetType()).compareTo(typedOther.isSetType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, typedOther.type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetReturnInventoryType()).compareTo(typedOther.isSetReturnInventoryType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetReturnInventoryType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.returnInventoryType, typedOther.returnInventoryType);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCurrentSettlementType()).compareTo(typedOther.isSetCurrentSettlementType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCurrentSettlementType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.currentSettlementType, typedOther.currentSettlementType);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetLatestSettlementDate()).compareTo(typedOther.isSetLatestSettlementDate());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetLatestSettlementDate()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.latestSettlementDate, typedOther.latestSettlementDate);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPurchaseReturnType()).compareTo(typedOther.isSetPurchaseReturnType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPurchaseReturnType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.purchaseReturnType, typedOther.purchaseReturnType);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetReasonText()).compareTo(typedOther.isSetReasonText());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetReasonText()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reasonText, typedOther.reasonText);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetDocumentNumber()).compareTo(typedOther.isSetDocumentNumber());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDocumentNumber()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.documentNumber, typedOther.documentNumber);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCreatedBy()).compareTo(typedOther.isSetCreatedBy());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCreatedBy()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.createdBy, typedOther.createdBy);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetUnsettledAmount()).compareTo(typedOther.isSetUnsettledAmount());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetUnsettledAmount()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.unsettledAmount, typedOther.unsettledAmount);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    return 0;
  }

  public _Fields fieldForId(int fieldId) {
    return _Fields.findByThriftId(fieldId);
  }

  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
    org.apache.thrift.protocol.TField field;
    iprot.readStructBegin();
    while (true)
    {
      field = iprot.readFieldBegin();
      if (field.type == org.apache.thrift.protocol.TType.STOP) { 
        break;
      }
      switch (field.id) {
        case 1: // ID
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.id = iprot.readI64();
            setIdIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 2: // VENDOR_ID
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.vendorId = iprot.readI64();
            setVendorIdIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 3: // AMOUNT
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.amount = iprot.readI64();
            setAmountIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 4: // RETURN_TIMESTAMP
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.returnTimestamp = iprot.readI64();
            setReturnTimestampIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 5: // IS_SETTLED
          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
            this.isSettled = iprot.readBool();
            setIsSettledIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 6: // TYPE
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.type = PurchaseReturnType.findByValue(iprot.readI32());
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 7: // RETURN_INVENTORY_TYPE
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.returnInventoryType = PurchaseReturnInventoryType.findByValue(iprot.readI32());
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 8: // CURRENT_SETTLEMENT_TYPE
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.currentSettlementType = SettlementType.findByValue(iprot.readI32());
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 9: // LATEST_SETTLEMENT_DATE
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.latestSettlementDate = iprot.readI64();
            setLatestSettlementDateIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 10: // PURCHASE_RETURN_TYPE
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.purchaseReturnType = PrReasonType.findByValue(iprot.readI32());
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 11: // REASON_TEXT
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.reasonText = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 12: // DOCUMENT_NUMBER
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.documentNumber = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 13: // CREATED_BY
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.createdBy = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 14: // UNSETTLED_AMOUNT
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.unsettledAmount = iprot.readI64();
            setUnsettledAmountIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        default:
          org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
      }
      iprot.readFieldEnd();
    }
    iprot.readStructEnd();
    validate();
  }

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

    oprot.writeStructBegin(STRUCT_DESC);
    oprot.writeFieldBegin(ID_FIELD_DESC);
    oprot.writeI64(this.id);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(VENDOR_ID_FIELD_DESC);
    oprot.writeI64(this.vendorId);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(AMOUNT_FIELD_DESC);
    oprot.writeI64(this.amount);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(RETURN_TIMESTAMP_FIELD_DESC);
    oprot.writeI64(this.returnTimestamp);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(IS_SETTLED_FIELD_DESC);
    oprot.writeBool(this.isSettled);
    oprot.writeFieldEnd();
    if (this.type != null) {
      oprot.writeFieldBegin(TYPE_FIELD_DESC);
      oprot.writeI32(this.type.getValue());
      oprot.writeFieldEnd();
    }
    if (this.returnInventoryType != null) {
      oprot.writeFieldBegin(RETURN_INVENTORY_TYPE_FIELD_DESC);
      oprot.writeI32(this.returnInventoryType.getValue());
      oprot.writeFieldEnd();
    }
    if (this.currentSettlementType != null) {
      oprot.writeFieldBegin(CURRENT_SETTLEMENT_TYPE_FIELD_DESC);
      oprot.writeI32(this.currentSettlementType.getValue());
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(LATEST_SETTLEMENT_DATE_FIELD_DESC);
    oprot.writeI64(this.latestSettlementDate);
    oprot.writeFieldEnd();
    if (this.purchaseReturnType != null) {
      oprot.writeFieldBegin(PURCHASE_RETURN_TYPE_FIELD_DESC);
      oprot.writeI32(this.purchaseReturnType.getValue());
      oprot.writeFieldEnd();
    }
    if (this.reasonText != null) {
      oprot.writeFieldBegin(REASON_TEXT_FIELD_DESC);
      oprot.writeString(this.reasonText);
      oprot.writeFieldEnd();
    }
    if (this.documentNumber != null) {
      oprot.writeFieldBegin(DOCUMENT_NUMBER_FIELD_DESC);
      oprot.writeString(this.documentNumber);
      oprot.writeFieldEnd();
    }
    if (this.createdBy != null) {
      oprot.writeFieldBegin(CREATED_BY_FIELD_DESC);
      oprot.writeString(this.createdBy);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(UNSETTLED_AMOUNT_FIELD_DESC);
    oprot.writeI64(this.unsettledAmount);
    oprot.writeFieldEnd();
    oprot.writeFieldStop();
    oprot.writeStructEnd();
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder("PurchaseReturn(");
    boolean first = true;

    sb.append("id:");
    sb.append(this.id);
    first = false;
    if (!first) sb.append(", ");
    sb.append("vendorId:");
    sb.append(this.vendorId);
    first = false;
    if (!first) sb.append(", ");
    sb.append("amount:");
    sb.append(this.amount);
    first = false;
    if (!first) sb.append(", ");
    sb.append("returnTimestamp:");
    sb.append(this.returnTimestamp);
    first = false;
    if (!first) sb.append(", ");
    sb.append("isSettled:");
    sb.append(this.isSettled);
    first = false;
    if (!first) sb.append(", ");
    sb.append("type:");
    if (this.type == null) {
      sb.append("null");
    } else {
      sb.append(this.type);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("returnInventoryType:");
    if (this.returnInventoryType == null) {
      sb.append("null");
    } else {
      sb.append(this.returnInventoryType);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("currentSettlementType:");
    if (this.currentSettlementType == null) {
      sb.append("null");
    } else {
      sb.append(this.currentSettlementType);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("latestSettlementDate:");
    sb.append(this.latestSettlementDate);
    first = false;
    if (!first) sb.append(", ");
    sb.append("purchaseReturnType:");
    if (this.purchaseReturnType == null) {
      sb.append("null");
    } else {
      sb.append(this.purchaseReturnType);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("reasonText:");
    if (this.reasonText == null) {
      sb.append("null");
    } else {
      sb.append(this.reasonText);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("documentNumber:");
    if (this.documentNumber == null) {
      sb.append("null");
    } else {
      sb.append(this.documentNumber);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("createdBy:");
    if (this.createdBy == null) {
      sb.append("null");
    } else {
      sb.append(this.createdBy);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("unsettledAmount:");
    sb.append(this.unsettledAmount);
    first = false;
    sb.append(")");
    return sb.toString();
  }

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

  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, 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_bit_vector = new BitSet(1);
      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);
    }
  }

}