TRuntimeProfileNode.java

/**
 * Autogenerated by Thrift Compiler (0.16.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package org.apache.doris.thrift;

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

  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)1);
  private static final org.apache.thrift.protocol.TField NUM_CHILDREN_FIELD_DESC = new org.apache.thrift.protocol.TField("num_children", org.apache.thrift.protocol.TType.I32, (short)2);
  private static final org.apache.thrift.protocol.TField COUNTERS_FIELD_DESC = new org.apache.thrift.protocol.TField("counters", org.apache.thrift.protocol.TType.LIST, (short)3);
  private static final org.apache.thrift.protocol.TField METADATA_FIELD_DESC = new org.apache.thrift.protocol.TField("metadata", org.apache.thrift.protocol.TType.I64, (short)4);
  private static final org.apache.thrift.protocol.TField INDENT_FIELD_DESC = new org.apache.thrift.protocol.TField("indent", org.apache.thrift.protocol.TType.BOOL, (short)5);
  private static final org.apache.thrift.protocol.TField INFO_STRINGS_FIELD_DESC = new org.apache.thrift.protocol.TField("info_strings", org.apache.thrift.protocol.TType.MAP, (short)6);
  private static final org.apache.thrift.protocol.TField INFO_STRINGS_DISPLAY_ORDER_FIELD_DESC = new org.apache.thrift.protocol.TField("info_strings_display_order", org.apache.thrift.protocol.TType.LIST, (short)7);
  private static final org.apache.thrift.protocol.TField CHILD_COUNTERS_MAP_FIELD_DESC = new org.apache.thrift.protocol.TField("child_counters_map", org.apache.thrift.protocol.TType.MAP, (short)8);
  private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField("timestamp", org.apache.thrift.protocol.TType.I64, (short)9);
  private static final org.apache.thrift.protocol.TField DEPRECATED_IS_SINK_FIELD_DESC = new org.apache.thrift.protocol.TField("deprecated_is_sink", org.apache.thrift.protocol.TType.BOOL, (short)10);

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

  public @org.apache.thrift.annotation.Nullable java.lang.String name; // required
  public int num_children; // required
  public @org.apache.thrift.annotation.Nullable java.util.List<TCounter> counters; // required
  public long metadata; // required
  public boolean indent; // required
  public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> info_strings; // required
  public @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> info_strings_display_order; // required
  public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.util.Set<java.lang.String>> child_counters_map; // required
  public long timestamp; // required
  public boolean deprecated_is_sink; // 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 {
    NAME((short)1, "name"),
    NUM_CHILDREN((short)2, "num_children"),
    COUNTERS((short)3, "counters"),
    METADATA((short)4, "metadata"),
    INDENT((short)5, "indent"),
    INFO_STRINGS((short)6, "info_strings"),
    INFO_STRINGS_DISPLAY_ORDER((short)7, "info_strings_display_order"),
    CHILD_COUNTERS_MAP((short)8, "child_counters_map"),
    TIMESTAMP((short)9, "timestamp"),
    DEPRECATED_IS_SINK((short)10, "deprecated_is_sink");

    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: // NAME
          return NAME;
        case 2: // NUM_CHILDREN
          return NUM_CHILDREN;
        case 3: // COUNTERS
          return COUNTERS;
        case 4: // METADATA
          return METADATA;
        case 5: // INDENT
          return INDENT;
        case 6: // INFO_STRINGS
          return INFO_STRINGS;
        case 7: // INFO_STRINGS_DISPLAY_ORDER
          return INFO_STRINGS_DISPLAY_ORDER;
        case 8: // CHILD_COUNTERS_MAP
          return CHILD_COUNTERS_MAP;
        case 9: // TIMESTAMP
          return TIMESTAMP;
        case 10: // DEPRECATED_IS_SINK
          return DEPRECATED_IS_SINK;
        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 __NUM_CHILDREN_ISSET_ID = 0;
  private static final int __METADATA_ISSET_ID = 1;
  private static final int __INDENT_ISSET_ID = 2;
  private static final int __TIMESTAMP_ISSET_ID = 3;
  private static final int __DEPRECATED_IS_SINK_ISSET_ID = 4;
  private byte __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.DEPRECATED_IS_SINK};
  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.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.NUM_CHILDREN, new org.apache.thrift.meta_data.FieldMetaData("num_children", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.COUNTERS, new org.apache.thrift.meta_data.FieldMetaData("counters", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TCounter.class))));
    tmpMap.put(_Fields.METADATA, new org.apache.thrift.meta_data.FieldMetaData("metadata", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.INDENT, new org.apache.thrift.meta_data.FieldMetaData("indent", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.INFO_STRINGS, new org.apache.thrift.meta_data.FieldMetaData("info_strings", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    tmpMap.put(_Fields.INFO_STRINGS_DISPLAY_ORDER, new org.apache.thrift.meta_data.FieldMetaData("info_strings_display_order", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    tmpMap.put(_Fields.CHILD_COUNTERS_MAP, new org.apache.thrift.meta_data.FieldMetaData("child_counters_map", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
            new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
                new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))));
    tmpMap.put(_Fields.TIMESTAMP, new org.apache.thrift.meta_data.FieldMetaData("timestamp", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.DEPRECATED_IS_SINK, new org.apache.thrift.meta_data.FieldMetaData("deprecated_is_sink", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TRuntimeProfileNode.class, metaDataMap);
  }

  public TRuntimeProfileNode() {
  }

  public TRuntimeProfileNode(
    java.lang.String name,
    int num_children,
    java.util.List<TCounter> counters,
    long metadata,
    boolean indent,
    java.util.Map<java.lang.String,java.lang.String> info_strings,
    java.util.List<java.lang.String> info_strings_display_order,
    java.util.Map<java.lang.String,java.util.Set<java.lang.String>> child_counters_map,
    long timestamp)
  {
    this();
    this.name = name;
    this.num_children = num_children;
    setNumChildrenIsSet(true);
    this.counters = counters;
    this.metadata = metadata;
    setMetadataIsSet(true);
    this.indent = indent;
    setIndentIsSet(true);
    this.info_strings = info_strings;
    this.info_strings_display_order = info_strings_display_order;
    this.child_counters_map = child_counters_map;
    this.timestamp = timestamp;
    setTimestampIsSet(true);
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TRuntimeProfileNode(TRuntimeProfileNode other) {
    __isset_bitfield = other.__isset_bitfield;
    if (other.isSetName()) {
      this.name = other.name;
    }
    this.num_children = other.num_children;
    if (other.isSetCounters()) {
      java.util.List<TCounter> __this__counters = new java.util.ArrayList<TCounter>(other.counters.size());
      for (TCounter other_element : other.counters) {
        __this__counters.add(new TCounter(other_element));
      }
      this.counters = __this__counters;
    }
    this.metadata = other.metadata;
    this.indent = other.indent;
    if (other.isSetInfoStrings()) {
      java.util.Map<java.lang.String,java.lang.String> __this__info_strings = new java.util.HashMap<java.lang.String,java.lang.String>(other.info_strings);
      this.info_strings = __this__info_strings;
    }
    if (other.isSetInfoStringsDisplayOrder()) {
      java.util.List<java.lang.String> __this__info_strings_display_order = new java.util.ArrayList<java.lang.String>(other.info_strings_display_order);
      this.info_strings_display_order = __this__info_strings_display_order;
    }
    if (other.isSetChildCountersMap()) {
      java.util.Map<java.lang.String,java.util.Set<java.lang.String>> __this__child_counters_map = new java.util.HashMap<java.lang.String,java.util.Set<java.lang.String>>(other.child_counters_map.size());
      for (java.util.Map.Entry<java.lang.String, java.util.Set<java.lang.String>> other_element : other.child_counters_map.entrySet()) {

        java.lang.String other_element_key = other_element.getKey();
        java.util.Set<java.lang.String> other_element_value = other_element.getValue();

        java.lang.String __this__child_counters_map_copy_key = other_element_key;

        java.util.Set<java.lang.String> __this__child_counters_map_copy_value = new java.util.HashSet<java.lang.String>(other_element_value);

        __this__child_counters_map.put(__this__child_counters_map_copy_key, __this__child_counters_map_copy_value);
      }
      this.child_counters_map = __this__child_counters_map;
    }
    this.timestamp = other.timestamp;
    this.deprecated_is_sink = other.deprecated_is_sink;
  }

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

  @Override
  public void clear() {
    this.name = null;
    setNumChildrenIsSet(false);
    this.num_children = 0;
    this.counters = null;
    setMetadataIsSet(false);
    this.metadata = 0;
    setIndentIsSet(false);
    this.indent = false;
    this.info_strings = null;
    this.info_strings_display_order = null;
    this.child_counters_map = null;
    setTimestampIsSet(false);
    this.timestamp = 0;
    setDeprecatedIsSinkIsSet(false);
    this.deprecated_is_sink = false;
  }

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

  public TRuntimeProfileNode setName(@org.apache.thrift.annotation.Nullable java.lang.String name) {
    this.name = name;
    return this;
  }

  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 int getNumChildren() {
    return this.num_children;
  }

  public TRuntimeProfileNode setNumChildren(int num_children) {
    this.num_children = num_children;
    setNumChildrenIsSet(true);
    return this;
  }

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

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

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

  public int getCountersSize() {
    return (this.counters == null) ? 0 : this.counters.size();
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Iterator<TCounter> getCountersIterator() {
    return (this.counters == null) ? null : this.counters.iterator();
  }

  public void addToCounters(TCounter elem) {
    if (this.counters == null) {
      this.counters = new java.util.ArrayList<TCounter>();
    }
    this.counters.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<TCounter> getCounters() {
    return this.counters;
  }

  public TRuntimeProfileNode setCounters(@org.apache.thrift.annotation.Nullable java.util.List<TCounter> counters) {
    this.counters = counters;
    return this;
  }

  public void unsetCounters() {
    this.counters = null;
  }

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

  public void setCountersIsSet(boolean value) {
    if (!value) {
      this.counters = null;
    }
  }

  public long getMetadata() {
    return this.metadata;
  }

  public TRuntimeProfileNode setMetadata(long metadata) {
    this.metadata = metadata;
    setMetadataIsSet(true);
    return this;
  }

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

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

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

  public boolean isIndent() {
    return this.indent;
  }

  public TRuntimeProfileNode setIndent(boolean indent) {
    this.indent = indent;
    setIndentIsSet(true);
    return this;
  }

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

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

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

  public int getInfoStringsSize() {
    return (this.info_strings == null) ? 0 : this.info_strings.size();
  }

  public void putToInfoStrings(java.lang.String key, java.lang.String val) {
    if (this.info_strings == null) {
      this.info_strings = new java.util.HashMap<java.lang.String,java.lang.String>();
    }
    this.info_strings.put(key, val);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Map<java.lang.String,java.lang.String> getInfoStrings() {
    return this.info_strings;
  }

  public TRuntimeProfileNode setInfoStrings(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> info_strings) {
    this.info_strings = info_strings;
    return this;
  }

  public void unsetInfoStrings() {
    this.info_strings = null;
  }

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

  public void setInfoStringsIsSet(boolean value) {
    if (!value) {
      this.info_strings = null;
    }
  }

  public int getInfoStringsDisplayOrderSize() {
    return (this.info_strings_display_order == null) ? 0 : this.info_strings_display_order.size();
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Iterator<java.lang.String> getInfoStringsDisplayOrderIterator() {
    return (this.info_strings_display_order == null) ? null : this.info_strings_display_order.iterator();
  }

  public void addToInfoStringsDisplayOrder(java.lang.String elem) {
    if (this.info_strings_display_order == null) {
      this.info_strings_display_order = new java.util.ArrayList<java.lang.String>();
    }
    this.info_strings_display_order.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<java.lang.String> getInfoStringsDisplayOrder() {
    return this.info_strings_display_order;
  }

  public TRuntimeProfileNode setInfoStringsDisplayOrder(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> info_strings_display_order) {
    this.info_strings_display_order = info_strings_display_order;
    return this;
  }

  public void unsetInfoStringsDisplayOrder() {
    this.info_strings_display_order = null;
  }

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

  public void setInfoStringsDisplayOrderIsSet(boolean value) {
    if (!value) {
      this.info_strings_display_order = null;
    }
  }

  public int getChildCountersMapSize() {
    return (this.child_counters_map == null) ? 0 : this.child_counters_map.size();
  }

  public void putToChildCountersMap(java.lang.String key, java.util.Set<java.lang.String> val) {
    if (this.child_counters_map == null) {
      this.child_counters_map = new java.util.HashMap<java.lang.String,java.util.Set<java.lang.String>>();
    }
    this.child_counters_map.put(key, val);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Map<java.lang.String,java.util.Set<java.lang.String>> getChildCountersMap() {
    return this.child_counters_map;
  }

  public TRuntimeProfileNode setChildCountersMap(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.util.Set<java.lang.String>> child_counters_map) {
    this.child_counters_map = child_counters_map;
    return this;
  }

  public void unsetChildCountersMap() {
    this.child_counters_map = null;
  }

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

  public void setChildCountersMapIsSet(boolean value) {
    if (!value) {
      this.child_counters_map = null;
    }
  }

  public long getTimestamp() {
    return this.timestamp;
  }

  public TRuntimeProfileNode setTimestamp(long timestamp) {
    this.timestamp = timestamp;
    setTimestampIsSet(true);
    return this;
  }

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

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

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

  public boolean isDeprecatedIsSink() {
    return this.deprecated_is_sink;
  }

  public TRuntimeProfileNode setDeprecatedIsSink(boolean deprecated_is_sink) {
    this.deprecated_is_sink = deprecated_is_sink;
    setDeprecatedIsSinkIsSet(true);
    return this;
  }

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

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

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

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

    case NUM_CHILDREN:
      if (value == null) {
        unsetNumChildren();
      } else {
        setNumChildren((java.lang.Integer)value);
      }
      break;

    case COUNTERS:
      if (value == null) {
        unsetCounters();
      } else {
        setCounters((java.util.List<TCounter>)value);
      }
      break;

    case METADATA:
      if (value == null) {
        unsetMetadata();
      } else {
        setMetadata((java.lang.Long)value);
      }
      break;

    case INDENT:
      if (value == null) {
        unsetIndent();
      } else {
        setIndent((java.lang.Boolean)value);
      }
      break;

    case INFO_STRINGS:
      if (value == null) {
        unsetInfoStrings();
      } else {
        setInfoStrings((java.util.Map<java.lang.String,java.lang.String>)value);
      }
      break;

    case INFO_STRINGS_DISPLAY_ORDER:
      if (value == null) {
        unsetInfoStringsDisplayOrder();
      } else {
        setInfoStringsDisplayOrder((java.util.List<java.lang.String>)value);
      }
      break;

    case CHILD_COUNTERS_MAP:
      if (value == null) {
        unsetChildCountersMap();
      } else {
        setChildCountersMap((java.util.Map<java.lang.String,java.util.Set<java.lang.String>>)value);
      }
      break;

    case TIMESTAMP:
      if (value == null) {
        unsetTimestamp();
      } else {
        setTimestamp((java.lang.Long)value);
      }
      break;

    case DEPRECATED_IS_SINK:
      if (value == null) {
        unsetDeprecatedIsSink();
      } else {
        setDeprecatedIsSink((java.lang.Boolean)value);
      }
      break;

    }
  }

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

    case NUM_CHILDREN:
      return getNumChildren();

    case COUNTERS:
      return getCounters();

    case METADATA:
      return getMetadata();

    case INDENT:
      return isIndent();

    case INFO_STRINGS:
      return getInfoStrings();

    case INFO_STRINGS_DISPLAY_ORDER:
      return getInfoStringsDisplayOrder();

    case CHILD_COUNTERS_MAP:
      return getChildCountersMap();

    case TIMESTAMP:
      return getTimestamp();

    case DEPRECATED_IS_SINK:
      return isDeprecatedIsSink();

    }
    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 NAME:
      return isSetName();
    case NUM_CHILDREN:
      return isSetNumChildren();
    case COUNTERS:
      return isSetCounters();
    case METADATA:
      return isSetMetadata();
    case INDENT:
      return isSetIndent();
    case INFO_STRINGS:
      return isSetInfoStrings();
    case INFO_STRINGS_DISPLAY_ORDER:
      return isSetInfoStringsDisplayOrder();
    case CHILD_COUNTERS_MAP:
      return isSetChildCountersMap();
    case TIMESTAMP:
      return isSetTimestamp();
    case DEPRECATED_IS_SINK:
      return isSetDeprecatedIsSink();
    }
    throw new java.lang.IllegalStateException();
  }

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

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

    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_num_children = true;
    boolean that_present_num_children = true;
    if (this_present_num_children || that_present_num_children) {
      if (!(this_present_num_children && that_present_num_children))
        return false;
      if (this.num_children != that.num_children)
        return false;
    }

    boolean this_present_counters = true && this.isSetCounters();
    boolean that_present_counters = true && that.isSetCounters();
    if (this_present_counters || that_present_counters) {
      if (!(this_present_counters && that_present_counters))
        return false;
      if (!this.counters.equals(that.counters))
        return false;
    }

    boolean this_present_metadata = true;
    boolean that_present_metadata = true;
    if (this_present_metadata || that_present_metadata) {
      if (!(this_present_metadata && that_present_metadata))
        return false;
      if (this.metadata != that.metadata)
        return false;
    }

    boolean this_present_indent = true;
    boolean that_present_indent = true;
    if (this_present_indent || that_present_indent) {
      if (!(this_present_indent && that_present_indent))
        return false;
      if (this.indent != that.indent)
        return false;
    }

    boolean this_present_info_strings = true && this.isSetInfoStrings();
    boolean that_present_info_strings = true && that.isSetInfoStrings();
    if (this_present_info_strings || that_present_info_strings) {
      if (!(this_present_info_strings && that_present_info_strings))
        return false;
      if (!this.info_strings.equals(that.info_strings))
        return false;
    }

    boolean this_present_info_strings_display_order = true && this.isSetInfoStringsDisplayOrder();
    boolean that_present_info_strings_display_order = true && that.isSetInfoStringsDisplayOrder();
    if (this_present_info_strings_display_order || that_present_info_strings_display_order) {
      if (!(this_present_info_strings_display_order && that_present_info_strings_display_order))
        return false;
      if (!this.info_strings_display_order.equals(that.info_strings_display_order))
        return false;
    }

    boolean this_present_child_counters_map = true && this.isSetChildCountersMap();
    boolean that_present_child_counters_map = true && that.isSetChildCountersMap();
    if (this_present_child_counters_map || that_present_child_counters_map) {
      if (!(this_present_child_counters_map && that_present_child_counters_map))
        return false;
      if (!this.child_counters_map.equals(that.child_counters_map))
        return false;
    }

    boolean this_present_timestamp = true;
    boolean that_present_timestamp = true;
    if (this_present_timestamp || that_present_timestamp) {
      if (!(this_present_timestamp && that_present_timestamp))
        return false;
      if (this.timestamp != that.timestamp)
        return false;
    }

    boolean this_present_deprecated_is_sink = true && this.isSetDeprecatedIsSink();
    boolean that_present_deprecated_is_sink = true && that.isSetDeprecatedIsSink();
    if (this_present_deprecated_is_sink || that_present_deprecated_is_sink) {
      if (!(this_present_deprecated_is_sink && that_present_deprecated_is_sink))
        return false;
      if (this.deprecated_is_sink != that.deprecated_is_sink)
        return false;
    }

    return true;
  }

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

    hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
    if (isSetName())
      hashCode = hashCode * 8191 + name.hashCode();

    hashCode = hashCode * 8191 + num_children;

    hashCode = hashCode * 8191 + ((isSetCounters()) ? 131071 : 524287);
    if (isSetCounters())
      hashCode = hashCode * 8191 + counters.hashCode();

    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(metadata);

    hashCode = hashCode * 8191 + ((indent) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetInfoStrings()) ? 131071 : 524287);
    if (isSetInfoStrings())
      hashCode = hashCode * 8191 + info_strings.hashCode();

    hashCode = hashCode * 8191 + ((isSetInfoStringsDisplayOrder()) ? 131071 : 524287);
    if (isSetInfoStringsDisplayOrder())
      hashCode = hashCode * 8191 + info_strings_display_order.hashCode();

    hashCode = hashCode * 8191 + ((isSetChildCountersMap()) ? 131071 : 524287);
    if (isSetChildCountersMap())
      hashCode = hashCode * 8191 + child_counters_map.hashCode();

    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(timestamp);

    hashCode = hashCode * 8191 + ((isSetDeprecatedIsSink()) ? 131071 : 524287);
    if (isSetDeprecatedIsSink())
      hashCode = hashCode * 8191 + ((deprecated_is_sink) ? 131071 : 524287);

    return hashCode;
  }

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

    int lastComparison = 0;

    lastComparison = java.lang.Boolean.compare(isSetName(), other.isSetName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetName()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetNumChildren(), other.isSetNumChildren());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetNumChildren()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.num_children, other.num_children);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetCounters(), other.isSetCounters());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCounters()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.counters, other.counters);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMetadata(), other.isSetMetadata());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMetadata()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.metadata, other.metadata);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetIndent(), other.isSetIndent());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIndent()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.indent, other.indent);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetInfoStrings(), other.isSetInfoStrings());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetInfoStrings()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.info_strings, other.info_strings);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetInfoStringsDisplayOrder(), other.isSetInfoStringsDisplayOrder());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetInfoStringsDisplayOrder()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.info_strings_display_order, other.info_strings_display_order);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetChildCountersMap(), other.isSetChildCountersMap());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetChildCountersMap()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.child_counters_map, other.child_counters_map);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetTimestamp(), other.isSetTimestamp());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTimestamp()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.timestamp, other.timestamp);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetDeprecatedIsSink(), other.isSetDeprecatedIsSink());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDeprecatedIsSink()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.deprecated_is_sink, other.deprecated_is_sink);
      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("TRuntimeProfileNode(");
    boolean first = true;

    sb.append("name:");
    if (this.name == null) {
      sb.append("null");
    } else {
      sb.append(this.name);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("num_children:");
    sb.append(this.num_children);
    first = false;
    if (!first) sb.append(", ");
    sb.append("counters:");
    if (this.counters == null) {
      sb.append("null");
    } else {
      sb.append(this.counters);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("metadata:");
    sb.append(this.metadata);
    first = false;
    if (!first) sb.append(", ");
    sb.append("indent:");
    sb.append(this.indent);
    first = false;
    if (!first) sb.append(", ");
    sb.append("info_strings:");
    if (this.info_strings == null) {
      sb.append("null");
    } else {
      sb.append(this.info_strings);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("info_strings_display_order:");
    if (this.info_strings_display_order == null) {
      sb.append("null");
    } else {
      sb.append(this.info_strings_display_order);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("child_counters_map:");
    if (this.child_counters_map == null) {
      sb.append("null");
    } else {
      sb.append(this.child_counters_map);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("timestamp:");
    sb.append(this.timestamp);
    first = false;
    if (isSetDeprecatedIsSink()) {
      if (!first) sb.append(", ");
      sb.append("deprecated_is_sink:");
      sb.append(this.deprecated_is_sink);
      first = false;
    }
    sb.append(")");
    return sb.toString();
  }

  public void validate() throws org.apache.thrift.TException {
    // check for required fields
    if (name == null) {
      throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' was not present! Struct: " + toString());
    }
    // alas, we cannot check 'num_children' because it's a primitive and you chose the non-beans generator.
    if (counters == null) {
      throw new org.apache.thrift.protocol.TProtocolException("Required field 'counters' was not present! Struct: " + toString());
    }
    // alas, we cannot check 'metadata' because it's a primitive and you chose the non-beans generator.
    // alas, we cannot check 'indent' because it's a primitive and you chose the non-beans generator.
    if (info_strings == null) {
      throw new org.apache.thrift.protocol.TProtocolException("Required field 'info_strings' was not present! Struct: " + toString());
    }
    if (info_strings_display_order == null) {
      throw new org.apache.thrift.protocol.TProtocolException("Required field 'info_strings_display_order' was not present! Struct: " + toString());
    }
    if (child_counters_map == null) {
      throw new org.apache.thrift.protocol.TProtocolException("Required field 'child_counters_map' was not present! Struct: " + toString());
    }
    // alas, we cannot check 'timestamp' because it's a primitive and you chose the non-beans generator.
    // 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 TRuntimeProfileNodeStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public TRuntimeProfileNodeStandardScheme getScheme() {
      return new TRuntimeProfileNodeStandardScheme();
    }
  }

  private static class TRuntimeProfileNodeStandardScheme extends org.apache.thrift.scheme.StandardScheme<TRuntimeProfileNode> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, TRuntimeProfileNode 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: // NAME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.name = iprot.readString();
              struct.setNameIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // NUM_CHILDREN
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.num_children = iprot.readI32();
              struct.setNumChildrenIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // COUNTERS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
                struct.counters = new java.util.ArrayList<TCounter>(_list0.size);
                @org.apache.thrift.annotation.Nullable TCounter _elem1;
                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
                {
                  _elem1 = new TCounter();
                  _elem1.read(iprot);
                  struct.counters.add(_elem1);
                }
                iprot.readListEnd();
              }
              struct.setCountersIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // METADATA
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.metadata = iprot.readI64();
              struct.setMetadataIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // INDENT
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.indent = iprot.readBool();
              struct.setIndentIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // INFO_STRINGS
            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
              {
                org.apache.thrift.protocol.TMap _map3 = iprot.readMapBegin();
                struct.info_strings = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map3.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _key4;
                @org.apache.thrift.annotation.Nullable java.lang.String _val5;
                for (int _i6 = 0; _i6 < _map3.size; ++_i6)
                {
                  _key4 = iprot.readString();
                  _val5 = iprot.readString();
                  struct.info_strings.put(_key4, _val5);
                }
                iprot.readMapEnd();
              }
              struct.setInfoStringsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // INFO_STRINGS_DISPLAY_ORDER
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list7 = iprot.readListBegin();
                struct.info_strings_display_order = new java.util.ArrayList<java.lang.String>(_list7.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _elem8;
                for (int _i9 = 0; _i9 < _list7.size; ++_i9)
                {
                  _elem8 = iprot.readString();
                  struct.info_strings_display_order.add(_elem8);
                }
                iprot.readListEnd();
              }
              struct.setInfoStringsDisplayOrderIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // CHILD_COUNTERS_MAP
            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
              {
                org.apache.thrift.protocol.TMap _map10 = iprot.readMapBegin();
                struct.child_counters_map = new java.util.HashMap<java.lang.String,java.util.Set<java.lang.String>>(2*_map10.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _key11;
                @org.apache.thrift.annotation.Nullable java.util.Set<java.lang.String> _val12;
                for (int _i13 = 0; _i13 < _map10.size; ++_i13)
                {
                  _key11 = iprot.readString();
                  {
                    org.apache.thrift.protocol.TSet _set14 = iprot.readSetBegin();
                    _val12 = new java.util.HashSet<java.lang.String>(2*_set14.size);
                    @org.apache.thrift.annotation.Nullable java.lang.String _elem15;
                    for (int _i16 = 0; _i16 < _set14.size; ++_i16)
                    {
                      _elem15 = iprot.readString();
                      _val12.add(_elem15);
                    }
                    iprot.readSetEnd();
                  }
                  struct.child_counters_map.put(_key11, _val12);
                }
                iprot.readMapEnd();
              }
              struct.setChildCountersMapIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // TIMESTAMP
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.timestamp = iprot.readI64();
              struct.setTimestampIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // DEPRECATED_IS_SINK
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.deprecated_is_sink = iprot.readBool();
              struct.setDeprecatedIsSinkIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

      // check for required fields of primitive type, which can't be checked in the validate method
      if (!struct.isSetNumChildren()) {
        throw new org.apache.thrift.protocol.TProtocolException("Required field 'num_children' was not found in serialized data! Struct: " + toString());
      }
      if (!struct.isSetMetadata()) {
        throw new org.apache.thrift.protocol.TProtocolException("Required field 'metadata' was not found in serialized data! Struct: " + toString());
      }
      if (!struct.isSetIndent()) {
        throw new org.apache.thrift.protocol.TProtocolException("Required field 'indent' was not found in serialized data! Struct: " + toString());
      }
      if (!struct.isSetTimestamp()) {
        throw new org.apache.thrift.protocol.TProtocolException("Required field 'timestamp' was not found in serialized data! Struct: " + toString());
      }
      struct.validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      if (struct.name != null) {
        oprot.writeFieldBegin(NAME_FIELD_DESC);
        oprot.writeString(struct.name);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(NUM_CHILDREN_FIELD_DESC);
      oprot.writeI32(struct.num_children);
      oprot.writeFieldEnd();
      if (struct.counters != null) {
        oprot.writeFieldBegin(COUNTERS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.counters.size()));
          for (TCounter _iter17 : struct.counters)
          {
            _iter17.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(METADATA_FIELD_DESC);
      oprot.writeI64(struct.metadata);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(INDENT_FIELD_DESC);
      oprot.writeBool(struct.indent);
      oprot.writeFieldEnd();
      if (struct.info_strings != null) {
        oprot.writeFieldBegin(INFO_STRINGS_FIELD_DESC);
        {
          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.info_strings.size()));
          for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter18 : struct.info_strings.entrySet())
          {
            oprot.writeString(_iter18.getKey());
            oprot.writeString(_iter18.getValue());
          }
          oprot.writeMapEnd();
        }
        oprot.writeFieldEnd();
      }
      if (struct.info_strings_display_order != null) {
        oprot.writeFieldBegin(INFO_STRINGS_DISPLAY_ORDER_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.info_strings_display_order.size()));
          for (java.lang.String _iter19 : struct.info_strings_display_order)
          {
            oprot.writeString(_iter19);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      if (struct.child_counters_map != null) {
        oprot.writeFieldBegin(CHILD_COUNTERS_MAP_FIELD_DESC);
        {
          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.SET, struct.child_counters_map.size()));
          for (java.util.Map.Entry<java.lang.String, java.util.Set<java.lang.String>> _iter20 : struct.child_counters_map.entrySet())
          {
            oprot.writeString(_iter20.getKey());
            {
              oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, _iter20.getValue().size()));
              for (java.lang.String _iter21 : _iter20.getValue())
              {
                oprot.writeString(_iter21);
              }
              oprot.writeSetEnd();
            }
          }
          oprot.writeMapEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
      oprot.writeI64(struct.timestamp);
      oprot.writeFieldEnd();
      if (struct.isSetDeprecatedIsSink()) {
        oprot.writeFieldBegin(DEPRECATED_IS_SINK_FIELD_DESC);
        oprot.writeBool(struct.deprecated_is_sink);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

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

  private static class TRuntimeProfileNodeTupleScheme extends org.apache.thrift.scheme.TupleScheme<TRuntimeProfileNode> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TRuntimeProfileNode struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      oprot.writeString(struct.name);
      oprot.writeI32(struct.num_children);
      {
        oprot.writeI32(struct.counters.size());
        for (TCounter _iter22 : struct.counters)
        {
          _iter22.write(oprot);
        }
      }
      oprot.writeI64(struct.metadata);
      oprot.writeBool(struct.indent);
      {
        oprot.writeI32(struct.info_strings.size());
        for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter23 : struct.info_strings.entrySet())
        {
          oprot.writeString(_iter23.getKey());
          oprot.writeString(_iter23.getValue());
        }
      }
      {
        oprot.writeI32(struct.info_strings_display_order.size());
        for (java.lang.String _iter24 : struct.info_strings_display_order)
        {
          oprot.writeString(_iter24);
        }
      }
      {
        oprot.writeI32(struct.child_counters_map.size());
        for (java.util.Map.Entry<java.lang.String, java.util.Set<java.lang.String>> _iter25 : struct.child_counters_map.entrySet())
        {
          oprot.writeString(_iter25.getKey());
          {
            oprot.writeI32(_iter25.getValue().size());
            for (java.lang.String _iter26 : _iter25.getValue())
            {
              oprot.writeString(_iter26);
            }
          }
        }
      }
      oprot.writeI64(struct.timestamp);
      java.util.BitSet optionals = new java.util.BitSet();
      if (struct.isSetDeprecatedIsSink()) {
        optionals.set(0);
      }
      oprot.writeBitSet(optionals, 1);
      if (struct.isSetDeprecatedIsSink()) {
        oprot.writeBool(struct.deprecated_is_sink);
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TRuntimeProfileNode struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      struct.name = iprot.readString();
      struct.setNameIsSet(true);
      struct.num_children = iprot.readI32();
      struct.setNumChildrenIsSet(true);
      {
        org.apache.thrift.protocol.TList _list27 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
        struct.counters = new java.util.ArrayList<TCounter>(_list27.size);
        @org.apache.thrift.annotation.Nullable TCounter _elem28;
        for (int _i29 = 0; _i29 < _list27.size; ++_i29)
        {
          _elem28 = new TCounter();
          _elem28.read(iprot);
          struct.counters.add(_elem28);
        }
      }
      struct.setCountersIsSet(true);
      struct.metadata = iprot.readI64();
      struct.setMetadataIsSet(true);
      struct.indent = iprot.readBool();
      struct.setIndentIsSet(true);
      {
        org.apache.thrift.protocol.TMap _map30 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
        struct.info_strings = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map30.size);
        @org.apache.thrift.annotation.Nullable java.lang.String _key31;
        @org.apache.thrift.annotation.Nullable java.lang.String _val32;
        for (int _i33 = 0; _i33 < _map30.size; ++_i33)
        {
          _key31 = iprot.readString();
          _val32 = iprot.readString();
          struct.info_strings.put(_key31, _val32);
        }
      }
      struct.setInfoStringsIsSet(true);
      {
        org.apache.thrift.protocol.TList _list34 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
        struct.info_strings_display_order = new java.util.ArrayList<java.lang.String>(_list34.size);
        @org.apache.thrift.annotation.Nullable java.lang.String _elem35;
        for (int _i36 = 0; _i36 < _list34.size; ++_i36)
        {
          _elem35 = iprot.readString();
          struct.info_strings_display_order.add(_elem35);
        }
      }
      struct.setInfoStringsDisplayOrderIsSet(true);
      {
        org.apache.thrift.protocol.TMap _map37 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.SET); 
        struct.child_counters_map = new java.util.HashMap<java.lang.String,java.util.Set<java.lang.String>>(2*_map37.size);
        @org.apache.thrift.annotation.Nullable java.lang.String _key38;
        @org.apache.thrift.annotation.Nullable java.util.Set<java.lang.String> _val39;
        for (int _i40 = 0; _i40 < _map37.size; ++_i40)
        {
          _key38 = iprot.readString();
          {
            org.apache.thrift.protocol.TSet _set41 = iprot.readSetBegin(org.apache.thrift.protocol.TType.STRING);
            _val39 = new java.util.HashSet<java.lang.String>(2*_set41.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem42;
            for (int _i43 = 0; _i43 < _set41.size; ++_i43)
            {
              _elem42 = iprot.readString();
              _val39.add(_elem42);
            }
          }
          struct.child_counters_map.put(_key38, _val39);
        }
      }
      struct.setChildCountersMapIsSet(true);
      struct.timestamp = iprot.readI64();
      struct.setTimestampIsSet(true);
      java.util.BitSet incoming = iprot.readBitSet(1);
      if (incoming.get(0)) {
        struct.deprecated_is_sink = iprot.readBool();
        struct.setDeprecatedIsSinkIsSet(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();
  }
}