http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/MutateOptions.java
----------------------------------------------------------------------
diff --git 
a/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/MutateOptions.java
 
b/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/MutateOptions.java
new file mode 100644
index 0000000..d68db32
--- /dev/null
+++ 
b/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/MutateOptions.java
@@ -0,0 +1,743 @@
+/**
+ * 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.blur.thrift.generated;
+
+/**
+ * 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.
+ */
+
+
+
+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;
+
+public class MutateOptions implements org.apache.thrift.TBase<MutateOptions, 
MutateOptions._Fields>, java.io.Serializable, Cloneable {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("MutateOptions");
+
+  private static final org.apache.thrift.protocol.TField TABLE_FIELD_DESC = 
new org.apache.thrift.protocol.TField("table", 
org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField 
SHARD_INDEX_FIELD_DESC = new org.apache.thrift.protocol.TField("shardIndex", 
org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField 
WAIT_TO_BE_VISIBLE_FIELD_DESC = new 
org.apache.thrift.protocol.TField("waitToBeVisible", 
org.apache.thrift.protocol.TType.BOOL, (short)3);
+  private static final org.apache.thrift.protocol.TField 
WRITE_AHEAD_LOG_FIELD_DESC = new 
org.apache.thrift.protocol.TField("writeAheadLog", 
org.apache.thrift.protocol.TType.BOOL, (short)4);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new 
MutateOptionsStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new MutateOptionsTupleSchemeFactory());
+  }
+
+  /**
+   * The name of the table.
+   */
+  public String table; // required
+  /**
+   * The index of the shard in the table that the mutate will operate against.
+   */
+  public int shardIndex; // required
+  /**
+   * Setting this to true will cause the mutate call to block until the 
mutates are visible.
+   */
+  public boolean waitToBeVisible; // required
+  /**
+   * Whether or not to add this mutation to the write ahead log for recovery 
of information during a shard server crash.
+   */
+  public boolean writeAheadLog; // 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 {
+    /**
+     * The name of the table.
+     */
+    TABLE((short)1, "table"),
+    /**
+     * The index of the shard in the table that the mutate will operate 
against.
+     */
+    SHARD_INDEX((short)2, "shardIndex"),
+    /**
+     * Setting this to true will cause the mutate call to block until the 
mutates are visible.
+     */
+    WAIT_TO_BE_VISIBLE((short)3, "waitToBeVisible"),
+    /**
+     * Whether or not to add this mutation to the write ahead log for recovery 
of information during a shard server crash.
+     */
+    WRITE_AHEAD_LOG((short)4, "writeAheadLog");
+
+    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: // TABLE
+          return TABLE;
+        case 2: // SHARD_INDEX
+          return SHARD_INDEX;
+        case 3: // WAIT_TO_BE_VISIBLE
+          return WAIT_TO_BE_VISIBLE;
+        case 4: // WRITE_AHEAD_LOG
+          return WRITE_AHEAD_LOG;
+        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 __SHARDINDEX_ISSET_ID = 0;
+  private static final int __WAITTOBEVISIBLE_ISSET_ID = 1;
+  private static final int __WRITEAHEADLOG_ISSET_ID = 2;
+  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.TABLE, new 
org.apache.thrift.meta_data.FieldMetaData("table", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SHARD_INDEX, new 
org.apache.thrift.meta_data.FieldMetaData("shardIndex", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.WAIT_TO_BE_VISIBLE, new 
org.apache.thrift.meta_data.FieldMetaData("waitToBeVisible", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.WRITE_AHEAD_LOG, new 
org.apache.thrift.meta_data.FieldMetaData("writeAheadLog", 
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(MutateOptions.class,
 metaDataMap);
+  }
+
+  public MutateOptions() {
+    this.waitToBeVisible = false;
+
+    this.writeAheadLog = true;
+
+  }
+
+  public MutateOptions(
+    String table,
+    int shardIndex,
+    boolean waitToBeVisible,
+    boolean writeAheadLog)
+  {
+    this();
+    this.table = table;
+    this.shardIndex = shardIndex;
+    setShardIndexIsSet(true);
+    this.waitToBeVisible = waitToBeVisible;
+    setWaitToBeVisibleIsSet(true);
+    this.writeAheadLog = writeAheadLog;
+    setWriteAheadLogIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public MutateOptions(MutateOptions other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetTable()) {
+      this.table = other.table;
+    }
+    this.shardIndex = other.shardIndex;
+    this.waitToBeVisible = other.waitToBeVisible;
+    this.writeAheadLog = other.writeAheadLog;
+  }
+
+  public MutateOptions deepCopy() {
+    return new MutateOptions(this);
+  }
+
+  @Override
+  public void clear() {
+    this.table = null;
+    setShardIndexIsSet(false);
+    this.shardIndex = 0;
+    this.waitToBeVisible = false;
+
+    this.writeAheadLog = true;
+
+  }
+
+  /**
+   * The name of the table.
+   */
+  public String getTable() {
+    return this.table;
+  }
+
+  /**
+   * The name of the table.
+   */
+  public MutateOptions setTable(String table) {
+    this.table = table;
+    return this;
+  }
+
+  public void unsetTable() {
+    this.table = null;
+  }
+
+  /** Returns true if field table is set (has been assigned a value) and false 
otherwise */
+  public boolean isSetTable() {
+    return this.table != null;
+  }
+
+  public void setTableIsSet(boolean value) {
+    if (!value) {
+      this.table = null;
+    }
+  }
+
+  /**
+   * The index of the shard in the table that the mutate will operate against.
+   */
+  public int getShardIndex() {
+    return this.shardIndex;
+  }
+
+  /**
+   * The index of the shard in the table that the mutate will operate against.
+   */
+  public MutateOptions setShardIndex(int shardIndex) {
+    this.shardIndex = shardIndex;
+    setShardIndexIsSet(true);
+    return this;
+  }
+
+  public void unsetShardIndex() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, 
__SHARDINDEX_ISSET_ID);
+  }
+
+  /** Returns true if field shardIndex is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetShardIndex() {
+    return EncodingUtils.testBit(__isset_bitfield, __SHARDINDEX_ISSET_ID);
+  }
+
+  public void setShardIndexIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, 
__SHARDINDEX_ISSET_ID, value);
+  }
+
+  /**
+   * Setting this to true will cause the mutate call to block until the 
mutates are visible.
+   */
+  public boolean isWaitToBeVisible() {
+    return this.waitToBeVisible;
+  }
+
+  /**
+   * Setting this to true will cause the mutate call to block until the 
mutates are visible.
+   */
+  public MutateOptions setWaitToBeVisible(boolean waitToBeVisible) {
+    this.waitToBeVisible = waitToBeVisible;
+    setWaitToBeVisibleIsSet(true);
+    return this;
+  }
+
+  public void unsetWaitToBeVisible() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, 
__WAITTOBEVISIBLE_ISSET_ID);
+  }
+
+  /** Returns true if field waitToBeVisible is set (has been assigned a value) 
and false otherwise */
+  public boolean isSetWaitToBeVisible() {
+    return EncodingUtils.testBit(__isset_bitfield, __WAITTOBEVISIBLE_ISSET_ID);
+  }
+
+  public void setWaitToBeVisibleIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, 
__WAITTOBEVISIBLE_ISSET_ID, value);
+  }
+
+  /**
+   * Whether or not to add this mutation to the write ahead log for recovery 
of information during a shard server crash.
+   */
+  public boolean isWriteAheadLog() {
+    return this.writeAheadLog;
+  }
+
+  /**
+   * Whether or not to add this mutation to the write ahead log for recovery 
of information during a shard server crash.
+   */
+  public MutateOptions setWriteAheadLog(boolean writeAheadLog) {
+    this.writeAheadLog = writeAheadLog;
+    setWriteAheadLogIsSet(true);
+    return this;
+  }
+
+  public void unsetWriteAheadLog() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, 
__WRITEAHEADLOG_ISSET_ID);
+  }
+
+  /** Returns true if field writeAheadLog is set (has been assigned a value) 
and false otherwise */
+  public boolean isSetWriteAheadLog() {
+    return EncodingUtils.testBit(__isset_bitfield, __WRITEAHEADLOG_ISSET_ID);
+  }
+
+  public void setWriteAheadLogIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, 
__WRITEAHEADLOG_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case TABLE:
+      if (value == null) {
+        unsetTable();
+      } else {
+        setTable((String)value);
+      }
+      break;
+
+    case SHARD_INDEX:
+      if (value == null) {
+        unsetShardIndex();
+      } else {
+        setShardIndex((Integer)value);
+      }
+      break;
+
+    case WAIT_TO_BE_VISIBLE:
+      if (value == null) {
+        unsetWaitToBeVisible();
+      } else {
+        setWaitToBeVisible((Boolean)value);
+      }
+      break;
+
+    case WRITE_AHEAD_LOG:
+      if (value == null) {
+        unsetWriteAheadLog();
+      } else {
+        setWriteAheadLog((Boolean)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case TABLE:
+      return getTable();
+
+    case SHARD_INDEX:
+      return Integer.valueOf(getShardIndex());
+
+    case WAIT_TO_BE_VISIBLE:
+      return Boolean.valueOf(isWaitToBeVisible());
+
+    case WRITE_AHEAD_LOG:
+      return Boolean.valueOf(isWriteAheadLog());
+
+    }
+    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 TABLE:
+      return isSetTable();
+    case SHARD_INDEX:
+      return isSetShardIndex();
+    case WAIT_TO_BE_VISIBLE:
+      return isSetWaitToBeVisible();
+    case WRITE_AHEAD_LOG:
+      return isSetWriteAheadLog();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof MutateOptions)
+      return this.equals((MutateOptions)that);
+    return false;
+  }
+
+  public boolean equals(MutateOptions that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_table = true && this.isSetTable();
+    boolean that_present_table = true && that.isSetTable();
+    if (this_present_table || that_present_table) {
+      if (!(this_present_table && that_present_table))
+        return false;
+      if (!this.table.equals(that.table))
+        return false;
+    }
+
+    boolean this_present_shardIndex = true;
+    boolean that_present_shardIndex = true;
+    if (this_present_shardIndex || that_present_shardIndex) {
+      if (!(this_present_shardIndex && that_present_shardIndex))
+        return false;
+      if (this.shardIndex != that.shardIndex)
+        return false;
+    }
+
+    boolean this_present_waitToBeVisible = true;
+    boolean that_present_waitToBeVisible = true;
+    if (this_present_waitToBeVisible || that_present_waitToBeVisible) {
+      if (!(this_present_waitToBeVisible && that_present_waitToBeVisible))
+        return false;
+      if (this.waitToBeVisible != that.waitToBeVisible)
+        return false;
+    }
+
+    boolean this_present_writeAheadLog = true;
+    boolean that_present_writeAheadLog = true;
+    if (this_present_writeAheadLog || that_present_writeAheadLog) {
+      if (!(this_present_writeAheadLog && that_present_writeAheadLog))
+        return false;
+      if (this.writeAheadLog != that.writeAheadLog)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  public int compareTo(MutateOptions other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+    MutateOptions typedOther = (MutateOptions)other;
+
+    lastComparison = 
Boolean.valueOf(isSetTable()).compareTo(typedOther.isSetTable());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTable()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.table, 
typedOther.table);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetShardIndex()).compareTo(typedOther.isSetShardIndex());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetShardIndex()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.shardIndex, typedOther.shardIndex);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetWaitToBeVisible()).compareTo(typedOther.isSetWaitToBeVisible());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetWaitToBeVisible()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.waitToBeVisible, 
typedOther.waitToBeVisible);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetWriteAheadLog()).compareTo(typedOther.isSetWriteAheadLog());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetWriteAheadLog()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.writeAheadLog, 
typedOther.writeAheadLog);
+      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("MutateOptions(");
+    boolean first = true;
+
+    sb.append("table:");
+    if (this.table == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.table);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("shardIndex:");
+    sb.append(this.shardIndex);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("waitToBeVisible:");
+    sb.append(this.waitToBeVisible);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("writeAheadLog:");
+    sb.append(this.writeAheadLog);
+    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 MutateOptionsStandardSchemeFactory implements 
SchemeFactory {
+    public MutateOptionsStandardScheme getScheme() {
+      return new MutateOptionsStandardScheme();
+    }
+  }
+
+  private static class MutateOptionsStandardScheme extends 
StandardScheme<MutateOptions> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, MutateOptions 
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: // TABLE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.table = iprot.readString();
+              struct.setTableIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 2: // SHARD_INDEX
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.shardIndex = iprot.readI32();
+              struct.setShardIndexIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 3: // WAIT_TO_BE_VISIBLE
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.waitToBeVisible = iprot.readBool();
+              struct.setWaitToBeVisibleIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 4: // WRITE_AHEAD_LOG
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.writeAheadLog = iprot.readBool();
+              struct.setWriteAheadLogIsSet(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, 
MutateOptions struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.table != null) {
+        oprot.writeFieldBegin(TABLE_FIELD_DESC);
+        oprot.writeString(struct.table);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(SHARD_INDEX_FIELD_DESC);
+      oprot.writeI32(struct.shardIndex);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(WAIT_TO_BE_VISIBLE_FIELD_DESC);
+      oprot.writeBool(struct.waitToBeVisible);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(WRITE_AHEAD_LOG_FIELD_DESC);
+      oprot.writeBool(struct.writeAheadLog);
+      oprot.writeFieldEnd();
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class MutateOptionsTupleSchemeFactory implements 
SchemeFactory {
+    public MutateOptionsTupleScheme getScheme() {
+      return new MutateOptionsTupleScheme();
+    }
+  }
+
+  private static class MutateOptionsTupleScheme extends 
TupleScheme<MutateOptions> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, MutateOptions 
struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetTable()) {
+        optionals.set(0);
+      }
+      if (struct.isSetShardIndex()) {
+        optionals.set(1);
+      }
+      if (struct.isSetWaitToBeVisible()) {
+        optionals.set(2);
+      }
+      if (struct.isSetWriteAheadLog()) {
+        optionals.set(3);
+      }
+      oprot.writeBitSet(optionals, 4);
+      if (struct.isSetTable()) {
+        oprot.writeString(struct.table);
+      }
+      if (struct.isSetShardIndex()) {
+        oprot.writeI32(struct.shardIndex);
+      }
+      if (struct.isSetWaitToBeVisible()) {
+        oprot.writeBool(struct.waitToBeVisible);
+      }
+      if (struct.isSetWriteAheadLog()) {
+        oprot.writeBool(struct.writeAheadLog);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, MutateOptions 
struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(4);
+      if (incoming.get(0)) {
+        struct.table = iprot.readString();
+        struct.setTableIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.shardIndex = iprot.readI32();
+        struct.setShardIndexIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.waitToBeVisible = iprot.readBool();
+        struct.setWaitToBeVisibleIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.writeAheadLog = iprot.readBool();
+        struct.setWriteAheadLogIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/Query.java
----------------------------------------------------------------------
diff --git 
a/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/Query.java
 
b/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/Query.java
new file mode 100644
index 0000000..afa8ba5
--- /dev/null
+++ 
b/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/Query.java
@@ -0,0 +1,665 @@
+/**
+ * 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.blur.thrift.generated;
+
+/**
+ * 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.
+ */
+
+
+
+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;
+
+/**
+ * The Query object describes how the query is passed.  If the
+ * type is STRING or JSON the queryString field is used.  If
+ * the BINARY type is used the queryBinary should be used.
+ */
+public class Query implements org.apache.thrift.TBase<Query, Query._Fields>, 
java.io.Serializable, Cloneable {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("Query");
+
+  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)1);
+  private static final org.apache.thrift.protocol.TField 
QUERY_STRING_FIELD_DESC = new org.apache.thrift.protocol.TField("queryString", 
org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField 
QUERY_BINARY_FIELD_DESC = new org.apache.thrift.protocol.TField("queryBinary", 
org.apache.thrift.protocol.TType.STRING, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new QueryStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new QueryTupleSchemeFactory());
+  }
+
+  /**
+   * The query type.
+   * 
+   * @see QueryType
+   */
+  public QueryType type; // required
+  /**
+   * The query to be executed.
+   */
+  public String queryString; // required
+  /**
+   * The query to be executed.
+   */
+  public ByteBuffer queryBinary; // 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 {
+    /**
+     * The query type.
+     * 
+     * @see QueryType
+     */
+    TYPE((short)1, "type"),
+    /**
+     * The query to be executed.
+     */
+    QUERY_STRING((short)2, "queryString"),
+    /**
+     * The query to be executed.
+     */
+    QUERY_BINARY((short)3, "queryBinary");
+
+    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: // TYPE
+          return TYPE;
+        case 2: // QUERY_STRING
+          return QUERY_STRING;
+        case 3: // QUERY_BINARY
+          return QUERY_BINARY;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + 
fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> 
metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 
EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.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, 
QueryType.class)));
+    tmpMap.put(_Fields.QUERY_STRING, new 
org.apache.thrift.meta_data.FieldMetaData("queryString", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.QUERY_BINARY, new 
org.apache.thrift.meta_data.FieldMetaData("queryBinary", 
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(Query.class, 
metaDataMap);
+  }
+
+  public Query() {
+  }
+
+  public Query(
+    QueryType type,
+    String queryString,
+    ByteBuffer queryBinary)
+  {
+    this();
+    this.type = type;
+    this.queryString = queryString;
+    this.queryBinary = queryBinary;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public Query(Query other) {
+    if (other.isSetType()) {
+      this.type = other.type;
+    }
+    if (other.isSetQueryString()) {
+      this.queryString = other.queryString;
+    }
+    if (other.isSetQueryBinary()) {
+      this.queryBinary = 
org.apache.thrift.TBaseHelper.copyBinary(other.queryBinary);
+;
+    }
+  }
+
+  public Query deepCopy() {
+    return new Query(this);
+  }
+
+  @Override
+  public void clear() {
+    this.type = null;
+    this.queryString = null;
+    this.queryBinary = null;
+  }
+
+  /**
+   * The query type.
+   * 
+   * @see QueryType
+   */
+  public QueryType getType() {
+    return this.type;
+  }
+
+  /**
+   * The query type.
+   * 
+   * @see QueryType
+   */
+  public Query setType(QueryType 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;
+    }
+  }
+
+  /**
+   * The query to be executed.
+   */
+  public String getQueryString() {
+    return this.queryString;
+  }
+
+  /**
+   * The query to be executed.
+   */
+  public Query setQueryString(String queryString) {
+    this.queryString = queryString;
+    return this;
+  }
+
+  public void unsetQueryString() {
+    this.queryString = null;
+  }
+
+  /** Returns true if field queryString is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetQueryString() {
+    return this.queryString != null;
+  }
+
+  public void setQueryStringIsSet(boolean value) {
+    if (!value) {
+      this.queryString = null;
+    }
+  }
+
+  /**
+   * The query to be executed.
+   */
+  public byte[] getQueryBinary() {
+    setQueryBinary(org.apache.thrift.TBaseHelper.rightSize(queryBinary));
+    return queryBinary == null ? null : queryBinary.array();
+  }
+
+  public ByteBuffer bufferForQueryBinary() {
+    return queryBinary;
+  }
+
+  /**
+   * The query to be executed.
+   */
+  public Query setQueryBinary(byte[] queryBinary) {
+    setQueryBinary(queryBinary == null ? (ByteBuffer)null : 
ByteBuffer.wrap(queryBinary));
+    return this;
+  }
+
+  public Query setQueryBinary(ByteBuffer queryBinary) {
+    this.queryBinary = queryBinary;
+    return this;
+  }
+
+  public void unsetQueryBinary() {
+    this.queryBinary = null;
+  }
+
+  /** Returns true if field queryBinary is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetQueryBinary() {
+    return this.queryBinary != null;
+  }
+
+  public void setQueryBinaryIsSet(boolean value) {
+    if (!value) {
+      this.queryBinary = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case TYPE:
+      if (value == null) {
+        unsetType();
+      } else {
+        setType((QueryType)value);
+      }
+      break;
+
+    case QUERY_STRING:
+      if (value == null) {
+        unsetQueryString();
+      } else {
+        setQueryString((String)value);
+      }
+      break;
+
+    case QUERY_BINARY:
+      if (value == null) {
+        unsetQueryBinary();
+      } else {
+        setQueryBinary((ByteBuffer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case TYPE:
+      return getType();
+
+    case QUERY_STRING:
+      return getQueryString();
+
+    case QUERY_BINARY:
+      return getQueryBinary();
+
+    }
+    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 TYPE:
+      return isSetType();
+    case QUERY_STRING:
+      return isSetQueryString();
+    case QUERY_BINARY:
+      return isSetQueryBinary();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof Query)
+      return this.equals((Query)that);
+    return false;
+  }
+
+  public boolean equals(Query that) {
+    if (that == null)
+      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_queryString = true && this.isSetQueryString();
+    boolean that_present_queryString = true && that.isSetQueryString();
+    if (this_present_queryString || that_present_queryString) {
+      if (!(this_present_queryString && that_present_queryString))
+        return false;
+      if (!this.queryString.equals(that.queryString))
+        return false;
+    }
+
+    boolean this_present_queryBinary = true && this.isSetQueryBinary();
+    boolean that_present_queryBinary = true && that.isSetQueryBinary();
+    if (this_present_queryBinary || that_present_queryBinary) {
+      if (!(this_present_queryBinary && that_present_queryBinary))
+        return false;
+      if (!this.queryBinary.equals(that.queryBinary))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  public int compareTo(Query other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+    Query typedOther = (Query)other;
+
+    lastComparison = 
Boolean.valueOf(isSetType()).compareTo(typedOther.isSetType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, 
typedOther.type);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetQueryString()).compareTo(typedOther.isSetQueryString());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetQueryString()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.queryString, 
typedOther.queryString);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetQueryBinary()).compareTo(typedOther.isSetQueryBinary());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetQueryBinary()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.queryBinary, 
typedOther.queryBinary);
+      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("Query(");
+    boolean first = true;
+
+    sb.append("type:");
+    if (this.type == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.type);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("queryString:");
+    if (this.queryString == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.queryString);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("queryBinary:");
+    if (this.queryBinary == null) {
+      sb.append("null");
+    } else {
+      org.apache.thrift.TBaseHelper.toString(this.queryBinary, 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 {
+      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 QueryStandardSchemeFactory implements SchemeFactory {
+    public QueryStandardScheme getScheme() {
+      return new QueryStandardScheme();
+    }
+  }
+
+  private static class QueryStandardScheme extends StandardScheme<Query> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, Query 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: // TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.type = QueryType.findByValue(iprot.readI32());
+              struct.setTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 2: // QUERY_STRING
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.queryString = iprot.readString();
+              struct.setQueryStringIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 3: // QUERY_BINARY
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.queryBinary = iprot.readBinary();
+              struct.setQueryBinaryIsSet(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, Query 
struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.type != null) {
+        oprot.writeFieldBegin(TYPE_FIELD_DESC);
+        oprot.writeI32(struct.type.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.queryString != null) {
+        oprot.writeFieldBegin(QUERY_STRING_FIELD_DESC);
+        oprot.writeString(struct.queryString);
+        oprot.writeFieldEnd();
+      }
+      if (struct.queryBinary != null) {
+        oprot.writeFieldBegin(QUERY_BINARY_FIELD_DESC);
+        oprot.writeBinary(struct.queryBinary);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class QueryTupleSchemeFactory implements SchemeFactory {
+    public QueryTupleScheme getScheme() {
+      return new QueryTupleScheme();
+    }
+  }
+
+  private static class QueryTupleScheme extends TupleScheme<Query> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, Query struct) 
throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetType()) {
+        optionals.set(0);
+      }
+      if (struct.isSetQueryString()) {
+        optionals.set(1);
+      }
+      if (struct.isSetQueryBinary()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetType()) {
+        oprot.writeI32(struct.type.getValue());
+      }
+      if (struct.isSetQueryString()) {
+        oprot.writeString(struct.queryString);
+      }
+      if (struct.isSetQueryBinary()) {
+        oprot.writeBinary(struct.queryBinary);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, Query struct) 
throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.type = QueryType.findByValue(iprot.readI32());
+        struct.setTypeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.queryString = iprot.readString();
+        struct.setQueryStringIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.queryBinary = iprot.readBinary();
+        struct.setQueryBinaryIsSet(true);
+      }
+    }
+  }
+
+}
+

Reply via email to