http://git-wip-us.apache.org/repos/asf/storm/blob/63900643/storm-core/src/jvm/backtype/storm/generated/ExecutorStats.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/generated/ExecutorStats.java 
b/storm-core/src/jvm/backtype/storm/generated/ExecutorStats.java
index a297fa7..15d629e 100644
--- a/storm-core/src/jvm/backtype/storm/generated/ExecutorStats.java
+++ b/storm-core/src/jvm/backtype/storm/generated/ExecutorStats.java
@@ -44,16 +44,19 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
   private static final org.apache.thrift.protocol.TField EMITTED_FIELD_DESC = 
new org.apache.thrift.protocol.TField("emitted", 
org.apache.thrift.protocol.TType.MAP, (short)1);
   private static final org.apache.thrift.protocol.TField 
TRANSFERRED_FIELD_DESC = new org.apache.thrift.protocol.TField("transferred", 
org.apache.thrift.protocol.TType.MAP, (short)2);
   private static final org.apache.thrift.protocol.TField SPECIFIC_FIELD_DESC = 
new org.apache.thrift.protocol.TField("specific", 
org.apache.thrift.protocol.TType.STRUCT, (short)3);
+  private static final org.apache.thrift.protocol.TField RATE_FIELD_DESC = new 
org.apache.thrift.protocol.TField("rate", 
org.apache.thrift.protocol.TType.DOUBLE, (short)4);
 
   private Map<String,Map<String,Long>> emitted; // required
   private Map<String,Map<String,Long>> transferred; // required
   private ExecutorSpecificStats specific; // required
+  private double rate; // 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 {
     EMITTED((short)1, "emitted"),
     TRANSFERRED((short)2, "transferred"),
-    SPECIFIC((short)3, "specific");
+    SPECIFIC((short)3, "specific"),
+    RATE((short)4, "rate");
 
     private static final Map<String, _Fields> byName = new HashMap<String, 
_Fields>();
 
@@ -74,6 +77,8 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
           return TRANSFERRED;
         case 3: // SPECIFIC
           return SPECIFIC;
+        case 4: // RATE
+          return RATE;
         default:
           return null;
       }
@@ -114,24 +119,28 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
   }
 
   // isset id assignments
+  private static final int __RATE_ISSET_ID = 0;
+  private BitSet __isset_bit_vector = new BitSet(1);
 
   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.EMITTED, new 
org.apache.thrift.meta_data.FieldMetaData("emitted", 
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),
 
+    tmpMap.put(_Fields.EMITTED, new 
org.apache.thrift.meta_data.FieldMetaData("emitted", 
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.TRANSFERRED, new 
org.apache.thrift.meta_data.FieldMetaData("transferred", 
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),
 
+    tmpMap.put(_Fields.TRANSFERRED, new 
org.apache.thrift.meta_data.FieldMetaData("transferred", 
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.SPECIFIC, new 
org.apache.thrift.meta_data.FieldMetaData("specific", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+    tmpMap.put(_Fields.SPECIFIC, new 
org.apache.thrift.meta_data.FieldMetaData("specific", 
org.apache.thrift.TFieldRequirementType.REQUIRED,
         new 
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
 ExecutorSpecificStats.class)));
+    tmpMap.put(_Fields.RATE, new 
org.apache.thrift.meta_data.FieldMetaData("rate", 
org.apache.thrift.TFieldRequirementType.REQUIRED,
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ExecutorStats.class,
 metaDataMap);
   }
@@ -142,18 +151,23 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
   public ExecutorStats(
     Map<String,Map<String,Long>> emitted,
     Map<String,Map<String,Long>> transferred,
-    ExecutorSpecificStats specific)
+    ExecutorSpecificStats specific,
+    double rate)
   {
     this();
     this.emitted = emitted;
     this.transferred = transferred;
     this.specific = specific;
+    this.rate = rate;
+    set_rate_isSet(true);
   }
 
   /**
    * Performs a deep copy on <i>other</i>.
    */
   public ExecutorStats(ExecutorStats other) {
+    __isset_bit_vector.clear();
+    __isset_bit_vector.or(other.__isset_bit_vector);
     if (other.is_set_emitted()) {
       Map<String,Map<String,Long>> __this__emitted = new 
HashMap<String,Map<String,Long>>();
       for (Map.Entry<String, Map<String,Long>> other_element : 
other.emitted.entrySet()) {
@@ -209,6 +223,7 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
     if (other.is_set_specific()) {
       this.specific = new ExecutorSpecificStats(other.specific);
     }
+    this.rate = other.rate;
   }
 
   public ExecutorStats deepCopy() {
@@ -220,6 +235,8 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
     this.emitted = null;
     this.transferred = null;
     this.specific = null;
+    set_rate_isSet(false);
+    this.rate = 0.0;
   }
 
   public int get_emitted_size() {
@@ -313,6 +330,28 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
     }
   }
 
+  public double get_rate() {
+    return this.rate;
+  }
+
+  public void set_rate(double rate) {
+    this.rate = rate;
+    set_rate_isSet(true);
+  }
+
+  public void unset_rate() {
+    __isset_bit_vector.clear(__RATE_ISSET_ID);
+  }
+
+  /** Returns true if field rate is set (has been assigned a value) and false 
otherwise */
+  public boolean is_set_rate() {
+    return __isset_bit_vector.get(__RATE_ISSET_ID);
+  }
+
+  public void set_rate_isSet(boolean value) {
+    __isset_bit_vector.set(__RATE_ISSET_ID, value);
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case EMITTED:
@@ -339,6 +378,14 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
       }
       break;
 
+    case RATE:
+      if (value == null) {
+        unset_rate();
+      } else {
+        set_rate((Double)value);
+      }
+      break;
+
     }
   }
 
@@ -353,6 +400,9 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
     case SPECIFIC:
       return get_specific();
 
+    case RATE:
+      return Double.valueOf(get_rate());
+
     }
     throw new IllegalStateException();
   }
