/**
 * Autogenerated by Thrift Compiler (0.16.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package com.navercorp.pinpoint.thrift.dto.flink;

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

  private static final org.apache.thrift.protocol.TField JVM_GC_NEW_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("jvmGcNewCount", org.apache.thrift.protocol.TType.I64, (short)1);
  private static final org.apache.thrift.protocol.TField JVM_GC_NEW_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("jvmGcNewTime", org.apache.thrift.protocol.TType.I64, (short)2);
  private static final org.apache.thrift.protocol.TField JVM_POOL_CODE_CACHE_USED_FIELD_DESC = new org.apache.thrift.protocol.TField("jvmPoolCodeCacheUsed", org.apache.thrift.protocol.TType.DOUBLE, (short)3);
  private static final org.apache.thrift.protocol.TField JVM_POOL_NEW_GEN_USED_FIELD_DESC = new org.apache.thrift.protocol.TField("jvmPoolNewGenUsed", org.apache.thrift.protocol.TType.DOUBLE, (short)4);
  private static final org.apache.thrift.protocol.TField JVM_POOL_OLD_GEN_USED_FIELD_DESC = new org.apache.thrift.protocol.TField("jvmPoolOldGenUsed", org.apache.thrift.protocol.TType.DOUBLE, (short)5);
  private static final org.apache.thrift.protocol.TField JVM_POOL_SURVIVOR_SPACE_USED_FIELD_DESC = new org.apache.thrift.protocol.TField("jvmPoolSurvivorSpaceUsed", org.apache.thrift.protocol.TType.DOUBLE, (short)6);
  private static final org.apache.thrift.protocol.TField JVM_POOL_PERM_GEN_USED_FIELD_DESC = new org.apache.thrift.protocol.TField("jvmPoolPermGenUsed", org.apache.thrift.protocol.TType.DOUBLE, (short)7);
  private static final org.apache.thrift.protocol.TField JVM_POOL_METASPACE_USED_FIELD_DESC = new org.apache.thrift.protocol.TField("jvmPoolMetaspaceUsed", org.apache.thrift.protocol.TType.DOUBLE, (short)8);

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

  private long jvmGcNewCount; // optional
  private long jvmGcNewTime; // optional
  private double jvmPoolCodeCacheUsed; // optional
  private double jvmPoolNewGenUsed; // optional
  private double jvmPoolOldGenUsed; // optional
  private double jvmPoolSurvivorSpaceUsed; // optional
  private double jvmPoolPermGenUsed; // optional
  private double jvmPoolMetaspaceUsed; // optional

  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
    JVM_GC_NEW_COUNT((short)1, "jvmGcNewCount"),
    JVM_GC_NEW_TIME((short)2, "jvmGcNewTime"),
    JVM_POOL_CODE_CACHE_USED((short)3, "jvmPoolCodeCacheUsed"),
    JVM_POOL_NEW_GEN_USED((short)4, "jvmPoolNewGenUsed"),
    JVM_POOL_OLD_GEN_USED((short)5, "jvmPoolOldGenUsed"),
    JVM_POOL_SURVIVOR_SPACE_USED((short)6, "jvmPoolSurvivorSpaceUsed"),
    JVM_POOL_PERM_GEN_USED((short)7, "jvmPoolPermGenUsed"),
    JVM_POOL_METASPACE_USED((short)8, "jvmPoolMetaspaceUsed");

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

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

    /**
     * Find the _Fields constant that matches fieldId, or null if its not found.
     */
    @org.apache.thrift.annotation.Nullable
    public static _Fields findByThriftId(int fieldId) {
      switch(fieldId) {
        case 1: // JVM_GC_NEW_COUNT
          return JVM_GC_NEW_COUNT;
        case 2: // JVM_GC_NEW_TIME
          return JVM_GC_NEW_TIME;
        case 3: // JVM_POOL_CODE_CACHE_USED
          return JVM_POOL_CODE_CACHE_USED;
        case 4: // JVM_POOL_NEW_GEN_USED
          return JVM_POOL_NEW_GEN_USED;
        case 5: // JVM_POOL_OLD_GEN_USED
          return JVM_POOL_OLD_GEN_USED;
        case 6: // JVM_POOL_SURVIVOR_SPACE_USED
          return JVM_POOL_SURVIVOR_SPACE_USED;
        case 7: // JVM_POOL_PERM_GEN_USED
          return JVM_POOL_PERM_GEN_USED;
        case 8: // JVM_POOL_METASPACE_USED
          return JVM_POOL_METASPACE_USED;
        default:
          return null;
      }
    }

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

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

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

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

    public short getThriftFieldId() {
      return _thriftId;
    }

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

  // isset id assignments
  private static final int __JVMGCNEWCOUNT_ISSET_ID = 0;
  private static final int __JVMGCNEWTIME_ISSET_ID = 1;
  private static final int __JVMPOOLCODECACHEUSED_ISSET_ID = 2;
  private static final int __JVMPOOLNEWGENUSED_ISSET_ID = 3;
  private static final int __JVMPOOLOLDGENUSED_ISSET_ID = 4;
  private static final int __JVMPOOLSURVIVORSPACEUSED_ISSET_ID = 5;
  private static final int __JVMPOOLPERMGENUSED_ISSET_ID = 6;
  private static final int __JVMPOOLMETASPACEUSED_ISSET_ID = 7;
  private byte __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.JVM_GC_NEW_COUNT,_Fields.JVM_GC_NEW_TIME,_Fields.JVM_POOL_CODE_CACHE_USED,_Fields.JVM_POOL_NEW_GEN_USED,_Fields.JVM_POOL_OLD_GEN_USED,_Fields.JVM_POOL_SURVIVOR_SPACE_USED,_Fields.JVM_POOL_PERM_GEN_USED,_Fields.JVM_POOL_METASPACE_USED};
  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
  static {
    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
    tmpMap.put(_Fields.JVM_GC_NEW_COUNT, new org.apache.thrift.meta_data.FieldMetaData("jvmGcNewCount", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.JVM_GC_NEW_TIME, new org.apache.thrift.meta_data.FieldMetaData("jvmGcNewTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.JVM_POOL_CODE_CACHE_USED, new org.apache.thrift.meta_data.FieldMetaData("jvmPoolCodeCacheUsed", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.JVM_POOL_NEW_GEN_USED, new org.apache.thrift.meta_data.FieldMetaData("jvmPoolNewGenUsed", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.JVM_POOL_OLD_GEN_USED, new org.apache.thrift.meta_data.FieldMetaData("jvmPoolOldGenUsed", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.JVM_POOL_SURVIVOR_SPACE_USED, new org.apache.thrift.meta_data.FieldMetaData("jvmPoolSurvivorSpaceUsed", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.JVM_POOL_PERM_GEN_USED, new org.apache.thrift.meta_data.FieldMetaData("jvmPoolPermGenUsed", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.JVM_POOL_METASPACE_USED, new org.apache.thrift.meta_data.FieldMetaData("jvmPoolMetaspaceUsed", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TFJvmGcDetailed.class, metaDataMap);
  }

  public TFJvmGcDetailed() {
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TFJvmGcDetailed(TFJvmGcDetailed other) {
    __isset_bitfield = other.__isset_bitfield;
    this.jvmGcNewCount = other.jvmGcNewCount;
    this.jvmGcNewTime = other.jvmGcNewTime;
    this.jvmPoolCodeCacheUsed = other.jvmPoolCodeCacheUsed;
    this.jvmPoolNewGenUsed = other.jvmPoolNewGenUsed;
    this.jvmPoolOldGenUsed = other.jvmPoolOldGenUsed;
    this.jvmPoolSurvivorSpaceUsed = other.jvmPoolSurvivorSpaceUsed;
    this.jvmPoolPermGenUsed = other.jvmPoolPermGenUsed;
    this.jvmPoolMetaspaceUsed = other.jvmPoolMetaspaceUsed;
  }

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

  @Override
  public void clear() {
    setJvmGcNewCountIsSet(false);
    this.jvmGcNewCount = 0;
    setJvmGcNewTimeIsSet(false);
    this.jvmGcNewTime = 0;
    setJvmPoolCodeCacheUsedIsSet(false);
    this.jvmPoolCodeCacheUsed = 0.0;
    setJvmPoolNewGenUsedIsSet(false);
    this.jvmPoolNewGenUsed = 0.0;
    setJvmPoolOldGenUsedIsSet(false);
    this.jvmPoolOldGenUsed = 0.0;
    setJvmPoolSurvivorSpaceUsedIsSet(false);
    this.jvmPoolSurvivorSpaceUsed = 0.0;
    setJvmPoolPermGenUsedIsSet(false);
    this.jvmPoolPermGenUsed = 0.0;
    setJvmPoolMetaspaceUsedIsSet(false);
    this.jvmPoolMetaspaceUsed = 0.0;
  }

  public long getJvmGcNewCount() {
    return this.jvmGcNewCount;
  }

  public void setJvmGcNewCount(long jvmGcNewCount) {
    this.jvmGcNewCount = jvmGcNewCount;
    setJvmGcNewCountIsSet(true);
  }

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

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

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

  public long getJvmGcNewTime() {
    return this.jvmGcNewTime;
  }

  public void setJvmGcNewTime(long jvmGcNewTime) {
    this.jvmGcNewTime = jvmGcNewTime;
    setJvmGcNewTimeIsSet(true);
  }

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

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

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

  public double getJvmPoolCodeCacheUsed() {
    return this.jvmPoolCodeCacheUsed;
  }

  public void setJvmPoolCodeCacheUsed(double jvmPoolCodeCacheUsed) {
    this.jvmPoolCodeCacheUsed = jvmPoolCodeCacheUsed;
    setJvmPoolCodeCacheUsedIsSet(true);
  }

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

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

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

  public double getJvmPoolNewGenUsed() {
    return this.jvmPoolNewGenUsed;
  }

  public void setJvmPoolNewGenUsed(double jvmPoolNewGenUsed) {
    this.jvmPoolNewGenUsed = jvmPoolNewGenUsed;
    setJvmPoolNewGenUsedIsSet(true);
  }

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

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

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

  public double getJvmPoolOldGenUsed() {
    return this.jvmPoolOldGenUsed;
  }

  public void setJvmPoolOldGenUsed(double jvmPoolOldGenUsed) {
    this.jvmPoolOldGenUsed = jvmPoolOldGenUsed;
    setJvmPoolOldGenUsedIsSet(true);
  }

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

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

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

  public double getJvmPoolSurvivorSpaceUsed() {
    return this.jvmPoolSurvivorSpaceUsed;
  }

  public void setJvmPoolSurvivorSpaceUsed(double jvmPoolSurvivorSpaceUsed) {
    this.jvmPoolSurvivorSpaceUsed = jvmPoolSurvivorSpaceUsed;
    setJvmPoolSurvivorSpaceUsedIsSet(true);
  }

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

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

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

  public double getJvmPoolPermGenUsed() {
    return this.jvmPoolPermGenUsed;
  }

  public void setJvmPoolPermGenUsed(double jvmPoolPermGenUsed) {
    this.jvmPoolPermGenUsed = jvmPoolPermGenUsed;
    setJvmPoolPermGenUsedIsSet(true);
  }

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

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

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

  public double getJvmPoolMetaspaceUsed() {
    return this.jvmPoolMetaspaceUsed;
  }

  public void setJvmPoolMetaspaceUsed(double jvmPoolMetaspaceUsed) {
    this.jvmPoolMetaspaceUsed = jvmPoolMetaspaceUsed;
    setJvmPoolMetaspaceUsedIsSet(true);
  }

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

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

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

  public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
    switch (field) {
    case JVM_GC_NEW_COUNT:
      if (value == null) {
        unsetJvmGcNewCount();
      } else {
        setJvmGcNewCount((java.lang.Long)value);
      }
      break;

    case JVM_GC_NEW_TIME:
      if (value == null) {
        unsetJvmGcNewTime();
      } else {
        setJvmGcNewTime((java.lang.Long)value);
      }
      break;

    case JVM_POOL_CODE_CACHE_USED:
      if (value == null) {
        unsetJvmPoolCodeCacheUsed();
      } else {
        setJvmPoolCodeCacheUsed((java.lang.Double)value);
      }
      break;

    case JVM_POOL_NEW_GEN_USED:
      if (value == null) {
        unsetJvmPoolNewGenUsed();
      } else {
        setJvmPoolNewGenUsed((java.lang.Double)value);
      }
      break;

    case JVM_POOL_OLD_GEN_USED:
      if (value == null) {
        unsetJvmPoolOldGenUsed();
      } else {
        setJvmPoolOldGenUsed((java.lang.Double)value);
      }
      break;

    case JVM_POOL_SURVIVOR_SPACE_USED:
      if (value == null) {
        unsetJvmPoolSurvivorSpaceUsed();
      } else {
        setJvmPoolSurvivorSpaceUsed((java.lang.Double)value);
      }
      break;

    case JVM_POOL_PERM_GEN_USED:
      if (value == null) {
        unsetJvmPoolPermGenUsed();
      } else {
        setJvmPoolPermGenUsed((java.lang.Double)value);
      }
      break;

    case JVM_POOL_METASPACE_USED:
      if (value == null) {
        unsetJvmPoolMetaspaceUsed();
      } else {
        setJvmPoolMetaspaceUsed((java.lang.Double)value);
      }
      break;

    }
  }

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

    case JVM_GC_NEW_TIME:
      return getJvmGcNewTime();

    case JVM_POOL_CODE_CACHE_USED:
      return getJvmPoolCodeCacheUsed();

    case JVM_POOL_NEW_GEN_USED:
      return getJvmPoolNewGenUsed();

    case JVM_POOL_OLD_GEN_USED:
      return getJvmPoolOldGenUsed();

    case JVM_POOL_SURVIVOR_SPACE_USED:
      return getJvmPoolSurvivorSpaceUsed();

    case JVM_POOL_PERM_GEN_USED:
      return getJvmPoolPermGenUsed();

    case JVM_POOL_METASPACE_USED:
      return getJvmPoolMetaspaceUsed();

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

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

    switch (field) {
    case JVM_GC_NEW_COUNT:
      return isSetJvmGcNewCount();
    case JVM_GC_NEW_TIME:
      return isSetJvmGcNewTime();
    case JVM_POOL_CODE_CACHE_USED:
      return isSetJvmPoolCodeCacheUsed();
    case JVM_POOL_NEW_GEN_USED:
      return isSetJvmPoolNewGenUsed();
    case JVM_POOL_OLD_GEN_USED:
      return isSetJvmPoolOldGenUsed();
    case JVM_POOL_SURVIVOR_SPACE_USED:
      return isSetJvmPoolSurvivorSpaceUsed();
    case JVM_POOL_PERM_GEN_USED:
      return isSetJvmPoolPermGenUsed();
    case JVM_POOL_METASPACE_USED:
      return isSetJvmPoolMetaspaceUsed();
    }
    throw new java.lang.IllegalStateException();
  }

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

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

    boolean this_present_jvmGcNewCount = true && this.isSetJvmGcNewCount();
    boolean that_present_jvmGcNewCount = true && that.isSetJvmGcNewCount();
    if (this_present_jvmGcNewCount || that_present_jvmGcNewCount) {
      if (!(this_present_jvmGcNewCount && that_present_jvmGcNewCount))
        return false;
      if (this.jvmGcNewCount != that.jvmGcNewCount)
        return false;
    }

    boolean this_present_jvmGcNewTime = true && this.isSetJvmGcNewTime();
    boolean that_present_jvmGcNewTime = true && that.isSetJvmGcNewTime();
    if (this_present_jvmGcNewTime || that_present_jvmGcNewTime) {
      if (!(this_present_jvmGcNewTime && that_present_jvmGcNewTime))
        return false;
      if (this.jvmGcNewTime != that.jvmGcNewTime)
        return false;
    }

    boolean this_present_jvmPoolCodeCacheUsed = true && this.isSetJvmPoolCodeCacheUsed();
    boolean that_present_jvmPoolCodeCacheUsed = true && that.isSetJvmPoolCodeCacheUsed();
    if (this_present_jvmPoolCodeCacheUsed || that_present_jvmPoolCodeCacheUsed) {
      if (!(this_present_jvmPoolCodeCacheUsed && that_present_jvmPoolCodeCacheUsed))
        return false;
      if (this.jvmPoolCodeCacheUsed != that.jvmPoolCodeCacheUsed)
        return false;
    }

    boolean this_present_jvmPoolNewGenUsed = true && this.isSetJvmPoolNewGenUsed();
    boolean that_present_jvmPoolNewGenUsed = true && that.isSetJvmPoolNewGenUsed();
    if (this_present_jvmPoolNewGenUsed || that_present_jvmPoolNewGenUsed) {
      if (!(this_present_jvmPoolNewGenUsed && that_present_jvmPoolNewGenUsed))
        return false;
      if (this.jvmPoolNewGenUsed != that.jvmPoolNewGenUsed)
        return false;
    }

    boolean this_present_jvmPoolOldGenUsed = true && this.isSetJvmPoolOldGenUsed();
    boolean that_present_jvmPoolOldGenUsed = true && that.isSetJvmPoolOldGenUsed();
    if (this_present_jvmPoolOldGenUsed || that_present_jvmPoolOldGenUsed) {
      if (!(this_present_jvmPoolOldGenUsed && that_present_jvmPoolOldGenUsed))
        return false;
      if (this.jvmPoolOldGenUsed != that.jvmPoolOldGenUsed)
        return false;
    }

    boolean this_present_jvmPoolSurvivorSpaceUsed = true && this.isSetJvmPoolSurvivorSpaceUsed();
    boolean that_present_jvmPoolSurvivorSpaceUsed = true && that.isSetJvmPoolSurvivorSpaceUsed();
    if (this_present_jvmPoolSurvivorSpaceUsed || that_present_jvmPoolSurvivorSpaceUsed) {
      if (!(this_present_jvmPoolSurvivorSpaceUsed && that_present_jvmPoolSurvivorSpaceUsed))
        return false;
      if (this.jvmPoolSurvivorSpaceUsed != that.jvmPoolSurvivorSpaceUsed)
        return false;
    }

    boolean this_present_jvmPoolPermGenUsed = true && this.isSetJvmPoolPermGenUsed();
    boolean that_present_jvmPoolPermGenUsed = true && that.isSetJvmPoolPermGenUsed();
    if (this_present_jvmPoolPermGenUsed || that_present_jvmPoolPermGenUsed) {
      if (!(this_present_jvmPoolPermGenUsed && that_present_jvmPoolPermGenUsed))
        return false;
      if (this.jvmPoolPermGenUsed != that.jvmPoolPermGenUsed)
        return false;
    }

    boolean this_present_jvmPoolMetaspaceUsed = true && this.isSetJvmPoolMetaspaceUsed();
    boolean that_present_jvmPoolMetaspaceUsed = true && that.isSetJvmPoolMetaspaceUsed();
    if (this_present_jvmPoolMetaspaceUsed || that_present_jvmPoolMetaspaceUsed) {
      if (!(this_present_jvmPoolMetaspaceUsed && that_present_jvmPoolMetaspaceUsed))
        return false;
      if (this.jvmPoolMetaspaceUsed != that.jvmPoolMetaspaceUsed)
        return false;
    }

    return true;
  }

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

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

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

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

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

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

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

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

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

    return hashCode;
  }

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

    int lastComparison = 0;

    lastComparison = java.lang.Boolean.compare(isSetJvmGcNewCount(), other.isSetJvmGcNewCount());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetJvmGcNewCount()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jvmGcNewCount, other.jvmGcNewCount);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetJvmGcNewTime(), other.isSetJvmGcNewTime());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetJvmGcNewTime()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jvmGcNewTime, other.jvmGcNewTime);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetJvmPoolCodeCacheUsed(), other.isSetJvmPoolCodeCacheUsed());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetJvmPoolCodeCacheUsed()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jvmPoolCodeCacheUsed, other.jvmPoolCodeCacheUsed);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetJvmPoolNewGenUsed(), other.isSetJvmPoolNewGenUsed());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetJvmPoolNewGenUsed()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jvmPoolNewGenUsed, other.jvmPoolNewGenUsed);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetJvmPoolOldGenUsed(), other.isSetJvmPoolOldGenUsed());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetJvmPoolOldGenUsed()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jvmPoolOldGenUsed, other.jvmPoolOldGenUsed);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetJvmPoolSurvivorSpaceUsed(), other.isSetJvmPoolSurvivorSpaceUsed());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetJvmPoolSurvivorSpaceUsed()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jvmPoolSurvivorSpaceUsed, other.jvmPoolSurvivorSpaceUsed);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetJvmPoolPermGenUsed(), other.isSetJvmPoolPermGenUsed());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetJvmPoolPermGenUsed()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jvmPoolPermGenUsed, other.jvmPoolPermGenUsed);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetJvmPoolMetaspaceUsed(), other.isSetJvmPoolMetaspaceUsed());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetJvmPoolMetaspaceUsed()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jvmPoolMetaspaceUsed, other.jvmPoolMetaspaceUsed);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    return 0;
  }

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

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

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

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

    if (isSetJvmGcNewCount()) {
      sb.append("jvmGcNewCount:");
      sb.append(this.jvmGcNewCount);
      first = false;
    }
    if (isSetJvmGcNewTime()) {
      if (!first) sb.append(", ");
      sb.append("jvmGcNewTime:");
      sb.append(this.jvmGcNewTime);
      first = false;
    }
    if (isSetJvmPoolCodeCacheUsed()) {
      if (!first) sb.append(", ");
      sb.append("jvmPoolCodeCacheUsed:");
      sb.append(this.jvmPoolCodeCacheUsed);
      first = false;
    }
    if (isSetJvmPoolNewGenUsed()) {
      if (!first) sb.append(", ");
      sb.append("jvmPoolNewGenUsed:");
      sb.append(this.jvmPoolNewGenUsed);
      first = false;
    }
    if (isSetJvmPoolOldGenUsed()) {
      if (!first) sb.append(", ");
      sb.append("jvmPoolOldGenUsed:");
      sb.append(this.jvmPoolOldGenUsed);
      first = false;
    }
    if (isSetJvmPoolSurvivorSpaceUsed()) {
      if (!first) sb.append(", ");
      sb.append("jvmPoolSurvivorSpaceUsed:");
      sb.append(this.jvmPoolSurvivorSpaceUsed);
      first = false;
    }
    if (isSetJvmPoolPermGenUsed()) {
      if (!first) sb.append(", ");
      sb.append("jvmPoolPermGenUsed:");
      sb.append(this.jvmPoolPermGenUsed);
      first = false;
    }
    if (isSetJvmPoolMetaspaceUsed()) {
      if (!first) sb.append(", ");
      sb.append("jvmPoolMetaspaceUsed:");
      sb.append(this.jvmPoolMetaspaceUsed);
      first = false;
    }
    sb.append(")");
    return sb.toString();
  }

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

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

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

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

  private static class TFJvmGcDetailedStandardScheme extends org.apache.thrift.scheme.StandardScheme<TFJvmGcDetailed> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, TFJvmGcDetailed struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField schemeField;
      iprot.readStructBegin();
      while (true)
      {
        schemeField = iprot.readFieldBegin();
        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (schemeField.id) {
          case 1: // JVM_GC_NEW_COUNT
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.jvmGcNewCount = iprot.readI64();
              struct.setJvmGcNewCountIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // JVM_GC_NEW_TIME
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.jvmGcNewTime = iprot.readI64();
              struct.setJvmGcNewTimeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // JVM_POOL_CODE_CACHE_USED
            if (schemeField.type == org.apache.thrift.protocol.TType.DOUBLE) {
              struct.jvmPoolCodeCacheUsed = iprot.readDouble();
              struct.setJvmPoolCodeCacheUsedIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // JVM_POOL_NEW_GEN_USED
            if (schemeField.type == org.apache.thrift.protocol.TType.DOUBLE) {
              struct.jvmPoolNewGenUsed = iprot.readDouble();
              struct.setJvmPoolNewGenUsedIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // JVM_POOL_OLD_GEN_USED
            if (schemeField.type == org.apache.thrift.protocol.TType.DOUBLE) {
              struct.jvmPoolOldGenUsed = iprot.readDouble();
              struct.setJvmPoolOldGenUsedIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // JVM_POOL_SURVIVOR_SPACE_USED
            if (schemeField.type == org.apache.thrift.protocol.TType.DOUBLE) {
              struct.jvmPoolSurvivorSpaceUsed = iprot.readDouble();
              struct.setJvmPoolSurvivorSpaceUsedIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // JVM_POOL_PERM_GEN_USED
            if (schemeField.type == org.apache.thrift.protocol.TType.DOUBLE) {
              struct.jvmPoolPermGenUsed = iprot.readDouble();
              struct.setJvmPoolPermGenUsedIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // JVM_POOL_METASPACE_USED
            if (schemeField.type == org.apache.thrift.protocol.TType.DOUBLE) {
              struct.jvmPoolMetaspaceUsed = iprot.readDouble();
              struct.setJvmPoolMetaspaceUsedIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      struct.validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      if (struct.isSetJvmGcNewCount()) {
        oprot.writeFieldBegin(JVM_GC_NEW_COUNT_FIELD_DESC);
        oprot.writeI64(struct.jvmGcNewCount);
        oprot.writeFieldEnd();
      }
      if (struct.isSetJvmGcNewTime()) {
        oprot.writeFieldBegin(JVM_GC_NEW_TIME_FIELD_DESC);
        oprot.writeI64(struct.jvmGcNewTime);
        oprot.writeFieldEnd();
      }
      if (struct.isSetJvmPoolCodeCacheUsed()) {
        oprot.writeFieldBegin(JVM_POOL_CODE_CACHE_USED_FIELD_DESC);
        oprot.writeDouble(struct.jvmPoolCodeCacheUsed);
        oprot.writeFieldEnd();
      }
      if (struct.isSetJvmPoolNewGenUsed()) {
        oprot.writeFieldBegin(JVM_POOL_NEW_GEN_USED_FIELD_DESC);
        oprot.writeDouble(struct.jvmPoolNewGenUsed);
        oprot.writeFieldEnd();
      }
      if (struct.isSetJvmPoolOldGenUsed()) {
        oprot.writeFieldBegin(JVM_POOL_OLD_GEN_USED_FIELD_DESC);
        oprot.writeDouble(struct.jvmPoolOldGenUsed);
        oprot.writeFieldEnd();
      }
      if (struct.isSetJvmPoolSurvivorSpaceUsed()) {
        oprot.writeFieldBegin(JVM_POOL_SURVIVOR_SPACE_USED_FIELD_DESC);
        oprot.writeDouble(struct.jvmPoolSurvivorSpaceUsed);
        oprot.writeFieldEnd();
      }
      if (struct.isSetJvmPoolPermGenUsed()) {
        oprot.writeFieldBegin(JVM_POOL_PERM_GEN_USED_FIELD_DESC);
        oprot.writeDouble(struct.jvmPoolPermGenUsed);
        oprot.writeFieldEnd();
      }
      if (struct.isSetJvmPoolMetaspaceUsed()) {
        oprot.writeFieldBegin(JVM_POOL_METASPACE_USED_FIELD_DESC);
        oprot.writeDouble(struct.jvmPoolMetaspaceUsed);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

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

  private static class TFJvmGcDetailedTupleScheme extends org.apache.thrift.scheme.TupleScheme<TFJvmGcDetailed> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TFJvmGcDetailed struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet optionals = new java.util.BitSet();
      if (struct.isSetJvmGcNewCount()) {
        optionals.set(0);
      }
      if (struct.isSetJvmGcNewTime()) {
        optionals.set(1);
      }
      if (struct.isSetJvmPoolCodeCacheUsed()) {
        optionals.set(2);
      }
      if (struct.isSetJvmPoolNewGenUsed()) {
        optionals.set(3);
      }
      if (struct.isSetJvmPoolOldGenUsed()) {
        optionals.set(4);
      }
      if (struct.isSetJvmPoolSurvivorSpaceUsed()) {
        optionals.set(5);
      }
      if (struct.isSetJvmPoolPermGenUsed()) {
        optionals.set(6);
      }
      if (struct.isSetJvmPoolMetaspaceUsed()) {
        optionals.set(7);
      }
      oprot.writeBitSet(optionals, 8);
      if (struct.isSetJvmGcNewCount()) {
        oprot.writeI64(struct.jvmGcNewCount);
      }
      if (struct.isSetJvmGcNewTime()) {
        oprot.writeI64(struct.jvmGcNewTime);
      }
      if (struct.isSetJvmPoolCodeCacheUsed()) {
        oprot.writeDouble(struct.jvmPoolCodeCacheUsed);
      }
      if (struct.isSetJvmPoolNewGenUsed()) {
        oprot.writeDouble(struct.jvmPoolNewGenUsed);
      }
      if (struct.isSetJvmPoolOldGenUsed()) {
        oprot.writeDouble(struct.jvmPoolOldGenUsed);
      }
      if (struct.isSetJvmPoolSurvivorSpaceUsed()) {
        oprot.writeDouble(struct.jvmPoolSurvivorSpaceUsed);
      }
      if (struct.isSetJvmPoolPermGenUsed()) {
        oprot.writeDouble(struct.jvmPoolPermGenUsed);
      }
      if (struct.isSetJvmPoolMetaspaceUsed()) {
        oprot.writeDouble(struct.jvmPoolMetaspaceUsed);
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TFJvmGcDetailed struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet incoming = iprot.readBitSet(8);
      if (incoming.get(0)) {
        struct.jvmGcNewCount = iprot.readI64();
        struct.setJvmGcNewCountIsSet(true);
      }
      if (incoming.get(1)) {
        struct.jvmGcNewTime = iprot.readI64();
        struct.setJvmGcNewTimeIsSet(true);
      }
      if (incoming.get(2)) {
        struct.jvmPoolCodeCacheUsed = iprot.readDouble();
        struct.setJvmPoolCodeCacheUsedIsSet(true);
      }
      if (incoming.get(3)) {
        struct.jvmPoolNewGenUsed = iprot.readDouble();
        struct.setJvmPoolNewGenUsedIsSet(true);
      }
      if (incoming.get(4)) {
        struct.jvmPoolOldGenUsed = iprot.readDouble();
        struct.setJvmPoolOldGenUsedIsSet(true);
      }
      if (incoming.get(5)) {
        struct.jvmPoolSurvivorSpaceUsed = iprot.readDouble();
        struct.setJvmPoolSurvivorSpaceUsedIsSet(true);
      }
      if (incoming.get(6)) {
        struct.jvmPoolPermGenUsed = iprot.readDouble();
        struct.setJvmPoolPermGenUsedIsSet(true);
      }
      if (incoming.get(7)) {
        struct.jvmPoolMetaspaceUsed = iprot.readDouble();
        struct.setJvmPoolMetaspaceUsedIsSet(true);
      }
    }
  }

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

