You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by bo...@apache.org on 2017/04/06 17:33:04 UTC

[15/52] [partial] storm git commit: STORM-2441 Break down 'storm-core' to extract client (worker) artifacts

http://git-wip-us.apache.org/repos/asf/storm/blob/4de339a8/storm-client/src/jvm/org/apache/storm/generated/SpoutStats.java
----------------------------------------------------------------------
diff --git a/storm-client/src/jvm/org/apache/storm/generated/SpoutStats.java b/storm-client/src/jvm/org/apache/storm/generated/SpoutStats.java
new file mode 100644
index 0000000..b1384f6
--- /dev/null
+++ b/storm-client/src/jvm/org/apache/storm/generated/SpoutStats.java
@@ -0,0 +1,917 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.storm.generated;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+public class SpoutStats implements org.apache.thrift.TBase<SpoutStats, SpoutStats._Fields>, java.io.Serializable, Cloneable, Comparable<SpoutStats> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SpoutStats");
+
+  private static final org.apache.thrift.protocol.TField ACKED_FIELD_DESC = new org.apache.thrift.protocol.TField("acked", org.apache.thrift.protocol.TType.MAP, (short)1);
+  private static final org.apache.thrift.protocol.TField FAILED_FIELD_DESC = new org.apache.thrift.protocol.TField("failed", org.apache.thrift.protocol.TType.MAP, (short)2);
+  private static final org.apache.thrift.protocol.TField COMPLETE_MS_AVG_FIELD_DESC = new org.apache.thrift.protocol.TField("complete_ms_avg", org.apache.thrift.protocol.TType.MAP, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new SpoutStatsStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new SpoutStatsTupleSchemeFactory());
+  }
+
+  private Map<String,Map<String,Long>> acked; // required
+  private Map<String,Map<String,Long>> failed; // required
+  private Map<String,Map<String,Double>> complete_ms_avg; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    ACKED((short)1, "acked"),
+    FAILED((short)2, "failed"),
+    COMPLETE_MS_AVG((short)3, "complete_ms_avg");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // ACKED
+          return ACKED;
+        case 2: // FAILED
+          return FAILED;
+        case 3: // COMPLETE_MS_AVG
+          return COMPLETE_MS_AVG;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.ACKED, new org.apache.thrift.meta_data.FieldMetaData("acked", 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.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.I64)))));
+    tmpMap.put(_Fields.FAILED, new org.apache.thrift.meta_data.FieldMetaData("failed", 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.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.I64)))));
+    tmpMap.put(_Fields.COMPLETE_MS_AVG, new org.apache.thrift.meta_data.FieldMetaData("complete_ms_avg", 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.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.DOUBLE)))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SpoutStats.class, metaDataMap);
+  }
+
+  public SpoutStats() {
+  }
+
+  public SpoutStats(
+    Map<String,Map<String,Long>> acked,
+    Map<String,Map<String,Long>> failed,
+    Map<String,Map<String,Double>> complete_ms_avg)
+  {
+    this();
+    this.acked = acked;
+    this.failed = failed;
+    this.complete_ms_avg = complete_ms_avg;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public SpoutStats(SpoutStats other) {
+    if (other.is_set_acked()) {
+      Map<String,Map<String,Long>> __this__acked = new HashMap<String,Map<String,Long>>(other.acked.size());
+      for (Map.Entry<String, Map<String,Long>> other_element : other.acked.entrySet()) {
+
+        String other_element_key = other_element.getKey();
+        Map<String,Long> other_element_value = other_element.getValue();
+
+        String __this__acked_copy_key = other_element_key;
+
+        Map<String,Long> __this__acked_copy_value = new HashMap<String,Long>(other_element_value);
+
+        __this__acked.put(__this__acked_copy_key, __this__acked_copy_value);
+      }
+      this.acked = __this__acked;
+    }
+    if (other.is_set_failed()) {
+      Map<String,Map<String,Long>> __this__failed = new HashMap<String,Map<String,Long>>(other.failed.size());
+      for (Map.Entry<String, Map<String,Long>> other_element : other.failed.entrySet()) {
+
+        String other_element_key = other_element.getKey();
+        Map<String,Long> other_element_value = other_element.getValue();
+
+        String __this__failed_copy_key = other_element_key;
+
+        Map<String,Long> __this__failed_copy_value = new HashMap<String,Long>(other_element_value);
+
+        __this__failed.put(__this__failed_copy_key, __this__failed_copy_value);
+      }
+      this.failed = __this__failed;
+    }
+    if (other.is_set_complete_ms_avg()) {
+      Map<String,Map<String,Double>> __this__complete_ms_avg = new HashMap<String,Map<String,Double>>(other.complete_ms_avg.size());
+      for (Map.Entry<String, Map<String,Double>> other_element : other.complete_ms_avg.entrySet()) {
+
+        String other_element_key = other_element.getKey();
+        Map<String,Double> other_element_value = other_element.getValue();
+
+        String __this__complete_ms_avg_copy_key = other_element_key;
+
+        Map<String,Double> __this__complete_ms_avg_copy_value = new HashMap<String,Double>(other_element_value);
+
+        __this__complete_ms_avg.put(__this__complete_ms_avg_copy_key, __this__complete_ms_avg_copy_value);
+      }
+      this.complete_ms_avg = __this__complete_ms_avg;
+    }
+  }
+
+  public SpoutStats deepCopy() {
+    return new SpoutStats(this);
+  }
+
+  @Override
+  public void clear() {
+    this.acked = null;
+    this.failed = null;
+    this.complete_ms_avg = null;
+  }
+
+  public int get_acked_size() {
+    return (this.acked == null) ? 0 : this.acked.size();
+  }
+
+  public void put_to_acked(String key, Map<String,Long> val) {
+    if (this.acked == null) {
+      this.acked = new HashMap<String,Map<String,Long>>();
+    }
+    this.acked.put(key, val);
+  }
+
+  public Map<String,Map<String,Long>> get_acked() {
+    return this.acked;
+  }
+
+  public void set_acked(Map<String,Map<String,Long>> acked) {
+    this.acked = acked;
+  }
+
+  public void unset_acked() {
+    this.acked = null;
+  }
+
+  /** Returns true if field acked is set (has been assigned a value) and false otherwise */
+  public boolean is_set_acked() {
+    return this.acked != null;
+  }
+
+  public void set_acked_isSet(boolean value) {
+    if (!value) {
+      this.acked = null;
+    }
+  }
+
+  public int get_failed_size() {
+    return (this.failed == null) ? 0 : this.failed.size();
+  }
+
+  public void put_to_failed(String key, Map<String,Long> val) {
+    if (this.failed == null) {
+      this.failed = new HashMap<String,Map<String,Long>>();
+    }
+    this.failed.put(key, val);
+  }
+
+  public Map<String,Map<String,Long>> get_failed() {
+    return this.failed;
+  }
+
+  public void set_failed(Map<String,Map<String,Long>> failed) {
+    this.failed = failed;
+  }
+
+  public void unset_failed() {
+    this.failed = null;
+  }
+
+  /** Returns true if field failed is set (has been assigned a value) and false otherwise */
+  public boolean is_set_failed() {
+    return this.failed != null;
+  }
+
+  public void set_failed_isSet(boolean value) {
+    if (!value) {
+      this.failed = null;
+    }
+  }
+
+  public int get_complete_ms_avg_size() {
+    return (this.complete_ms_avg == null) ? 0 : this.complete_ms_avg.size();
+  }
+
+  public void put_to_complete_ms_avg(String key, Map<String,Double> val) {
+    if (this.complete_ms_avg == null) {
+      this.complete_ms_avg = new HashMap<String,Map<String,Double>>();
+    }
+    this.complete_ms_avg.put(key, val);
+  }
+
+  public Map<String,Map<String,Double>> get_complete_ms_avg() {
+    return this.complete_ms_avg;
+  }
+
+  public void set_complete_ms_avg(Map<String,Map<String,Double>> complete_ms_avg) {
+    this.complete_ms_avg = complete_ms_avg;
+  }
+
+  public void unset_complete_ms_avg() {
+    this.complete_ms_avg = null;
+  }
+
+  /** Returns true if field complete_ms_avg is set (has been assigned a value) and false otherwise */
+  public boolean is_set_complete_ms_avg() {
+    return this.complete_ms_avg != null;
+  }
+
+  public void set_complete_ms_avg_isSet(boolean value) {
+    if (!value) {
+      this.complete_ms_avg = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case ACKED:
+      if (value == null) {
+        unset_acked();
+      } else {
+        set_acked((Map<String,Map<String,Long>>)value);
+      }
+      break;
+
+    case FAILED:
+      if (value == null) {
+        unset_failed();
+      } else {
+        set_failed((Map<String,Map<String,Long>>)value);
+      }
+      break;
+
+    case COMPLETE_MS_AVG:
+      if (value == null) {
+        unset_complete_ms_avg();
+      } else {
+        set_complete_ms_avg((Map<String,Map<String,Double>>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case ACKED:
+      return get_acked();
+
+    case FAILED:
+      return get_failed();
+
+    case COMPLETE_MS_AVG:
+      return get_complete_ms_avg();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case ACKED:
+      return is_set_acked();
+    case FAILED:
+      return is_set_failed();
+    case COMPLETE_MS_AVG:
+      return is_set_complete_ms_avg();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof SpoutStats)
+      return this.equals((SpoutStats)that);
+    return false;
+  }
+
+  public boolean equals(SpoutStats that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_acked = true && this.is_set_acked();
+    boolean that_present_acked = true && that.is_set_acked();
+    if (this_present_acked || that_present_acked) {
+      if (!(this_present_acked && that_present_acked))
+        return false;
+      if (!this.acked.equals(that.acked))
+        return false;
+    }
+
+    boolean this_present_failed = true && this.is_set_failed();
+    boolean that_present_failed = true && that.is_set_failed();
+    if (this_present_failed || that_present_failed) {
+      if (!(this_present_failed && that_present_failed))
+        return false;
+      if (!this.failed.equals(that.failed))
+        return false;
+    }
+
+    boolean this_present_complete_ms_avg = true && this.is_set_complete_ms_avg();
+    boolean that_present_complete_ms_avg = true && that.is_set_complete_ms_avg();
+    if (this_present_complete_ms_avg || that_present_complete_ms_avg) {
+      if (!(this_present_complete_ms_avg && that_present_complete_ms_avg))
+        return false;
+      if (!this.complete_ms_avg.equals(that.complete_ms_avg))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_acked = true && (is_set_acked());
+    list.add(present_acked);
+    if (present_acked)
+      list.add(acked);
+
+    boolean present_failed = true && (is_set_failed());
+    list.add(present_failed);
+    if (present_failed)
+      list.add(failed);
+
+    boolean present_complete_ms_avg = true && (is_set_complete_ms_avg());
+    list.add(present_complete_ms_avg);
+    if (present_complete_ms_avg)
+      list.add(complete_ms_avg);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(SpoutStats other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(is_set_acked()).compareTo(other.is_set_acked());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_acked()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.acked, other.acked);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(is_set_failed()).compareTo(other.is_set_failed());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_failed()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.failed, other.failed);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(is_set_complete_ms_avg()).compareTo(other.is_set_complete_ms_avg());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_complete_ms_avg()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.complete_ms_avg, other.complete_ms_avg);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("SpoutStats(");
+    boolean first = true;
+
+    sb.append("acked:");
+    if (this.acked == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.acked);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("failed:");
+    if (this.failed == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.failed);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("complete_ms_avg:");
+    if (this.complete_ms_avg == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.complete_ms_avg);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!is_set_acked()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'acked' is unset! Struct:" + toString());
+    }
+
+    if (!is_set_failed()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'failed' is unset! Struct:" + toString());
+    }
+
+    if (!is_set_complete_ms_avg()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'complete_ms_avg' is unset! Struct:" + toString());
+    }
+
+    // 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, ClassNotFoundException {
+    try {
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class SpoutStatsStandardSchemeFactory implements SchemeFactory {
+    public SpoutStatsStandardScheme getScheme() {
+      return new SpoutStatsStandardScheme();
+    }
+  }
+
+  private static class SpoutStatsStandardScheme extends StandardScheme<SpoutStats> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, SpoutStats 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: // ACKED
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map232 = iprot.readMapBegin();
+                struct.acked = new HashMap<String,Map<String,Long>>(2*_map232.size);
+                String _key233;
+                Map<String,Long> _val234;
+                for (int _i235 = 0; _i235 < _map232.size; ++_i235)
+                {
+                  _key233 = iprot.readString();
+                  {
+                    org.apache.thrift.protocol.TMap _map236 = iprot.readMapBegin();
+                    _val234 = new HashMap<String,Long>(2*_map236.size);
+                    String _key237;
+                    long _val238;
+                    for (int _i239 = 0; _i239 < _map236.size; ++_i239)
+                    {
+                      _key237 = iprot.readString();
+                      _val238 = iprot.readI64();
+                      _val234.put(_key237, _val238);
+                    }
+                    iprot.readMapEnd();
+                  }
+                  struct.acked.put(_key233, _val234);
+                }
+                iprot.readMapEnd();
+              }
+              struct.set_acked_isSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // FAILED
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map240 = iprot.readMapBegin();
+                struct.failed = new HashMap<String,Map<String,Long>>(2*_map240.size);
+                String _key241;
+                Map<String,Long> _val242;
+                for (int _i243 = 0; _i243 < _map240.size; ++_i243)
+                {
+                  _key241 = iprot.readString();
+                  {
+                    org.apache.thrift.protocol.TMap _map244 = iprot.readMapBegin();
+                    _val242 = new HashMap<String,Long>(2*_map244.size);
+                    String _key245;
+                    long _val246;
+                    for (int _i247 = 0; _i247 < _map244.size; ++_i247)
+                    {
+                      _key245 = iprot.readString();
+                      _val246 = iprot.readI64();
+                      _val242.put(_key245, _val246);
+                    }
+                    iprot.readMapEnd();
+                  }
+                  struct.failed.put(_key241, _val242);
+                }
+                iprot.readMapEnd();
+              }
+              struct.set_failed_isSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // COMPLETE_MS_AVG
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map248 = iprot.readMapBegin();
+                struct.complete_ms_avg = new HashMap<String,Map<String,Double>>(2*_map248.size);
+                String _key249;
+                Map<String,Double> _val250;
+                for (int _i251 = 0; _i251 < _map248.size; ++_i251)
+                {
+                  _key249 = iprot.readString();
+                  {
+                    org.apache.thrift.protocol.TMap _map252 = iprot.readMapBegin();
+                    _val250 = new HashMap<String,Double>(2*_map252.size);
+                    String _key253;
+                    double _val254;
+                    for (int _i255 = 0; _i255 < _map252.size; ++_i255)
+                    {
+                      _key253 = iprot.readString();
+                      _val254 = iprot.readDouble();
+                      _val250.put(_key253, _val254);
+                    }
+                    iprot.readMapEnd();
+                  }
+                  struct.complete_ms_avg.put(_key249, _val250);
+                }
+                iprot.readMapEnd();
+              }
+              struct.set_complete_ms_avg_isSet(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, SpoutStats struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.acked != null) {
+        oprot.writeFieldBegin(ACKED_FIELD_DESC);
+        {
+          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.acked.size()));
+          for (Map.Entry<String, Map<String,Long>> _iter256 : struct.acked.entrySet())
+          {
+            oprot.writeString(_iter256.getKey());
+            {
+              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, _iter256.getValue().size()));
+              for (Map.Entry<String, Long> _iter257 : _iter256.getValue().entrySet())
+              {
+                oprot.writeString(_iter257.getKey());
+                oprot.writeI64(_iter257.getValue());
+              }
+              oprot.writeMapEnd();
+            }
+          }
+          oprot.writeMapEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      if (struct.failed != null) {
+        oprot.writeFieldBegin(FAILED_FIELD_DESC);
+        {
+          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.failed.size()));
+          for (Map.Entry<String, Map<String,Long>> _iter258 : struct.failed.entrySet())
+          {
+            oprot.writeString(_iter258.getKey());
+            {
+              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, _iter258.getValue().size()));
+              for (Map.Entry<String, Long> _iter259 : _iter258.getValue().entrySet())
+              {
+                oprot.writeString(_iter259.getKey());
+                oprot.writeI64(_iter259.getValue());
+              }
+              oprot.writeMapEnd();
+            }
+          }
+          oprot.writeMapEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      if (struct.complete_ms_avg != null) {
+        oprot.writeFieldBegin(COMPLETE_MS_AVG_FIELD_DESC);
+        {
+          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.complete_ms_avg.size()));
+          for (Map.Entry<String, Map<String,Double>> _iter260 : struct.complete_ms_avg.entrySet())
+          {
+            oprot.writeString(_iter260.getKey());
+            {
+              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.DOUBLE, _iter260.getValue().size()));
+              for (Map.Entry<String, Double> _iter261 : _iter260.getValue().entrySet())
+              {
+                oprot.writeString(_iter261.getKey());
+                oprot.writeDouble(_iter261.getValue());
+              }
+              oprot.writeMapEnd();
+            }
+          }
+          oprot.writeMapEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class SpoutStatsTupleSchemeFactory implements SchemeFactory {
+    public SpoutStatsTupleScheme getScheme() {
+      return new SpoutStatsTupleScheme();
+    }
+  }
+
+  private static class SpoutStatsTupleScheme extends TupleScheme<SpoutStats> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, SpoutStats struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      {
+        oprot.writeI32(struct.acked.size());
+        for (Map.Entry<String, Map<String,Long>> _iter262 : struct.acked.entrySet())
+        {
+          oprot.writeString(_iter262.getKey());
+          {
+            oprot.writeI32(_iter262.getValue().size());
+            for (Map.Entry<String, Long> _iter263 : _iter262.getValue().entrySet())
+            {
+              oprot.writeString(_iter263.getKey());
+              oprot.writeI64(_iter263.getValue());
+            }
+          }
+        }
+      }
+      {
+        oprot.writeI32(struct.failed.size());
+        for (Map.Entry<String, Map<String,Long>> _iter264 : struct.failed.entrySet())
+        {
+          oprot.writeString(_iter264.getKey());
+          {
+            oprot.writeI32(_iter264.getValue().size());
+            for (Map.Entry<String, Long> _iter265 : _iter264.getValue().entrySet())
+            {
+              oprot.writeString(_iter265.getKey());
+              oprot.writeI64(_iter265.getValue());
+            }
+          }
+        }
+      }
+      {
+        oprot.writeI32(struct.complete_ms_avg.size());
+        for (Map.Entry<String, Map<String,Double>> _iter266 : struct.complete_ms_avg.entrySet())
+        {
+          oprot.writeString(_iter266.getKey());
+          {
+            oprot.writeI32(_iter266.getValue().size());
+            for (Map.Entry<String, Double> _iter267 : _iter266.getValue().entrySet())
+            {
+              oprot.writeString(_iter267.getKey());
+              oprot.writeDouble(_iter267.getValue());
+            }
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, SpoutStats struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      {
+        org.apache.thrift.protocol.TMap _map268 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32());
+        struct.acked = new HashMap<String,Map<String,Long>>(2*_map268.size);
+        String _key269;
+        Map<String,Long> _val270;
+        for (int _i271 = 0; _i271 < _map268.size; ++_i271)
+        {
+          _key269 = iprot.readString();
+          {
+            org.apache.thrift.protocol.TMap _map272 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, iprot.readI32());
+            _val270 = new HashMap<String,Long>(2*_map272.size);
+            String _key273;
+            long _val274;
+            for (int _i275 = 0; _i275 < _map272.size; ++_i275)
+            {
+              _key273 = iprot.readString();
+              _val274 = iprot.readI64();
+              _val270.put(_key273, _val274);
+            }
+          }
+          struct.acked.put(_key269, _val270);
+        }
+      }
+      struct.set_acked_isSet(true);
+      {
+        org.apache.thrift.protocol.TMap _map276 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32());
+        struct.failed = new HashMap<String,Map<String,Long>>(2*_map276.size);
+        String _key277;
+        Map<String,Long> _val278;
+        for (int _i279 = 0; _i279 < _map276.size; ++_i279)
+        {
+          _key277 = iprot.readString();
+          {
+            org.apache.thrift.protocol.TMap _map280 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, iprot.readI32());
+            _val278 = new HashMap<String,Long>(2*_map280.size);
+            String _key281;
+            long _val282;
+            for (int _i283 = 0; _i283 < _map280.size; ++_i283)
+            {
+              _key281 = iprot.readString();
+              _val282 = iprot.readI64();
+              _val278.put(_key281, _val282);
+            }
+          }
+          struct.failed.put(_key277, _val278);
+        }
+      }
+      struct.set_failed_isSet(true);
+      {
+        org.apache.thrift.protocol.TMap _map284 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32());
+        struct.complete_ms_avg = new HashMap<String,Map<String,Double>>(2*_map284.size);
+        String _key285;
+        Map<String,Double> _val286;
+        for (int _i287 = 0; _i287 < _map284.size; ++_i287)
+        {
+          _key285 = iprot.readString();
+          {
+            org.apache.thrift.protocol.TMap _map288 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.DOUBLE, iprot.readI32());
+            _val286 = new HashMap<String,Double>(2*_map288.size);
+            String _key289;
+            double _val290;
+            for (int _i291 = 0; _i291 < _map288.size; ++_i291)
+            {
+              _key289 = iprot.readString();
+              _val290 = iprot.readDouble();
+              _val286.put(_key289, _val290);
+            }
+          }
+          struct.complete_ms_avg.put(_key285, _val286);
+        }
+      }
+      struct.set_complete_ms_avg_isSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/storm/blob/4de339a8/storm-client/src/jvm/org/apache/storm/generated/StateSpoutSpec.java
----------------------------------------------------------------------
diff --git a/storm-client/src/jvm/org/apache/storm/generated/StateSpoutSpec.java b/storm-client/src/jvm/org/apache/storm/generated/StateSpoutSpec.java
new file mode 100644
index 0000000..c6ab89d
--- /dev/null
+++ b/storm-client/src/jvm/org/apache/storm/generated/StateSpoutSpec.java
@@ -0,0 +1,514 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.storm.generated;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+public class StateSpoutSpec implements org.apache.thrift.TBase<StateSpoutSpec, StateSpoutSpec._Fields>, java.io.Serializable, Cloneable, Comparable<StateSpoutSpec> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StateSpoutSpec");
+
+  private static final org.apache.thrift.protocol.TField STATE_SPOUT_OBJECT_FIELD_DESC = new org.apache.thrift.protocol.TField("state_spout_object", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+  private static final org.apache.thrift.protocol.TField COMMON_FIELD_DESC = new org.apache.thrift.protocol.TField("common", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new StateSpoutSpecStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new StateSpoutSpecTupleSchemeFactory());
+  }
+
+  private ComponentObject state_spout_object; // required
+  private ComponentCommon common; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    STATE_SPOUT_OBJECT((short)1, "state_spout_object"),
+    COMMON((short)2, "common");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // STATE_SPOUT_OBJECT
+          return STATE_SPOUT_OBJECT;
+        case 2: // COMMON
+          return COMMON;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.STATE_SPOUT_OBJECT, new org.apache.thrift.meta_data.FieldMetaData("state_spout_object", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ComponentObject.class)));
+    tmpMap.put(_Fields.COMMON, new org.apache.thrift.meta_data.FieldMetaData("common", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ComponentCommon.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(StateSpoutSpec.class, metaDataMap);
+  }
+
+  public StateSpoutSpec() {
+  }
+
+  public StateSpoutSpec(
+    ComponentObject state_spout_object,
+    ComponentCommon common)
+  {
+    this();
+    this.state_spout_object = state_spout_object;
+    this.common = common;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public StateSpoutSpec(StateSpoutSpec other) {
+    if (other.is_set_state_spout_object()) {
+      this.state_spout_object = new ComponentObject(other.state_spout_object);
+    }
+    if (other.is_set_common()) {
+      this.common = new ComponentCommon(other.common);
+    }
+  }
+
+  public StateSpoutSpec deepCopy() {
+    return new StateSpoutSpec(this);
+  }
+
+  @Override
+  public void clear() {
+    this.state_spout_object = null;
+    this.common = null;
+  }
+
+  public ComponentObject get_state_spout_object() {
+    return this.state_spout_object;
+  }
+
+  public void set_state_spout_object(ComponentObject state_spout_object) {
+    this.state_spout_object = state_spout_object;
+  }
+
+  public void unset_state_spout_object() {
+    this.state_spout_object = null;
+  }
+
+  /** Returns true if field state_spout_object is set (has been assigned a value) and false otherwise */
+  public boolean is_set_state_spout_object() {
+    return this.state_spout_object != null;
+  }
+
+  public void set_state_spout_object_isSet(boolean value) {
+    if (!value) {
+      this.state_spout_object = null;
+    }
+  }
+
+  public ComponentCommon get_common() {
+    return this.common;
+  }
+
+  public void set_common(ComponentCommon common) {
+    this.common = common;
+  }
+
+  public void unset_common() {
+    this.common = null;
+  }
+
+  /** Returns true if field common is set (has been assigned a value) and false otherwise */
+  public boolean is_set_common() {
+    return this.common != null;
+  }
+
+  public void set_common_isSet(boolean value) {
+    if (!value) {
+      this.common = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STATE_SPOUT_OBJECT:
+      if (value == null) {
+        unset_state_spout_object();
+      } else {
+        set_state_spout_object((ComponentObject)value);
+      }
+      break;
+
+    case COMMON:
+      if (value == null) {
+        unset_common();
+      } else {
+        set_common((ComponentCommon)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STATE_SPOUT_OBJECT:
+      return get_state_spout_object();
+
+    case COMMON:
+      return get_common();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case STATE_SPOUT_OBJECT:
+      return is_set_state_spout_object();
+    case COMMON:
+      return is_set_common();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof StateSpoutSpec)
+      return this.equals((StateSpoutSpec)that);
+    return false;
+  }
+
+  public boolean equals(StateSpoutSpec that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_state_spout_object = true && this.is_set_state_spout_object();
+    boolean that_present_state_spout_object = true && that.is_set_state_spout_object();
+    if (this_present_state_spout_object || that_present_state_spout_object) {
+      if (!(this_present_state_spout_object && that_present_state_spout_object))
+        return false;
+      if (!this.state_spout_object.equals(that.state_spout_object))
+        return false;
+    }
+
+    boolean this_present_common = true && this.is_set_common();
+    boolean that_present_common = true && that.is_set_common();
+    if (this_present_common || that_present_common) {
+      if (!(this_present_common && that_present_common))
+        return false;
+      if (!this.common.equals(that.common))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_state_spout_object = true && (is_set_state_spout_object());
+    list.add(present_state_spout_object);
+    if (present_state_spout_object)
+      list.add(state_spout_object);
+
+    boolean present_common = true && (is_set_common());
+    list.add(present_common);
+    if (present_common)
+      list.add(common);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(StateSpoutSpec other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(is_set_state_spout_object()).compareTo(other.is_set_state_spout_object());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_state_spout_object()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state_spout_object, other.state_spout_object);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(is_set_common()).compareTo(other.is_set_common());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_common()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.common, other.common);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("StateSpoutSpec(");
+    boolean first = true;
+
+    sb.append("state_spout_object:");
+    if (this.state_spout_object == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.state_spout_object);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("common:");
+    if (this.common == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.common);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!is_set_state_spout_object()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'state_spout_object' is unset! Struct:" + toString());
+    }
+
+    if (!is_set_common()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'common' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+    if (common != null) {
+      common.validate();
+    }
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      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 StateSpoutSpecStandardSchemeFactory implements SchemeFactory {
+    public StateSpoutSpecStandardScheme getScheme() {
+      return new StateSpoutSpecStandardScheme();
+    }
+  }
+
+  private static class StateSpoutSpecStandardScheme extends StandardScheme<StateSpoutSpec> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, StateSpoutSpec 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: // STATE_SPOUT_OBJECT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.state_spout_object = new ComponentObject();
+              struct.state_spout_object.read(iprot);
+              struct.set_state_spout_object_isSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // COMMON
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.common = new ComponentCommon();
+              struct.common.read(iprot);
+              struct.set_common_isSet(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, StateSpoutSpec struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.state_spout_object != null) {
+        oprot.writeFieldBegin(STATE_SPOUT_OBJECT_FIELD_DESC);
+        struct.state_spout_object.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      if (struct.common != null) {
+        oprot.writeFieldBegin(COMMON_FIELD_DESC);
+        struct.common.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class StateSpoutSpecTupleSchemeFactory implements SchemeFactory {
+    public StateSpoutSpecTupleScheme getScheme() {
+      return new StateSpoutSpecTupleScheme();
+    }
+  }
+
+  private static class StateSpoutSpecTupleScheme extends TupleScheme<StateSpoutSpec> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, StateSpoutSpec struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      struct.state_spout_object.write(oprot);
+      struct.common.write(oprot);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, StateSpoutSpec struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.state_spout_object = new ComponentObject();
+      struct.state_spout_object.read(iprot);
+      struct.set_state_spout_object_isSet(true);
+      struct.common = new ComponentCommon();
+      struct.common.read(iprot);
+      struct.set_common_isSet(true);
+    }
+  }
+
+}
+