@@ -370,6 +420,8 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
       return is_set_transferred();
     case SPECIFIC:
       return is_set_specific();
+    case RATE:
+      return is_set_rate();
     }
     throw new IllegalStateException();
   }
@@ -414,6 +466,15 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
         return false;
     }
 
+    boolean this_present_rate = true;
+    boolean that_present_rate = true;
+    if (this_present_rate || that_present_rate) {
+      if (!(this_present_rate && that_present_rate))
+        return false;
+      if (this.rate != that.rate)
+        return false;
+    }
+
     return true;
   }
 
@@ -436,6 +497,11 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
     if (present_specific)
       builder.append(specific);
 
+    boolean present_rate = true;
+    builder.append(present_rate);
+    if (present_rate)
+      builder.append(rate);
+
     return builder.toHashCode();
   }
 
@@ -477,6 +543,16 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
         return lastComparison;
       }
     }
+    lastComparison = 
Boolean.valueOf(is_set_rate()).compareTo(typedOther.is_set_rate());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_rate()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rate, 
typedOther.rate);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -490,7 +566,7 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
     while (true)
     {
       field = iprot.readFieldBegin();
-      if (field.type == org.apache.thrift.protocol.TType.STOP) { 
+      if (field.type == org.apache.thrift.protocol.TType.STOP) {
         break;
       }
       switch (field.id) {
@@ -564,6 +640,14 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
           }
           break;
+        case 4: // RATE
+          if (field.type == org.apache.thrift.protocol.TType.DOUBLE) {
+            this.rate = iprot.readDouble();
+            set_rate_isSet(true);
+          } else { 
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+          }
+          break;
         default:
           org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
       }
@@ -624,6 +708,9 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
       this.specific.write(oprot);
       oprot.writeFieldEnd();
     }
+    oprot.writeFieldBegin(RATE_FIELD_DESC);
+    oprot.writeDouble(this.rate);
+    oprot.writeFieldEnd();
     oprot.writeFieldStop();
     oprot.writeStructEnd();
   }
@@ -656,6 +743,10 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
       sb.append(this.specific);
     }
     first = false;
+    if (!first) sb.append(", ");
+    sb.append("rate:");
+    sb.append(this.rate);
+    first = false;
     sb.append(")");
     return sb.toString();
   }
@@ -674,6 +765,10 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
       throw new org.apache.thrift.protocol.TProtocolException("Required field 
'specific' is unset! Struct:" + toString());
     }
 
+    if (!is_set_rate()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'rate' is unset! Struct:" + toString());
+    }
+
   }
 
   private void writeObject(java.io.ObjectOutputStream out) throws 
