Subversion Repositories SmartDukaan

Rev

Rev 7080 | Rev 7169 | Go to most recent revision | 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.model.v1.order;

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

  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 STORE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storeId", 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.DOUBLE, (short)3);
  private static final org.apache.thrift.protocol.TField TRANSACTION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("transactionTime", org.apache.thrift.protocol.TType.I64, (short)4);
  private static final org.apache.thrift.protocol.TField DEVICE_NUM_FIELD_DESC = new org.apache.thrift.protocol.TField("deviceNum", org.apache.thrift.protocol.TType.STRING, (short)5);
  private static final org.apache.thrift.protocol.TField DEVICE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("deviceType", org.apache.thrift.protocol.TType.I32, (short)6);
  private static final org.apache.thrift.protocol.TField IS_FRC_FIELD_DESC = new org.apache.thrift.protocol.TField("isFrc", org.apache.thrift.protocol.TType.BOOL, (short)7);
  private static final org.apache.thrift.protocol.TField EMAIL_FIELD_DESC = new org.apache.thrift.protocol.TField("email", org.apache.thrift.protocol.TType.STRING, (short)8);
  private static final org.apache.thrift.protocol.TField DISCOUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("discount", org.apache.thrift.protocol.TType.DOUBLE, (short)9);
  private static final org.apache.thrift.protocol.TField PAYMENT_AMOUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("paymentAmount", org.apache.thrift.protocol.TType.DOUBLE, (short)10);
  private static final org.apache.thrift.protocol.TField PAY_METHOD_FIELD_DESC = new org.apache.thrift.protocol.TField("payMethod", org.apache.thrift.protocol.TType.I32, (short)11);
  private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.I32, (short)12);
  private static final org.apache.thrift.protocol.TField INVOICE_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("invoiceNumber", org.apache.thrift.protocol.TType.STRING, (short)13);
  private static final org.apache.thrift.protocol.TField CIRCLE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("circleId", org.apache.thrift.protocol.TType.I64, (short)14);
  private static final org.apache.thrift.protocol.TField OPERATOR_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("operatorId", org.apache.thrift.protocol.TType.I64, (short)15);
  private static final org.apache.thrift.protocol.TField PLAN_FIELD_DESC = new org.apache.thrift.protocol.TField("plan", org.apache.thrift.protocol.TType.STRING, (short)16);
  private static final org.apache.thrift.protocol.TField IP_ADDRESS_FIELD_DESC = new org.apache.thrift.protocol.TField("ipAddress", org.apache.thrift.protocol.TType.STRING, (short)17);
  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)18);
  private static final org.apache.thrift.protocol.TField CAF_NUM_FIELD_DESC = new org.apache.thrift.protocol.TField("cafNum", org.apache.thrift.protocol.TType.STRING, (short)19);
  private static final org.apache.thrift.protocol.TField SIM_NUM_FIELD_DESC = new org.apache.thrift.protocol.TField("simNum", org.apache.thrift.protocol.TType.STRING, (short)20);
  private static final org.apache.thrift.protocol.TField ALTERNATE_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("alternateNumber", org.apache.thrift.protocol.TType.STRING, (short)21);
  private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)22);

  private long id; // required
  private long storeId; // required
  private double amount; // required
  private long transactionTime; // required
  private String deviceNum; // required
  private RechargeType deviceType; // required
  private boolean isFrc; // required
  private String email; // required
  private double discount; // required
  private double paymentAmount; // required
  private PayMethod payMethod; // required
  private RechargeOrderStatus status; // required
  private String invoiceNumber; // required
  private long circleId; // required
  private long operatorId; // required
  private String plan; // required
  private String ipAddress; // required
  private String name; // required
  private String cafNum; // required
  private String simNum; // required
  private String alternateNumber; // required
  private String description; // 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"),
    STORE_ID((short)2, "storeId"),
    AMOUNT((short)3, "amount"),
    TRANSACTION_TIME((short)4, "transactionTime"),
    DEVICE_NUM((short)5, "deviceNum"),
    /**
     * 
     * @see RechargeType
     */
    DEVICE_TYPE((short)6, "deviceType"),
    IS_FRC((short)7, "isFrc"),
    EMAIL((short)8, "email"),
    DISCOUNT((short)9, "discount"),
    PAYMENT_AMOUNT((short)10, "paymentAmount"),
    /**
     * 
     * @see PayMethod
     */
    PAY_METHOD((short)11, "payMethod"),
    /**
     * 
     * @see RechargeOrderStatus
     */
    STATUS((short)12, "status"),
    INVOICE_NUMBER((short)13, "invoiceNumber"),
    CIRCLE_ID((short)14, "circleId"),
    OPERATOR_ID((short)15, "operatorId"),
    PLAN((short)16, "plan"),
    IP_ADDRESS((short)17, "ipAddress"),
    NAME((short)18, "name"),
    CAF_NUM((short)19, "cafNum"),
    SIM_NUM((short)20, "simNum"),
    ALTERNATE_NUMBER((short)21, "alternateNumber"),
    DESCRIPTION((short)22, "description");

    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: // STORE_ID
          return STORE_ID;
        case 3: // AMOUNT
          return AMOUNT;
        case 4: // TRANSACTION_TIME
          return TRANSACTION_TIME;
        case 5: // DEVICE_NUM
          return DEVICE_NUM;
        case 6: // DEVICE_TYPE
          return DEVICE_TYPE;
        case 7: // IS_FRC
          return IS_FRC;
        case 8: // EMAIL
          return EMAIL;
        case 9: // DISCOUNT
          return DISCOUNT;
        case 10: // PAYMENT_AMOUNT
          return PAYMENT_AMOUNT;
        case 11: // PAY_METHOD
          return PAY_METHOD;
        case 12: // STATUS
          return STATUS;
        case 13: // INVOICE_NUMBER
          return INVOICE_NUMBER;
        case 14: // CIRCLE_ID
          return CIRCLE_ID;
        case 15: // OPERATOR_ID
          return OPERATOR_ID;
        case 16: // PLAN
          return PLAN;
        case 17: // IP_ADDRESS
          return IP_ADDRESS;
        case 18: // NAME
          return NAME;
        case 19: // CAF_NUM
          return CAF_NUM;
        case 20: // SIM_NUM
          return SIM_NUM;
        case 21: // ALTERNATE_NUMBER
          return ALTERNATE_NUMBER;
        case 22: // DESCRIPTION
          return DESCRIPTION;
        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 __STOREID_ISSET_ID = 1;
  private static final int __AMOUNT_ISSET_ID = 2;
  private static final int __TRANSACTIONTIME_ISSET_ID = 3;
  private static final int __ISFRC_ISSET_ID = 4;
  private static final int __DISCOUNT_ISSET_ID = 5;
  private static final int __PAYMENTAMOUNT_ISSET_ID = 6;
  private static final int __CIRCLEID_ISSET_ID = 7;
  private static final int __OPERATORID_ISSET_ID = 8;
  private BitSet __isset_bit_vector = new BitSet(9);

  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.STORE_ID, new org.apache.thrift.meta_data.FieldMetaData("storeId", 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.DOUBLE)));
    tmpMap.put(_Fields.TRANSACTION_TIME, new org.apache.thrift.meta_data.FieldMetaData("transactionTime", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.DEVICE_NUM, new org.apache.thrift.meta_data.FieldMetaData("deviceNum", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.DEVICE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("deviceType", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, RechargeType.class)));
    tmpMap.put(_Fields.IS_FRC, new org.apache.thrift.meta_data.FieldMetaData("isFrc", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.EMAIL, new org.apache.thrift.meta_data.FieldMetaData("email", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.DISCOUNT, new org.apache.thrift.meta_data.FieldMetaData("discount", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.PAYMENT_AMOUNT, new org.apache.thrift.meta_data.FieldMetaData("paymentAmount", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.PAY_METHOD, new org.apache.thrift.meta_data.FieldMetaData("payMethod", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, PayMethod.class)));
    tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, RechargeOrderStatus.class)));
    tmpMap.put(_Fields.INVOICE_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("invoiceNumber", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.CIRCLE_ID, new org.apache.thrift.meta_data.FieldMetaData("circleId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.OPERATOR_ID, new org.apache.thrift.meta_data.FieldMetaData("operatorId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.PLAN, new org.apache.thrift.meta_data.FieldMetaData("plan", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.IP_ADDRESS, new org.apache.thrift.meta_data.FieldMetaData("ipAddress", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.CAF_NUM, new org.apache.thrift.meta_data.FieldMetaData("cafNum", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.SIM_NUM, new org.apache.thrift.meta_data.FieldMetaData("simNum", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.ALTERNATE_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("alternateNumber", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("description", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    metaDataMap = Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(RechargeTransaction.class, metaDataMap);
  }

  public RechargeTransaction() {
  }

  public RechargeTransaction(
    long id,
    long storeId,
    double amount,
    long transactionTime,
    String deviceNum,
    RechargeType deviceType,
    boolean isFrc,
    String email,
    double discount,
    double paymentAmount,
    PayMethod payMethod,
    RechargeOrderStatus status,
    String invoiceNumber,
    long circleId,
    long operatorId,
    String plan,
    String ipAddress,
    String name,
    String cafNum,
    String simNum,
    String alternateNumber,
    String description)
  {
    this();
    this.id = id;
    setIdIsSet(true);
    this.storeId = storeId;
    setStoreIdIsSet(true);
    this.amount = amount;
    setAmountIsSet(true);
    this.transactionTime = transactionTime;
    setTransactionTimeIsSet(true);
    this.deviceNum = deviceNum;
    this.deviceType = deviceType;
    this.isFrc = isFrc;
    setIsFrcIsSet(true);
    this.email = email;
    this.discount = discount;
    setDiscountIsSet(true);
    this.paymentAmount = paymentAmount;
    setPaymentAmountIsSet(true);
    this.payMethod = payMethod;
    this.status = status;
    this.invoiceNumber = invoiceNumber;
    this.circleId = circleId;
    setCircleIdIsSet(true);
    this.operatorId = operatorId;
    setOperatorIdIsSet(true);
    this.plan = plan;
    this.ipAddress = ipAddress;
    this.name = name;
    this.cafNum = cafNum;
    this.simNum = simNum;
    this.alternateNumber = alternateNumber;
    this.description = description;
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public RechargeTransaction(RechargeTransaction other) {
    __isset_bit_vector.clear();
    __isset_bit_vector.or(other.__isset_bit_vector);
    this.id = other.id;
    this.storeId = other.storeId;
    this.amount = other.amount;
    this.transactionTime = other.transactionTime;
    if (other.isSetDeviceNum()) {
      this.deviceNum = other.deviceNum;
    }
    if (other.isSetDeviceType()) {
      this.deviceType = other.deviceType;
    }
    this.isFrc = other.isFrc;
    if (other.isSetEmail()) {
      this.email = other.email;
    }
    this.discount = other.discount;
    this.paymentAmount = other.paymentAmount;
    if (other.isSetPayMethod()) {
      this.payMethod = other.payMethod;
    }
    if (other.isSetStatus()) {
      this.status = other.status;
    }
    if (other.isSetInvoiceNumber()) {
      this.invoiceNumber = other.invoiceNumber;
    }
    this.circleId = other.circleId;
    this.operatorId = other.operatorId;
    if (other.isSetPlan()) {
      this.plan = other.plan;
    }
    if (other.isSetIpAddress()) {
      this.ipAddress = other.ipAddress;
    }
    if (other.isSetName()) {
      this.name = other.name;
    }
    if (other.isSetCafNum()) {
      this.cafNum = other.cafNum;
    }
    if (other.isSetSimNum()) {
      this.simNum = other.simNum;
    }
    if (other.isSetAlternateNumber()) {
      this.alternateNumber = other.alternateNumber;
    }
    if (other.isSetDescription()) {
      this.description = other.description;
    }
  }

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

  @Override
  public void clear() {
    setIdIsSet(false);
    this.id = 0;
    setStoreIdIsSet(false);
    this.storeId = 0;
    setAmountIsSet(false);
    this.amount = 0.0;
    setTransactionTimeIsSet(false);
    this.transactionTime = 0;
    this.deviceNum = null;
    this.deviceType = null;
    setIsFrcIsSet(false);
    this.isFrc = false;
    this.email = null;
    setDiscountIsSet(false);
    this.discount = 0.0;
    setPaymentAmountIsSet(false);
    this.paymentAmount = 0.0;
    this.payMethod = null;
    this.status = null;
    this.invoiceNumber = null;
    setCircleIdIsSet(false);
    this.circleId = 0;
    setOperatorIdIsSet(false);
    this.operatorId = 0;
    this.plan = null;
    this.ipAddress = null;
    this.name = null;
    this.cafNum = null;
    this.simNum = null;
    this.alternateNumber = null;
    this.description = null;
  }

  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 getStoreId() {
    return this.storeId;
  }

  public void setStoreId(long storeId) {
    this.storeId = storeId;
    setStoreIdIsSet(true);
  }

  public void unsetStoreId() {
    __isset_bit_vector.clear(__STOREID_ISSET_ID);
  }

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

  public void setStoreIdIsSet(boolean value) {
    __isset_bit_vector.set(__STOREID_ISSET_ID, value);
  }

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

  public void setAmount(double 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 getTransactionTime() {
    return this.transactionTime;
  }

  public void setTransactionTime(long transactionTime) {
    this.transactionTime = transactionTime;
    setTransactionTimeIsSet(true);
  }

  public void unsetTransactionTime() {
    __isset_bit_vector.clear(__TRANSACTIONTIME_ISSET_ID);
  }

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

  public void setTransactionTimeIsSet(boolean value) {
    __isset_bit_vector.set(__TRANSACTIONTIME_ISSET_ID, value);
  }

  public String getDeviceNum() {
    return this.deviceNum;
  }

  public void setDeviceNum(String deviceNum) {
    this.deviceNum = deviceNum;
  }

  public void unsetDeviceNum() {
    this.deviceNum = null;
  }

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

  public void setDeviceNumIsSet(boolean value) {
    if (!value) {
      this.deviceNum = null;
    }
  }

  /**
   * 
   * @see RechargeType
   */
  public RechargeType getDeviceType() {
    return this.deviceType;
  }

  /**
   * 
   * @see RechargeType
   */
  public void setDeviceType(RechargeType deviceType) {
    this.deviceType = deviceType;
  }

  public void unsetDeviceType() {
    this.deviceType = null;
  }

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

  public void setDeviceTypeIsSet(boolean value) {
    if (!value) {
      this.deviceType = null;
    }
  }

  public boolean isIsFrc() {
    return this.isFrc;
  }

  public void setIsFrc(boolean isFrc) {
    this.isFrc = isFrc;
    setIsFrcIsSet(true);
  }

  public void unsetIsFrc() {
    __isset_bit_vector.clear(__ISFRC_ISSET_ID);
  }

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

  public void setIsFrcIsSet(boolean value) {
    __isset_bit_vector.set(__ISFRC_ISSET_ID, value);
  }

  public String getEmail() {
    return this.email;
  }

  public void setEmail(String email) {
    this.email = email;
  }

  public void unsetEmail() {
    this.email = null;
  }

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

  public void setEmailIsSet(boolean value) {
    if (!value) {
      this.email = null;
    }
  }

  public double getDiscount() {
    return this.discount;
  }

  public void setDiscount(double discount) {
    this.discount = discount;
    setDiscountIsSet(true);
  }

  public void unsetDiscount() {
    __isset_bit_vector.clear(__DISCOUNT_ISSET_ID);
  }

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

  public void setDiscountIsSet(boolean value) {
    __isset_bit_vector.set(__DISCOUNT_ISSET_ID, value);
  }

  public double getPaymentAmount() {
    return this.paymentAmount;
  }

  public void setPaymentAmount(double paymentAmount) {
    this.paymentAmount = paymentAmount;
    setPaymentAmountIsSet(true);
  }

  public void unsetPaymentAmount() {
    __isset_bit_vector.clear(__PAYMENTAMOUNT_ISSET_ID);
  }

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

  public void setPaymentAmountIsSet(boolean value) {
    __isset_bit_vector.set(__PAYMENTAMOUNT_ISSET_ID, value);
  }

  /**
   * 
   * @see PayMethod
   */
  public PayMethod getPayMethod() {
    return this.payMethod;
  }

  /**
   * 
   * @see PayMethod
   */
  public void setPayMethod(PayMethod payMethod) {
    this.payMethod = payMethod;
  }

  public void unsetPayMethod() {
    this.payMethod = null;
  }

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

  public void setPayMethodIsSet(boolean value) {
    if (!value) {
      this.payMethod = null;
    }
  }

  /**
   * 
   * @see RechargeOrderStatus
   */
  public RechargeOrderStatus getStatus() {
    return this.status;
  }

  /**
   * 
   * @see RechargeOrderStatus
   */
  public void setStatus(RechargeOrderStatus status) {
    this.status = status;
  }

  public void unsetStatus() {
    this.status = null;
  }

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

  public void setStatusIsSet(boolean value) {
    if (!value) {
      this.status = null;
    }
  }

  public String getInvoiceNumber() {
    return this.invoiceNumber;
  }

  public void setInvoiceNumber(String invoiceNumber) {
    this.invoiceNumber = invoiceNumber;
  }

  public void unsetInvoiceNumber() {
    this.invoiceNumber = null;
  }

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

  public void setInvoiceNumberIsSet(boolean value) {
    if (!value) {
      this.invoiceNumber = null;
    }
  }

  public long getCircleId() {
    return this.circleId;
  }

  public void setCircleId(long circleId) {
    this.circleId = circleId;
    setCircleIdIsSet(true);
  }

  public void unsetCircleId() {
    __isset_bit_vector.clear(__CIRCLEID_ISSET_ID);
  }

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

  public void setCircleIdIsSet(boolean value) {
    __isset_bit_vector.set(__CIRCLEID_ISSET_ID, value);
  }

  public long getOperatorId() {
    return this.operatorId;
  }

  public void setOperatorId(long operatorId) {
    this.operatorId = operatorId;
    setOperatorIdIsSet(true);
  }

  public void unsetOperatorId() {
    __isset_bit_vector.clear(__OPERATORID_ISSET_ID);
  }

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

  public void setOperatorIdIsSet(boolean value) {
    __isset_bit_vector.set(__OPERATORID_ISSET_ID, value);
  }

  public String getPlan() {
    return this.plan;
  }

  public void setPlan(String plan) {
    this.plan = plan;
  }

  public void unsetPlan() {
    this.plan = null;
  }

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

  public void setPlanIsSet(boolean value) {
    if (!value) {
      this.plan = null;
    }
  }

  public String getIpAddress() {
    return this.ipAddress;
  }

  public void setIpAddress(String ipAddress) {
    this.ipAddress = ipAddress;
  }

  public void unsetIpAddress() {
    this.ipAddress = null;
  }

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

  public void setIpAddressIsSet(boolean value) {
    if (!value) {
      this.ipAddress = null;
    }
  }

  public String getName() {
    return this.name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public void unsetName() {
    this.name = null;
  }

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

  public void setNameIsSet(boolean value) {
    if (!value) {
      this.name = null;
    }
  }

  public String getCafNum() {
    return this.cafNum;
  }

  public void setCafNum(String cafNum) {
    this.cafNum = cafNum;
  }

  public void unsetCafNum() {
    this.cafNum = null;
  }

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

  public void setCafNumIsSet(boolean value) {
    if (!value) {
      this.cafNum = null;
    }
  }

  public String getSimNum() {
    return this.simNum;
  }

  public void setSimNum(String simNum) {
    this.simNum = simNum;
  }

  public void unsetSimNum() {
    this.simNum = null;
  }

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

  public void setSimNumIsSet(boolean value) {
    if (!value) {
      this.simNum = null;
    }
  }

  public String getAlternateNumber() {
    return this.alternateNumber;
  }

  public void setAlternateNumber(String alternateNumber) {
    this.alternateNumber = alternateNumber;
  }

  public void unsetAlternateNumber() {
    this.alternateNumber = null;
  }

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

  public void setAlternateNumberIsSet(boolean value) {
    if (!value) {
      this.alternateNumber = null;
    }
  }

  public String getDescription() {
    return this.description;
  }

  public void setDescription(String description) {
    this.description = description;
  }

  public void unsetDescription() {
    this.description = null;
  }

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

  public void setDescriptionIsSet(boolean value) {
    if (!value) {
      this.description = null;
    }
  }

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

    case STORE_ID:
      if (value == null) {
        unsetStoreId();
      } else {
        setStoreId((Long)value);
      }
      break;

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

    case TRANSACTION_TIME:
      if (value == null) {
        unsetTransactionTime();
      } else {
        setTransactionTime((Long)value);
      }
      break;

    case DEVICE_NUM:
      if (value == null) {
        unsetDeviceNum();
      } else {
        setDeviceNum((String)value);
      }
      break;

    case DEVICE_TYPE:
      if (value == null) {
        unsetDeviceType();
      } else {
        setDeviceType((RechargeType)value);
      }
      break;

    case IS_FRC:
      if (value == null) {
        unsetIsFrc();
      } else {
        setIsFrc((Boolean)value);
      }
      break;

    case EMAIL:
      if (value == null) {
        unsetEmail();
      } else {
        setEmail((String)value);
      }
      break;

    case DISCOUNT:
      if (value == null) {
        unsetDiscount();
      } else {
        setDiscount((Double)value);
      }
      break;

    case PAYMENT_AMOUNT:
      if (value == null) {
        unsetPaymentAmount();
      } else {
        setPaymentAmount((Double)value);
      }
      break;

    case PAY_METHOD:
      if (value == null) {
        unsetPayMethod();
      } else {
        setPayMethod((PayMethod)value);
      }
      break;

    case STATUS:
      if (value == null) {
        unsetStatus();
      } else {
        setStatus((RechargeOrderStatus)value);
      }
      break;

    case INVOICE_NUMBER:
      if (value == null) {
        unsetInvoiceNumber();
      } else {
        setInvoiceNumber((String)value);
      }
      break;

    case CIRCLE_ID:
      if (value == null) {
        unsetCircleId();
      } else {
        setCircleId((Long)value);
      }
      break;

    case OPERATOR_ID:
      if (value == null) {
        unsetOperatorId();
      } else {
        setOperatorId((Long)value);
      }
      break;

    case PLAN:
      if (value == null) {
        unsetPlan();
      } else {
        setPlan((String)value);
      }
      break;

    case IP_ADDRESS:
      if (value == null) {
        unsetIpAddress();
      } else {
        setIpAddress((String)value);
      }
      break;

    case NAME:
      if (value == null) {
        unsetName();
      } else {
        setName((String)value);
      }
      break;

    case CAF_NUM:
      if (value == null) {
        unsetCafNum();
      } else {
        setCafNum((String)value);
      }
      break;

    case SIM_NUM:
      if (value == null) {
        unsetSimNum();
      } else {
        setSimNum((String)value);
      }
      break;

    case ALTERNATE_NUMBER:
      if (value == null) {
        unsetAlternateNumber();
      } else {
        setAlternateNumber((String)value);
      }
      break;

    case DESCRIPTION:
      if (value == null) {
        unsetDescription();
      } else {
        setDescription((String)value);
      }
      break;

    }
  }

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

    case STORE_ID:
      return Long.valueOf(getStoreId());

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

    case TRANSACTION_TIME:
      return Long.valueOf(getTransactionTime());

    case DEVICE_NUM:
      return getDeviceNum();

    case DEVICE_TYPE:
      return getDeviceType();

    case IS_FRC:
      return Boolean.valueOf(isIsFrc());

    case EMAIL:
      return getEmail();

    case DISCOUNT:
      return Double.valueOf(getDiscount());

    case PAYMENT_AMOUNT:
      return Double.valueOf(getPaymentAmount());

    case PAY_METHOD:
      return getPayMethod();

    case STATUS:
      return getStatus();

    case INVOICE_NUMBER:
      return getInvoiceNumber();

    case CIRCLE_ID:
      return Long.valueOf(getCircleId());

    case OPERATOR_ID:
      return Long.valueOf(getOperatorId());

    case PLAN:
      return getPlan();

    case IP_ADDRESS:
      return getIpAddress();

    case NAME:
      return getName();

    case CAF_NUM:
      return getCafNum();

    case SIM_NUM:
      return getSimNum();

    case ALTERNATE_NUMBER:
      return getAlternateNumber();

    case DESCRIPTION:
      return getDescription();

    }
    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 STORE_ID:
      return isSetStoreId();
    case AMOUNT:
      return isSetAmount();
    case TRANSACTION_TIME:
      return isSetTransactionTime();
    case DEVICE_NUM:
      return isSetDeviceNum();
    case DEVICE_TYPE:
      return isSetDeviceType();
    case IS_FRC:
      return isSetIsFrc();
    case EMAIL:
      return isSetEmail();
    case DISCOUNT:
      return isSetDiscount();
    case PAYMENT_AMOUNT:
      return isSetPaymentAmount();
    case PAY_METHOD:
      return isSetPayMethod();
    case STATUS:
      return isSetStatus();
    case INVOICE_NUMBER:
      return isSetInvoiceNumber();
    case CIRCLE_ID:
      return isSetCircleId();
    case OPERATOR_ID:
      return isSetOperatorId();
    case PLAN:
      return isSetPlan();
    case IP_ADDRESS:
      return isSetIpAddress();
    case NAME:
      return isSetName();
    case CAF_NUM:
      return isSetCafNum();
    case SIM_NUM:
      return isSetSimNum();
    case ALTERNATE_NUMBER:
      return isSetAlternateNumber();
    case DESCRIPTION:
      return isSetDescription();
    }
    throw new IllegalStateException();
  }

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

  public boolean equals(RechargeTransaction 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_storeId = true;
    boolean that_present_storeId = true;
    if (this_present_storeId || that_present_storeId) {
      if (!(this_present_storeId && that_present_storeId))
        return false;
      if (this.storeId != that.storeId)
        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_transactionTime = true;
    boolean that_present_transactionTime = true;
    if (this_present_transactionTime || that_present_transactionTime) {
      if (!(this_present_transactionTime && that_present_transactionTime))
        return false;
      if (this.transactionTime != that.transactionTime)
        return false;
    }

    boolean this_present_deviceNum = true && this.isSetDeviceNum();
    boolean that_present_deviceNum = true && that.isSetDeviceNum();
    if (this_present_deviceNum || that_present_deviceNum) {
      if (!(this_present_deviceNum && that_present_deviceNum))
        return false;
      if (!this.deviceNum.equals(that.deviceNum))
        return false;
    }

    boolean this_present_deviceType = true && this.isSetDeviceType();
    boolean that_present_deviceType = true && that.isSetDeviceType();
    if (this_present_deviceType || that_present_deviceType) {
      if (!(this_present_deviceType && that_present_deviceType))
        return false;
      if (!this.deviceType.equals(that.deviceType))
        return false;
    }

    boolean this_present_isFrc = true;
    boolean that_present_isFrc = true;
    if (this_present_isFrc || that_present_isFrc) {
      if (!(this_present_isFrc && that_present_isFrc))
        return false;
      if (this.isFrc != that.isFrc)
        return false;
    }

    boolean this_present_email = true && this.isSetEmail();
    boolean that_present_email = true && that.isSetEmail();
    if (this_present_email || that_present_email) {
      if (!(this_present_email && that_present_email))
        return false;
      if (!this.email.equals(that.email))
        return false;
    }

    boolean this_present_discount = true;
    boolean that_present_discount = true;
    if (this_present_discount || that_present_discount) {
      if (!(this_present_discount && that_present_discount))
        return false;
      if (this.discount != that.discount)
        return false;
    }

    boolean this_present_paymentAmount = true;
    boolean that_present_paymentAmount = true;
    if (this_present_paymentAmount || that_present_paymentAmount) {
      if (!(this_present_paymentAmount && that_present_paymentAmount))
        return false;
      if (this.paymentAmount != that.paymentAmount)
        return false;
    }

    boolean this_present_payMethod = true && this.isSetPayMethod();
    boolean that_present_payMethod = true && that.isSetPayMethod();
    if (this_present_payMethod || that_present_payMethod) {
      if (!(this_present_payMethod && that_present_payMethod))
        return false;
      if (!this.payMethod.equals(that.payMethod))
        return false;
    }

    boolean this_present_status = true && this.isSetStatus();
    boolean that_present_status = true && that.isSetStatus();
    if (this_present_status || that_present_status) {
      if (!(this_present_status && that_present_status))
        return false;
      if (!this.status.equals(that.status))
        return false;
    }

    boolean this_present_invoiceNumber = true && this.isSetInvoiceNumber();
    boolean that_present_invoiceNumber = true && that.isSetInvoiceNumber();
    if (this_present_invoiceNumber || that_present_invoiceNumber) {
      if (!(this_present_invoiceNumber && that_present_invoiceNumber))
        return false;
      if (!this.invoiceNumber.equals(that.invoiceNumber))
        return false;
    }

    boolean this_present_circleId = true;
    boolean that_present_circleId = true;
    if (this_present_circleId || that_present_circleId) {
      if (!(this_present_circleId && that_present_circleId))
        return false;
      if (this.circleId != that.circleId)
        return false;
    }

    boolean this_present_operatorId = true;
    boolean that_present_operatorId = true;
    if (this_present_operatorId || that_present_operatorId) {
      if (!(this_present_operatorId && that_present_operatorId))
        return false;
      if (this.operatorId != that.operatorId)
        return false;
    }

    boolean this_present_plan = true && this.isSetPlan();
    boolean that_present_plan = true && that.isSetPlan();
    if (this_present_plan || that_present_plan) {
      if (!(this_present_plan && that_present_plan))
        return false;
      if (!this.plan.equals(that.plan))
        return false;
    }

    boolean this_present_ipAddress = true && this.isSetIpAddress();
    boolean that_present_ipAddress = true && that.isSetIpAddress();
    if (this_present_ipAddress || that_present_ipAddress) {
      if (!(this_present_ipAddress && that_present_ipAddress))
        return false;
      if (!this.ipAddress.equals(that.ipAddress))
        return false;
    }

    boolean this_present_name = true && this.isSetName();
    boolean that_present_name = true && that.isSetName();
    if (this_present_name || that_present_name) {
      if (!(this_present_name && that_present_name))
        return false;
      if (!this.name.equals(that.name))
        return false;
    }

    boolean this_present_cafNum = true && this.isSetCafNum();
    boolean that_present_cafNum = true && that.isSetCafNum();
    if (this_present_cafNum || that_present_cafNum) {
      if (!(this_present_cafNum && that_present_cafNum))
        return false;
      if (!this.cafNum.equals(that.cafNum))
        return false;
    }

    boolean this_present_simNum = true && this.isSetSimNum();
    boolean that_present_simNum = true && that.isSetSimNum();
    if (this_present_simNum || that_present_simNum) {
      if (!(this_present_simNum && that_present_simNum))
        return false;
      if (!this.simNum.equals(that.simNum))
        return false;
    }

    boolean this_present_alternateNumber = true && this.isSetAlternateNumber();
    boolean that_present_alternateNumber = true && that.isSetAlternateNumber();
    if (this_present_alternateNumber || that_present_alternateNumber) {
      if (!(this_present_alternateNumber && that_present_alternateNumber))
        return false;
      if (!this.alternateNumber.equals(that.alternateNumber))
        return false;
    }

    boolean this_present_description = true && this.isSetDescription();
    boolean that_present_description = true && that.isSetDescription();
    if (this_present_description || that_present_description) {
      if (!(this_present_description && that_present_description))
        return false;
      if (!this.description.equals(that.description))
        return false;
    }

    return true;
  }

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

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

    int lastComparison = 0;
    RechargeTransaction typedOther = (RechargeTransaction)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(isSetStoreId()).compareTo(typedOther.isSetStoreId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetStoreId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storeId, typedOther.storeId);
      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(isSetTransactionTime()).compareTo(typedOther.isSetTransactionTime());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTransactionTime()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transactionTime, typedOther.transactionTime);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetDeviceNum()).compareTo(typedOther.isSetDeviceNum());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDeviceNum()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.deviceNum, typedOther.deviceNum);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetDeviceType()).compareTo(typedOther.isSetDeviceType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDeviceType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.deviceType, typedOther.deviceType);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetIsFrc()).compareTo(typedOther.isSetIsFrc());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsFrc()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isFrc, typedOther.isFrc);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetEmail()).compareTo(typedOther.isSetEmail());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEmail()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.email, typedOther.email);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetDiscount()).compareTo(typedOther.isSetDiscount());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDiscount()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.discount, typedOther.discount);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPaymentAmount()).compareTo(typedOther.isSetPaymentAmount());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPaymentAmount()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.paymentAmount, typedOther.paymentAmount);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPayMethod()).compareTo(typedOther.isSetPayMethod());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPayMethod()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.payMethod, typedOther.payMethod);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetStatus()).compareTo(typedOther.isSetStatus());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetStatus()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, typedOther.status);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetInvoiceNumber()).compareTo(typedOther.isSetInvoiceNumber());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetInvoiceNumber()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.invoiceNumber, typedOther.invoiceNumber);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCircleId()).compareTo(typedOther.isSetCircleId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCircleId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.circleId, typedOther.circleId);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetOperatorId()).compareTo(typedOther.isSetOperatorId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetOperatorId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.operatorId, typedOther.operatorId);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPlan()).compareTo(typedOther.isSetPlan());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPlan()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.plan, typedOther.plan);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetIpAddress()).compareTo(typedOther.isSetIpAddress());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIpAddress()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ipAddress, typedOther.ipAddress);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetName()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCafNum()).compareTo(typedOther.isSetCafNum());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCafNum()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cafNum, typedOther.cafNum);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetSimNum()).compareTo(typedOther.isSetSimNum());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSimNum()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.simNum, typedOther.simNum);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetAlternateNumber()).compareTo(typedOther.isSetAlternateNumber());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetAlternateNumber()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.alternateNumber, typedOther.alternateNumber);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetDescription()).compareTo(typedOther.isSetDescription());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDescription()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.description, typedOther.description);
      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: // STORE_ID
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.storeId = iprot.readI64();
            setStoreIdIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 3: // AMOUNT
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.amount = iprot.readDouble();
            setAmountIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 4: // TRANSACTION_TIME
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.transactionTime = iprot.readI64();
            setTransactionTimeIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 5: // DEVICE_NUM
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.deviceNum = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 6: // DEVICE_TYPE
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.deviceType = RechargeType.findByValue(iprot.readI32());
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 7: // IS_FRC
          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
            this.isFrc = iprot.readBool();
            setIsFrcIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 8: // EMAIL
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.email = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 9: // DISCOUNT
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.discount = iprot.readDouble();
            setDiscountIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 10: // PAYMENT_AMOUNT
          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
            this.paymentAmount = iprot.readDouble();
            setPaymentAmountIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 11: // PAY_METHOD
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.payMethod = PayMethod.findByValue(iprot.readI32());
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 12: // STATUS
          if (field.type == org.apache.thrift.protocol.TType.I32) {
            this.status = RechargeOrderStatus.findByValue(iprot.readI32());
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 13: // INVOICE_NUMBER
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.invoiceNumber = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 14: // CIRCLE_ID
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.circleId = iprot.readI64();
            setCircleIdIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 15: // OPERATOR_ID
          if (field.type == org.apache.thrift.protocol.TType.I64) {
            this.operatorId = iprot.readI64();
            setOperatorIdIsSet(true);
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 16: // PLAN
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.plan = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 17: // IP_ADDRESS
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.ipAddress = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 18: // NAME
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.name = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 19: // CAF_NUM
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.cafNum = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 20: // SIM_NUM
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.simNum = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 21: // ALTERNATE_NUMBER
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.alternateNumber = iprot.readString();
          } else { 
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
          }
          break;
        case 22: // DESCRIPTION
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
            this.description = iprot.readString();
          } 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(STORE_ID_FIELD_DESC);
    oprot.writeI64(this.storeId);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(AMOUNT_FIELD_DESC);
    oprot.writeDouble(this.amount);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(TRANSACTION_TIME_FIELD_DESC);
    oprot.writeI64(this.transactionTime);
    oprot.writeFieldEnd();
    if (this.deviceNum != null) {
      oprot.writeFieldBegin(DEVICE_NUM_FIELD_DESC);
      oprot.writeString(this.deviceNum);
      oprot.writeFieldEnd();
    }
    if (this.deviceType != null) {
      oprot.writeFieldBegin(DEVICE_TYPE_FIELD_DESC);
      oprot.writeI32(this.deviceType.getValue());
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(IS_FRC_FIELD_DESC);
    oprot.writeBool(this.isFrc);
    oprot.writeFieldEnd();
    if (this.email != null) {
      oprot.writeFieldBegin(EMAIL_FIELD_DESC);
      oprot.writeString(this.email);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(DISCOUNT_FIELD_DESC);
    oprot.writeDouble(this.discount);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(PAYMENT_AMOUNT_FIELD_DESC);
    oprot.writeDouble(this.paymentAmount);
    oprot.writeFieldEnd();
    if (this.payMethod != null) {
      oprot.writeFieldBegin(PAY_METHOD_FIELD_DESC);
      oprot.writeI32(this.payMethod.getValue());
      oprot.writeFieldEnd();
    }
    if (this.status != null) {
      oprot.writeFieldBegin(STATUS_FIELD_DESC);
      oprot.writeI32(this.status.getValue());
      oprot.writeFieldEnd();
    }
    if (this.invoiceNumber != null) {
      oprot.writeFieldBegin(INVOICE_NUMBER_FIELD_DESC);
      oprot.writeString(this.invoiceNumber);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldBegin(CIRCLE_ID_FIELD_DESC);
    oprot.writeI64(this.circleId);
    oprot.writeFieldEnd();
    oprot.writeFieldBegin(OPERATOR_ID_FIELD_DESC);
    oprot.writeI64(this.operatorId);
    oprot.writeFieldEnd();
    if (this.plan != null) {
      oprot.writeFieldBegin(PLAN_FIELD_DESC);
      oprot.writeString(this.plan);
      oprot.writeFieldEnd();
    }
    if (this.ipAddress != null) {
      oprot.writeFieldBegin(IP_ADDRESS_FIELD_DESC);
      oprot.writeString(this.ipAddress);
      oprot.writeFieldEnd();
    }
    if (this.name != null) {
      oprot.writeFieldBegin(NAME_FIELD_DESC);
      oprot.writeString(this.name);
      oprot.writeFieldEnd();
    }
    if (this.cafNum != null) {
      oprot.writeFieldBegin(CAF_NUM_FIELD_DESC);
      oprot.writeString(this.cafNum);
      oprot.writeFieldEnd();
    }
    if (this.simNum != null) {
      oprot.writeFieldBegin(SIM_NUM_FIELD_DESC);
      oprot.writeString(this.simNum);
      oprot.writeFieldEnd();
    }
    if (this.alternateNumber != null) {
      oprot.writeFieldBegin(ALTERNATE_NUMBER_FIELD_DESC);
      oprot.writeString(this.alternateNumber);
      oprot.writeFieldEnd();
    }
    if (this.description != null) {
      oprot.writeFieldBegin(DESCRIPTION_FIELD_DESC);
      oprot.writeString(this.description);
      oprot.writeFieldEnd();
    }
    oprot.writeFieldStop();
    oprot.writeStructEnd();
  }

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

    sb.append("id:");
    sb.append(this.id);
    first = false;
    if (!first) sb.append(", ");
    sb.append("storeId:");
    sb.append(this.storeId);
    first = false;
    if (!first) sb.append(", ");
    sb.append("amount:");
    sb.append(this.amount);
    first = false;
    if (!first) sb.append(", ");
    sb.append("transactionTime:");
    sb.append(this.transactionTime);
    first = false;
    if (!first) sb.append(", ");
    sb.append("deviceNum:");
    if (this.deviceNum == null) {
      sb.append("null");
    } else {
      sb.append(this.deviceNum);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("deviceType:");
    if (this.deviceType == null) {
      sb.append("null");
    } else {
      sb.append(this.deviceType);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("isFrc:");
    sb.append(this.isFrc);
    first = false;
    if (!first) sb.append(", ");
    sb.append("email:");
    if (this.email == null) {
      sb.append("null");
    } else {
      sb.append(this.email);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("discount:");
    sb.append(this.discount);
    first = false;
    if (!first) sb.append(", ");
    sb.append("paymentAmount:");
    sb.append(this.paymentAmount);
    first = false;
    if (!first) sb.append(", ");
    sb.append("payMethod:");
    if (this.payMethod == null) {
      sb.append("null");
    } else {
      sb.append(this.payMethod);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("status:");
    if (this.status == null) {
      sb.append("null");
    } else {
      sb.append(this.status);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("invoiceNumber:");
    if (this.invoiceNumber == null) {
      sb.append("null");
    } else {
      sb.append(this.invoiceNumber);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("circleId:");
    sb.append(this.circleId);
    first = false;
    if (!first) sb.append(", ");
    sb.append("operatorId:");
    sb.append(this.operatorId);
    first = false;
    if (!first) sb.append(", ");
    sb.append("plan:");
    if (this.plan == null) {
      sb.append("null");
    } else {
      sb.append(this.plan);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("ipAddress:");
    if (this.ipAddress == null) {
      sb.append("null");
    } else {
      sb.append(this.ipAddress);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("name:");
    if (this.name == null) {
      sb.append("null");
    } else {
      sb.append(this.name);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("cafNum:");
    if (this.cafNum == null) {
      sb.append("null");
    } else {
      sb.append(this.cafNum);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("simNum:");
    if (this.simNum == null) {
      sb.append("null");
    } else {
      sb.append(this.simNum);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("alternateNumber:");
    if (this.alternateNumber == null) {
      sb.append("null");
    } else {
      sb.append(this.alternateNumber);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("description:");
    if (this.description == null) {
      sb.append("null");
    } else {
      sb.append(this.description);
    }
    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);
    }
  }

}