You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2014/05/27 15:57:30 UTC

[08/14] wip

http://git-wip-us.apache.org/repos/asf/curator/blob/5fe11f80/curator-x-rpc/src/test/java/org/apache/curator/generated/CreateSpec.java
----------------------------------------------------------------------
diff --git a/curator-x-rpc/src/test/java/org/apache/curator/generated/CreateSpec.java b/curator-x-rpc/src/test/java/org/apache/curator/generated/CreateSpec.java
new file mode 100644
index 0000000..67437d3
--- /dev/null
+++ b/curator-x-rpc/src/test/java/org/apache/curator/generated/CreateSpec.java
@@ -0,0 +1,984 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.curator.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 org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpec._Fields>, java.io.Serializable, Cloneable, Comparable<CreateSpec> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CreateSpec");
+
+  private static final org.apache.thrift.protocol.TField PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("path", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("data", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("mode", org.apache.thrift.protocol.TType.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField DO_ASYNC_FIELD_DESC = new org.apache.thrift.protocol.TField("doAsync", org.apache.thrift.protocol.TType.BOOL, (short)4);
+  private static final org.apache.thrift.protocol.TField COMPRESSED_FIELD_DESC = new org.apache.thrift.protocol.TField("compressed", org.apache.thrift.protocol.TType.BOOL, (short)5);
+  private static final org.apache.thrift.protocol.TField CREATING_PARENTS_IF_NEEDED_FIELD_DESC = new org.apache.thrift.protocol.TField("creatingParentsIfNeeded", org.apache.thrift.protocol.TType.BOOL, (short)6);
+  private static final org.apache.thrift.protocol.TField WITH_PROTECTION_FIELD_DESC = new org.apache.thrift.protocol.TField("withProtection", org.apache.thrift.protocol.TType.BOOL, (short)7);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new CreateSpecStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new CreateSpecTupleSchemeFactory());
+  }
+
+  public String path; // required
+  public String data; // required
+  /**
+   * 
+   * @see CreateMode
+   */
+  public CreateMode mode; // required
+  public boolean doAsync; // required
+  public boolean compressed; // required
+  public boolean creatingParentsIfNeeded; // required
+  public boolean withProtection; // 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 {
+    PATH((short)1, "path"),
+    DATA((short)2, "data"),
+    /**
+     * 
+     * @see CreateMode
+     */
+    MODE((short)3, "mode"),
+    DO_ASYNC((short)4, "doAsync"),
+    COMPRESSED((short)5, "compressed"),
+    CREATING_PARENTS_IF_NEEDED((short)6, "creatingParentsIfNeeded"),
+    WITH_PROTECTION((short)7, "withProtection");
+
+    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: // PATH
+          return PATH;
+        case 2: // DATA
+          return DATA;
+        case 3: // MODE
+          return MODE;
+        case 4: // DO_ASYNC
+          return DO_ASYNC;
+        case 5: // COMPRESSED
+          return COMPRESSED;
+        case 6: // CREATING_PARENTS_IF_NEEDED
+          return CREATING_PARENTS_IF_NEEDED;
+        case 7: // WITH_PROTECTION
+          return WITH_PROTECTION;
+        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 __DOASYNC_ISSET_ID = 0;
+  private static final int __COMPRESSED_ISSET_ID = 1;
+  private static final int __CREATINGPARENTSIFNEEDED_ISSET_ID = 2;
+  private static final int __WITHPROTECTION_ISSET_ID = 3;
+  private byte __isset_bitfield = 0;
+  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.PATH, new org.apache.thrift.meta_data.FieldMetaData("path", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DATA, new org.apache.thrift.meta_data.FieldMetaData("data", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.MODE, new org.apache.thrift.meta_data.FieldMetaData("mode", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, CreateMode.class)));
+    tmpMap.put(_Fields.DO_ASYNC, new org.apache.thrift.meta_data.FieldMetaData("doAsync", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.COMPRESSED, new org.apache.thrift.meta_data.FieldMetaData("compressed", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.CREATING_PARENTS_IF_NEEDED, new org.apache.thrift.meta_data.FieldMetaData("creatingParentsIfNeeded", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.WITH_PROTECTION, new org.apache.thrift.meta_data.FieldMetaData("withProtection", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(CreateSpec.class, metaDataMap);
+  }
+
+  public CreateSpec() {
+  }
+
+  public CreateSpec(
+    String path,
+    String data,
+    CreateMode mode,
+    boolean doAsync,
+    boolean compressed,
+    boolean creatingParentsIfNeeded,
+    boolean withProtection)
+  {
+    this();
+    this.path = path;
+    this.data = data;
+    this.mode = mode;
+    this.doAsync = doAsync;
+    setDoAsyncIsSet(true);
+    this.compressed = compressed;
+    setCompressedIsSet(true);
+    this.creatingParentsIfNeeded = creatingParentsIfNeeded;
+    setCreatingParentsIfNeededIsSet(true);
+    this.withProtection = withProtection;
+    setWithProtectionIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public CreateSpec(CreateSpec other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetPath()) {
+      this.path = other.path;
+    }
+    if (other.isSetData()) {
+      this.data = other.data;
+    }
+    if (other.isSetMode()) {
+      this.mode = other.mode;
+    }
+    this.doAsync = other.doAsync;
+    this.compressed = other.compressed;
+    this.creatingParentsIfNeeded = other.creatingParentsIfNeeded;
+    this.withProtection = other.withProtection;
+  }
+
+  public CreateSpec deepCopy() {
+    return new CreateSpec(this);
+  }
+
+  @Override
+  public void clear() {
+    this.path = null;
+    this.data = null;
+    this.mode = null;
+    setDoAsyncIsSet(false);
+    this.doAsync = false;
+    setCompressedIsSet(false);
+    this.compressed = false;
+    setCreatingParentsIfNeededIsSet(false);
+    this.creatingParentsIfNeeded = false;
+    setWithProtectionIsSet(false);
+    this.withProtection = false;
+  }
+
+  public String getPath() {
+    return this.path;
+  }
+
+  public CreateSpec setPath(String path) {
+    this.path = path;
+    return this;
+  }
+
+  public void unsetPath() {
+    this.path = null;
+  }
+
+  /** Returns true if field path is set (has been assigned a value) and false otherwise */
+  public boolean isSetPath() {
+    return this.path != null;
+  }
+
+  public void setPathIsSet(boolean value) {
+    if (!value) {
+      this.path = null;
+    }
+  }
+
+  public String getData() {
+    return this.data;
+  }
+
+  public CreateSpec setData(String data) {
+    this.data = data;
+    return this;
+  }
+
+  public void unsetData() {
+    this.data = null;
+  }
+
+  /** Returns true if field data is set (has been assigned a value) and false otherwise */
+  public boolean isSetData() {
+    return this.data != null;
+  }
+
+  public void setDataIsSet(boolean value) {
+    if (!value) {
+      this.data = null;
+    }
+  }
+
+  /**
+   * 
+   * @see CreateMode
+   */
+  public CreateMode getMode() {
+    return this.mode;
+  }
+
+  /**
+   * 
+   * @see CreateMode
+   */
+  public CreateSpec setMode(CreateMode mode) {
+    this.mode = mode;
+    return this;
+  }
+
+  public void unsetMode() {
+    this.mode = null;
+  }
+
+  /** Returns true if field mode is set (has been assigned a value) and false otherwise */
+  public boolean isSetMode() {
+    return this.mode != null;
+  }
+
+  public void setModeIsSet(boolean value) {
+    if (!value) {
+      this.mode = null;
+    }
+  }
+
+  public boolean isDoAsync() {
+    return this.doAsync;
+  }
+
+  public CreateSpec setDoAsync(boolean doAsync) {
+    this.doAsync = doAsync;
+    setDoAsyncIsSet(true);
+    return this;
+  }
+
+  public void unsetDoAsync() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DOASYNC_ISSET_ID);
+  }
+
+  /** Returns true if field doAsync is set (has been assigned a value) and false otherwise */
+  public boolean isSetDoAsync() {
+    return EncodingUtils.testBit(__isset_bitfield, __DOASYNC_ISSET_ID);
+  }
+
+  public void setDoAsyncIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DOASYNC_ISSET_ID, value);
+  }
+
+  public boolean isCompressed() {
+    return this.compressed;
+  }
+
+  public CreateSpec setCompressed(boolean compressed) {
+    this.compressed = compressed;
+    setCompressedIsSet(true);
+    return this;
+  }
+
+  public void unsetCompressed() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __COMPRESSED_ISSET_ID);
+  }
+
+  /** Returns true if field compressed is set (has been assigned a value) and false otherwise */
+  public boolean isSetCompressed() {
+    return EncodingUtils.testBit(__isset_bitfield, __COMPRESSED_ISSET_ID);
+  }
+
+  public void setCompressedIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __COMPRESSED_ISSET_ID, value);
+  }
+
+  public boolean isCreatingParentsIfNeeded() {
+    return this.creatingParentsIfNeeded;
+  }
+
+  public CreateSpec setCreatingParentsIfNeeded(boolean creatingParentsIfNeeded) {
+    this.creatingParentsIfNeeded = creatingParentsIfNeeded;
+    setCreatingParentsIfNeededIsSet(true);
+    return this;
+  }
+
+  public void unsetCreatingParentsIfNeeded() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATINGPARENTSIFNEEDED_ISSET_ID);
+  }
+
+  /** Returns true if field creatingParentsIfNeeded is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreatingParentsIfNeeded() {
+    return EncodingUtils.testBit(__isset_bitfield, __CREATINGPARENTSIFNEEDED_ISSET_ID);
+  }
+
+  public void setCreatingParentsIfNeededIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATINGPARENTSIFNEEDED_ISSET_ID, value);
+  }
+
+  public boolean isWithProtection() {
+    return this.withProtection;
+  }
+
+  public CreateSpec setWithProtection(boolean withProtection) {
+    this.withProtection = withProtection;
+    setWithProtectionIsSet(true);
+    return this;
+  }
+
+  public void unsetWithProtection() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __WITHPROTECTION_ISSET_ID);
+  }
+
+  /** Returns true if field withProtection is set (has been assigned a value) and false otherwise */
+  public boolean isSetWithProtection() {
+    return EncodingUtils.testBit(__isset_bitfield, __WITHPROTECTION_ISSET_ID);
+  }
+
+  public void setWithProtectionIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __WITHPROTECTION_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case PATH:
+      if (value == null) {
+        unsetPath();
+      } else {
+        setPath((String)value);
+      }
+      break;
+
+    case DATA:
+      if (value == null) {
+        unsetData();
+      } else {
+        setData((String)value);
+      }
+      break;
+
+    case MODE:
+      if (value == null) {
+        unsetMode();
+      } else {
+        setMode((CreateMode)value);
+      }
+      break;
+
+    case DO_ASYNC:
+      if (value == null) {
+        unsetDoAsync();
+      } else {
+        setDoAsync((Boolean)value);
+      }
+      break;
+
+    case COMPRESSED:
+      if (value == null) {
+        unsetCompressed();
+      } else {
+        setCompressed((Boolean)value);
+      }
+      break;
+
+    case CREATING_PARENTS_IF_NEEDED:
+      if (value == null) {
+        unsetCreatingParentsIfNeeded();
+      } else {
+        setCreatingParentsIfNeeded((Boolean)value);
+      }
+      break;
+
+    case WITH_PROTECTION:
+      if (value == null) {
+        unsetWithProtection();
+      } else {
+        setWithProtection((Boolean)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case PATH:
+      return getPath();
+
+    case DATA:
+      return getData();
+
+    case MODE:
+      return getMode();
+
+    case DO_ASYNC:
+      return Boolean.valueOf(isDoAsync());
+
+    case COMPRESSED:
+      return Boolean.valueOf(isCompressed());
+
+    case CREATING_PARENTS_IF_NEEDED:
+      return Boolean.valueOf(isCreatingParentsIfNeeded());
+
+    case WITH_PROTECTION:
+      return Boolean.valueOf(isWithProtection());
+
+    }
+    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 PATH:
+      return isSetPath();
+    case DATA:
+      return isSetData();
+    case MODE:
+      return isSetMode();
+    case DO_ASYNC:
+      return isSetDoAsync();
+    case COMPRESSED:
+      return isSetCompressed();
+    case CREATING_PARENTS_IF_NEEDED:
+      return isSetCreatingParentsIfNeeded();
+    case WITH_PROTECTION:
+      return isSetWithProtection();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof CreateSpec)
+      return this.equals((CreateSpec)that);
+    return false;
+  }
+
+  public boolean equals(CreateSpec that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_path = true && this.isSetPath();
+    boolean that_present_path = true && that.isSetPath();
+    if (this_present_path || that_present_path) {
+      if (!(this_present_path && that_present_path))
+        return false;
+      if (!this.path.equals(that.path))
+        return false;
+    }
+
+    boolean this_present_data = true && this.isSetData();
+    boolean that_present_data = true && that.isSetData();
+    if (this_present_data || that_present_data) {
+      if (!(this_present_data && that_present_data))
+        return false;
+      if (!this.data.equals(that.data))
+        return false;
+    }
+
+    boolean this_present_mode = true && this.isSetMode();
+    boolean that_present_mode = true && that.isSetMode();
+    if (this_present_mode || that_present_mode) {
+      if (!(this_present_mode && that_present_mode))
+        return false;
+      if (!this.mode.equals(that.mode))
+        return false;
+    }
+
+    boolean this_present_doAsync = true;
+    boolean that_present_doAsync = true;
+    if (this_present_doAsync || that_present_doAsync) {
+      if (!(this_present_doAsync && that_present_doAsync))
+        return false;
+      if (this.doAsync != that.doAsync)
+        return false;
+    }
+
+    boolean this_present_compressed = true;
+    boolean that_present_compressed = true;
+    if (this_present_compressed || that_present_compressed) {
+      if (!(this_present_compressed && that_present_compressed))
+        return false;
+      if (this.compressed != that.compressed)
+        return false;
+    }
+
+    boolean this_present_creatingParentsIfNeeded = true;
+    boolean that_present_creatingParentsIfNeeded = true;
+    if (this_present_creatingParentsIfNeeded || that_present_creatingParentsIfNeeded) {
+      if (!(this_present_creatingParentsIfNeeded && that_present_creatingParentsIfNeeded))
+        return false;
+      if (this.creatingParentsIfNeeded != that.creatingParentsIfNeeded)
+        return false;
+    }
+
+    boolean this_present_withProtection = true;
+    boolean that_present_withProtection = true;
+    if (this_present_withProtection || that_present_withProtection) {
+      if (!(this_present_withProtection && that_present_withProtection))
+        return false;
+      if (this.withProtection != that.withProtection)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(CreateSpec other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetPath()).compareTo(other.isSetPath());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPath()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.path, other.path);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetData()).compareTo(other.isSetData());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetData()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.data, other.data);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMode()).compareTo(other.isSetMode());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMode()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.mode, other.mode);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDoAsync()).compareTo(other.isSetDoAsync());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDoAsync()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.doAsync, other.doAsync);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCompressed()).compareTo(other.isSetCompressed());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCompressed()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.compressed, other.compressed);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCreatingParentsIfNeeded()).compareTo(other.isSetCreatingParentsIfNeeded());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCreatingParentsIfNeeded()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creatingParentsIfNeeded, other.creatingParentsIfNeeded);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetWithProtection()).compareTo(other.isSetWithProtection());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetWithProtection()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.withProtection, other.withProtection);
+      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("CreateSpec(");
+    boolean first = true;
+
+    sb.append("path:");
+    if (this.path == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.path);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("data:");
+    if (this.data == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.data);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("mode:");
+    if (this.mode == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.mode);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("doAsync:");
+    sb.append(this.doAsync);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("compressed:");
+    sb.append(this.compressed);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("creatingParentsIfNeeded:");
+    sb.append(this.creatingParentsIfNeeded);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("withProtection:");
+    sb.append(this.withProtection);
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class CreateSpecStandardSchemeFactory implements SchemeFactory {
+    public CreateSpecStandardScheme getScheme() {
+      return new CreateSpecStandardScheme();
+    }
+  }
+
+  private static class CreateSpecStandardScheme extends StandardScheme<CreateSpec> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, CreateSpec 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: // PATH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.path = iprot.readString();
+              struct.setPathIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // DATA
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.data = iprot.readString();
+              struct.setDataIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // MODE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.mode = CreateMode.findByValue(iprot.readI32());
+              struct.setModeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // DO_ASYNC
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.doAsync = iprot.readBool();
+              struct.setDoAsyncIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // COMPRESSED
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.compressed = iprot.readBool();
+              struct.setCompressedIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // CREATING_PARENTS_IF_NEEDED
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.creatingParentsIfNeeded = iprot.readBool();
+              struct.setCreatingParentsIfNeededIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // WITH_PROTECTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.withProtection = iprot.readBool();
+              struct.setWithProtectionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, CreateSpec struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.path != null) {
+        oprot.writeFieldBegin(PATH_FIELD_DESC);
+        oprot.writeString(struct.path);
+        oprot.writeFieldEnd();
+      }
+      if (struct.data != null) {
+        oprot.writeFieldBegin(DATA_FIELD_DESC);
+        oprot.writeString(struct.data);
+        oprot.writeFieldEnd();
+      }
+      if (struct.mode != null) {
+        oprot.writeFieldBegin(MODE_FIELD_DESC);
+        oprot.writeI32(struct.mode.getValue());
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(DO_ASYNC_FIELD_DESC);
+      oprot.writeBool(struct.doAsync);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(COMPRESSED_FIELD_DESC);
+      oprot.writeBool(struct.compressed);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(CREATING_PARENTS_IF_NEEDED_FIELD_DESC);
+      oprot.writeBool(struct.creatingParentsIfNeeded);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(WITH_PROTECTION_FIELD_DESC);
+      oprot.writeBool(struct.withProtection);
+      oprot.writeFieldEnd();
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class CreateSpecTupleSchemeFactory implements SchemeFactory {
+    public CreateSpecTupleScheme getScheme() {
+      return new CreateSpecTupleScheme();
+    }
+  }
+
+  private static class CreateSpecTupleScheme extends TupleScheme<CreateSpec> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, CreateSpec struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetPath()) {
+        optionals.set(0);
+      }
+      if (struct.isSetData()) {
+        optionals.set(1);
+      }
+      if (struct.isSetMode()) {
+        optionals.set(2);
+      }
+      if (struct.isSetDoAsync()) {
+        optionals.set(3);
+      }
+      if (struct.isSetCompressed()) {
+        optionals.set(4);
+      }
+      if (struct.isSetCreatingParentsIfNeeded()) {
+        optionals.set(5);
+      }
+      if (struct.isSetWithProtection()) {
+        optionals.set(6);
+      }
+      oprot.writeBitSet(optionals, 7);
+      if (struct.isSetPath()) {
+        oprot.writeString(struct.path);
+      }
+      if (struct.isSetData()) {
+        oprot.writeString(struct.data);
+      }
+      if (struct.isSetMode()) {
+        oprot.writeI32(struct.mode.getValue());
+      }
+      if (struct.isSetDoAsync()) {
+        oprot.writeBool(struct.doAsync);
+      }
+      if (struct.isSetCompressed()) {
+        oprot.writeBool(struct.compressed);
+      }
+      if (struct.isSetCreatingParentsIfNeeded()) {
+        oprot.writeBool(struct.creatingParentsIfNeeded);
+      }
+      if (struct.isSetWithProtection()) {
+        oprot.writeBool(struct.withProtection);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, CreateSpec struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(7);
+      if (incoming.get(0)) {
+        struct.path = iprot.readString();
+        struct.setPathIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.data = iprot.readString();
+        struct.setDataIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.mode = CreateMode.findByValue(iprot.readI32());
+        struct.setModeIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.doAsync = iprot.readBool();
+        struct.setDoAsyncIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.compressed = iprot.readBool();
+        struct.setCompressedIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.creatingParentsIfNeeded = iprot.readBool();
+        struct.setCreatingParentsIfNeededIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.withProtection = iprot.readBool();
+        struct.setWithProtectionIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/curator/blob/5fe11f80/curator-x-rpc/src/test/java/org/apache/curator/generated/CuratorEvent.java
----------------------------------------------------------------------
diff --git a/curator-x-rpc/src/test/java/org/apache/curator/generated/CuratorEvent.java b/curator-x-rpc/src/test/java/org/apache/curator/generated/CuratorEvent.java
new file mode 100644
index 0000000..41e57dc
--- /dev/null
+++ b/curator-x-rpc/src/test/java/org/apache/curator/generated/CuratorEvent.java
@@ -0,0 +1,1531 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.curator.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 org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class CuratorEvent implements org.apache.thrift.TBase<CuratorEvent, CuratorEvent._Fields>, java.io.Serializable, Cloneable, Comparable<CuratorEvent> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CuratorEvent");
+
+  private static final org.apache.thrift.protocol.TField PROJECTION_FIELD_DESC = new org.apache.thrift.protocol.TField("projection", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+  private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField RESULT_CODE_FIELD_DESC = new org.apache.thrift.protocol.TField("resultCode", org.apache.thrift.protocol.TType.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("path", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("context", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField STAT_FIELD_DESC = new org.apache.thrift.protocol.TField("stat", org.apache.thrift.protocol.TType.STRUCT, (short)6);
+  private static final org.apache.thrift.protocol.TField DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("data", org.apache.thrift.protocol.TType.STRING, (short)7);
+  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)8);
+  private static final org.apache.thrift.protocol.TField CHILDREN_FIELD_DESC = new org.apache.thrift.protocol.TField("children", org.apache.thrift.protocol.TType.LIST, (short)9);
+  private static final org.apache.thrift.protocol.TField ACL_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("aclList", org.apache.thrift.protocol.TType.LIST, (short)10);
+  private static final org.apache.thrift.protocol.TField WATCHED_EVENT_FIELD_DESC = new org.apache.thrift.protocol.TField("watchedEvent", org.apache.thrift.protocol.TType.STRUCT, (short)11);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new CuratorEventStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new CuratorEventTupleSchemeFactory());
+  }
+
+  public CuratorProjection projection; // required
+  /**
+   * 
+   * @see CuratorEventType
+   */
+  public CuratorEventType type; // required
+  public int resultCode; // required
+  public String path; // required
+  public String context; // required
+  public Stat stat; // required
+  public ByteBuffer data; // required
+  public String name; // required
+  public List<String> children; // required
+  public List<Acl> aclList; // required
+  public WatchedEvent watchedEvent; // 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 {
+    PROJECTION((short)1, "projection"),
+    /**
+     * 
+     * @see CuratorEventType
+     */
+    TYPE((short)2, "type"),
+    RESULT_CODE((short)3, "resultCode"),
+    PATH((short)4, "path"),
+    CONTEXT((short)5, "context"),
+    STAT((short)6, "stat"),
+    DATA((short)7, "data"),
+    NAME((short)8, "name"),
+    CHILDREN((short)9, "children"),
+    ACL_LIST((short)10, "aclList"),
+    WATCHED_EVENT((short)11, "watchedEvent");
+
+    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: // PROJECTION
+          return PROJECTION;
+        case 2: // TYPE
+          return TYPE;
+        case 3: // RESULT_CODE
+          return RESULT_CODE;
+        case 4: // PATH
+          return PATH;
+        case 5: // CONTEXT
+          return CONTEXT;
+        case 6: // STAT
+          return STAT;
+        case 7: // DATA
+          return DATA;
+        case 8: // NAME
+          return NAME;
+        case 9: // CHILDREN
+          return CHILDREN;
+        case 10: // ACL_LIST
+          return ACL_LIST;
+        case 11: // WATCHED_EVENT
+          return WATCHED_EVENT;
+        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 __RESULTCODE_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  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.PROJECTION, new org.apache.thrift.meta_data.FieldMetaData("projection", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CuratorProjection.class)));
+    tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, CuratorEventType.class)));
+    tmpMap.put(_Fields.RESULT_CODE, new org.apache.thrift.meta_data.FieldMetaData("resultCode", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.PATH, new org.apache.thrift.meta_data.FieldMetaData("path", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("context", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.STAT, new org.apache.thrift.meta_data.FieldMetaData("stat", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Stat.class)));
+    tmpMap.put(_Fields.DATA, new org.apache.thrift.meta_data.FieldMetaData("data", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
+    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.CHILDREN, new org.apache.thrift.meta_data.FieldMetaData("children", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.ACL_LIST, new org.apache.thrift.meta_data.FieldMetaData("aclList", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Acl.class))));
+    tmpMap.put(_Fields.WATCHED_EVENT, new org.apache.thrift.meta_data.FieldMetaData("watchedEvent", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WatchedEvent.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(CuratorEvent.class, metaDataMap);
+  }
+
+  public CuratorEvent() {
+  }
+
+  public CuratorEvent(
+    CuratorProjection projection,
+    CuratorEventType type,
+    int resultCode,
+    String path,
+    String context,
+    Stat stat,
+    ByteBuffer data,
+    String name,
+    List<String> children,
+    List<Acl> aclList,
+    WatchedEvent watchedEvent)
+  {
+    this();
+    this.projection = projection;
+    this.type = type;
+    this.resultCode = resultCode;
+    setResultCodeIsSet(true);
+    this.path = path;
+    this.context = context;
+    this.stat = stat;
+    this.data = data;
+    this.name = name;
+    this.children = children;
+    this.aclList = aclList;
+    this.watchedEvent = watchedEvent;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public CuratorEvent(CuratorEvent other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetProjection()) {
+      this.projection = new CuratorProjection(other.projection);
+    }
+    if (other.isSetType()) {
+      this.type = other.type;
+    }
+    this.resultCode = other.resultCode;
+    if (other.isSetPath()) {
+      this.path = other.path;
+    }
+    if (other.isSetContext()) {
+      this.context = other.context;
+    }
+    if (other.isSetStat()) {
+      this.stat = new Stat(other.stat);
+    }
+    if (other.isSetData()) {
+      this.data = org.apache.thrift.TBaseHelper.copyBinary(other.data);
+;
+    }
+    if (other.isSetName()) {
+      this.name = other.name;
+    }
+    if (other.isSetChildren()) {
+      List<String> __this__children = new ArrayList<String>(other.children);
+      this.children = __this__children;
+    }
+    if (other.isSetAclList()) {
+      List<Acl> __this__aclList = new ArrayList<Acl>(other.aclList.size());
+      for (Acl other_element : other.aclList) {
+        __this__aclList.add(new Acl(other_element));
+      }
+      this.aclList = __this__aclList;
+    }
+    if (other.isSetWatchedEvent()) {
+      this.watchedEvent = new WatchedEvent(other.watchedEvent);
+    }
+  }
+
+  public CuratorEvent deepCopy() {
+    return new CuratorEvent(this);
+  }
+
+  @Override
+  public void clear() {
+    this.projection = null;
+    this.type = null;
+    setResultCodeIsSet(false);
+    this.resultCode = 0;
+    this.path = null;
+    this.context = null;
+    this.stat = null;
+    this.data = null;
+    this.name = null;
+    this.children = null;
+    this.aclList = null;
+    this.watchedEvent = null;
+  }
+
+  public CuratorProjection getProjection() {
+    return this.projection;
+  }
+
+  public CuratorEvent setProjection(CuratorProjection projection) {
+    this.projection = projection;
+    return this;
+  }
+
+  public void unsetProjection() {
+    this.projection = null;
+  }
+
+  /** Returns true if field projection is set (has been assigned a value) and false otherwise */
+  public boolean isSetProjection() {
+    return this.projection != null;
+  }
+
+  public void setProjectionIsSet(boolean value) {
+    if (!value) {
+      this.projection = null;
+    }
+  }
+
+  /**
+   * 
+   * @see CuratorEventType
+   */
+  public CuratorEventType getType() {
+    return this.type;
+  }
+
+  /**
+   * 
+   * @see CuratorEventType
+   */
+  public CuratorEvent setType(CuratorEventType type) {
+    this.type = type;
+    return this;
+  }
+
+  public void unsetType() {
+    this.type = null;
+  }
+
+  /** Returns true if field type is set (has been assigned a value) and false otherwise */
+  public boolean isSetType() {
+    return this.type != null;
+  }
+
+  public void setTypeIsSet(boolean value) {
+    if (!value) {
+      this.type = null;
+    }
+  }
+
+  public int getResultCode() {
+    return this.resultCode;
+  }
+
+  public CuratorEvent setResultCode(int resultCode) {
+    this.resultCode = resultCode;
+    setResultCodeIsSet(true);
+    return this;
+  }
+
+  public void unsetResultCode() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __RESULTCODE_ISSET_ID);
+  }
+
+  /** Returns true if field resultCode is set (has been assigned a value) and false otherwise */
+  public boolean isSetResultCode() {
+    return EncodingUtils.testBit(__isset_bitfield, __RESULTCODE_ISSET_ID);
+  }
+
+  public void setResultCodeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __RESULTCODE_ISSET_ID, value);
+  }
+
+  public String getPath() {
+    return this.path;
+  }
+
+  public CuratorEvent setPath(String path) {
+    this.path = path;
+    return this;
+  }
+
+  public void unsetPath() {
+    this.path = null;
+  }
+
+  /** Returns true if field path is set (has been assigned a value) and false otherwise */
+  public boolean isSetPath() {
+    return this.path != null;
+  }
+
+  public void setPathIsSet(boolean value) {
+    if (!value) {
+      this.path = null;
+    }
+  }
+
+  public String getContext() {
+    return this.context;
+  }
+
+  public CuratorEvent setContext(String context) {
+    this.context = context;
+    return this;
+  }
+
+  public void unsetContext() {
+    this.context = null;
+  }
+
+  /** Returns true if field context is set (has been assigned a value) and false otherwise */
+  public boolean isSetContext() {
+    return this.context != null;
+  }
+
+  public void setContextIsSet(boolean value) {
+    if (!value) {
+      this.context = null;
+    }
+  }
+
+  public Stat getStat() {
+    return this.stat;
+  }
+
+  public CuratorEvent setStat(Stat stat) {
+    this.stat = stat;
+    return this;
+  }
+
+  public void unsetStat() {
+    this.stat = null;
+  }
+
+  /** Returns true if field stat is set (has been assigned a value) and false otherwise */
+  public boolean isSetStat() {
+    return this.stat != null;
+  }
+
+  public void setStatIsSet(boolean value) {
+    if (!value) {
+      this.stat = null;
+    }
+  }
+
+  public byte[] getData() {
+    setData(org.apache.thrift.TBaseHelper.rightSize(data));
+    return data == null ? null : data.array();
+  }
+
+  public ByteBuffer bufferForData() {
+    return data;
+  }
+
+  public CuratorEvent setData(byte[] data) {
+    setData(data == null ? (ByteBuffer)null : ByteBuffer.wrap(data));
+    return this;
+  }
+
+  public CuratorEvent setData(ByteBuffer data) {
+    this.data = data;
+    return this;
+  }
+
+  public void unsetData() {
+    this.data = null;
+  }
+
+  /** Returns true if field data is set (has been assigned a value) and false otherwise */
+  public boolean isSetData() {
+    return this.data != null;
+  }
+
+  public void setDataIsSet(boolean value) {
+    if (!value) {
+      this.data = null;
+    }
+  }
+
+  public String getName() {
+    return this.name;
+  }
+
+  public CuratorEvent setName(String name) {
+    this.name = name;
+    return this;
+  }
+
+  public void unsetName() {
+    this.name = null;
+  }
+
+  /** Returns true if field name is set (has been assigned a value) and false otherwise */
+  public boolean isSetName() {
+    return this.name != null;
+  }
+
+  public void setNameIsSet(boolean value) {
+    if (!value) {
+      this.name = null;
+    }
+  }
+
+  public int getChildrenSize() {
+    return (this.children == null) ? 0 : this.children.size();
+  }
+
+  public java.util.Iterator<String> getChildrenIterator() {
+    return (this.children == null) ? null : this.children.iterator();
+  }
+
+  public void addToChildren(String elem) {
+    if (this.children == null) {
+      this.children = new ArrayList<String>();
+    }
+    this.children.add(elem);
+  }
+
+  public List<String> getChildren() {
+    return this.children;
+  }
+
+  public CuratorEvent setChildren(List<String> children) {
+    this.children = children;
+    return this;
+  }
+
+  public void unsetChildren() {
+    this.children = null;
+  }
+
+  /** Returns true if field children is set (has been assigned a value) and false otherwise */
+  public boolean isSetChildren() {
+    return this.children != null;
+  }
+
+  public void setChildrenIsSet(boolean value) {
+    if (!value) {
+      this.children = null;
+    }
+  }
+
+  public int getAclListSize() {
+    return (this.aclList == null) ? 0 : this.aclList.size();
+  }
+
+  public java.util.Iterator<Acl> getAclListIterator() {
+    return (this.aclList == null) ? null : this.aclList.iterator();
+  }
+
+  public void addToAclList(Acl elem) {
+    if (this.aclList == null) {
+      this.aclList = new ArrayList<Acl>();
+    }
+    this.aclList.add(elem);
+  }
+
+  public List<Acl> getAclList() {
+    return this.aclList;
+  }
+
+  public CuratorEvent setAclList(List<Acl> aclList) {
+    this.aclList = aclList;
+    return this;
+  }
+
+  public void unsetAclList() {
+    this.aclList = null;
+  }
+
+  /** Returns true if field aclList is set (has been assigned a value) and false otherwise */
+  public boolean isSetAclList() {
+    return this.aclList != null;
+  }
+
+  public void setAclListIsSet(boolean value) {
+    if (!value) {
+      this.aclList = null;
+    }
+  }
+
+  public WatchedEvent getWatchedEvent() {
+    return this.watchedEvent;
+  }
+
+  public CuratorEvent setWatchedEvent(WatchedEvent watchedEvent) {
+    this.watchedEvent = watchedEvent;
+    return this;
+  }
+
+  public void unsetWatchedEvent() {
+    this.watchedEvent = null;
+  }
+
+  /** Returns true if field watchedEvent is set (has been assigned a value) and false otherwise */
+  public boolean isSetWatchedEvent() {
+    return this.watchedEvent != null;
+  }
+
+  public void setWatchedEventIsSet(boolean value) {
+    if (!value) {
+      this.watchedEvent = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case PROJECTION:
+      if (value == null) {
+        unsetProjection();
+      } else {
+        setProjection((CuratorProjection)value);
+      }
+      break;
+
+    case TYPE:
+      if (value == null) {
+        unsetType();
+      } else {
+        setType((CuratorEventType)value);
+      }
+      break;
+
+    case RESULT_CODE:
+      if (value == null) {
+        unsetResultCode();
+      } else {
+        setResultCode((Integer)value);
+      }
+      break;
+
+    case PATH:
+      if (value == null) {
+        unsetPath();
+      } else {
+        setPath((String)value);
+      }
+      break;
+
+    case CONTEXT:
+      if (value == null) {
+        unsetContext();
+      } else {
+        setContext((String)value);
+      }
+      break;
+
+    case STAT:
+      if (value == null) {
+        unsetStat();
+      } else {
+        setStat((Stat)value);
+      }
+      break;
+
+    case DATA:
+      if (value == null) {
+        unsetData();
+      } else {
+        setData((ByteBuffer)value);
+      }
+      break;
+
+    case NAME:
+      if (value == null) {
+        unsetName();
+      } else {
+        setName((String)value);
+      }
+      break;
+
+    case CHILDREN:
+      if (value == null) {
+        unsetChildren();
+      } else {
+        setChildren((List<String>)value);
+      }
+      break;
+
+    case ACL_LIST:
+      if (value == null) {
+        unsetAclList();
+      } else {
+        setAclList((List<Acl>)value);
+      }
+      break;
+
+    case WATCHED_EVENT:
+      if (value == null) {
+        unsetWatchedEvent();
+      } else {
+        setWatchedEvent((WatchedEvent)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case PROJECTION:
+      return getProjection();
+
+    case TYPE:
+      return getType();
+
+    case RESULT_CODE:
+      return Integer.valueOf(getResultCode());
+
+    case PATH:
+      return getPath();
+
+    case CONTEXT:
+      return getContext();
+
+    case STAT:
+      return getStat();
+
+    case DATA:
+      return getData();
+
+    case NAME:
+      return getName();
+
+    case CHILDREN:
+      return getChildren();
+
+    case ACL_LIST:
+      return getAclList();
+
+    case WATCHED_EVENT:
+      return getWatchedEvent();
+
+    }
+    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 PROJECTION:
+      return isSetProjection();
+    case TYPE:
+      return isSetType();
+    case RESULT_CODE:
+      return isSetResultCode();
+    case PATH:
+      return isSetPath();
+    case CONTEXT:
+      return isSetContext();
+    case STAT:
+      return isSetStat();
+    case DATA:
+      return isSetData();
+    case NAME:
+      return isSetName();
+    case CHILDREN:
+      return isSetChildren();
+    case ACL_LIST:
+      return isSetAclList();
+    case WATCHED_EVENT:
+      return isSetWatchedEvent();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof CuratorEvent)
+      return this.equals((CuratorEvent)that);
+    return false;
+  }
+
+  public boolean equals(CuratorEvent that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_projection = true && this.isSetProjection();
+    boolean that_present_projection = true && that.isSetProjection();
+    if (this_present_projection || that_present_projection) {
+      if (!(this_present_projection && that_present_projection))
+        return false;
+      if (!this.projection.equals(that.projection))
+        return false;
+    }
+
+    boolean this_present_type = true && this.isSetType();
+    boolean that_present_type = true && that.isSetType();
+    if (this_present_type || that_present_type) {
+      if (!(this_present_type && that_present_type))
+        return false;
+      if (!this.type.equals(that.type))
+        return false;
+    }
+
+    boolean this_present_resultCode = true;
+    boolean that_present_resultCode = true;
+    if (this_present_resultCode || that_present_resultCode) {
+      if (!(this_present_resultCode && that_present_resultCode))
+        return false;
+      if (this.resultCode != that.resultCode)
+        return false;
+    }
+
+    boolean this_present_path = true && this.isSetPath();
+    boolean that_present_path = true && that.isSetPath();
+    if (this_present_path || that_present_path) {
+      if (!(this_present_path && that_present_path))
+        return false;
+      if (!this.path.equals(that.path))
+        return false;
+    }
+
+    boolean this_present_context = true && this.isSetContext();
+    boolean that_present_context = true && that.isSetContext();
+    if (this_present_context || that_present_context) {
+      if (!(this_present_context && that_present_context))
+        return false;
+      if (!this.context.equals(that.context))
+        return false;
+    }
+
+    boolean this_present_stat = true && this.isSetStat();
+    boolean that_present_stat = true && that.isSetStat();
+    if (this_present_stat || that_present_stat) {
+      if (!(this_present_stat && that_present_stat))
+        return false;
+      if (!this.stat.equals(that.stat))
+        return false;
+    }
+
+    boolean this_present_data = true && this.isSetData();
+    boolean that_present_data = true && that.isSetData();
+    if (this_present_data || that_present_data) {
+      if (!(this_present_data && that_present_data))
+        return false;
+      if (!this.data.equals(that.data))
+        return false;
+    }
+
+    boolean this_present_name = true && this.isSetName();
+    boolean that_present_name = true && that.isSetName();
+    if (this_present_name || that_present_name) {
+      if (!(this_present_name && that_present_name))
+        return false;
+      if (!this.name.equals(that.name))
+        return false;
+    }
+
+    boolean this_present_children = true && this.isSetChildren();
+    boolean that_present_children = true && that.isSetChildren();
+    if (this_present_children || that_present_children) {
+      if (!(this_present_children && that_present_children))
+        return false;
+      if (!this.children.equals(that.children))
+        return false;
+    }
+
+    boolean this_present_aclList = true && this.isSetAclList();
+    boolean that_present_aclList = true && that.isSetAclList();
+    if (this_present_aclList || that_present_aclList) {
+      if (!(this_present_aclList && that_present_aclList))
+        return false;
+      if (!this.aclList.equals(that.aclList))
+        return false;
+    }
+
+    boolean this_present_watchedEvent = true && this.isSetWatchedEvent();
+    boolean that_present_watchedEvent = true && that.isSetWatchedEvent();
+    if (this_present_watchedEvent || that_present_watchedEvent) {
+      if (!(this_present_watchedEvent && that_present_watchedEvent))
+        return false;
+      if (!this.watchedEvent.equals(that.watchedEvent))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(CuratorEvent other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetProjection()).compareTo(other.isSetProjection());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProjection()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.projection, other.projection);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetType()).compareTo(other.isSetType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, other.type);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResultCode()).compareTo(other.isSetResultCode());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResultCode()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resultCode, other.resultCode);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPath()).compareTo(other.isSetPath());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPath()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.path, other.path);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetContext()).compareTo(other.isSetContext());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetContext()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.context, other.context);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStat()).compareTo(other.isSetStat());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStat()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.stat, other.stat);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetData()).compareTo(other.isSetData());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetData()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.data, other.data);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetChildren()).compareTo(other.isSetChildren());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetChildren()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.children, other.children);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAclList()).compareTo(other.isSetAclList());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAclList()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.aclList, other.aclList);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetWatchedEvent()).compareTo(other.isSetWatchedEvent());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetWatchedEvent()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.watchedEvent, other.watchedEvent);
+      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("CuratorEvent(");
+    boolean first = true;
+
+    sb.append("projection:");
+    if (this.projection == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.projection);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("type:");
+    if (this.type == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.type);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("resultCode:");
+    sb.append(this.resultCode);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("path:");
+    if (this.path == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.path);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("context:");
+    if (this.context == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.context);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("stat:");
+    if (this.stat == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.stat);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("data:");
+    if (this.data == null) {
+      sb.append("null");
+    } else {
+      org.apache.thrift.TBaseHelper.toString(this.data, sb);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("name:");
+    if (this.name == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.name);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("children:");
+    if (this.children == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.children);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("aclList:");
+    if (this.aclList == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.aclList);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("watchedEvent:");
+    if (this.watchedEvent == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.watchedEvent);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // check for sub-struct validity
+    if (projection != null) {
+      projection.validate();
+    }
+    if (stat != null) {
+      stat.validate();
+    }
+    if (watchedEvent != null) {
+      watchedEvent.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 {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class CuratorEventStandardSchemeFactory implements SchemeFactory {
+    public CuratorEventStandardScheme getScheme() {
+      return new CuratorEventStandardScheme();
+    }
+  }
+
+  private static class CuratorEventStandardScheme extends StandardScheme<CuratorEvent> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, CuratorEvent 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: // PROJECTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.projection = new CuratorProjection();
+              struct.projection.read(iprot);
+              struct.setProjectionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.type = CuratorEventType.findByValue(iprot.readI32());
+              struct.setTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // RESULT_CODE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.resultCode = iprot.readI32();
+              struct.setResultCodeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // PATH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.path = iprot.readString();
+              struct.setPathIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // CONTEXT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.context = iprot.readString();
+              struct.setContextIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // STAT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.stat = new Stat();
+              struct.stat.read(iprot);
+              struct.setStatIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // DATA
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.data = iprot.readBinary();
+              struct.setDataIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.name = iprot.readString();
+              struct.setNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // CHILDREN
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.children = new ArrayList<String>(_list0.size);
+                for (int _i1 = 0; _i1 < _list0.size; ++_i1)
+                {
+                  String _elem2;
+                  _elem2 = iprot.readString();
+                  struct.children.add(_elem2);
+                }
+                iprot.readListEnd();
+              }
+              struct.setChildrenIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // ACL_LIST
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+                struct.aclList = new ArrayList<Acl>(_list3.size);
+                for (int _i4 = 0; _i4 < _list3.size; ++_i4)
+                {
+                  Acl _elem5;
+                  _elem5 = new Acl();
+                  _elem5.read(iprot);
+                  struct.aclList.add(_elem5);
+                }
+                iprot.readListEnd();
+              }
+              struct.setAclListIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // WATCHED_EVENT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.watchedEvent = new WatchedEvent();
+              struct.watchedEvent.read(iprot);
+              struct.setWatchedEventIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, CuratorEvent struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.projection != null) {
+        oprot.writeFieldBegin(PROJECTION_FIELD_DESC);
+        struct.projection.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      if (struct.type != null) {
+        oprot.writeFieldBegin(TYPE_FIELD_DESC);
+        oprot.writeI32(struct.type.getValue());
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(RESULT_CODE_FIELD_DESC);
+      oprot.writeI32(struct.resultCode);
+      oprot.writeFieldEnd();
+      if (struct.path != null) {
+        oprot.writeFieldBegin(PATH_FIELD_DESC);
+        oprot.writeString(struct.path);
+        oprot.writeFieldEnd();
+      }
+      if (struct.context != null) {
+        oprot.writeFieldBegin(CONTEXT_FIELD_DESC);
+        oprot.writeString(struct.context);
+        oprot.writeFieldEnd();
+      }
+      if (struct.stat != null) {
+        oprot.writeFieldBegin(STAT_FIELD_DESC);
+        struct.stat.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      if (struct.data != null) {
+        oprot.writeFieldBegin(DATA_FIELD_DESC);
+        oprot.writeBinary(struct.data);
+        oprot.writeFieldEnd();
+      }
+      if (struct.name != null) {
+        oprot.writeFieldBegin(NAME_FIELD_DESC);
+        oprot.writeString(struct.name);
+        oprot.writeFieldEnd();
+      }
+      if (struct.children != null) {
+        oprot.writeFieldBegin(CHILDREN_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.children.size()));
+          for (String _iter6 : struct.children)
+          {
+            oprot.writeString(_iter6);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      if (struct.aclList != null) {
+        oprot.writeFieldBegin(ACL_LIST_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.aclList.size()));
+          for (Acl _iter7 : struct.aclList)
+          {
+            _iter7.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      if (struct.watchedEvent != null) {
+        oprot.writeFieldBegin(WATCHED_EVENT_FIELD_DESC);
+        struct.watchedEvent.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class CuratorEventTupleSchemeFactory implements SchemeFactory {
+    public CuratorEventTupleScheme getScheme() {
+      return new CuratorEventTupleScheme();
+    }
+  }
+
+  private static class CuratorEventTupleScheme extends TupleScheme<CuratorEvent> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, CuratorEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetProjection()) {
+        optionals.set(0);
+      }
+      if (struct.isSetType()) {
+        optionals.set(1);
+      }
+      if (struct.isSetResultCode()) {
+        optionals.set(2);
+      }
+      if (struct.isSetPath()) {
+        optionals.set(3);
+      }
+      if (struct.isSetContext()) {
+        optionals.set(4);
+      }
+      if (struct.isSetStat()) {
+        optionals.set(5);
+      }
+      if (struct.isSetData()) {
+        optionals.set(6);
+      }
+      if (struct.isSetName()) {
+        optionals.set(7);
+      }
+      if (struct.isSetChildren()) {
+        optionals.set(8);
+      }
+      if (struct.isSetAclList()) {
+        optionals.set(9);
+      }
+      if (struct.isSetWatchedEvent()) {
+        optionals.set(10);
+      }
+      oprot.writeBitSet(optionals, 11);
+      if (struct.isSetProjection()) {
+        struct.projection.write(oprot);
+      }
+      if (struct.isSetType()) {
+        oprot.writeI32(struct.type.getValue());
+      }
+      if (struct.isSetResultCode()) {
+        oprot.writeI32(struct.resultCode);
+      }
+      if (struct.isSetPath()) {
+        oprot.writeString(struct.path);
+      }
+      if (struct.isSetContext()) {
+        oprot.writeString(struct.context);
+      }
+      if (struct.isSetStat()) {
+        struct.stat.write(oprot);
+      }
+      if (struct.isSetData()) {
+        oprot.writeBinary(struct.data);
+      }
+      if (struct.isSetName()) {
+        oprot.writeString(struct.name);
+      }
+      if (struct.isSetChildren()) {
+        {
+          oprot.writeI32(struct.children.size());
+          for (String _iter8 : struct.children)
+          {
+            oprot.writeString(_iter8);
+          }
+        }
+      }
+      if (struct.isSetAclList()) {
+        {
+          oprot.writeI32(struct.aclList.size());
+          for (Acl _iter9 : struct.aclList)
+          {
+            _iter9.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetWatchedEvent()) {
+        struct.watchedEvent.write(oprot);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, CuratorEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(11);
+      if (incoming.get(0)) {
+        struct.projection = new CuratorProjection();
+        struct.projection.read(iprot);
+        struct.setProjectionIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.type = CuratorEventType.findByValue(iprot.readI32());
+        struct.setTypeIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.resultCode = iprot.readI32();
+        struct.setResultCodeIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.path = iprot.readString();
+        struct.setPathIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.context = iprot.readString();
+        struct.setContextIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.stat = new Stat();
+        struct.stat.read(iprot);
+        struct.setStatIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.data = iprot.readBinary();
+        struct.setDataIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.name = iprot.readString();
+        struct.setNameIsSet(true);
+      }
+      if (incoming.get(8)) {
+        {
+          org.apache.thrift.protocol.TList _list10 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.children = new ArrayList<String>(_list10.size);
+          for (int _i11 = 0; _i11 < _list10.size; ++_i11)
+          {
+            String _elem12;
+            _elem12 = iprot.readString();
+            struct.children.add(_elem12);
+          }
+        }
+        struct.setChildrenIsSet(true);
+      }
+      if (incoming.get(9)) {
+        {
+          org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.aclList = new ArrayList<Acl>(_list13.size);
+          for (int _i14 = 0; _i14 < _list13.size; ++_i14)
+          {
+            Acl _elem15;
+            _elem15 = new Acl();
+            _elem15.read(iprot);
+            struct.aclList.add(_elem15);
+          }
+        }
+        struct.setAclListIsSet(true);
+      }
+      if (incoming.get(10)) {
+        struct.watchedEvent = new WatchedEvent();
+        struct.watchedEvent.read(iprot);
+        struct.setWatchedEventIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/curator/blob/5fe11f80/curator-x-rpc/src/test/java/org/apache/curator/generated/CuratorEventType.java
----------------------------------------------------------------------
diff --git a/curator-x-rpc/src/test/java/org/apache/curator/generated/CuratorEventType.java b/curator-x-rpc/src/test/java/org/apache/curator/generated/CuratorEventType.java
new file mode 100644
index 0000000..60350fc
--- /dev/null
+++ b/curator-x-rpc/src/test/java/org/apache/curator/generated/CuratorEventType.java
@@ -0,0 +1,72 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.curator.generated;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum CuratorEventType implements org.apache.thrift.TEnum {
+  CREATE(0),
+  DELETE(1),
+  EXISTS(2),
+  GET_DATA(3),
+  SET_DATA(4),
+  CHILDREN(5),
+  SYNC(6),
+  GET_ACL(7),
+  SET_ACL(8),
+  WATCHED(9),
+  CLOSING(10);
+
+  private final int value;
+
+  private CuratorEventType(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static CuratorEventType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return CREATE;
+      case 1:
+        return DELETE;
+      case 2:
+        return EXISTS;
+      case 3:
+        return GET_DATA;
+      case 4:
+        return SET_DATA;
+      case 5:
+        return CHILDREN;
+      case 6:
+        return SYNC;
+      case 7:
+        return GET_ACL;
+      case 8:
+        return SET_ACL;
+      case 9:
+        return WATCHED;
+      case 10:
+        return CLOSING;
+      default:
+        return null;
+    }
+  }
+}