incubator-blur-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From amccu...@apache.org
Subject [11/51] [partial] Fixed BLUR-126.
Date Thu, 06 Jun 2013 18:57:43 GMT
http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/b0e26648/blur-thrift/src/main/java/org/apache/blur/thrift/generated/HighlightOptions.java
----------------------------------------------------------------------
diff --git a/blur-thrift/src/main/java/org/apache/blur/thrift/generated/HighlightOptions.java b/blur-thrift/src/main/java/org/apache/blur/thrift/generated/HighlightOptions.java
new file mode 100644
index 0000000..634d9e6
--- /dev/null
+++ b/blur-thrift/src/main/java/org/apache/blur/thrift/generated/HighlightOptions.java
@@ -0,0 +1,557 @@
+/**
+ * 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.blur.thirdparty.thrift_0_9_0.scheme.IScheme;
+import org.apache.blur.thirdparty.thrift_0_9_0.scheme.SchemeFactory;
+import org.apache.blur.thirdparty.thrift_0_9_0.scheme.StandardScheme;
+
+import org.apache.blur.thirdparty.thrift_0_9_0.scheme.TupleScheme;
+import org.apache.blur.thirdparty.thrift_0_9_0.protocol.TTupleProtocol;
+import org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolException;
+import org.apache.blur.thirdparty.thrift_0_9_0.EncodingUtils;
+import org.apache.blur.thirdparty.thrift_0_9_0.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 HighlightOptions controls how the data is fetched and returned.
+ */
+public class HighlightOptions implements org.apache.blur.thirdparty.thrift_0_9_0.TBase<HighlightOptions, HighlightOptions._Fields>, java.io.Serializable, Cloneable {
+  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TStruct STRUCT_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TStruct("HighlightOptions");
+
+  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField SIMPLE_QUERY_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("simpleQuery", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRUCT, (short)1);
+  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField ONLY_MATCHING_RECORDS_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("onlyMatchingRecords", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new HighlightOptionsStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new HighlightOptionsTupleSchemeFactory());
+  }
+
+  /**
+   * The original query is required if used in the Blur.fetchRow call.  If
+   * the highlightOptions is used in a call to Blur.query then the SimpleQuery
+   * passed into the call via the BlurQuery will be used if this simpleQuery is
+   * null.  So that means if you use highlighting from the query call you can
+   * leave this attribute null and it will default to the normal behavior.
+   */
+  public SimpleQuery simpleQuery; // required
+  /**
+   * Only returns the records within a Row that matched in the query.  If the BlurQuery
+   * is not a superQuery then this option is not used.  Enabled by default.
+   */
+  public boolean onlyMatchingRecords; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.blur.thirdparty.thrift_0_9_0.TFieldIdEnum {
+    /**
+     * The original query is required if used in the Blur.fetchRow call.  If
+     * the highlightOptions is used in a call to Blur.query then the SimpleQuery
+     * passed into the call via the BlurQuery will be used if this simpleQuery is
+     * null.  So that means if you use highlighting from the query call you can
+     * leave this attribute null and it will default to the normal behavior.
+     */
+    SIMPLE_QUERY((short)1, "simpleQuery"),
+    /**
+     * Only returns the records within a Row that matched in the query.  If the BlurQuery
+     * is not a superQuery then this option is not used.  Enabled by default.
+     */
+    ONLY_MATCHING_RECORDS((short)2, "onlyMatchingRecords");
+
+    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: // SIMPLE_QUERY
+          return SIMPLE_QUERY;
+        case 2: // ONLY_MATCHING_RECORDS
+          return ONLY_MATCHING_RECORDS;
+        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 __ONLYMATCHINGRECORDS_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  public static final Map<_Fields, org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.SIMPLE_QUERY, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("simpleQuery", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
+        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.StructMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRUCT, SimpleQuery.class)));
+    tmpMap.put(_Fields.ONLY_MATCHING_RECORDS, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("onlyMatchingRecords", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
+        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData.addStructMetaDataMap(HighlightOptions.class, metaDataMap);
+  }
+
+  public HighlightOptions() {
+    this.onlyMatchingRecords = true;
+
+  }
+
+  public HighlightOptions(
+    SimpleQuery simpleQuery,
+    boolean onlyMatchingRecords)
+  {
+    this();
+    this.simpleQuery = simpleQuery;
+    this.onlyMatchingRecords = onlyMatchingRecords;
+    setOnlyMatchingRecordsIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public HighlightOptions(HighlightOptions other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetSimpleQuery()) {
+      this.simpleQuery = new SimpleQuery(other.simpleQuery);
+    }
+    this.onlyMatchingRecords = other.onlyMatchingRecords;
+  }
+
+  public HighlightOptions deepCopy() {
+    return new HighlightOptions(this);
+  }
+
+  @Override
+  public void clear() {
+    this.simpleQuery = null;
+    this.onlyMatchingRecords = true;
+
+  }
+
+  /**
+   * The original query is required if used in the Blur.fetchRow call.  If
+   * the highlightOptions is used in a call to Blur.query then the SimpleQuery
+   * passed into the call via the BlurQuery will be used if this simpleQuery is
+   * null.  So that means if you use highlighting from the query call you can
+   * leave this attribute null and it will default to the normal behavior.
+   */
+  public SimpleQuery getSimpleQuery() {
+    return this.simpleQuery;
+  }
+
+  /**
+   * The original query is required if used in the Blur.fetchRow call.  If
+   * the highlightOptions is used in a call to Blur.query then the SimpleQuery
+   * passed into the call via the BlurQuery will be used if this simpleQuery is
+   * null.  So that means if you use highlighting from the query call you can
+   * leave this attribute null and it will default to the normal behavior.
+   */
+  public HighlightOptions setSimpleQuery(SimpleQuery simpleQuery) {
+    this.simpleQuery = simpleQuery;
+    return this;
+  }
+
+  public void unsetSimpleQuery() {
+    this.simpleQuery = null;
+  }
+
+  /** Returns true if field simpleQuery is set (has been assigned a value) and false otherwise */
+  public boolean isSetSimpleQuery() {
+    return this.simpleQuery != null;
+  }
+
+  public void setSimpleQueryIsSet(boolean value) {
+    if (!value) {
+      this.simpleQuery = null;
+    }
+  }
+
+  /**
+   * Only returns the records within a Row that matched in the query.  If the BlurQuery
+   * is not a superQuery then this option is not used.  Enabled by default.
+   */
+  public boolean isOnlyMatchingRecords() {
+    return this.onlyMatchingRecords;
+  }
+
+  /**
+   * Only returns the records within a Row that matched in the query.  If the BlurQuery
+   * is not a superQuery then this option is not used.  Enabled by default.
+   */
+  public HighlightOptions setOnlyMatchingRecords(boolean onlyMatchingRecords) {
+    this.onlyMatchingRecords = onlyMatchingRecords;
+    setOnlyMatchingRecordsIsSet(true);
+    return this;
+  }
+
+  public void unsetOnlyMatchingRecords() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ONLYMATCHINGRECORDS_ISSET_ID);
+  }
+
+  /** Returns true if field onlyMatchingRecords is set (has been assigned a value) and false otherwise */
+  public boolean isSetOnlyMatchingRecords() {
+    return EncodingUtils.testBit(__isset_bitfield, __ONLYMATCHINGRECORDS_ISSET_ID);
+  }
+
+  public void setOnlyMatchingRecordsIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ONLYMATCHINGRECORDS_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case SIMPLE_QUERY:
+      if (value == null) {
+        unsetSimpleQuery();
+      } else {
+        setSimpleQuery((SimpleQuery)value);
+      }
+      break;
+
+    case ONLY_MATCHING_RECORDS:
+      if (value == null) {
+        unsetOnlyMatchingRecords();
+      } else {
+        setOnlyMatchingRecords((Boolean)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case SIMPLE_QUERY:
+      return getSimpleQuery();
+
+    case ONLY_MATCHING_RECORDS:
+      return Boolean.valueOf(isOnlyMatchingRecords());
+
+    }
+    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 SIMPLE_QUERY:
+      return isSetSimpleQuery();
+    case ONLY_MATCHING_RECORDS:
+      return isSetOnlyMatchingRecords();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof HighlightOptions)
+      return this.equals((HighlightOptions)that);
+    return false;
+  }
+
+  public boolean equals(HighlightOptions that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_simpleQuery = true && this.isSetSimpleQuery();
+    boolean that_present_simpleQuery = true && that.isSetSimpleQuery();
+    if (this_present_simpleQuery || that_present_simpleQuery) {
+      if (!(this_present_simpleQuery && that_present_simpleQuery))
+        return false;
+      if (!this.simpleQuery.equals(that.simpleQuery))
+        return false;
+    }
+
+    boolean this_present_onlyMatchingRecords = true;
+    boolean that_present_onlyMatchingRecords = true;
+    if (this_present_onlyMatchingRecords || that_present_onlyMatchingRecords) {
+      if (!(this_present_onlyMatchingRecords && that_present_onlyMatchingRecords))
+        return false;
+      if (this.onlyMatchingRecords != that.onlyMatchingRecords)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  public int compareTo(HighlightOptions other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+    HighlightOptions typedOther = (HighlightOptions)other;
+
+    lastComparison = Boolean.valueOf(isSetSimpleQuery()).compareTo(typedOther.isSetSimpleQuery());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSimpleQuery()) {
+      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.simpleQuery, typedOther.simpleQuery);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetOnlyMatchingRecords()).compareTo(typedOther.isSetOnlyMatchingRecords());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOnlyMatchingRecords()) {
+      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.onlyMatchingRecords, typedOther.onlyMatchingRecords);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol iprot) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol oprot) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("HighlightOptions(");
+    boolean first = true;
+
+    sb.append("simpleQuery:");
+    if (this.simpleQuery == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.simpleQuery);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("onlyMatchingRecords:");
+    sb.append(this.onlyMatchingRecords);
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+    // check for required fields
+    // check for sub-struct validity
+    if (simpleQuery != null) {
+      simpleQuery.validate();
+    }
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TCompactProtocol(new org.apache.blur.thirdparty.thrift_0_9_0.transport.TIOStreamTransport(out)));
+    } catch (org.apache.blur.thirdparty.thrift_0_9_0.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.blur.thirdparty.thrift_0_9_0.protocol.TCompactProtocol(new org.apache.blur.thirdparty.thrift_0_9_0.transport.TIOStreamTransport(in)));
+    } catch (org.apache.blur.thirdparty.thrift_0_9_0.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class HighlightOptionsStandardSchemeFactory implements SchemeFactory {
+    public HighlightOptionsStandardScheme getScheme() {
+      return new HighlightOptionsStandardScheme();
+    }
+  }
+
+  private static class HighlightOptionsStandardScheme extends StandardScheme<HighlightOptions> {
+
+    public void read(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol iprot, HighlightOptions struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+      org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // SIMPLE_QUERY
+            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRUCT) {
+              struct.simpleQuery = new SimpleQuery();
+              struct.simpleQuery.read(iprot);
+              struct.setSimpleQueryIsSet(true);
+            } else { 
+              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // ONLY_MATCHING_RECORDS
+            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL) {
+              struct.onlyMatchingRecords = iprot.readBool();
+              struct.setOnlyMatchingRecordsIsSet(true);
+            } else { 
+              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.blur.thirdparty.thrift_0_9_0.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.blur.thirdparty.thrift_0_9_0.protocol.TProtocol oprot, HighlightOptions struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.simpleQuery != null) {
+        oprot.writeFieldBegin(SIMPLE_QUERY_FIELD_DESC);
+        struct.simpleQuery.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(ONLY_MATCHING_RECORDS_FIELD_DESC);
+      oprot.writeBool(struct.onlyMatchingRecords);
+      oprot.writeFieldEnd();
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class HighlightOptionsTupleSchemeFactory implements SchemeFactory {
+    public HighlightOptionsTupleScheme getScheme() {
+      return new HighlightOptionsTupleScheme();
+    }
+  }
+
+  private static class HighlightOptionsTupleScheme extends TupleScheme<HighlightOptions> {
+
+    @Override
+    public void write(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol prot, HighlightOptions struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetSimpleQuery()) {
+        optionals.set(0);
+      }
+      if (struct.isSetOnlyMatchingRecords()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetSimpleQuery()) {
+        struct.simpleQuery.write(oprot);
+      }
+      if (struct.isSetOnlyMatchingRecords()) {
+        oprot.writeBool(struct.onlyMatchingRecords);
+      }
+    }
+
+    @Override
+    public void read(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol prot, HighlightOptions struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.simpleQuery = new SimpleQuery();
+        struct.simpleQuery.read(iprot);
+        struct.setSimpleQueryIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.onlyMatchingRecords = iprot.readBool();
+        struct.setOnlyMatchingRecordsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/b0e26648/blur-thrift/src/main/java/org/apache/blur/thrift/generated/QueryState.java
----------------------------------------------------------------------
diff --git a/blur-thrift/src/main/java/org/apache/blur/thrift/generated/QueryState.java b/blur-thrift/src/main/java/org/apache/blur/thrift/generated/QueryState.java
new file mode 100644
index 0000000..d721550
--- /dev/null
+++ b/blur-thrift/src/main/java/org/apache/blur/thrift/generated/QueryState.java
@@ -0,0 +1,73 @@
+/**
+ * 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 java.util.Map;
+import java.util.HashMap;
+import org.apache.blur.thirdparty.thrift_0_9_0.TEnum;
+
+/**
+ * The state of a query.<br/><br/>
+ * RUNNING - Query is running.<br/><br/>
+ * INTERRUPTED - Query has been interrupted.<br/><br/>
+ * COMPLETE - Query is complete.<br/>
+ */
+public enum QueryState implements org.apache.blur.thirdparty.thrift_0_9_0.TEnum {
+  RUNNING(0),
+  INTERRUPTED(1),
+  COMPLETE(2);
+
+  private final int value;
+
+  private QueryState(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 QueryState findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return RUNNING;
+      case 1:
+        return INTERRUPTED;
+      case 2:
+        return COMPLETE;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/b0e26648/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Record.java
----------------------------------------------------------------------
diff --git a/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Record.java b/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Record.java
new file mode 100644
index 0000000..d2564dd
--- /dev/null
+++ b/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Record.java
@@ -0,0 +1,864 @@
+/**
+ * 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.blur.thirdparty.thrift_0_9_0.scheme.IScheme;
+import org.apache.blur.thirdparty.thrift_0_9_0.scheme.SchemeFactory;
+import org.apache.blur.thirdparty.thrift_0_9_0.scheme.StandardScheme;
+
+import org.apache.blur.thirdparty.thrift_0_9_0.scheme.TupleScheme;
+import org.apache.blur.thirdparty.thrift_0_9_0.protocol.TTupleProtocol;
+import org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolException;
+import org.apache.blur.thirdparty.thrift_0_9_0.EncodingUtils;
+import org.apache.blur.thirdparty.thrift_0_9_0.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;
+
+/**
+ * Records contain a list of columns, multiple columns with the same name are allowed.
+ */
+public class Record implements org.apache.blur.thirdparty.thrift_0_9_0.TBase<Record, Record._Fields>, java.io.Serializable, Cloneable {
+  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TStruct STRUCT_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TStruct("Record");
+
+  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField RECORD_ID_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("recordId", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, (short)1);
+  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField FAMILY_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("family", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, (short)2);
+  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField COLUMNS_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("columns", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST, (short)3);
+  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField HIGHLIGHTED_COLUMNS_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("highlightedColumns", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST, (short)4);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new RecordStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new RecordTupleSchemeFactory());
+  }
+
+  /**
+   * Record id uniquely identifies a record within a single row.
+   */
+  public String recordId; // required
+  /**
+   * The family in which this record resides.
+   */
+  public String family; // required
+  /**
+   * A list of columns, multiple columns with the same name are allowed.
+   */
+  public List<Column> columns; // required
+  /**
+   * A list of the highlighted columns.
+   */
+  public List<Column> highlightedColumns; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.blur.thirdparty.thrift_0_9_0.TFieldIdEnum {
+    /**
+     * Record id uniquely identifies a record within a single row.
+     */
+    RECORD_ID((short)1, "recordId"),
+    /**
+     * The family in which this record resides.
+     */
+    FAMILY((short)2, "family"),
+    /**
+     * A list of columns, multiple columns with the same name are allowed.
+     */
+    COLUMNS((short)3, "columns"),
+    /**
+     * A list of the highlighted columns.
+     */
+    HIGHLIGHTED_COLUMNS((short)4, "highlightedColumns");
+
+    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: // RECORD_ID
+          return RECORD_ID;
+        case 2: // FAMILY
+          return FAMILY;
+        case 3: // COLUMNS
+          return COLUMNS;
+        case 4: // HIGHLIGHTED_COLUMNS
+          return HIGHLIGHTED_COLUMNS;
+        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.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.RECORD_ID, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("recordId", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
+        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING)));
+    tmpMap.put(_Fields.FAMILY, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("family", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
+        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING)));
+    tmpMap.put(_Fields.COLUMNS, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("columns", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
+        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.ListMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST, 
+            new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.StructMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRUCT, Column.class))));
+    tmpMap.put(_Fields.HIGHLIGHTED_COLUMNS, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("highlightedColumns", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
+        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.ListMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST, 
+            new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.StructMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRUCT, Column.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData.addStructMetaDataMap(Record.class, metaDataMap);
+  }
+
+  public Record() {
+  }
+
+  public Record(
+    String recordId,
+    String family,
+    List<Column> columns,
+    List<Column> highlightedColumns)
+  {
+    this();
+    this.recordId = recordId;
+    this.family = family;
+    this.columns = columns;
+    this.highlightedColumns = highlightedColumns;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public Record(Record other) {
+    if (other.isSetRecordId()) {
+      this.recordId = other.recordId;
+    }
+    if (other.isSetFamily()) {
+      this.family = other.family;
+    }
+    if (other.isSetColumns()) {
+      List<Column> __this__columns = new ArrayList<Column>();
+      for (Column other_element : other.columns) {
+        __this__columns.add(new Column(other_element));
+      }
+      this.columns = __this__columns;
+    }
+    if (other.isSetHighlightedColumns()) {
+      List<Column> __this__highlightedColumns = new ArrayList<Column>();
+      for (Column other_element : other.highlightedColumns) {
+        __this__highlightedColumns.add(new Column(other_element));
+      }
+      this.highlightedColumns = __this__highlightedColumns;
+    }
+  }
+
+  public Record deepCopy() {
+    return new Record(this);
+  }
+
+  @Override
+  public void clear() {
+    this.recordId = null;
+    this.family = null;
+    this.columns = null;
+    this.highlightedColumns = null;
+  }
+
+  /**
+   * Record id uniquely identifies a record within a single row.
+   */
+  public String getRecordId() {
+    return this.recordId;
+  }
+
+  /**
+   * Record id uniquely identifies a record within a single row.
+   */
+  public Record setRecordId(String recordId) {
+    this.recordId = recordId;
+    return this;
+  }
+
+  public void unsetRecordId() {
+    this.recordId = null;
+  }
+
+  /** Returns true if field recordId is set (has been assigned a value) and false otherwise */
+  public boolean isSetRecordId() {
+    return this.recordId != null;
+  }
+
+  public void setRecordIdIsSet(boolean value) {
+    if (!value) {
+      this.recordId = null;
+    }
+  }
+
+  /**
+   * The family in which this record resides.
+   */
+  public String getFamily() {
+    return this.family;
+  }
+
+  /**
+   * The family in which this record resides.
+   */
+  public Record setFamily(String family) {
+    this.family = family;
+    return this;
+  }
+
+  public void unsetFamily() {
+    this.family = null;
+  }
+
+  /** Returns true if field family is set (has been assigned a value) and false otherwise */
+  public boolean isSetFamily() {
+    return this.family != null;
+  }
+
+  public void setFamilyIsSet(boolean value) {
+    if (!value) {
+      this.family = null;
+    }
+  }
+
+  public int getColumnsSize() {
+    return (this.columns == null) ? 0 : this.columns.size();
+  }
+
+  public java.util.Iterator<Column> getColumnsIterator() {
+    return (this.columns == null) ? null : this.columns.iterator();
+  }
+
+  public void addToColumns(Column elem) {
+    if (this.columns == null) {
+      this.columns = new ArrayList<Column>();
+    }
+    this.columns.add(elem);
+  }
+
+  /**
+   * A list of columns, multiple columns with the same name are allowed.
+   */
+  public List<Column> getColumns() {
+    return this.columns;
+  }
+
+  /**
+   * A list of columns, multiple columns with the same name are allowed.
+   */
+  public Record setColumns(List<Column> columns) {
+    this.columns = columns;
+    return this;
+  }
+
+  public void unsetColumns() {
+    this.columns = null;
+  }
+
+  /** Returns true if field columns is set (has been assigned a value) and false otherwise */
+  public boolean isSetColumns() {
+    return this.columns != null;
+  }
+
+  public void setColumnsIsSet(boolean value) {
+    if (!value) {
+      this.columns = null;
+    }
+  }
+
+  public int getHighlightedColumnsSize() {
+    return (this.highlightedColumns == null) ? 0 : this.highlightedColumns.size();
+  }
+
+  public java.util.Iterator<Column> getHighlightedColumnsIterator() {
+    return (this.highlightedColumns == null) ? null : this.highlightedColumns.iterator();
+  }
+
+  public void addToHighlightedColumns(Column elem) {
+    if (this.highlightedColumns == null) {
+      this.highlightedColumns = new ArrayList<Column>();
+    }
+    this.highlightedColumns.add(elem);
+  }
+
+  /**
+   * A list of the highlighted columns.
+   */
+  public List<Column> getHighlightedColumns() {
+    return this.highlightedColumns;
+  }
+
+  /**
+   * A list of the highlighted columns.
+   */
+  public Record setHighlightedColumns(List<Column> highlightedColumns) {
+    this.highlightedColumns = highlightedColumns;
+    return this;
+  }
+
+  public void unsetHighlightedColumns() {
+    this.highlightedColumns = null;
+  }
+
+  /** Returns true if field highlightedColumns is set (has been assigned a value) and false otherwise */
+  public boolean isSetHighlightedColumns() {
+    return this.highlightedColumns != null;
+  }
+
+  public void setHighlightedColumnsIsSet(boolean value) {
+    if (!value) {
+      this.highlightedColumns = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case RECORD_ID:
+      if (value == null) {
+        unsetRecordId();
+      } else {
+        setRecordId((String)value);
+      }
+      break;
+
+    case FAMILY:
+      if (value == null) {
+        unsetFamily();
+      } else {
+        setFamily((String)value);
+      }
+      break;
+
+    case COLUMNS:
+      if (value == null) {
+        unsetColumns();
+      } else {
+        setColumns((List<Column>)value);
+      }
+      break;
+
+    case HIGHLIGHTED_COLUMNS:
+      if (value == null) {
+        unsetHighlightedColumns();
+      } else {
+        setHighlightedColumns((List<Column>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case RECORD_ID:
+      return getRecordId();
+
+    case FAMILY:
+      return getFamily();
+
+    case COLUMNS:
+      return getColumns();
+
+    case HIGHLIGHTED_COLUMNS:
+      return getHighlightedColumns();
+
+    }
+    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 RECORD_ID:
+      return isSetRecordId();
+    case FAMILY:
+      return isSetFamily();
+    case COLUMNS:
+      return isSetColumns();
+    case HIGHLIGHTED_COLUMNS:
+      return isSetHighlightedColumns();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof Record)
+      return this.equals((Record)that);
+    return false;
+  }
+
+  public boolean equals(Record that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_recordId = true && this.isSetRecordId();
+    boolean that_present_recordId = true && that.isSetRecordId();
+    if (this_present_recordId || that_present_recordId) {
+      if (!(this_present_recordId && that_present_recordId))
+        return false;
+      if (!this.recordId.equals(that.recordId))
+        return false;
+    }
+
+    boolean this_present_family = true && this.isSetFamily();
+    boolean that_present_family = true && that.isSetFamily();
+    if (this_present_family || that_present_family) {
+      if (!(this_present_family && that_present_family))
+        return false;
+      if (!this.family.equals(that.family))
+        return false;
+    }
+
+    boolean this_present_columns = true && this.isSetColumns();
+    boolean that_present_columns = true && that.isSetColumns();
+    if (this_present_columns || that_present_columns) {
+      if (!(this_present_columns && that_present_columns))
+        return false;
+      if (!this.columns.equals(that.columns))
+        return false;
+    }
+
+    boolean this_present_highlightedColumns = true && this.isSetHighlightedColumns();
+    boolean that_present_highlightedColumns = true && that.isSetHighlightedColumns();
+    if (this_present_highlightedColumns || that_present_highlightedColumns) {
+      if (!(this_present_highlightedColumns && that_present_highlightedColumns))
+        return false;
+      if (!this.highlightedColumns.equals(that.highlightedColumns))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  public int compareTo(Record other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+    Record typedOther = (Record)other;
+
+    lastComparison = Boolean.valueOf(isSetRecordId()).compareTo(typedOther.isSetRecordId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetRecordId()) {
+      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.recordId, typedOther.recordId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFamily()).compareTo(typedOther.isSetFamily());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFamily()) {
+      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.family, typedOther.family);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetColumns()).compareTo(typedOther.isSetColumns());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetColumns()) {
+      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.columns, typedOther.columns);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetHighlightedColumns()).compareTo(typedOther.isSetHighlightedColumns());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetHighlightedColumns()) {
+      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.highlightedColumns, typedOther.highlightedColumns);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol iprot) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol oprot) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("Record(");
+    boolean first = true;
+
+    sb.append("recordId:");
+    if (this.recordId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.recordId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("family:");
+    if (this.family == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.family);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("columns:");
+    if (this.columns == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.columns);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("highlightedColumns:");
+    if (this.highlightedColumns == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.highlightedColumns);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.blur.thirdparty.thrift_0_9_0.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.blur.thirdparty.thrift_0_9_0.protocol.TCompactProtocol(new org.apache.blur.thirdparty.thrift_0_9_0.transport.TIOStreamTransport(out)));
+    } catch (org.apache.blur.thirdparty.thrift_0_9_0.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.blur.thirdparty.thrift_0_9_0.protocol.TCompactProtocol(new org.apache.blur.thirdparty.thrift_0_9_0.transport.TIOStreamTransport(in)));
+    } catch (org.apache.blur.thirdparty.thrift_0_9_0.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class RecordStandardSchemeFactory implements SchemeFactory {
+    public RecordStandardScheme getScheme() {
+      return new RecordStandardScheme();
+    }
+  }
+
+  private static class RecordStandardScheme extends StandardScheme<Record> {
+
+    public void read(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol iprot, Record struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+      org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // RECORD_ID
+            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING) {
+              struct.recordId = iprot.readString();
+              struct.setRecordIdIsSet(true);
+            } else { 
+              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // FAMILY
+            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING) {
+              struct.family = iprot.readString();
+              struct.setFamilyIsSet(true);
+            } else { 
+              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // COLUMNS
+            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST) {
+              {
+                org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList _list0 = iprot.readListBegin();
+                struct.columns = new ArrayList<Column>(_list0.size);
+                for (int _i1 = 0; _i1 < _list0.size; ++_i1)
+                {
+                  Column _elem2; // required
+                  _elem2 = new Column();
+                  _elem2.read(iprot);
+                  struct.columns.add(_elem2);
+                }
+                iprot.readListEnd();
+              }
+              struct.setColumnsIsSet(true);
+            } else { 
+              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // HIGHLIGHTED_COLUMNS
+            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST) {
+              {
+                org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList _list3 = iprot.readListBegin();
+                struct.highlightedColumns = new ArrayList<Column>(_list3.size);
+                for (int _i4 = 0; _i4 < _list3.size; ++_i4)
+                {
+                  Column _elem5; // required
+                  _elem5 = new Column();
+                  _elem5.read(iprot);
+                  struct.highlightedColumns.add(_elem5);
+                }
+                iprot.readListEnd();
+              }
+              struct.setHighlightedColumnsIsSet(true);
+            } else { 
+              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.blur.thirdparty.thrift_0_9_0.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.blur.thirdparty.thrift_0_9_0.protocol.TProtocol oprot, Record struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.recordId != null) {
+        oprot.writeFieldBegin(RECORD_ID_FIELD_DESC);
+        oprot.writeString(struct.recordId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.family != null) {
+        oprot.writeFieldBegin(FAMILY_FIELD_DESC);
+        oprot.writeString(struct.family);
+        oprot.writeFieldEnd();
+      }
+      if (struct.columns != null) {
+        oprot.writeFieldBegin(COLUMNS_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRUCT, struct.columns.size()));
+          for (Column _iter6 : struct.columns)
+          {
+            _iter6.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      if (struct.highlightedColumns != null) {
+        oprot.writeFieldBegin(HIGHLIGHTED_COLUMNS_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRUCT, struct.highlightedColumns.size()));
+          for (Column _iter7 : struct.highlightedColumns)
+          {
+            _iter7.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class RecordTupleSchemeFactory implements SchemeFactory {
+    public RecordTupleScheme getScheme() {
+      return new RecordTupleScheme();
+    }
+  }
+
+  private static class RecordTupleScheme extends TupleScheme<Record> {
+
+    @Override
+    public void write(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol prot, Record struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetRecordId()) {
+        optionals.set(0);
+      }
+      if (struct.isSetFamily()) {
+        optionals.set(1);
+      }
+      if (struct.isSetColumns()) {
+        optionals.set(2);
+      }
+      if (struct.isSetHighlightedColumns()) {
+        optionals.set(3);
+      }
+      oprot.writeBitSet(optionals, 4);
+      if (struct.isSetRecordId()) {
+        oprot.writeString(struct.recordId);
+      }
+      if (struct.isSetFamily()) {
+        oprot.writeString(struct.family);
+      }
+      if (struct.isSetColumns()) {
+        {
+          oprot.writeI32(struct.columns.size());
+          for (Column _iter8 : struct.columns)
+          {
+            _iter8.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetHighlightedColumns()) {
+        {
+          oprot.writeI32(struct.highlightedColumns.size());
+          for (Column _iter9 : struct.highlightedColumns)
+          {
+            _iter9.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol prot, Record struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(4);
+      if (incoming.get(0)) {
+        struct.recordId = iprot.readString();
+        struct.setRecordIdIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.family = iprot.readString();
+        struct.setFamilyIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList _list10 = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRUCT, iprot.readI32());
+          struct.columns = new ArrayList<Column>(_list10.size);
+          for (int _i11 = 0; _i11 < _list10.size; ++_i11)
+          {
+            Column _elem12; // required
+            _elem12 = new Column();
+            _elem12.read(iprot);
+            struct.columns.add(_elem12);
+          }
+        }
+        struct.setColumnsIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList _list13 = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRUCT, iprot.readI32());
+          struct.highlightedColumns = new ArrayList<Column>(_list13.size);
+          for (int _i14 = 0; _i14 < _list13.size; ++_i14)
+          {
+            Column _elem15; // required
+            _elem15 = new Column();
+            _elem15.read(iprot);
+            struct.highlightedColumns.add(_elem15);
+          }
+        }
+        struct.setHighlightedColumnsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/b0e26648/blur-thrift/src/main/java/org/apache/blur/thrift/generated/RecordMutation.java
----------------------------------------------------------------------
diff --git a/blur-thrift/src/main/java/org/apache/blur/thrift/generated/RecordMutation.java b/blur-thrift/src/main/java/org/apache/blur/thrift/generated/RecordMutation.java
new file mode 100644
index 0000000..83a542f
--- /dev/null
+++ b/blur-thrift/src/main/java/org/apache/blur/thrift/generated/RecordMutation.java
@@ -0,0 +1,545 @@
+/**
+ * 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.blur.thirdparty.thrift_0_9_0.scheme.IScheme;
+import org.apache.blur.thirdparty.thrift_0_9_0.scheme.SchemeFactory;
+import org.apache.blur.thirdparty.thrift_0_9_0.scheme.StandardScheme;
+
+import org.apache.blur.thirdparty.thrift_0_9_0.scheme.TupleScheme;
+import org.apache.blur.thirdparty.thrift_0_9_0.protocol.TTupleProtocol;
+import org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolException;
+import org.apache.blur.thirdparty.thrift_0_9_0.EncodingUtils;
+import org.apache.blur.thirdparty.thrift_0_9_0.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 RecordMutation implements org.apache.blur.thirdparty.thrift_0_9_0.TBase<RecordMutation, RecordMutation._Fields>, java.io.Serializable, Cloneable {
+  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TStruct STRUCT_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TStruct("RecordMutation");
+
+  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField RECORD_MUTATION_TYPE_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("recordMutationType", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.I32, (short)1);
+  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField RECORD_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("record", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRUCT, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new RecordMutationStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new RecordMutationTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * 
+   * @see RecordMutationType
+   */
+  public RecordMutationType recordMutationType; // required
+  /**
+   * 
+   */
+  public Record record; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.blur.thirdparty.thrift_0_9_0.TFieldIdEnum {
+    /**
+     * 
+     * 
+     * @see RecordMutationType
+     */
+    RECORD_MUTATION_TYPE((short)1, "recordMutationType"),
+    /**
+     * 
+     */
+    RECORD((short)2, "record");
+
+    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: // RECORD_MUTATION_TYPE
+          return RECORD_MUTATION_TYPE;
+        case 2: // RECORD
+          return RECORD;
+        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.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.RECORD_MUTATION_TYPE, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("recordMutationType", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
+        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.EnumMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.ENUM, RecordMutationType.class)));
+    tmpMap.put(_Fields.RECORD, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("record", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
+        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.StructMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRUCT, Record.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData.addStructMetaDataMap(RecordMutation.class, metaDataMap);
+  }
+
+  public RecordMutation() {
+  }
+
+  public RecordMutation(
+    RecordMutationType recordMutationType,
+    Record record)
+  {
+    this();
+    this.recordMutationType = recordMutationType;
+    this.record = record;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public RecordMutation(RecordMutation other) {
+    if (other.isSetRecordMutationType()) {
+      this.recordMutationType = other.recordMutationType;
+    }
+    if (other.isSetRecord()) {
+      this.record = new Record(other.record);
+    }
+  }
+
+  public RecordMutation deepCopy() {
+    return new RecordMutation(this);
+  }
+
+  @Override
+  public void clear() {
+    this.recordMutationType = null;
+    this.record = null;
+  }
+
+  /**
+   * 
+   * 
+   * @see RecordMutationType
+   */
+  public RecordMutationType getRecordMutationType() {
+    return this.recordMutationType;
+  }
+
+  /**
+   * 
+   * 
+   * @see RecordMutationType
+   */
+  public RecordMutation setRecordMutationType(RecordMutationType recordMutationType) {
+    this.recordMutationType = recordMutationType;
+    return this;
+  }
+
+  public void unsetRecordMutationType() {
+    this.recordMutationType = null;
+  }
+
+  /** Returns true if field recordMutationType is set (has been assigned a value) and false otherwise */
+  public boolean isSetRecordMutationType() {
+    return this.recordMutationType != null;
+  }
+
+  public void setRecordMutationTypeIsSet(boolean value) {
+    if (!value) {
+      this.recordMutationType = null;
+    }
+  }
+
+  /**
+   * 
+   */
+  public Record getRecord() {
+    return this.record;
+  }
+
+  /**
+   * 
+   */
+  public RecordMutation setRecord(Record record) {
+    this.record = record;
+    return this;
+  }
+
+  public void unsetRecord() {
+    this.record = null;
+  }
+
+  /** Returns true if field record is set (has been assigned a value) and false otherwise */
+  public boolean isSetRecord() {
+    return this.record != null;
+  }
+
+  public void setRecordIsSet(boolean value) {
+    if (!value) {
+      this.record = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case RECORD_MUTATION_TYPE:
+      if (value == null) {
+        unsetRecordMutationType();
+      } else {
+        setRecordMutationType((RecordMutationType)value);
+      }
+      break;
+
+    case RECORD:
+      if (value == null) {
+        unsetRecord();
+      } else {
+        setRecord((Record)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case RECORD_MUTATION_TYPE:
+      return getRecordMutationType();
+
+    case RECORD:
+      return getRecord();
+
+    }
+    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 RECORD_MUTATION_TYPE:
+      return isSetRecordMutationType();
+    case RECORD:
+      return isSetRecord();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof RecordMutation)
+      return this.equals((RecordMutation)that);
+    return false;
+  }
+
+  public boolean equals(RecordMutation that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_recordMutationType = true && this.isSetRecordMutationType();
+    boolean that_present_recordMutationType = true && that.isSetRecordMutationType();
+    if (this_present_recordMutationType || that_present_recordMutationType) {
+      if (!(this_present_recordMutationType && that_present_recordMutationType))
+        return false;
+      if (!this.recordMutationType.equals(that.recordMutationType))
+        return false;
+    }
+
+    boolean this_present_record = true && this.isSetRecord();
+    boolean that_present_record = true && that.isSetRecord();
+    if (this_present_record || that_present_record) {
+      if (!(this_present_record && that_present_record))
+        return false;
+      if (!this.record.equals(that.record))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  public int compareTo(RecordMutation other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+    RecordMutation typedOther = (RecordMutation)other;
+
+    lastComparison = Boolean.valueOf(isSetRecordMutationType()).compareTo(typedOther.isSetRecordMutationType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetRecordMutationType()) {
+      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.recordMutationType, typedOther.recordMutationType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetRecord()).compareTo(typedOther.isSetRecord());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetRecord()) {
+      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.record, typedOther.record);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol iprot) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol oprot) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("RecordMutation(");
+    boolean first = true;
+
+    sb.append("recordMutationType:");
+    if (this.recordMutationType == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.recordMutationType);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("record:");
+    if (this.record == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.record);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+    // check for required fields
+    // check for sub-struct validity
+    if (record != null) {
+      record.validate();
+    }
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TCompactProtocol(new org.apache.blur.thirdparty.thrift_0_9_0.transport.TIOStreamTransport(out)));
+    } catch (org.apache.blur.thirdparty.thrift_0_9_0.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.blur.thirdparty.thrift_0_9_0.protocol.TCompactProtocol(new org.apache.blur.thirdparty.thrift_0_9_0.transport.TIOStreamTransport(in)));
+    } catch (org.apache.blur.thirdparty.thrift_0_9_0.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class RecordMutationStandardSchemeFactory implements SchemeFactory {
+    public RecordMutationStandardScheme getScheme() {
+      return new RecordMutationStandardScheme();
+    }
+  }
+
+  private static class RecordMutationStandardScheme extends StandardScheme<RecordMutation> {
+
+    public void read(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol iprot, RecordMutation struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+      org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // RECORD_MUTATION_TYPE
+            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.I32) {
+              struct.recordMutationType = RecordMutationType.findByValue(iprot.readI32());
+              struct.setRecordMutationTypeIsSet(true);
+            } else { 
+              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // RECORD
+            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRUCT) {
+              struct.record = new Record();
+              struct.record.read(iprot);
+              struct.setRecordIsSet(true);
+            } else { 
+              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.blur.thirdparty.thrift_0_9_0.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.blur.thirdparty.thrift_0_9_0.protocol.TProtocol oprot, RecordMutation struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.recordMutationType != null) {
+        oprot.writeFieldBegin(RECORD_MUTATION_TYPE_FIELD_DESC);
+        oprot.writeI32(struct.recordMutationType.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.record != null) {
+        oprot.writeFieldBegin(RECORD_FIELD_DESC);
+        struct.record.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class RecordMutationTupleSchemeFactory implements SchemeFactory {
+    public RecordMutationTupleScheme getScheme() {
+      return new RecordMutationTupleScheme();
+    }
+  }
+
+  private static class RecordMutationTupleScheme extends TupleScheme<RecordMutation> {
+
+    @Override
+    public void write(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol prot, RecordMutation struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetRecordMutationType()) {
+        optionals.set(0);
+      }
+      if (struct.isSetRecord()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetRecordMutationType()) {
+        oprot.writeI32(struct.recordMutationType.getValue());
+      }
+      if (struct.isSetRecord()) {
+        struct.record.write(oprot);
+      }
+    }
+
+    @Override
+    public void read(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol prot, RecordMutation struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.recordMutationType = RecordMutationType.findByValue(iprot.readI32());
+        struct.setRecordMutationTypeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.record = new Record();
+        struct.record.read(iprot);
+        struct.setRecordIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/b0e26648/blur-thrift/src/main/java/org/apache/blur/thrift/generated/RecordMutationType.java
----------------------------------------------------------------------
diff --git a/blur-thrift/src/main/java/org/apache/blur/thrift/generated/RecordMutationType.java b/blur-thrift/src/main/java/org/apache/blur/thrift/generated/RecordMutationType.java
new file mode 100644
index 0000000..1ea9d37
--- /dev/null
+++ b/blur-thrift/src/main/java/org/apache/blur/thrift/generated/RecordMutationType.java
@@ -0,0 +1,77 @@
+/**
+ * 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 java.util.Map;
+import java.util.HashMap;
+import org.apache.blur.thirdparty.thrift_0_9_0.TEnum;
+
+/**
+ * Specifies the type of Record mutation that should occur during a mutation of a given Record.<br/><br/>
+ * DELETE_ENTIRE_RECORD -  Indicates the Record with the given recordId in the given Row is to be deleted.  If the target record does not exist, then no changes are made.<br/><br/>
+ * REPLACE_ENTIRE_RECORD - Indicates the Record with the given recordId in the given Row is to be deleted, and a new Record with the same id is to be added. If the specified record does not exist the new record is still added.<br/><br/>
+ * REPLACE_COLUMNS - Replace the columns that are specified in the Record mutation.  If the target record does not exist then this mutation will result in a BlurException.<br/><br/>
+ * APPEND_COLUMN_VALUES - Append the columns in the Record mutation to the Record that could already exist.  If the target record does not exist then this mutation will result in a BlurException.<br/>
+ */
+public enum RecordMutationType implements org.apache.blur.thirdparty.thrift_0_9_0.TEnum {
+  DELETE_ENTIRE_RECORD(0),
+  REPLACE_ENTIRE_RECORD(1),
+  REPLACE_COLUMNS(2),
+  APPEND_COLUMN_VALUES(3);
+
+  private final int value;
+
+  private RecordMutationType(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 RecordMutationType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return DELETE_ENTIRE_RECORD;
+      case 1:
+        return REPLACE_ENTIRE_RECORD;
+      case 2:
+        return REPLACE_COLUMNS;
+      case 3:
+        return APPEND_COLUMN_VALUES;
+      default:
+        return null;
+    }
+  }
+}


Mime
View raw message