accumulo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ktur...@apache.org
Subject [5/6] ACCUMULO-1000 added conditional mutations to Accumulo
Date Wed, 24 Jul 2013 19:49:24 GMT
http://git-wip-us.apache.org/repos/asf/accumulo/blob/9dc24448/core/src/main/java/org/apache/accumulo/core/data/thrift/TCMResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/data/thrift/TCMResult.java b/core/src/main/java/org/apache/accumulo/core/data/thrift/TCMResult.java
new file mode 100644
index 0000000..fe72fd6
--- /dev/null
+++ b/core/src/main/java/org/apache/accumulo/core/data/thrift/TCMResult.java
@@ -0,0 +1,516 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Autogenerated by Thrift Compiler (0.9.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.accumulo.core.data.thrift;
+
+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 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;
+
+@SuppressWarnings("all") public class TCMResult implements org.apache.thrift.TBase<TCMResult, TCMResult._Fields>, java.io.Serializable, Cloneable {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TCMResult");
+
+  private static final org.apache.thrift.protocol.TField CMID_FIELD_DESC = new org.apache.thrift.protocol.TField("cmid", org.apache.thrift.protocol.TType.I64, (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 Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new TCMResultStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TCMResultTupleSchemeFactory());
+  }
+
+  public long cmid; // required
+  /**
+   * 
+   * @see TCMStatus
+   */
+  public TCMStatus status; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    CMID((short)1, "cmid"),
+    /**
+     * 
+     * @see TCMStatus
+     */
+    STATUS((short)2, "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: // CMID
+          return CMID;
+        case 2: // STATUS
+          return 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 __CMID_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.CMID, new org.apache.thrift.meta_data.FieldMetaData("cmid", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TCMStatus.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TCMResult.class, metaDataMap);
+  }
+
+  public TCMResult() {
+  }
+
+  public TCMResult(
+    long cmid,
+    TCMStatus status)
+  {
+    this();
+    this.cmid = cmid;
+    setCmidIsSet(true);
+    this.status = status;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TCMResult(TCMResult other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.cmid = other.cmid;
+    if (other.isSetStatus()) {
+      this.status = other.status;
+    }
+  }
+
+  public TCMResult deepCopy() {
+    return new TCMResult(this);
+  }
+
+  @Override
+  public void clear() {
+    setCmidIsSet(false);
+    this.cmid = 0;
+    this.status = null;
+  }
+
+  public long getCmid() {
+    return this.cmid;
+  }
+
+  public TCMResult setCmid(long cmid) {
+    this.cmid = cmid;
+    setCmidIsSet(true);
+    return this;
+  }
+
+  public void unsetCmid() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CMID_ISSET_ID);
+  }
+
+  /** Returns true if field cmid is set (has been assigned a value) and false otherwise */
+  public boolean isSetCmid() {
+    return EncodingUtils.testBit(__isset_bitfield, __CMID_ISSET_ID);
+  }
+
+  public void setCmidIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CMID_ISSET_ID, value);
+  }
+
+  /**
+   * 
+   * @see TCMStatus
+   */
+  public TCMStatus getStatus() {
+    return this.status;
+  }
+
+  /**
+   * 
+   * @see TCMStatus
+   */
+  public TCMResult setStatus(TCMStatus status) {
+    this.status = status;
+    return this;
+  }
+
+  public void unsetStatus() {
+    this.status = null;
+  }
+
+  /** Returns true if field status is set (has been assigned a value) and false otherwise */
+  public boolean isSetStatus() {
+    return this.status != null;
+  }
+
+  public void setStatusIsSet(boolean value) {
+    if (!value) {
+      this.status = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case CMID:
+      if (value == null) {
+        unsetCmid();
+      } else {
+        setCmid((Long)value);
+      }
+      break;
+
+    case STATUS:
+      if (value == null) {
+        unsetStatus();
+      } else {
+        setStatus((TCMStatus)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case CMID:
+      return Long.valueOf(getCmid());
+
+    case STATUS:
+      return getStatus();
+
+    }
+    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 CMID:
+      return isSetCmid();
+    case STATUS:
+      return isSetStatus();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TCMResult)
+      return this.equals((TCMResult)that);
+    return false;
+  }
+
+  public boolean equals(TCMResult that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_cmid = true;
+    boolean that_present_cmid = true;
+    if (this_present_cmid || that_present_cmid) {
+      if (!(this_present_cmid && that_present_cmid))
+        return false;
+      if (this.cmid != that.cmid)
+        return false;
+    }
+
+    boolean this_present_status = true && this.isSetStatus();
+    boolean that_present_status = true && that.isSetStatus();
+    if (this_present_status || that_present_status) {
+      if (!(this_present_status && that_present_status))
+        return false;
+      if (!this.status.equals(that.status))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  public int compareTo(TCMResult other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+    TCMResult typedOther = (TCMResult)other;
+
+    lastComparison = Boolean.valueOf(isSetCmid()).compareTo(typedOther.isSetCmid());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCmid()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cmid, typedOther.cmid);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStatus()).compareTo(typedOther.isSetStatus());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStatus()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, typedOther.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 {
+    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("TCMResult(");
+    boolean first = true;
+
+    sb.append("cmid:");
+    sb.append(this.cmid);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("status:");
+    if (this.status == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.status);
+    }
+    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 TCMResultStandardSchemeFactory implements SchemeFactory {
+    public TCMResultStandardScheme getScheme() {
+      return new TCMResultStandardScheme();
+    }
+  }
+
+  private static class TCMResultStandardScheme extends StandardScheme<TCMResult> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TCMResult 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: // CMID
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.cmid = iprot.readI64();
+              struct.setCmidIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // STATUS
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.status = TCMStatus.findByValue(iprot.readI32());
+              struct.setStatusIsSet(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, TCMResult struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(CMID_FIELD_DESC);
+      oprot.writeI64(struct.cmid);
+      oprot.writeFieldEnd();
+      if (struct.status != null) {
+        oprot.writeFieldBegin(STATUS_FIELD_DESC);
+        oprot.writeI32(struct.status.getValue());
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TCMResultTupleSchemeFactory implements SchemeFactory {
+    public TCMResultTupleScheme getScheme() {
+      return new TCMResultTupleScheme();
+    }
+  }
+
+  private static class TCMResultTupleScheme extends TupleScheme<TCMResult> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TCMResult struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetCmid()) {
+        optionals.set(0);
+      }
+      if (struct.isSetStatus()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetCmid()) {
+        oprot.writeI64(struct.cmid);
+      }
+      if (struct.isSetStatus()) {
+        oprot.writeI32(struct.status.getValue());
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TCMResult struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.cmid = iprot.readI64();
+        struct.setCmidIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.status = TCMStatus.findByValue(iprot.readI32());
+        struct.setStatusIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/accumulo/blob/9dc24448/core/src/main/java/org/apache/accumulo/core/data/thrift/TCMStatus.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/data/thrift/TCMStatus.java b/core/src/main/java/org/apache/accumulo/core/data/thrift/TCMStatus.java
new file mode 100644
index 0000000..6ef94d5
--- /dev/null
+++ b/core/src/main/java/org/apache/accumulo/core/data/thrift/TCMStatus.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Autogenerated by Thrift Compiler (0.9.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.accumulo.core.data.thrift;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+@SuppressWarnings("all") public enum TCMStatus implements org.apache.thrift.TEnum {
+  ACCEPTED(0),
+  REJECTED(1),
+  VIOLATED(2),
+  IGNORED(3);
+
+  private final int value;
+
+  private TCMStatus(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 TCMStatus findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return ACCEPTED;
+      case 1:
+        return REJECTED;
+      case 2:
+        return VIOLATED;
+      case 3:
+        return IGNORED;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/accumulo/blob/9dc24448/core/src/main/java/org/apache/accumulo/core/data/thrift/TCondition.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/data/thrift/TCondition.java b/core/src/main/java/org/apache/accumulo/core/data/thrift/TCondition.java
new file mode 100644
index 0000000..40a12be
--- /dev/null
+++ b/core/src/main/java/org/apache/accumulo/core/data/thrift/TCondition.java
@@ -0,0 +1,1049 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Autogenerated by Thrift Compiler (0.9.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.accumulo.core.data.thrift;
+
+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 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;
+
+@SuppressWarnings("all") public class TCondition implements org.apache.thrift.TBase<TCondition, TCondition._Fields>, java.io.Serializable, Cloneable {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TCondition");
+
+  private static final org.apache.thrift.protocol.TField CF_FIELD_DESC = new org.apache.thrift.protocol.TField("cf", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField CQ_FIELD_DESC = new org.apache.thrift.protocol.TField("cq", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField CV_FIELD_DESC = new org.apache.thrift.protocol.TField("cv", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField TS_FIELD_DESC = new org.apache.thrift.protocol.TField("ts", org.apache.thrift.protocol.TType.I64, (short)4);
+  private static final org.apache.thrift.protocol.TField HAS_TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField("hasTimestamp", org.apache.thrift.protocol.TType.BOOL, (short)5);
+  private static final org.apache.thrift.protocol.TField VAL_FIELD_DESC = new org.apache.thrift.protocol.TField("val", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField ITERATORS_FIELD_DESC = new org.apache.thrift.protocol.TField("iterators", org.apache.thrift.protocol.TType.STRING, (short)7);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new TConditionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TConditionTupleSchemeFactory());
+  }
+
+  public ByteBuffer cf; // required
+  public ByteBuffer cq; // required
+  public ByteBuffer cv; // required
+  public long ts; // required
+  public boolean hasTimestamp; // required
+  public ByteBuffer val; // required
+  public ByteBuffer iterators; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    CF((short)1, "cf"),
+    CQ((short)2, "cq"),
+    CV((short)3, "cv"),
+    TS((short)4, "ts"),
+    HAS_TIMESTAMP((short)5, "hasTimestamp"),
+    VAL((short)6, "val"),
+    ITERATORS((short)7, "iterators");
+
+    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: // CF
+          return CF;
+        case 2: // CQ
+          return CQ;
+        case 3: // CV
+          return CV;
+        case 4: // TS
+          return TS;
+        case 5: // HAS_TIMESTAMP
+          return HAS_TIMESTAMP;
+        case 6: // VAL
+          return VAL;
+        case 7: // ITERATORS
+          return ITERATORS;
+        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 __TS_ISSET_ID = 0;
+  private static final int __HASTIMESTAMP_ISSET_ID = 1;
+  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.CF, new org.apache.thrift.meta_data.FieldMetaData("cf", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
+    tmpMap.put(_Fields.CQ, new org.apache.thrift.meta_data.FieldMetaData("cq", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
+    tmpMap.put(_Fields.CV, new org.apache.thrift.meta_data.FieldMetaData("cv", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
+    tmpMap.put(_Fields.TS, new org.apache.thrift.meta_data.FieldMetaData("ts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.HAS_TIMESTAMP, new org.apache.thrift.meta_data.FieldMetaData("hasTimestamp", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.VAL, new org.apache.thrift.meta_data.FieldMetaData("val", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
+    tmpMap.put(_Fields.ITERATORS, new org.apache.thrift.meta_data.FieldMetaData("iterators", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TCondition.class, metaDataMap);
+  }
+
+  public TCondition() {
+  }
+
+  public TCondition(
+    ByteBuffer cf,
+    ByteBuffer cq,
+    ByteBuffer cv,
+    long ts,
+    boolean hasTimestamp,
+    ByteBuffer val,
+    ByteBuffer iterators)
+  {
+    this();
+    this.cf = cf;
+    this.cq = cq;
+    this.cv = cv;
+    this.ts = ts;
+    setTsIsSet(true);
+    this.hasTimestamp = hasTimestamp;
+    setHasTimestampIsSet(true);
+    this.val = val;
+    this.iterators = iterators;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TCondition(TCondition other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetCf()) {
+      this.cf = org.apache.thrift.TBaseHelper.copyBinary(other.cf);
+;
+    }
+    if (other.isSetCq()) {
+      this.cq = org.apache.thrift.TBaseHelper.copyBinary(other.cq);
+;
+    }
+    if (other.isSetCv()) {
+      this.cv = org.apache.thrift.TBaseHelper.copyBinary(other.cv);
+;
+    }
+    this.ts = other.ts;
+    this.hasTimestamp = other.hasTimestamp;
+    if (other.isSetVal()) {
+      this.val = org.apache.thrift.TBaseHelper.copyBinary(other.val);
+;
+    }
+    if (other.isSetIterators()) {
+      this.iterators = org.apache.thrift.TBaseHelper.copyBinary(other.iterators);
+;
+    }
+  }
+
+  public TCondition deepCopy() {
+    return new TCondition(this);
+  }
+
+  @Override
+  public void clear() {
+    this.cf = null;
+    this.cq = null;
+    this.cv = null;
+    setTsIsSet(false);
+    this.ts = 0;
+    setHasTimestampIsSet(false);
+    this.hasTimestamp = false;
+    this.val = null;
+    this.iterators = null;
+  }
+
+  public byte[] getCf() {
+    setCf(org.apache.thrift.TBaseHelper.rightSize(cf));
+    return cf == null ? null : cf.array();
+  }
+
+  public ByteBuffer bufferForCf() {
+    return cf;
+  }
+
+  public TCondition setCf(byte[] cf) {
+    setCf(cf == null ? (ByteBuffer)null : ByteBuffer.wrap(cf));
+    return this;
+  }
+
+  public TCondition setCf(ByteBuffer cf) {
+    this.cf = cf;
+    return this;
+  }
+
+  public void unsetCf() {
+    this.cf = null;
+  }
+
+  /** Returns true if field cf is set (has been assigned a value) and false otherwise */
+  public boolean isSetCf() {
+    return this.cf != null;
+  }
+
+  public void setCfIsSet(boolean value) {
+    if (!value) {
+      this.cf = null;
+    }
+  }
+
+  public byte[] getCq() {
+    setCq(org.apache.thrift.TBaseHelper.rightSize(cq));
+    return cq == null ? null : cq.array();
+  }
+
+  public ByteBuffer bufferForCq() {
+    return cq;
+  }
+
+  public TCondition setCq(byte[] cq) {
+    setCq(cq == null ? (ByteBuffer)null : ByteBuffer.wrap(cq));
+    return this;
+  }
+
+  public TCondition setCq(ByteBuffer cq) {
+    this.cq = cq;
+    return this;
+  }
+
+  public void unsetCq() {
+    this.cq = null;
+  }
+
+  /** Returns true if field cq is set (has been assigned a value) and false otherwise */
+  public boolean isSetCq() {
+    return this.cq != null;
+  }
+
+  public void setCqIsSet(boolean value) {
+    if (!value) {
+      this.cq = null;
+    }
+  }
+
+  public byte[] getCv() {
+    setCv(org.apache.thrift.TBaseHelper.rightSize(cv));
+    return cv == null ? null : cv.array();
+  }
+
+  public ByteBuffer bufferForCv() {
+    return cv;
+  }
+
+  public TCondition setCv(byte[] cv) {
+    setCv(cv == null ? (ByteBuffer)null : ByteBuffer.wrap(cv));
+    return this;
+  }
+
+  public TCondition setCv(ByteBuffer cv) {
+    this.cv = cv;
+    return this;
+  }
+
+  public void unsetCv() {
+    this.cv = null;
+  }
+
+  /** Returns true if field cv is set (has been assigned a value) and false otherwise */
+  public boolean isSetCv() {
+    return this.cv != null;
+  }
+
+  public void setCvIsSet(boolean value) {
+    if (!value) {
+      this.cv = null;
+    }
+  }
+
+  public long getTs() {
+    return this.ts;
+  }
+
+  public TCondition setTs(long ts) {
+    this.ts = ts;
+    setTsIsSet(true);
+    return this;
+  }
+
+  public void unsetTs() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TS_ISSET_ID);
+  }
+
+  /** Returns true if field ts is set (has been assigned a value) and false otherwise */
+  public boolean isSetTs() {
+    return EncodingUtils.testBit(__isset_bitfield, __TS_ISSET_ID);
+  }
+
+  public void setTsIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TS_ISSET_ID, value);
+  }
+
+  public boolean isHasTimestamp() {
+    return this.hasTimestamp;
+  }
+
+  public TCondition setHasTimestamp(boolean hasTimestamp) {
+    this.hasTimestamp = hasTimestamp;
+    setHasTimestampIsSet(true);
+    return this;
+  }
+
+  public void unsetHasTimestamp() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __HASTIMESTAMP_ISSET_ID);
+  }
+
+  /** Returns true if field hasTimestamp is set (has been assigned a value) and false otherwise */
+  public boolean isSetHasTimestamp() {
+    return EncodingUtils.testBit(__isset_bitfield, __HASTIMESTAMP_ISSET_ID);
+  }
+
+  public void setHasTimestampIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __HASTIMESTAMP_ISSET_ID, value);
+  }
+
+  public byte[] getVal() {
+    setVal(org.apache.thrift.TBaseHelper.rightSize(val));
+    return val == null ? null : val.array();
+  }
+
+  public ByteBuffer bufferForVal() {
+    return val;
+  }
+
+  public TCondition setVal(byte[] val) {
+    setVal(val == null ? (ByteBuffer)null : ByteBuffer.wrap(val));
+    return this;
+  }
+
+  public TCondition setVal(ByteBuffer val) {
+    this.val = val;
+    return this;
+  }
+
+  public void unsetVal() {
+    this.val = null;
+  }
+
+  /** Returns true if field val is set (has been assigned a value) and false otherwise */
+  public boolean isSetVal() {
+    return this.val != null;
+  }
+
+  public void setValIsSet(boolean value) {
+    if (!value) {
+      this.val = null;
+    }
+  }
+
+  public byte[] getIterators() {
+    setIterators(org.apache.thrift.TBaseHelper.rightSize(iterators));
+    return iterators == null ? null : iterators.array();
+  }
+
+  public ByteBuffer bufferForIterators() {
+    return iterators;
+  }
+
+  public TCondition setIterators(byte[] iterators) {
+    setIterators(iterators == null ? (ByteBuffer)null : ByteBuffer.wrap(iterators));
+    return this;
+  }
+
+  public TCondition setIterators(ByteBuffer iterators) {
+    this.iterators = iterators;
+    return this;
+  }
+
+  public void unsetIterators() {
+    this.iterators = null;
+  }
+
+  /** Returns true if field iterators is set (has been assigned a value) and false otherwise */
+  public boolean isSetIterators() {
+    return this.iterators != null;
+  }
+
+  public void setIteratorsIsSet(boolean value) {
+    if (!value) {
+      this.iterators = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case CF:
+      if (value == null) {
+        unsetCf();
+      } else {
+        setCf((ByteBuffer)value);
+      }
+      break;
+
+    case CQ:
+      if (value == null) {
+        unsetCq();
+      } else {
+        setCq((ByteBuffer)value);
+      }
+      break;
+
+    case CV:
+      if (value == null) {
+        unsetCv();
+      } else {
+        setCv((ByteBuffer)value);
+      }
+      break;
+
+    case TS:
+      if (value == null) {
+        unsetTs();
+      } else {
+        setTs((Long)value);
+      }
+      break;
+
+    case HAS_TIMESTAMP:
+      if (value == null) {
+        unsetHasTimestamp();
+      } else {
+        setHasTimestamp((Boolean)value);
+      }
+      break;
+
+    case VAL:
+      if (value == null) {
+        unsetVal();
+      } else {
+        setVal((ByteBuffer)value);
+      }
+      break;
+
+    case ITERATORS:
+      if (value == null) {
+        unsetIterators();
+      } else {
+        setIterators((ByteBuffer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case CF:
+      return getCf();
+
+    case CQ:
+      return getCq();
+
+    case CV:
+      return getCv();
+
+    case TS:
+      return Long.valueOf(getTs());
+
+    case HAS_TIMESTAMP:
+      return Boolean.valueOf(isHasTimestamp());
+
+    case VAL:
+      return getVal();
+
+    case ITERATORS:
+      return getIterators();
+
+    }
+    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 CF:
+      return isSetCf();
+    case CQ:
+      return isSetCq();
+    case CV:
+      return isSetCv();
+    case TS:
+      return isSetTs();
+    case HAS_TIMESTAMP:
+      return isSetHasTimestamp();
+    case VAL:
+      return isSetVal();
+    case ITERATORS:
+      return isSetIterators();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TCondition)
+      return this.equals((TCondition)that);
+    return false;
+  }
+
+  public boolean equals(TCondition that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_cf = true && this.isSetCf();
+    boolean that_present_cf = true && that.isSetCf();
+    if (this_present_cf || that_present_cf) {
+      if (!(this_present_cf && that_present_cf))
+        return false;
+      if (!this.cf.equals(that.cf))
+        return false;
+    }
+
+    boolean this_present_cq = true && this.isSetCq();
+    boolean that_present_cq = true && that.isSetCq();
+    if (this_present_cq || that_present_cq) {
+      if (!(this_present_cq && that_present_cq))
+        return false;
+      if (!this.cq.equals(that.cq))
+        return false;
+    }
+
+    boolean this_present_cv = true && this.isSetCv();
+    boolean that_present_cv = true && that.isSetCv();
+    if (this_present_cv || that_present_cv) {
+      if (!(this_present_cv && that_present_cv))
+        return false;
+      if (!this.cv.equals(that.cv))
+        return false;
+    }
+
+    boolean this_present_ts = true;
+    boolean that_present_ts = true;
+    if (this_present_ts || that_present_ts) {
+      if (!(this_present_ts && that_present_ts))
+        return false;
+      if (this.ts != that.ts)
+        return false;
+    }
+
+    boolean this_present_hasTimestamp = true;
+    boolean that_present_hasTimestamp = true;
+    if (this_present_hasTimestamp || that_present_hasTimestamp) {
+      if (!(this_present_hasTimestamp && that_present_hasTimestamp))
+        return false;
+      if (this.hasTimestamp != that.hasTimestamp)
+        return false;
+    }
+
+    boolean this_present_val = true && this.isSetVal();
+    boolean that_present_val = true && that.isSetVal();
+    if (this_present_val || that_present_val) {
+      if (!(this_present_val && that_present_val))
+        return false;
+      if (!this.val.equals(that.val))
+        return false;
+    }
+
+    boolean this_present_iterators = true && this.isSetIterators();
+    boolean that_present_iterators = true && that.isSetIterators();
+    if (this_present_iterators || that_present_iterators) {
+      if (!(this_present_iterators && that_present_iterators))
+        return false;
+      if (!this.iterators.equals(that.iterators))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  public int compareTo(TCondition other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+    TCondition typedOther = (TCondition)other;
+
+    lastComparison = Boolean.valueOf(isSetCf()).compareTo(typedOther.isSetCf());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCf()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cf, typedOther.cf);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCq()).compareTo(typedOther.isSetCq());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCq()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cq, typedOther.cq);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCv()).compareTo(typedOther.isSetCv());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCv()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cv, typedOther.cv);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTs()).compareTo(typedOther.isSetTs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTs()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ts, typedOther.ts);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetHasTimestamp()).compareTo(typedOther.isSetHasTimestamp());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetHasTimestamp()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hasTimestamp, typedOther.hasTimestamp);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetVal()).compareTo(typedOther.isSetVal());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetVal()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.val, typedOther.val);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetIterators()).compareTo(typedOther.isSetIterators());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetIterators()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.iterators, typedOther.iterators);
+      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("TCondition(");
+    boolean first = true;
+
+    sb.append("cf:");
+    if (this.cf == null) {
+      sb.append("null");
+    } else {
+      org.apache.thrift.TBaseHelper.toString(this.cf, sb);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("cq:");
+    if (this.cq == null) {
+      sb.append("null");
+    } else {
+      org.apache.thrift.TBaseHelper.toString(this.cq, sb);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("cv:");
+    if (this.cv == null) {
+      sb.append("null");
+    } else {
+      org.apache.thrift.TBaseHelper.toString(this.cv, sb);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("ts:");
+    sb.append(this.ts);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("hasTimestamp:");
+    sb.append(this.hasTimestamp);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("val:");
+    if (this.val == null) {
+      sb.append("null");
+    } else {
+      org.apache.thrift.TBaseHelper.toString(this.val, sb);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("iterators:");
+    if (this.iterators == null) {
+      sb.append("null");
+    } else {
+      org.apache.thrift.TBaseHelper.toString(this.iterators, sb);
+    }
+    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 TConditionStandardSchemeFactory implements SchemeFactory {
+    public TConditionStandardScheme getScheme() {
+      return new TConditionStandardScheme();
+    }
+  }
+
+  private static class TConditionStandardScheme extends StandardScheme<TCondition> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TCondition 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: // CF
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.cf = iprot.readBinary();
+              struct.setCfIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // CQ
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.cq = iprot.readBinary();
+              struct.setCqIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // CV
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.cv = iprot.readBinary();
+              struct.setCvIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // TS
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.ts = iprot.readI64();
+              struct.setTsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // HAS_TIMESTAMP
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.hasTimestamp = iprot.readBool();
+              struct.setHasTimestampIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // VAL
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.val = iprot.readBinary();
+              struct.setValIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // ITERATORS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.iterators = iprot.readBinary();
+              struct.setIteratorsIsSet(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, TCondition struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.cf != null) {
+        oprot.writeFieldBegin(CF_FIELD_DESC);
+        oprot.writeBinary(struct.cf);
+        oprot.writeFieldEnd();
+      }
+      if (struct.cq != null) {
+        oprot.writeFieldBegin(CQ_FIELD_DESC);
+        oprot.writeBinary(struct.cq);
+        oprot.writeFieldEnd();
+      }
+      if (struct.cv != null) {
+        oprot.writeFieldBegin(CV_FIELD_DESC);
+        oprot.writeBinary(struct.cv);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(TS_FIELD_DESC);
+      oprot.writeI64(struct.ts);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(HAS_TIMESTAMP_FIELD_DESC);
+      oprot.writeBool(struct.hasTimestamp);
+      oprot.writeFieldEnd();
+      if (struct.val != null) {
+        oprot.writeFieldBegin(VAL_FIELD_DESC);
+        oprot.writeBinary(struct.val);
+        oprot.writeFieldEnd();
+      }
+      if (struct.iterators != null) {
+        oprot.writeFieldBegin(ITERATORS_FIELD_DESC);
+        oprot.writeBinary(struct.iterators);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TConditionTupleSchemeFactory implements SchemeFactory {
+    public TConditionTupleScheme getScheme() {
+      return new TConditionTupleScheme();
+    }
+  }
+
+  private static class TConditionTupleScheme extends TupleScheme<TCondition> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TCondition struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetCf()) {
+        optionals.set(0);
+      }
+      if (struct.isSetCq()) {
+        optionals.set(1);
+      }
+      if (struct.isSetCv()) {
+        optionals.set(2);
+      }
+      if (struct.isSetTs()) {
+        optionals.set(3);
+      }
+      if (struct.isSetHasTimestamp()) {
+        optionals.set(4);
+      }
+      if (struct.isSetVal()) {
+        optionals.set(5);
+      }
+      if (struct.isSetIterators()) {
+        optionals.set(6);
+      }
+      oprot.writeBitSet(optionals, 7);
+      if (struct.isSetCf()) {
+        oprot.writeBinary(struct.cf);
+      }
+      if (struct.isSetCq()) {
+        oprot.writeBinary(struct.cq);
+      }
+      if (struct.isSetCv()) {
+        oprot.writeBinary(struct.cv);
+      }
+      if (struct.isSetTs()) {
+        oprot.writeI64(struct.ts);
+      }
+      if (struct.isSetHasTimestamp()) {
+        oprot.writeBool(struct.hasTimestamp);
+      }
+      if (struct.isSetVal()) {
+        oprot.writeBinary(struct.val);
+      }
+      if (struct.isSetIterators()) {
+        oprot.writeBinary(struct.iterators);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TCondition struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(7);
+      if (incoming.get(0)) {
+        struct.cf = iprot.readBinary();
+        struct.setCfIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.cq = iprot.readBinary();
+        struct.setCqIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.cv = iprot.readBinary();
+        struct.setCvIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.ts = iprot.readI64();
+        struct.setTsIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.hasTimestamp = iprot.readBool();
+        struct.setHasTimestampIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.val = iprot.readBinary();
+        struct.setValIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.iterators = iprot.readBinary();
+        struct.setIteratorsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/accumulo/blob/9dc24448/core/src/main/java/org/apache/accumulo/core/data/thrift/TConditionalMutation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/data/thrift/TConditionalMutation.java b/core/src/main/java/org/apache/accumulo/core/data/thrift/TConditionalMutation.java
new file mode 100644
index 0000000..1928803
--- /dev/null
+++ b/core/src/main/java/org/apache/accumulo/core/data/thrift/TConditionalMutation.java
@@ -0,0 +1,659 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Autogenerated by Thrift Compiler (0.9.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.accumulo.core.data.thrift;
+
+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 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;
+
+@SuppressWarnings("all") public class TConditionalMutation implements org.apache.thrift.TBase<TConditionalMutation, TConditionalMutation._Fields>, java.io.Serializable, Cloneable {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TConditionalMutation");
+
+  private static final org.apache.thrift.protocol.TField CONDITIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("conditions", org.apache.thrift.protocol.TType.LIST, (short)1);
+  private static final org.apache.thrift.protocol.TField MUTATION_FIELD_DESC = new org.apache.thrift.protocol.TField("mutation", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+  private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.I64, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new TConditionalMutationStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TConditionalMutationTupleSchemeFactory());
+  }
+
+  public List<TCondition> conditions; // required
+  public TMutation mutation; // required
+  public long id; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    CONDITIONS((short)1, "conditions"),
+    MUTATION((short)2, "mutation"),
+    ID((short)3, "id");
+
+    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: // CONDITIONS
+          return CONDITIONS;
+        case 2: // MUTATION
+          return MUTATION;
+        case 3: // ID
+          return ID;
+        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 __ID_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.CONDITIONS, new org.apache.thrift.meta_data.FieldMetaData("conditions", 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, TCondition.class))));
+    tmpMap.put(_Fields.MUTATION, new org.apache.thrift.meta_data.FieldMetaData("mutation", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TMutation.class)));
+    tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TConditionalMutation.class, metaDataMap);
+  }
+
+  public TConditionalMutation() {
+  }
+
+  public TConditionalMutation(
+    List<TCondition> conditions,
+    TMutation mutation,
+    long id)
+  {
+    this();
+    this.conditions = conditions;
+    this.mutation = mutation;
+    this.id = id;
+    setIdIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TConditionalMutation(TConditionalMutation other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetConditions()) {
+      List<TCondition> __this__conditions = new ArrayList<TCondition>();
+      for (TCondition other_element : other.conditions) {
+        __this__conditions.add(new TCondition(other_element));
+      }
+      this.conditions = __this__conditions;
+    }
+    if (other.isSetMutation()) {
+      this.mutation = new TMutation(other.mutation);
+    }
+    this.id = other.id;
+  }
+
+  public TConditionalMutation deepCopy() {
+    return new TConditionalMutation(this);
+  }
+
+  @Override
+  public void clear() {
+    this.conditions = null;
+    this.mutation = null;
+    setIdIsSet(false);
+    this.id = 0;
+  }
+
+  public int getConditionsSize() {
+    return (this.conditions == null) ? 0 : this.conditions.size();
+  }
+
+  public java.util.Iterator<TCondition> getConditionsIterator() {
+    return (this.conditions == null) ? null : this.conditions.iterator();
+  }
+
+  public void addToConditions(TCondition elem) {
+    if (this.conditions == null) {
+      this.conditions = new ArrayList<TCondition>();
+    }
+    this.conditions.add(elem);
+  }
+
+  public List<TCondition> getConditions() {
+    return this.conditions;
+  }
+
+  public TConditionalMutation setConditions(List<TCondition> conditions) {
+    this.conditions = conditions;
+    return this;
+  }
+
+  public void unsetConditions() {
+    this.conditions = null;
+  }
+
+  /** Returns true if field conditions is set (has been assigned a value) and false otherwise */
+  public boolean isSetConditions() {
+    return this.conditions != null;
+  }
+
+  public void setConditionsIsSet(boolean value) {
+    if (!value) {
+      this.conditions = null;
+    }
+  }
+
+  public TMutation getMutation() {
+    return this.mutation;
+  }
+
+  public TConditionalMutation setMutation(TMutation mutation) {
+    this.mutation = mutation;
+    return this;
+  }
+
+  public void unsetMutation() {
+    this.mutation = null;
+  }
+
+  /** Returns true if field mutation is set (has been assigned a value) and false otherwise */
+  public boolean isSetMutation() {
+    return this.mutation != null;
+  }
+
+  public void setMutationIsSet(boolean value) {
+    if (!value) {
+      this.mutation = null;
+    }
+  }
+
+  public long getId() {
+    return this.id;
+  }
+
+  public TConditionalMutation setId(long id) {
+    this.id = id;
+    setIdIsSet(true);
+    return this;
+  }
+
+  public void unsetId() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ID_ISSET_ID);
+  }
+
+  /** Returns true if field id is set (has been assigned a value) and false otherwise */
+  public boolean isSetId() {
+    return EncodingUtils.testBit(__isset_bitfield, __ID_ISSET_ID);
+  }
+
+  public void setIdIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ID_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case CONDITIONS:
+      if (value == null) {
+        unsetConditions();
+      } else {
+        setConditions((List<TCondition>)value);
+      }
+      break;
+
+    case MUTATION:
+      if (value == null) {
+        unsetMutation();
+      } else {
+        setMutation((TMutation)value);
+      }
+      break;
+
+    case ID:
+      if (value == null) {
+        unsetId();
+      } else {
+        setId((Long)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case CONDITIONS:
+      return getConditions();
+
+    case MUTATION:
+      return getMutation();
+
+    case ID:
+      return Long.valueOf(getId());
+
+    }
+    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 CONDITIONS:
+      return isSetConditions();
+    case MUTATION:
+      return isSetMutation();
+    case ID:
+      return isSetId();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TConditionalMutation)
+      return this.equals((TConditionalMutation)that);
+    return false;
+  }
+
+  public boolean equals(TConditionalMutation that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_conditions = true && this.isSetConditions();
+    boolean that_present_conditions = true && that.isSetConditions();
+    if (this_present_conditions || that_present_conditions) {
+      if (!(this_present_conditions && that_present_conditions))
+        return false;
+      if (!this.conditions.equals(that.conditions))
+        return false;
+    }
+
+    boolean this_present_mutation = true && this.isSetMutation();
+    boolean that_present_mutation = true && that.isSetMutation();
+    if (this_present_mutation || that_present_mutation) {
+      if (!(this_present_mutation && that_present_mutation))
+        return false;
+      if (!this.mutation.equals(that.mutation))
+        return false;
+    }
+
+    boolean this_present_id = true;
+    boolean that_present_id = true;
+    if (this_present_id || that_present_id) {
+      if (!(this_present_id && that_present_id))
+        return false;
+      if (this.id != that.id)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  public int compareTo(TConditionalMutation other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+    TConditionalMutation typedOther = (TConditionalMutation)other;
+
+    lastComparison = Boolean.valueOf(isSetConditions()).compareTo(typedOther.isSetConditions());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetConditions()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.conditions, typedOther.conditions);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMutation()).compareTo(typedOther.isSetMutation());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMutation()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.mutation, typedOther.mutation);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetId()).compareTo(typedOther.isSetId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, typedOther.id);
+      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("TConditionalMutation(");
+    boolean first = true;
+
+    sb.append("conditions:");
+    if (this.conditions == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.conditions);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("mutation:");
+    if (this.mutation == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.mutation);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("id:");
+    sb.append(this.id);
+    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 (mutation != null) {
+      mutation.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 TConditionalMutationStandardSchemeFactory implements SchemeFactory {
+    public TConditionalMutationStandardScheme getScheme() {
+      return new TConditionalMutationStandardScheme();
+    }
+  }
+
+  private static class TConditionalMutationStandardScheme extends StandardScheme<TConditionalMutation> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TConditionalMutation 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: // CONDITIONS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list106 = iprot.readListBegin();
+                struct.conditions = new ArrayList<TCondition>(_list106.size);
+                for (int _i107 = 0; _i107 < _list106.size; ++_i107)
+                {
+                  TCondition _elem108; // required
+                  _elem108 = new TCondition();
+                  _elem108.read(iprot);
+                  struct.conditions.add(_elem108);
+                }
+                iprot.readListEnd();
+              }
+              struct.setConditionsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // MUTATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.mutation = new TMutation();
+              struct.mutation.read(iprot);
+              struct.setMutationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.id = iprot.readI64();
+              struct.setIdIsSet(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, TConditionalMutation struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.conditions != null) {
+        oprot.writeFieldBegin(CONDITIONS_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.conditions.size()));
+          for (TCondition _iter109 : struct.conditions)
+          {
+            _iter109.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      if (struct.mutation != null) {
+        oprot.writeFieldBegin(MUTATION_FIELD_DESC);
+        struct.mutation.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(ID_FIELD_DESC);
+      oprot.writeI64(struct.id);
+      oprot.writeFieldEnd();
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TConditionalMutationTupleSchemeFactory implements SchemeFactory {
+    public TConditionalMutationTupleScheme getScheme() {
+      return new TConditionalMutationTupleScheme();
+    }
+  }
+
+  private static class TConditionalMutationTupleScheme extends TupleScheme<TConditionalMutation> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TConditionalMutation struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetConditions()) {
+        optionals.set(0);
+      }
+      if (struct.isSetMutation()) {
+        optionals.set(1);
+      }
+      if (struct.isSetId()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetConditions()) {
+        {
+          oprot.writeI32(struct.conditions.size());
+          for (TCondition _iter110 : struct.conditions)
+          {
+            _iter110.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetMutation()) {
+        struct.mutation.write(oprot);
+      }
+      if (struct.isSetId()) {
+        oprot.writeI64(struct.id);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TConditionalMutation struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TList _list111 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.conditions = new ArrayList<TCondition>(_list111.size);
+          for (int _i112 = 0; _i112 < _list111.size; ++_i112)
+          {
+            TCondition _elem113; // required
+            _elem113 = new TCondition();
+            _elem113.read(iprot);
+            struct.conditions.add(_elem113);
+          }
+        }
+        struct.setConditionsIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.mutation = new TMutation();
+        struct.mutation.read(iprot);
+        struct.setMutationIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.id = iprot.readI64();
+        struct.setIdIsSet(true);
+      }
+    }
+  }
+
+}
+


Mime
View raw message