java.io.IOException {
@@ -686,6 +781,8 @@ public class ExecutorStats implements 
org.apache.thrift.TBase<ExecutorStats, Exe
 
   private void readObject(java.io.ObjectInputStream in) throws 
java.io.IOException, ClassNotFoundException {
     try {
+      // it doesn't seem like you should have to do this, but java 
serialization is wacky, and doesn't call the default constructor.
+      __isset_bit_vector = new BitSet(1);
       read(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(in)));
     } catch (org.apache.thrift.TException te) {
       throw new java.io.IOException(te);

http://git-wip-us.apache.org/repos/asf/storm/blob/63900643/storm-core/src/jvm/backtype/storm/generated/NodeInfo.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/generated/NodeInfo.java 
b/storm-core/src/jvm/backtype/storm/generated/NodeInfo.java
new file mode 100644
index 0000000..f9b46e9
--- /dev/null
+++ b/storm-core/src/jvm/backtype/storm/generated/NodeInfo.java
@@ -0,0 +1,479 @@
+/**
+ * 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.7.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ */
+package backtype.storm.generated;
+
+import org.apache.commons.lang.builder.HashCodeBuilder;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class NodeInfo implements org.apache.thrift.TBase<NodeInfo, 
NodeInfo._Fields>, java.io.Serializable, Cloneable {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("NodeInfo");
+
+  private static final org.apache.thrift.protocol.TField NODE_FIELD_DESC = new 
org.apache.thrift.protocol.TField("node", 
org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField PORT_FIELD_DESC = new 
org.apache.thrift.protocol.TField("port", org.apache.thrift.protocol.TType.SET, 
(short)2);
+
+  private String node; // required
+  private Set<Long> port; // 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 {
+    NODE((short)1, "node"),
+    PORT((short)2, "port");
+
+    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: // NODE
+          return NODE;
+        case 2: // PORT
+          return PORT;
+        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.NODE, new 
org.apache.thrift.meta_data.FieldMetaData("node", 
org.apache.thrift.TFieldRequirementType.REQUIRED,
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PORT, new 
org.apache.thrift.meta_data.FieldMetaData("port", 
org.apache.thrift.TFieldRequirementType.REQUIRED,
+        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.I64))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(NodeInfo.class, 
metaDataMap);
+  }
+
+  public NodeInfo() {
+  }
+
+  public NodeInfo(
+    String node,
+    Set<Long> port)
+  {
+    this();
+    this.node = node;
+    this.port = port;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public NodeInfo(NodeInfo other) {
+    if (other.is_set_node()) {
+      this.node = other.node;
+    }
+    if (other.is_set_port()) {
+      Set<Long> __this__port = new HashSet<Long>();
+      for (Long other_element : other.port) {
+        __this__port.add(other_element);
+      }
+      this.port = __this__port;
+    }
+  }
+
+  public NodeInfo deepCopy() {
+    return new NodeInfo(this);
+  }
+
+  @Override
+  public void clear() {
+    this.node = null;
+    this.port = null;
+  }
+
+  public String get_node() {
+    return this.node;
+  }
+
+  public void set_node(String node) {
+    this.node = node;
+  }
+
+  public void unset_node() {
+    this.node = null;
+  }
+
+  /** Returns true if field node is set (has been assigned a value) and false 
otherwise */
+  public boolean is_set_node() {
+    return this.node != null;
+  }
+
+  public void set_node_isSet(boolean value) {
+    if (!value) {
+      this.node = null;
+    }
+  }
+
+  public int get_port_size() {
+    return (this.port == null) ? 0 : this.port.size();
+  }
+
+  public java.util.Iterator<Long> get_port_iterator() {
+    return (this.port == null) ? null : this.port.iterator();
+  }
+
+  public void add_to_port(long elem) {
+    if (this.port == null) {
+      this.port = new HashSet<Long>();
+    }
+    this.port.add(elem);
+  }
+
+  public Set<Long> get_port() {
+    return this.port;
+  }
+
+  public void set_port(Set<Long> port) {
+    this.port = port;
+  }
+
+  public void unset_port() {
+    this.port = null;
+  }
+
+  /** Returns true if field port is set (has been assigned a value) and false 
otherwise */
+  public boolean is_set_port() {
+    return this.port != null;
+  }
+
+  public void set_port_isSet(boolean value) {
+    if (!value) {
+      this.port = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case NODE:
+      if (value == null) {
+        unset_node();
+      } else {
+        set_node((String)value);
+      }
+      break;
+
+    case PORT:
+      if (value == null) {
+        unset_port();
+      } else {
+        set_port((Set<Long>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case NODE:
+      return get_node();
+
+    case PORT:
+      return get_port();
+
+    }
+    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 NODE:
+      return is_set_node();
+    case PORT:
+      return is_set_port();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof NodeInfo)
+      return this.equals((NodeInfo)that);
+    return false;
+  }
+
+  public boolean equals(NodeInfo that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_node = true && this.is_set_node();
+    boolean that_present_node = true && that.is_set_node();
+    if (this_present_node || that_present_node) {
+      if (!(this_present_node && that_present_node))
+        return false;
+      if (!this.node.equals(that.node))
+        return false;
+    }
+
+    boolean this_present_port = true && this.is_set_port();
+    boolean that_present_port = true && that.is_set_port();
+    if (this_present_port || that_present_port) {
+      if (!(this_present_port && that_present_port))
+        return false;
+      if (!this.port.equals(that.port))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+
+    boolean present_node = true && (is_set_node());
+    builder.append(present_node);
+    if (present_node)
+      builder.append(node);
+
+    boolean present_port = true && (is_set_port());
+    builder.append(present_port);
+    if (present_port)
+      builder.append(port);
+
+    return builder.toHashCode();
+  }
+
+  public int compareTo(NodeInfo other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+    NodeInfo typedOther = (NodeInfo)other;
+
+    lastComparison = 
Boolean.valueOf(is_set_node()).compareTo(typedOther.is_set_node());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_node()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.node, 
typedOther.node);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(is_set_port()).compareTo(typedOther.is_set_port());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_port()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.port, 
typedOther.port);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws 
org.apache.thrift.TException {
+    org.apache.thrift.protocol.TField field;
+    iprot.readStructBegin();
+    while (true)
+    {
+      field = iprot.readFieldBegin();
+      if (field.type == org.apache.thrift.protocol.TType.STOP) {
+        break;
+      }
+      switch (field.id) {
+        case 1: // NODE
+          if (field.type == org.apache.thrift.protocol.TType.STRING) {
+            this.node = iprot.readString();
+          } else { 
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+          }
+          break;
+        case 2: // PORT
+          if (field.type == org.apache.thrift.protocol.TType.SET) {
+            {
+              org.apache.thrift.protocol.TSet _set181 = iprot.readSetBegin();
+              this.port = new HashSet<Long>(2*_set181.size);
+              for (int _i182 = 0; _i182 < _set181.size; ++_i182)
+              {
+                long _elem183; // required
+                _elem183 = iprot.readI64();
+                this.port.add(_elem183);
+              }
+              iprot.readSetEnd();
+            }
+          } else { 
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+          }
+          break;
+        default:
+          org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+      }
+      iprot.readFieldEnd();
+    }
+    iprot.readStructEnd();
+    validate();
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws 
org.apache.thrift.TException {
+    validate();
+
+    oprot.writeStructBegin(STRUCT_DESC);
+    if (this.node != null) {
+      oprot.writeFieldBegin(NODE_FIELD_DESC);
+      oprot.writeString(this.node);
+      oprot.writeFieldEnd();
+    }
+    if (this.port != null) {
+      oprot.writeFieldBegin(PORT_FIELD_DESC);
+      {
+        oprot.writeSetBegin(new 
org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I64, 
this.port.size()));
+        for (long _iter184 : this.port)
+        {
+          oprot.writeI64(_iter184);
+        }
+        oprot.writeSetEnd();
+      }
+      oprot.writeFieldEnd();
+    }
+    oprot.writeFieldStop();
+    oprot.writeStructEnd();
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("NodeInfo(");
+    boolean first = true;
+
+    sb.append("node:");
+    if (this.node == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.node);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("port:");
+    if (this.port == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.port);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!is_set_node()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'node' is unset! Struct:" + toString());
+    }
+
+    if (!is_set_port()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'port' is unset! Struct:" + toString());
+    }
+
+  }
+
+  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);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/storm/blob/63900643/storm-core/src/jvm/backtype/storm/generated/StormBase.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/generated/StormBase.java 
b/storm-core/src/jvm/backtype/storm/generated/StormBase.java
new file mode 100644
index 0000000..e27d635
--- /dev/null
+++ b/storm-core/src/jvm/backtype/storm/generated/StormBase.java
@@ -0,0 +1,1078 @@
+/**
+ * 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.7.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ */
+package backtype.storm.generated;
+
+import org.apache.commons.lang.builder.HashCodeBuilder;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class StormBase implements org.apache.thrift.TBase<StormBase, 
StormBase._Fields>, java.io.Serializable, Cloneable {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("StormBase");
+
+  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 STATUS_FIELD_DESC = 
new org.apache.thrift.protocol.TField("status", 
org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField 
NUM_WORKERS_FIELD_DESC = new org.apache.thrift.protocol.TField("num_workers", 
org.apache.thrift.protocol.TType.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField 
COMPONENT_EXECUTORS_FIELD_DESC = new 
org.apache.thrift.protocol.TField("component_executors", 
org.apache.thrift.protocol.TType.MAP, (short)4);
+  private static final org.apache.thrift.protocol.TField 
LAUNCH_TIME_SECS_FIELD_DESC = new 
org.apache.thrift.protocol.TField("launch_time_secs", 
org.apache.thrift.protocol.TType.I32, (short)5);
+  private static final org.apache.thrift.protocol.TField OWNER_FIELD_DESC = 
new org.apache.thrift.protocol.TField("owner", 
org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField 
TOPOLOGY_ACTION_OPTIONS_FIELD_DESC = new 
org.apache.thrift.protocol.TField("topology_action_options", 
org.apache.thrift.protocol.TType.STRUCT, (short)7);
+  private static final org.apache.thrift.protocol.TField 
PREV_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("prev_status", 
org.apache.thrift.protocol.TType.I32, (short)8);
+
+  private String name; // required
+  private TopologyStatus status; // required
+  private int num_workers; // required
+  private Map<String,Integer> component_executors; // required
+  private int launch_time_secs; // required
+  private String owner; // required
+  private TopologyActionOptions topology_action_options; // required
+  private TopologyStatus prev_status; // 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 {
+    NAME((short)1, "name"),
+    /**
+     * 
+     * @see TopologyStatus
+     */
+    STATUS((short)2, "status"),
+    NUM_WORKERS((short)3, "num_workers"),
+    COMPONENT_EXECUTORS((short)4, "component_executors"),
+    LAUNCH_TIME_SECS((short)5, "launch_time_secs"),
+    OWNER((short)6, "owner"),
+    TOPOLOGY_ACTION_OPTIONS((short)7, "topology_action_options"),
+    /**
+     * 
+     * @see TopologyStatus
+     */
+    PREV_STATUS((short)8, "prev_status");
+
+    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: // NAME
+          return NAME;
+        case 2: // STATUS
+          return STATUS;
+        case 3: // NUM_WORKERS
+          return NUM_WORKERS;
+        case 4: // COMPONENT_EXECUTORS
+          return COMPONENT_EXECUTORS;
+        case 5: // LAUNCH_TIME_SECS
+          return LAUNCH_TIME_SECS;
+        case 6: // OWNER
+          return OWNER;
+        case 7: // TOPOLOGY_ACTION_OPTIONS
+          return TOPOLOGY_ACTION_OPTIONS;
+        case 8: // PREV_STATUS
+          return PREV_STATUS;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + 
fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __NUM_WORKERS_ISSET_ID = 0;
+  private static final int __LAUNCH_TIME_SECS_ISSET_ID = 1;
+  private BitSet __isset_bit_vector = new BitSet(2);
+
+  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.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.STATUS, new 
org.apache.thrift.meta_data.FieldMetaData("status", 
org.apache.thrift.TFieldRequirementType.REQUIRED,
+        new 
org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, 
TopologyStatus.class)));
+    tmpMap.put(_Fields.NUM_WORKERS, new 
org.apache.thrift.meta_data.FieldMetaData("num_workers", 
org.apache.thrift.TFieldRequirementType.REQUIRED,
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.COMPONENT_EXECUTORS, new 
org.apache.thrift.meta_data.FieldMetaData("component_executors", 
org.apache.thrift.TFieldRequirementType.OPTIONAL,
+        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.I32))));
+    tmpMap.put(_Fields.LAUNCH_TIME_SECS, new 
org.apache.thrift.meta_data.FieldMetaData("launch_time_secs", 
org.apache.thrift.TFieldRequirementType.OPTIONAL,
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.OWNER, new 
org.apache.thrift.meta_data.FieldMetaData("owner", 
org.apache.thrift.TFieldRequirementType.OPTIONAL,
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TOPOLOGY_ACTION_OPTIONS, new 
org.apache.thrift.meta_data.FieldMetaData("topology_action_options", 
org.apache.thrift.TFieldRequirementType.OPTIONAL,
+        new 
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
 TopologyActionOptions.class)));
+    tmpMap.put(_Fields.PREV_STATUS, new 
org.apache.thrift.meta_data.FieldMetaData("prev_status", 
org.apache.thrift.TFieldRequirementType.OPTIONAL,
+        new 
org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, 
TopologyStatus.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(StormBase.class, 
metaDataMap);
+  }
+
+  public StormBase() {
+  }
+
+  public StormBase(
+    String name,
+    TopologyStatus status,
+    int num_workers)
+  {
+    this();
+    this.name = name;
+    this.status = status;
+    this.num_workers = num_workers;
+    set_num_workers_isSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public StormBase(StormBase other) {
+    __isset_bit_vector.clear();
+    __isset_bit_vector.or(other.__isset_bit_vector);
+    if (other.is_set_name()) {
+      this.name = other.name;
+    }
+    if (other.is_set_status()) {
+      this.status = other.status;
+    }
+    this.num_workers = other.num_workers;
+    if (other.is_set_component_executors()) {
+      Map<String,Integer> __this__component_executors = new 
HashMap<String,Integer>();
+      for (Map.Entry<String, Integer> other_element : 
other.component_executors.entrySet()) {
+
+        String other_element_key = other_element.getKey();
+        Integer other_element_value = other_element.getValue();
+
+        String __this__component_executors_copy_key = other_element_key;
+
+        Integer __this__component_executors_copy_value = other_element_value;
+
+        __this__component_executors.put(__this__component_executors_copy_key, 
__this__component_executors_copy_value);
+      }
+      this.component_executors = __this__component_executors;
+    }
+    this.launch_time_secs = other.launch_time_secs;
+    if (other.is_set_owner()) {
+      this.owner = other.owner;
+    }
+    if (other.is_set_topology_action_options()) {
+      this.topology_action_options = new 
TopologyActionOptions(other.topology_action_options);
+    }
+    if (other.is_set_prev_status()) {
+      this.prev_status = other.prev_status;
+    }
+  }
+
+  public StormBase deepCopy() {
+    return new StormBase(this);
+  }
+
+  @Override
+  public void clear() {
+    this.name = null;
+    this.status = null;
+    set_num_workers_isSet(false);
+    this.num_workers = 0;
+    this.component_executors = null;
+    set_launch_time_secs_isSet(false);
+    this.launch_time_secs = 0;
+    this.owner = null;
+    this.topology_action_options = null;
+    this.prev_status = null;
+  }
+
+  public String get_name() {
+    return this.name;
+  }
+
+  public void set_name(String name) {
+    this.name = name;
+  }
+
+  public void unset_name() {
+    this.name = null;
+  }
+
+  /** Returns true if field name is set (has been assigned a value) and false 
otherwise */
+  public boolean is_set_name() {
+    return this.name != null;
+  }
+
+  public void set_name_isSet(boolean value) {
+    if (!value) {
+      this.name = null;
+    }
+  }
+
+  /**
+   * 
+   * @see TopologyStatus
+   */
+  public TopologyStatus get_status() {
+    return this.status;
+  }
+
+  /**
+   * 
+   * @see TopologyStatus
+   */
+  public void set_status(TopologyStatus status) {
+    this.status = status;
+  }
+
+  public void unset_status() {
+    this.status = null;
+  }
+
+  /** Returns true if field status is set (has been assigned a value) and 
false otherwise */
+  public boolean is_set_status() {
+    return this.status != null;
+  }
+
+  public void set_status_isSet(boolean value) {
+    if (!value) {
+      this.status = null;
+    }
+  }
+
+  public int get_num_workers() {
+    return this.num_workers;
+  }
+
+  public void set_num_workers(int num_workers) {
+    this.num_workers = num_workers;
+    set_num_workers_isSet(true);
+  }
+
+  public void unset_num_workers() {
+    __isset_bit_vector.clear(__NUM_WORKERS_ISSET_ID);
+  }
+
+  /** Returns true if field num_workers is set (has been assigned a value) and 
false otherwise */
+  public boolean is_set_num_workers() {
+    return __isset_bit_vector.get(__NUM_WORKERS_ISSET_ID);
+  }
+
+  public void set_num_workers_isSet(boolean value) {
+    __isset_bit_vector.set(__NUM_WORKERS_ISSET_ID, value);
+  }
+
+  public int get_component_executors_size() {
+    return (this.component_executors == null) ? 0 : 
this.component_executors.size();
+  }
+
+  public void put_to_component_executors(String key, int val) {
+    if (this.component_executors == null) {
+      this.component_executors = new HashMap<String,Integer>();
+    }
+    this.component_executors.put(key, val);
+  }
+
+  public Map<String,Integer> get_component_executors() {
+    return this.component_executors;
+  }
+
+  public void set_component_executors(Map<String,Integer> component_executors) 
{
+    this.component_executors = component_executors;
+  }
+
+  public void unset_component_executors() {
+    this.component_executors = null;
+  }
+
+  /** Returns true if field component_executors is set (has been assigned a 
value) and false otherwise */
+  public boolean is_set_component_executors() {
+    return this.component_executors != null;
+  }
+
+  public void set_component_executors_isSet(boolean value) {
+    if (!value) {
+      this.component_executors = null;
+    }
+  }
+
+  public int get_launch_time_secs() {
+    return this.launch_time_secs;
+  }
+
+  public void set_launch_time_secs(int launch_time_secs) {
+    this.launch_time_secs = launch_time_secs;
+    set_launch_time_secs_isSet(true);
+  }
+
+  public void unset_launch_time_secs() {
+    __isset_bit_vector.clear(__LAUNCH_TIME_SECS_ISSET_ID);
+  }
+
+  /** Returns true if field launch_time_secs is set (has been assigned a 
value) and false otherwise */
+  public boolean is_set_launch_time_secs() {
+    return __isset_bit_vector.get(__LAUNCH_TIME_SECS_ISSET_ID);
+  }
+
+  public void set_launch_time_secs_isSet(boolean value) {
+    __isset_bit_vector.set(__LAUNCH_TIME_SECS_ISSET_ID, value);
+  }
+
+  public String get_owner() {
+    return this.owner;
+  }
+
+  public void set_owner(String owner) {
+    this.owner = owner;
+  }
+
+  public void unset_owner() {
+    this.owner = null;
+  }
+
+  /** Returns true if field owner is set (has been assigned a value) and false 
otherwise */
+  public boolean is_set_owner() {
+    return this.owner != null;
+  }
+
+  public void set_owner_isSet(boolean value) {
+    if (!value) {
+      this.owner = null;
+    }
+  }
+
+  public TopologyActionOptions get_topology_action_options() {
+    return this.topology_action_options;
+  }
+
+  public void set_topology_action_options(TopologyActionOptions 
topology_action_options) {
+    this.topology_action_options = topology_action_options;
+  }
+
+  public void unset_topology_action_options() {
+    this.topology_action_options = null;
+  }
+
+  /** Returns true if field topology_action_options is set (has been assigned 
a value) and false otherwise */
+  public boolean is_set_topology_action_options() {
+    return this.topology_action_options != null;
+  }
+
+  public void set_topology_action_options_isSet(boolean value) {
+    if (!value) {
+      this.topology_action_options = null;
+    }
+  }
+
+  /**
+   * 
+   * @see TopologyStatus
+   */
+  public TopologyStatus get_prev_status() {
+    return this.prev_status;
+  }
+
+  /**
+   * 
+   * @see TopologyStatus
+   */
+  public void set_prev_status(TopologyStatus prev_status) {
+    this.prev_status = prev_status;
+  }
+
+  public void unset_prev_status() {
+    this.prev_status = null;
+  }
+
+  /** Returns true if field prev_status is set (has been assigned a value) and 
false otherwise */
+  public boolean is_set_prev_status() {
+    return this.prev_status != null;
+  }
+
+  public void set_prev_status_isSet(boolean value) {
+    if (!value) {
+      this.prev_status = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case NAME:
+      if (value == null) {
+        unset_name();
+      } else {
+        set_name((String)value);
+      }
+      break;
+
+    case STATUS:
+      if (value == null) {
+        unset_status();
+      } else {
+        set_status((TopologyStatus)value);
+      }
+      break;
+
+    case NUM_WORKERS:
+      if (value == null) {
+        unset_num_workers();
+      } else {
+        set_num_workers((Integer)value);
+      }
+      break;
+
+    case COMPONENT_EXECUTORS:
+      if (value == null) {
+        unset_component_executors();
+      } else {
+        set_component_executors((Map<String,Integer>)value);
+      }
+      break;
+
+    case LAUNCH_TIME_SECS:
+      if (value == null) {
+        unset_launch_time_secs();
+      } else {
+        set_launch_time_secs((Integer)value);
+      }
+      break;
+
+    case OWNER:
+      if (value == null) {
+        unset_owner();
+      } else {
+        set_owner((String)value);
+      }
+      break;
+
+    case TOPOLOGY_ACTION_OPTIONS:
+      if (value == null) {
+        unset_topology_action_options();
+      } else {
+        set_topology_action_options((TopologyActionOptions)value);
+      }
+      break;
+
+    case PREV_STATUS:
+      if (value == null) {
+        unset_prev_status();
+      } else {
+        set_prev_status((TopologyStatus)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case NAME:
+      return get_name();
+
+    case STATUS:
+      return get_status();
+
+    case NUM_WORKERS:
+      return Integer.valueOf(get_num_workers());
+
+    case COMPONENT_EXECUTORS:
+      return get_component_executors();
+
+    case LAUNCH_TIME_SECS:
+      return Integer.valueOf(get_launch_time_secs());
+
+    case OWNER:
+      return get_owner();
+
+    case TOPOLOGY_ACTION_OPTIONS:
+      return get_topology_action_options();
+
+    case PREV_STATUS:
+      return get_prev_status();
+
+    }
+    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 NAME:
+      return is_set_name();
+    case STATUS:
+      return is_set_status();
+    case NUM_WORKERS:
+      return is_set_num_workers();
+    case COMPONENT_EXECUTORS:
+      return is_set_component_executors();
+    case LAUNCH_TIME_SECS:
+      return is_set_launch_time_secs();
+    case OWNER:
+      return is_set_owner();
+    case TOPOLOGY_ACTION_OPTIONS:
+      return is_set_topology_action_options();
+    case PREV_STATUS:
+      return is_set_prev_status();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof StormBase)
+      return this.equals((StormBase)that);
+    return false;
+  }
+
+  public boolean equals(StormBase that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_name = true && this.is_set_name();
+    boolean that_present_name = true && that.is_set_name();
+    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_status = true && this.is_set_status();
+    boolean that_present_status = true && that.is_set_status();
+    if (this_present_status || that_present_status) {
+      if (!(this_present_status && that_present_status))
+        return false;
+      if (!this.status.equals(that.status))
+        return false;
+    }
+
+    boolean this_present_num_workers = true;
+    boolean that_present_num_workers = true;
+    if (this_present_num_workers || that_present_num_workers) {
+      if (!(this_present_num_workers && that_present_num_workers))
+        return false;
+      if (this.num_workers != that.num_workers)
+        return false;
+    }
+
+    boolean this_present_component_executors = true && 
this.is_set_component_executors();
+    boolean that_present_component_executors = true && 
that.is_set_component_executors();
+    if (this_present_component_executors || that_present_component_executors) {
+      if (!(this_present_component_executors && 
that_present_component_executors))
+        return false;
+      if (!this.component_executors.equals(that.component_executors))
+        return false;
+    }
+
+    boolean this_present_launch_time_secs = true && 
this.is_set_launch_time_secs();
+    boolean that_present_launch_time_secs = true && 
that.is_set_launch_time_secs();
+    if (this_present_launch_time_secs || that_present_launch_time_secs) {
+      if (!(this_present_launch_time_secs && that_present_launch_time_secs))
+        return false;
+      if (this.launch_time_secs != that.launch_time_secs)
+        return false;
+    }
+
+    boolean this_present_owner = true && this.is_set_owner();
+    boolean that_present_owner = true && that.is_set_owner();
+    if (this_present_owner || that_present_owner) {
+      if (!(this_present_owner && that_present_owner))
+        return false;
+      if (!this.owner.equals(that.owner))
+        return false;
+    }
+
+    boolean this_present_topology_action_options = true && 
this.is_set_topology_action_options();
+    boolean that_present_topology_action_options = true && 
that.is_set_topology_action_options();
+    if (this_present_topology_action_options || 
that_present_topology_action_options) {
+      if (!(this_present_topology_action_options && 
that_present_topology_action_options))
+        return false;
+      if (!this.topology_action_options.equals(that.topology_action_options))
+        return false;
+    }
+
+    boolean this_present_prev_status = true && this.is_set_prev_status();
+    boolean that_present_prev_status = true && that.is_set_prev_status();
+    if (this_present_prev_status || that_present_prev_status) {
+      if (!(this_present_prev_status && that_present_prev_status))
+        return false;
+      if (!this.prev_status.equals(that.prev_status))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    HashCodeBuilder builder = new HashCodeBuilder();
+
+    boolean present_name = true && (is_set_name());
+    builder.append(present_name);
+    if (present_name)
+      builder.append(name);
+
+    boolean present_status = true && (is_set_status());
+    builder.append(present_status);
+    if (present_status)
+      builder.append(status.getValue());
+
+    boolean present_num_workers = true;
+    builder.append(present_num_workers);
+    if (present_num_workers)
+      builder.append(num_workers);
+
+    boolean present_component_executors = true && 
(is_set_component_executors());
+    builder.append(present_component_executors);
+    if (present_component_executors)
+      builder.append(component_executors);
+
+    boolean present_launch_time_secs = true && (is_set_launch_time_secs());
+    builder.append(present_launch_time_secs);
+    if (present_launch_time_secs)
+      builder.append(launch_time_secs);
+
+    boolean present_owner = true && (is_set_owner());
+    builder.append(present_owner);
+    if (present_owner)
+      builder.append(owner);
+
+    boolean present_topology_action_options = true && 
(is_set_topology_action_options());
+    builder.append(present_topology_action_options);
+    if (present_topology_action_options)
+      builder.append(topology_action_options);
+
+    boolean present_prev_status = true && (is_set_prev_status());
+    builder.append(present_prev_status);
+    if (present_prev_status)
+      builder.append(prev_status.getValue());
+
+    return builder.toHashCode();
+  }
+
+  public int compareTo(StormBase other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+    StormBase typedOther = (StormBase)other;
+
+    lastComparison = 
Boolean.valueOf(is_set_name()).compareTo(typedOther.is_set_name());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_name()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, 
typedOther.name);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(is_set_status()).compareTo(typedOther.is_set_status());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_status()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, 
typedOther.status);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(is_set_num_workers()).compareTo(typedOther.is_set_num_workers());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_num_workers()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.num_workers, 
typedOther.num_workers);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(is_set_component_executors()).compareTo(typedOther.is_set_component_executors());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_component_executors()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.component_executors, 
typedOther.component_executors);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(is_set_launch_time_secs()).compareTo(typedOther.is_set_launch_time_secs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_launch_time_secs()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.launch_time_secs, 
typedOther.launch_time_secs);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(is_set_owner()).compareTo(typedOther.is_set_owner());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_owner()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.owner, 
typedOther.owner);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(is_set_topology_action_options()).compareTo(typedOther.is_set_topology_action_options());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_topology_action_options()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.topology_action_options, 
typedOther.topology_action_options);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(is_set_prev_status()).compareTo(typedOther.is_set_prev_status());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_prev_status()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.prev_status, 
typedOther.prev_status);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws 
org.apache.thrift.TException {
+    org.apache.thrift.protocol.TField field;
+    iprot.readStructBegin();
+    while (true)
+    {
+      field = iprot.readFieldBegin();
+      if (field.type == org.apache.thrift.protocol.TType.STOP) {
+        break;
+      }
+      switch (field.id) {
+        case 1: // NAME
+          if (field.type == org.apache.thrift.protocol.TType.STRING) {
+            this.name = iprot.readString();
+          } else { 
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+          }
+          break;
+        case 2: // STATUS
+          if (field.type == org.apache.thrift.protocol.TType.I32) {
+            this.status = TopologyStatus.findByValue(iprot.readI32());
+          } else { 
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+          }
+          break;
+        case 3: // NUM_WORKERS
+          if (field.type == org.apache.thrift.protocol.TType.I32) {
+            this.num_workers = iprot.readI32();
+            set_num_workers_isSet(true);
+          } else { 
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+          }
+          break;
+        case 4: // COMPONENT_EXECUTORS
+          if (field.type == org.apache.thrift.protocol.TType.MAP) {
+            {
+              org.apache.thrift.protocol.TMap _map208 = iprot.readMapBegin();
+              this.component_executors = new 
HashMap<String,Integer>(2*_map208.size);
+              for (int _i209 = 0; _i209 < _map208.size; ++_i209)
+              {
+                String _key210; // required
+                int _val211; // required
+                _key210 = iprot.readString();
+                _val211 = iprot.readI32();
+                this.component_executors.put(_key210, _val211);
+              }
+              iprot.readMapEnd();
+            }
+          } else { 
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+          }
+          break;
+        case 5: // LAUNCH_TIME_SECS
+          if (field.type == org.apache.thrift.protocol.TType.I32) {
+            this.launch_time_secs = iprot.readI32();
+            set_launch_time_secs_isSet(true);
+          } else { 
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+          }
+          break;
+        case 6: // OWNER
+          if (field.type == org.apache.thrift.protocol.TType.STRING) {
+            this.owner = iprot.readString();
+          } else { 
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+          }
+          break;
+        case 7: // TOPOLOGY_ACTION_OPTIONS
+          if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
+            this.topology_action_options = new TopologyActionOptions();
+            this.topology_action_options.read(iprot);
+          } else { 
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+          }
+          break;
+        case 8: // PREV_STATUS
+          if (field.type == org.apache.thrift.protocol.TType.I32) {
+            this.prev_status = TopologyStatus.findByValue(iprot.readI32());
+          } else { 
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+          }
+          break;
+        default:
+          org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+      }
+      iprot.readFieldEnd();
+    }
+    iprot.readStructEnd();
+    validate();
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws 
org.apache.thrift.TException {
+    validate();
+
+    oprot.writeStructBegin(STRUCT_DESC);
+    if (this.name != null) {
+      oprot.writeFieldBegin(NAME_FIELD_DESC);
+      oprot.writeString(this.name);
+      oprot.writeFieldEnd();
+    }
+    if (this.status != null) {
+      oprot.writeFieldBegin(STATUS_FIELD_DESC);
+      oprot.writeI32(this.status.getValue());
+      oprot.writeFieldEnd();
+    }
+    oprot.writeFieldBegin(NUM_WORKERS_FIELD_DESC);
+    oprot.writeI32(this.num_workers);
+    oprot.writeFieldEnd();
+    if (this.component_executors != null) {
+      if (is_set_component_executors()) {
+        oprot.writeFieldBegin(COMPONENT_EXECUTORS_FIELD_DESC);
+        {
+          oprot.writeMapBegin(new 
org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, 
org.apache.thrift.protocol.TType.I32, this.component_executors.size()));
+          for (Map.Entry<String, Integer> _iter212 : 
this.component_executors.entrySet())
+          {
+            oprot.writeString(_iter212.getKey());
+            oprot.writeI32(_iter212.getValue());
+          }
+          oprot.writeMapEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+    }
+    if (is_set_launch_time_secs()) {
+      oprot.writeFieldBegin(LAUNCH_TIME_SECS_FIELD_DESC);
+      oprot.writeI32(this.launch_time_secs);
+      oprot.writeFieldEnd();
+    }
+    if (this.owner != null) {
+      if (is_set_owner()) {
+        oprot.writeFieldBegin(OWNER_FIELD_DESC);
+        oprot.writeString(this.owner);
+        oprot.writeFieldEnd();
+      }
+    }
+    if (this.topology_action_options != null) {
+      if (is_set_topology_action_options()) {
+        oprot.writeFieldBegin(TOPOLOGY_ACTION_OPTIONS_FIELD_DESC);
+        this.topology_action_options.write(oprot);
+        oprot.writeFieldEnd();
+      }
+    }
+    if (this.prev_status != null) {
+      if (is_set_prev_status()) {
+        oprot.writeFieldBegin(PREV_STATUS_FIELD_DESC);
+        oprot.writeI32(this.prev_status.getValue());
+        oprot.writeFieldEnd();
+      }
+    }
+    oprot.writeFieldStop();
+    oprot.writeStructEnd();
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("StormBase(");
+    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("status:");
+    if (this.status == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.status);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("num_workers:");
+    sb.append(this.num_workers);
+    first = false;
+    if (is_set_component_executors()) {
+      if (!first) sb.append(", ");
+      sb.append("component_executors:");
+      if (this.component_executors == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.component_executors);
+      }
+      first = false;
+    }
+    if (is_set_launch_time_secs()) {
+      if (!first) sb.append(", ");
+      sb.append("launch_time_secs:");
+      sb.append(this.launch_time_secs);
+      first = false;
+    }
+    if (is_set_owner()) {
+      if (!first) sb.append(", ");
+      sb.append("owner:");
+      if (this.owner == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.owner);
+      }
+      first = false;
+    }
+    if (is_set_topology_action_options()) {
+      if (!first) sb.append(", ");
+      sb.append("topology_action_options:");
+      if (this.topology_action_options == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.topology_action_options);
+      }
+      first = false;
+    }
+    if (is_set_prev_status()) {
+      if (!first) sb.append(", ");
+      sb.append("prev_status:");
+      if (this.prev_status == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.prev_status);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!is_set_name()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'name' is unset! Struct:" + toString());
+    }
+
+    if (!is_set_status()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'status' is unset! Struct:" + toString());
+    }
+
+    if (!is_set_num_workers()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'num_workers' is unset! Struct:" + toString());
+    }
+
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws 
java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws 
java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java 
serialization is wacky, and doesn't call the default constructor.
+      __isset_bit_vector = new BitSet(1);
+      read(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+}
+

Reply via email to