You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2017/03/20 14:49:03 UTC

[7/9] accumulo git commit: ACCUMULO-4501 ACCUMULO-96 Added Summarization

http://git-wip-us.apache.org/repos/asf/accumulo/blob/94cdcc4d/core/src/main/java/org/apache/accumulo/core/data/thrift/TSummaries.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/data/thrift/TSummaries.java b/core/src/main/java/org/apache/accumulo/core/data/thrift/TSummaries.java
new file mode 100644
index 0000000..1c860ff
--- /dev/null
+++ b/core/src/main/java/org/apache/accumulo/core/data/thrift/TSummaries.java
@@ -0,0 +1,831 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Autogenerated by Thrift Compiler (0.10.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.accumulo.core.data.thrift;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
+public class TSummaries implements org.apache.thrift.TBase<TSummaries, TSummaries._Fields>, java.io.Serializable, Cloneable, Comparable<TSummaries> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSummaries");
+
+  private static final org.apache.thrift.protocol.TField FINISHED_FIELD_DESC = new org.apache.thrift.protocol.TField("finished", org.apache.thrift.protocol.TType.BOOL, (short)1);
+  private static final org.apache.thrift.protocol.TField SESSION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("sessionId", org.apache.thrift.protocol.TType.I64, (short)2);
+  private static final org.apache.thrift.protocol.TField TOTAL_FILES_FIELD_DESC = new org.apache.thrift.protocol.TField("totalFiles", org.apache.thrift.protocol.TType.I64, (short)3);
+  private static final org.apache.thrift.protocol.TField DELETED_FILES_FIELD_DESC = new org.apache.thrift.protocol.TField("deletedFiles", org.apache.thrift.protocol.TType.I64, (short)4);
+  private static final org.apache.thrift.protocol.TField SUMMARIES_FIELD_DESC = new org.apache.thrift.protocol.TField("summaries", org.apache.thrift.protocol.TType.LIST, (short)5);
+
+  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new TSummariesStandardSchemeFactory();
+  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new TSummariesTupleSchemeFactory();
+
+  public boolean finished; // required
+  public long sessionId; // required
+  public long totalFiles; // required
+  public long deletedFiles; // required
+  public java.util.List<TSummary> summaries; // 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 {
+    FINISHED((short)1, "finished"),
+    SESSION_ID((short)2, "sessionId"),
+    TOTAL_FILES((short)3, "totalFiles"),
+    DELETED_FILES((short)4, "deletedFiles"),
+    SUMMARIES((short)5, "summaries");
+
+    private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+    static {
+      for (_Fields field : java.util.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: // FINISHED
+          return FINISHED;
+        case 2: // SESSION_ID
+          return SESSION_ID;
+        case 3: // TOTAL_FILES
+          return TOTAL_FILES;
+        case 4: // DELETED_FILES
+          return DELETED_FILES;
+        case 5: // SUMMARIES
+          return SUMMARIES;
+        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 java.lang.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(java.lang.String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final java.lang.String _fieldName;
+
+    _Fields(short thriftId, java.lang.String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public java.lang.String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __FINISHED_ISSET_ID = 0;
+  private static final int __SESSIONID_ISSET_ID = 1;
+  private static final int __TOTALFILES_ISSET_ID = 2;
+  private static final int __DELETEDFILES_ISSET_ID = 3;
+  private byte __isset_bitfield = 0;
+  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.FINISHED, new org.apache.thrift.meta_data.FieldMetaData("finished", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.SESSION_ID, new org.apache.thrift.meta_data.FieldMetaData("sessionId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.TOTAL_FILES, new org.apache.thrift.meta_data.FieldMetaData("totalFiles", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.DELETED_FILES, new org.apache.thrift.meta_data.FieldMetaData("deletedFiles", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.SUMMARIES, new org.apache.thrift.meta_data.FieldMetaData("summaries", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSummary.class))));
+    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSummaries.class, metaDataMap);
+  }
+
+  public TSummaries() {
+  }
+
+  public TSummaries(
+    boolean finished,
+    long sessionId,
+    long totalFiles,
+    long deletedFiles,
+    java.util.List<TSummary> summaries)
+  {
+    this();
+    this.finished = finished;
+    setFinishedIsSet(true);
+    this.sessionId = sessionId;
+    setSessionIdIsSet(true);
+    this.totalFiles = totalFiles;
+    setTotalFilesIsSet(true);
+    this.deletedFiles = deletedFiles;
+    setDeletedFilesIsSet(true);
+    this.summaries = summaries;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TSummaries(TSummaries other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.finished = other.finished;
+    this.sessionId = other.sessionId;
+    this.totalFiles = other.totalFiles;
+    this.deletedFiles = other.deletedFiles;
+    if (other.isSetSummaries()) {
+      java.util.List<TSummary> __this__summaries = new java.util.ArrayList<TSummary>(other.summaries.size());
+      for (TSummary other_element : other.summaries) {
+        __this__summaries.add(new TSummary(other_element));
+      }
+      this.summaries = __this__summaries;
+    }
+  }
+
+  public TSummaries deepCopy() {
+    return new TSummaries(this);
+  }
+
+  @Override
+  public void clear() {
+    setFinishedIsSet(false);
+    this.finished = false;
+    setSessionIdIsSet(false);
+    this.sessionId = 0;
+    setTotalFilesIsSet(false);
+    this.totalFiles = 0;
+    setDeletedFilesIsSet(false);
+    this.deletedFiles = 0;
+    this.summaries = null;
+  }
+
+  public boolean isFinished() {
+    return this.finished;
+  }
+
+  public TSummaries setFinished(boolean finished) {
+    this.finished = finished;
+    setFinishedIsSet(true);
+    return this;
+  }
+
+  public void unsetFinished() {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __FINISHED_ISSET_ID);
+  }
+
+  /** Returns true if field finished is set (has been assigned a value) and false otherwise */
+  public boolean isSetFinished() {
+    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __FINISHED_ISSET_ID);
+  }
+
+  public void setFinishedIsSet(boolean value) {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __FINISHED_ISSET_ID, value);
+  }
+
+  public long getSessionId() {
+    return this.sessionId;
+  }
+
+  public TSummaries setSessionId(long sessionId) {
+    this.sessionId = sessionId;
+    setSessionIdIsSet(true);
+    return this;
+  }
+
+  public void unsetSessionId() {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SESSIONID_ISSET_ID);
+  }
+
+  /** Returns true if field sessionId is set (has been assigned a value) and false otherwise */
+  public boolean isSetSessionId() {
+    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SESSIONID_ISSET_ID);
+  }
+
+  public void setSessionIdIsSet(boolean value) {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SESSIONID_ISSET_ID, value);
+  }
+
+  public long getTotalFiles() {
+    return this.totalFiles;
+  }
+
+  public TSummaries setTotalFiles(long totalFiles) {
+    this.totalFiles = totalFiles;
+    setTotalFilesIsSet(true);
+    return this;
+  }
+
+  public void unsetTotalFiles() {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __TOTALFILES_ISSET_ID);
+  }
+
+  /** Returns true if field totalFiles is set (has been assigned a value) and false otherwise */
+  public boolean isSetTotalFiles() {
+    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __TOTALFILES_ISSET_ID);
+  }
+
+  public void setTotalFilesIsSet(boolean value) {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __TOTALFILES_ISSET_ID, value);
+  }
+
+  public long getDeletedFiles() {
+    return this.deletedFiles;
+  }
+
+  public TSummaries setDeletedFiles(long deletedFiles) {
+    this.deletedFiles = deletedFiles;
+    setDeletedFilesIsSet(true);
+    return this;
+  }
+
+  public void unsetDeletedFiles() {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DELETEDFILES_ISSET_ID);
+  }
+
+  /** Returns true if field deletedFiles is set (has been assigned a value) and false otherwise */
+  public boolean isSetDeletedFiles() {
+    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DELETEDFILES_ISSET_ID);
+  }
+
+  public void setDeletedFilesIsSet(boolean value) {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DELETEDFILES_ISSET_ID, value);
+  }
+
+  public int getSummariesSize() {
+    return (this.summaries == null) ? 0 : this.summaries.size();
+  }
+
+  public java.util.Iterator<TSummary> getSummariesIterator() {
+    return (this.summaries == null) ? null : this.summaries.iterator();
+  }
+
+  public void addToSummaries(TSummary elem) {
+    if (this.summaries == null) {
+      this.summaries = new java.util.ArrayList<TSummary>();
+    }
+    this.summaries.add(elem);
+  }
+
+  public java.util.List<TSummary> getSummaries() {
+    return this.summaries;
+  }
+
+  public TSummaries setSummaries(java.util.List<TSummary> summaries) {
+    this.summaries = summaries;
+    return this;
+  }
+
+  public void unsetSummaries() {
+    this.summaries = null;
+  }
+
+  /** Returns true if field summaries is set (has been assigned a value) and false otherwise */
+  public boolean isSetSummaries() {
+    return this.summaries != null;
+  }
+
+  public void setSummariesIsSet(boolean value) {
+    if (!value) {
+      this.summaries = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, java.lang.Object value) {
+    switch (field) {
+    case FINISHED:
+      if (value == null) {
+        unsetFinished();
+      } else {
+        setFinished((java.lang.Boolean)value);
+      }
+      break;
+
+    case SESSION_ID:
+      if (value == null) {
+        unsetSessionId();
+      } else {
+        setSessionId((java.lang.Long)value);
+      }
+      break;
+
+    case TOTAL_FILES:
+      if (value == null) {
+        unsetTotalFiles();
+      } else {
+        setTotalFiles((java.lang.Long)value);
+      }
+      break;
+
+    case DELETED_FILES:
+      if (value == null) {
+        unsetDeletedFiles();
+      } else {
+        setDeletedFiles((java.lang.Long)value);
+      }
+      break;
+
+    case SUMMARIES:
+      if (value == null) {
+        unsetSummaries();
+      } else {
+        setSummaries((java.util.List<TSummary>)value);
+      }
+      break;
+
+    }
+  }
+
+  public java.lang.Object getFieldValue(_Fields field) {
+    switch (field) {
+    case FINISHED:
+      return isFinished();
+
+    case SESSION_ID:
+      return getSessionId();
+
+    case TOTAL_FILES:
+      return getTotalFiles();
+
+    case DELETED_FILES:
+      return getDeletedFiles();
+
+    case SUMMARIES:
+      return getSummaries();
+
+    }
+    throw new java.lang.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 java.lang.IllegalArgumentException();
+    }
+
+    switch (field) {
+    case FINISHED:
+      return isSetFinished();
+    case SESSION_ID:
+      return isSetSessionId();
+    case TOTAL_FILES:
+      return isSetTotalFiles();
+    case DELETED_FILES:
+      return isSetDeletedFiles();
+    case SUMMARIES:
+      return isSetSummaries();
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(java.lang.Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TSummaries)
+      return this.equals((TSummaries)that);
+    return false;
+  }
+
+  public boolean equals(TSummaries that) {
+    if (that == null)
+      return false;
+    if (this == that)
+      return true;
+
+    boolean this_present_finished = true;
+    boolean that_present_finished = true;
+    if (this_present_finished || that_present_finished) {
+      if (!(this_present_finished && that_present_finished))
+        return false;
+      if (this.finished != that.finished)
+        return false;
+    }
+
+    boolean this_present_sessionId = true;
+    boolean that_present_sessionId = true;
+    if (this_present_sessionId || that_present_sessionId) {
+      if (!(this_present_sessionId && that_present_sessionId))
+        return false;
+      if (this.sessionId != that.sessionId)
+        return false;
+    }
+
+    boolean this_present_totalFiles = true;
+    boolean that_present_totalFiles = true;
+    if (this_present_totalFiles || that_present_totalFiles) {
+      if (!(this_present_totalFiles && that_present_totalFiles))
+        return false;
+      if (this.totalFiles != that.totalFiles)
+        return false;
+    }
+
+    boolean this_present_deletedFiles = true;
+    boolean that_present_deletedFiles = true;
+    if (this_present_deletedFiles || that_present_deletedFiles) {
+      if (!(this_present_deletedFiles && that_present_deletedFiles))
+        return false;
+      if (this.deletedFiles != that.deletedFiles)
+        return false;
+    }
+
+    boolean this_present_summaries = true && this.isSetSummaries();
+    boolean that_present_summaries = true && that.isSetSummaries();
+    if (this_present_summaries || that_present_summaries) {
+      if (!(this_present_summaries && that_present_summaries))
+        return false;
+      if (!this.summaries.equals(that.summaries))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int hashCode = 1;
+
+    hashCode = hashCode * 8191 + ((finished) ? 131071 : 524287);
+
+    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(sessionId);
+
+    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(totalFiles);
+
+    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(deletedFiles);
+
+    hashCode = hashCode * 8191 + ((isSetSummaries()) ? 131071 : 524287);
+    if (isSetSummaries())
+      hashCode = hashCode * 8191 + summaries.hashCode();
+
+    return hashCode;
+  }
+
+  @Override
+  public int compareTo(TSummaries other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = java.lang.Boolean.valueOf(isSetFinished()).compareTo(other.isSetFinished());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFinished()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.finished, other.finished);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetSessionId()).compareTo(other.isSetSessionId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSessionId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sessionId, other.sessionId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetTotalFiles()).compareTo(other.isSetTotalFiles());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTotalFiles()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.totalFiles, other.totalFiles);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetDeletedFiles()).compareTo(other.isSetDeletedFiles());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDeletedFiles()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.deletedFiles, other.deletedFiles);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetSummaries()).compareTo(other.isSetSummaries());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSummaries()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.summaries, other.summaries);
+      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 {
+    scheme(iprot).read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    scheme(oprot).write(oprot, this);
+  }
+
+  @Override
+  public java.lang.String toString() {
+    java.lang.StringBuilder sb = new java.lang.StringBuilder("TSummaries(");
+    boolean first = true;
+
+    sb.append("finished:");
+    sb.append(this.finished);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("sessionId:");
+    sb.append(this.sessionId);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("totalFiles:");
+    sb.append(this.totalFiles);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("deletedFiles:");
+    sb.append(this.deletedFiles);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("summaries:");
+    if (this.summaries == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.summaries);
+    }
+    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, java.lang.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 TSummariesStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public TSummariesStandardScheme getScheme() {
+      return new TSummariesStandardScheme();
+    }
+  }
+
+  private static class TSummariesStandardScheme extends org.apache.thrift.scheme.StandardScheme<TSummaries> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TSummaries 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: // FINISHED
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.finished = iprot.readBool();
+              struct.setFinishedIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SESSION_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.sessionId = iprot.readI64();
+              struct.setSessionIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // TOTAL_FILES
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.totalFiles = iprot.readI64();
+              struct.setTotalFilesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // DELETED_FILES
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.deletedFiles = iprot.readI64();
+              struct.setDeletedFilesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // SUMMARIES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list114 = iprot.readListBegin();
+                struct.summaries = new java.util.ArrayList<TSummary>(_list114.size);
+                TSummary _elem115;
+                for (int _i116 = 0; _i116 < _list114.size; ++_i116)
+                {
+                  _elem115 = new TSummary();
+                  _elem115.read(iprot);
+                  struct.summaries.add(_elem115);
+                }
+                iprot.readListEnd();
+              }
+              struct.setSummariesIsSet(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, TSummaries struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(FINISHED_FIELD_DESC);
+      oprot.writeBool(struct.finished);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(SESSION_ID_FIELD_DESC);
+      oprot.writeI64(struct.sessionId);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(TOTAL_FILES_FIELD_DESC);
+      oprot.writeI64(struct.totalFiles);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(DELETED_FILES_FIELD_DESC);
+      oprot.writeI64(struct.deletedFiles);
+      oprot.writeFieldEnd();
+      if (struct.summaries != null) {
+        oprot.writeFieldBegin(SUMMARIES_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.summaries.size()));
+          for (TSummary _iter117 : struct.summaries)
+          {
+            _iter117.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TSummariesTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public TSummariesTupleScheme getScheme() {
+      return new TSummariesTupleScheme();
+    }
+  }
+
+  private static class TSummariesTupleScheme extends org.apache.thrift.scheme.TupleScheme<TSummaries> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TSummaries struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      java.util.BitSet optionals = new java.util.BitSet();
+      if (struct.isSetFinished()) {
+        optionals.set(0);
+      }
+      if (struct.isSetSessionId()) {
+        optionals.set(1);
+      }
+      if (struct.isSetTotalFiles()) {
+        optionals.set(2);
+      }
+      if (struct.isSetDeletedFiles()) {
+        optionals.set(3);
+      }
+      if (struct.isSetSummaries()) {
+        optionals.set(4);
+      }
+      oprot.writeBitSet(optionals, 5);
+      if (struct.isSetFinished()) {
+        oprot.writeBool(struct.finished);
+      }
+      if (struct.isSetSessionId()) {
+        oprot.writeI64(struct.sessionId);
+      }
+      if (struct.isSetTotalFiles()) {
+        oprot.writeI64(struct.totalFiles);
+      }
+      if (struct.isSetDeletedFiles()) {
+        oprot.writeI64(struct.deletedFiles);
+      }
+      if (struct.isSetSummaries()) {
+        {
+          oprot.writeI32(struct.summaries.size());
+          for (TSummary _iter118 : struct.summaries)
+          {
+            _iter118.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TSummaries struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      java.util.BitSet incoming = iprot.readBitSet(5);
+      if (incoming.get(0)) {
+        struct.finished = iprot.readBool();
+        struct.setFinishedIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.sessionId = iprot.readI64();
+        struct.setSessionIdIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.totalFiles = iprot.readI64();
+        struct.setTotalFilesIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.deletedFiles = iprot.readI64();
+        struct.setDeletedFilesIsSet(true);
+      }
+      if (incoming.get(4)) {
+        {
+          org.apache.thrift.protocol.TList _list119 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.summaries = new java.util.ArrayList<TSummary>(_list119.size);
+          TSummary _elem120;
+          for (int _i121 = 0; _i121 < _list119.size; ++_i121)
+          {
+            _elem120 = new TSummary();
+            _elem120.read(iprot);
+            struct.summaries.add(_elem120);
+          }
+        }
+        struct.setSummariesIsSet(true);
+      }
+    }
+  }
+
+  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+  }
+  private static void unusedMethod() {}
+}
+

http://git-wip-us.apache.org/repos/asf/accumulo/blob/94cdcc4d/core/src/main/java/org/apache/accumulo/core/data/thrift/TSummarizerConfiguration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/data/thrift/TSummarizerConfiguration.java b/core/src/main/java/org/apache/accumulo/core/data/thrift/TSummarizerConfiguration.java
new file mode 100644
index 0000000..c4a72f3
--- /dev/null
+++ b/core/src/main/java/org/apache/accumulo/core/data/thrift/TSummarizerConfiguration.java
@@ -0,0 +1,649 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Autogenerated by Thrift Compiler (0.10.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.accumulo.core.data.thrift;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
+public class TSummarizerConfiguration implements org.apache.thrift.TBase<TSummarizerConfiguration, TSummarizerConfiguration._Fields>, java.io.Serializable, Cloneable, Comparable<TSummarizerConfiguration> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSummarizerConfiguration");
+
+  private static final org.apache.thrift.protocol.TField CLASSNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("classname", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField OPTIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("options", org.apache.thrift.protocol.TType.MAP, (short)2);
+  private static final org.apache.thrift.protocol.TField CONFIG_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("configId", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new TSummarizerConfigurationStandardSchemeFactory();
+  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new TSummarizerConfigurationTupleSchemeFactory();
+
+  public java.lang.String classname; // required
+  public java.util.Map<java.lang.String,java.lang.String> options; // required
+  public java.lang.String configId; // 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 {
+    CLASSNAME((short)1, "classname"),
+    OPTIONS((short)2, "options"),
+    CONFIG_ID((short)3, "configId");
+
+    private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+    static {
+      for (_Fields field : java.util.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: // CLASSNAME
+          return CLASSNAME;
+        case 2: // OPTIONS
+          return OPTIONS;
+        case 3: // CONFIG_ID
+          return CONFIG_ID;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new java.lang.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(java.lang.String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final java.lang.String _fieldName;
+
+    _Fields(short thriftId, java.lang.String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public java.lang.String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.CLASSNAME, new org.apache.thrift.meta_data.FieldMetaData("classname", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.OPTIONS, new org.apache.thrift.meta_data.FieldMetaData("options", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.CONFIG_ID, new org.apache.thrift.meta_data.FieldMetaData("configId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSummarizerConfiguration.class, metaDataMap);
+  }
+
+  public TSummarizerConfiguration() {
+  }
+
+  public TSummarizerConfiguration(
+    java.lang.String classname,
+    java.util.Map<java.lang.String,java.lang.String> options,
+    java.lang.String configId)
+  {
+    this();
+    this.classname = classname;
+    this.options = options;
+    this.configId = configId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TSummarizerConfiguration(TSummarizerConfiguration other) {
+    if (other.isSetClassname()) {
+      this.classname = other.classname;
+    }
+    if (other.isSetOptions()) {
+      java.util.Map<java.lang.String,java.lang.String> __this__options = new java.util.HashMap<java.lang.String,java.lang.String>(other.options);
+      this.options = __this__options;
+    }
+    if (other.isSetConfigId()) {
+      this.configId = other.configId;
+    }
+  }
+
+  public TSummarizerConfiguration deepCopy() {
+    return new TSummarizerConfiguration(this);
+  }
+
+  @Override
+  public void clear() {
+    this.classname = null;
+    this.options = null;
+    this.configId = null;
+  }
+
+  public java.lang.String getClassname() {
+    return this.classname;
+  }
+
+  public TSummarizerConfiguration setClassname(java.lang.String classname) {
+    this.classname = classname;
+    return this;
+  }
+
+  public void unsetClassname() {
+    this.classname = null;
+  }
+
+  /** Returns true if field classname is set (has been assigned a value) and false otherwise */
+  public boolean isSetClassname() {
+    return this.classname != null;
+  }
+
+  public void setClassnameIsSet(boolean value) {
+    if (!value) {
+      this.classname = null;
+    }
+  }
+
+  public int getOptionsSize() {
+    return (this.options == null) ? 0 : this.options.size();
+  }
+
+  public void putToOptions(java.lang.String key, java.lang.String val) {
+    if (this.options == null) {
+      this.options = new java.util.HashMap<java.lang.String,java.lang.String>();
+    }
+    this.options.put(key, val);
+  }
+
+  public java.util.Map<java.lang.String,java.lang.String> getOptions() {
+    return this.options;
+  }
+
+  public TSummarizerConfiguration setOptions(java.util.Map<java.lang.String,java.lang.String> options) {
+    this.options = options;
+    return this;
+  }
+
+  public void unsetOptions() {
+    this.options = null;
+  }
+
+  /** Returns true if field options is set (has been assigned a value) and false otherwise */
+  public boolean isSetOptions() {
+    return this.options != null;
+  }
+
+  public void setOptionsIsSet(boolean value) {
+    if (!value) {
+      this.options = null;
+    }
+  }
+
+  public java.lang.String getConfigId() {
+    return this.configId;
+  }
+
+  public TSummarizerConfiguration setConfigId(java.lang.String configId) {
+    this.configId = configId;
+    return this;
+  }
+
+  public void unsetConfigId() {
+    this.configId = null;
+  }
+
+  /** Returns true if field configId is set (has been assigned a value) and false otherwise */
+  public boolean isSetConfigId() {
+    return this.configId != null;
+  }
+
+  public void setConfigIdIsSet(boolean value) {
+    if (!value) {
+      this.configId = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, java.lang.Object value) {
+    switch (field) {
+    case CLASSNAME:
+      if (value == null) {
+        unsetClassname();
+      } else {
+        setClassname((java.lang.String)value);
+      }
+      break;
+
+    case OPTIONS:
+      if (value == null) {
+        unsetOptions();
+      } else {
+        setOptions((java.util.Map<java.lang.String,java.lang.String>)value);
+      }
+      break;
+
+    case CONFIG_ID:
+      if (value == null) {
+        unsetConfigId();
+      } else {
+        setConfigId((java.lang.String)value);
+      }
+      break;
+
+    }
+  }
+
+  public java.lang.Object getFieldValue(_Fields field) {
+    switch (field) {
+    case CLASSNAME:
+      return getClassname();
+
+    case OPTIONS:
+      return getOptions();
+
+    case CONFIG_ID:
+      return getConfigId();
+
+    }
+    throw new java.lang.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 java.lang.IllegalArgumentException();
+    }
+
+    switch (field) {
+    case CLASSNAME:
+      return isSetClassname();
+    case OPTIONS:
+      return isSetOptions();
+    case CONFIG_ID:
+      return isSetConfigId();
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(java.lang.Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TSummarizerConfiguration)
+      return this.equals((TSummarizerConfiguration)that);
+    return false;
+  }
+
+  public boolean equals(TSummarizerConfiguration that) {
+    if (that == null)
+      return false;
+    if (this == that)
+      return true;
+
+    boolean this_present_classname = true && this.isSetClassname();
+    boolean that_present_classname = true && that.isSetClassname();
+    if (this_present_classname || that_present_classname) {
+      if (!(this_present_classname && that_present_classname))
+        return false;
+      if (!this.classname.equals(that.classname))
+        return false;
+    }
+
+    boolean this_present_options = true && this.isSetOptions();
+    boolean that_present_options = true && that.isSetOptions();
+    if (this_present_options || that_present_options) {
+      if (!(this_present_options && that_present_options))
+        return false;
+      if (!this.options.equals(that.options))
+        return false;
+    }
+
+    boolean this_present_configId = true && this.isSetConfigId();
+    boolean that_present_configId = true && that.isSetConfigId();
+    if (this_present_configId || that_present_configId) {
+      if (!(this_present_configId && that_present_configId))
+        return false;
+      if (!this.configId.equals(that.configId))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int hashCode = 1;
+
+    hashCode = hashCode * 8191 + ((isSetClassname()) ? 131071 : 524287);
+    if (isSetClassname())
+      hashCode = hashCode * 8191 + classname.hashCode();
+
+    hashCode = hashCode * 8191 + ((isSetOptions()) ? 131071 : 524287);
+    if (isSetOptions())
+      hashCode = hashCode * 8191 + options.hashCode();
+
+    hashCode = hashCode * 8191 + ((isSetConfigId()) ? 131071 : 524287);
+    if (isSetConfigId())
+      hashCode = hashCode * 8191 + configId.hashCode();
+
+    return hashCode;
+  }
+
+  @Override
+  public int compareTo(TSummarizerConfiguration other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = java.lang.Boolean.valueOf(isSetClassname()).compareTo(other.isSetClassname());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetClassname()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.classname, other.classname);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetOptions()).compareTo(other.isSetOptions());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOptions()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.options, other.options);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetConfigId()).compareTo(other.isSetConfigId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetConfigId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.configId, other.configId);
+      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 {
+    scheme(iprot).read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    scheme(oprot).write(oprot, this);
+  }
+
+  @Override
+  public java.lang.String toString() {
+    java.lang.StringBuilder sb = new java.lang.StringBuilder("TSummarizerConfiguration(");
+    boolean first = true;
+
+    sb.append("classname:");
+    if (this.classname == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.classname);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("options:");
+    if (this.options == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.options);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("configId:");
+    if (this.configId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.configId);
+    }
+    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, java.lang.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 TSummarizerConfigurationStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public TSummarizerConfigurationStandardScheme getScheme() {
+      return new TSummarizerConfigurationStandardScheme();
+    }
+  }
+
+  private static class TSummarizerConfigurationStandardScheme extends org.apache.thrift.scheme.StandardScheme<TSummarizerConfiguration> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TSummarizerConfiguration 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: // CLASSNAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.classname = iprot.readString();
+              struct.setClassnameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // OPTIONS
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map94 = iprot.readMapBegin();
+                struct.options = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map94.size);
+                java.lang.String _key95;
+                java.lang.String _val96;
+                for (int _i97 = 0; _i97 < _map94.size; ++_i97)
+                {
+                  _key95 = iprot.readString();
+                  _val96 = iprot.readString();
+                  struct.options.put(_key95, _val96);
+                }
+                iprot.readMapEnd();
+              }
+              struct.setOptionsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // CONFIG_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.configId = iprot.readString();
+              struct.setConfigIdIsSet(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, TSummarizerConfiguration struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.classname != null) {
+        oprot.writeFieldBegin(CLASSNAME_FIELD_DESC);
+        oprot.writeString(struct.classname);
+        oprot.writeFieldEnd();
+      }
+      if (struct.options != null) {
+        oprot.writeFieldBegin(OPTIONS_FIELD_DESC);
+        {
+          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.options.size()));
+          for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter98 : struct.options.entrySet())
+          {
+            oprot.writeString(_iter98.getKey());
+            oprot.writeString(_iter98.getValue());
+          }
+          oprot.writeMapEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      if (struct.configId != null) {
+        oprot.writeFieldBegin(CONFIG_ID_FIELD_DESC);
+        oprot.writeString(struct.configId);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TSummarizerConfigurationTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public TSummarizerConfigurationTupleScheme getScheme() {
+      return new TSummarizerConfigurationTupleScheme();
+    }
+  }
+
+  private static class TSummarizerConfigurationTupleScheme extends org.apache.thrift.scheme.TupleScheme<TSummarizerConfiguration> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TSummarizerConfiguration struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      java.util.BitSet optionals = new java.util.BitSet();
+      if (struct.isSetClassname()) {
+        optionals.set(0);
+      }
+      if (struct.isSetOptions()) {
+        optionals.set(1);
+      }
+      if (struct.isSetConfigId()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetClassname()) {
+        oprot.writeString(struct.classname);
+      }
+      if (struct.isSetOptions()) {
+        {
+          oprot.writeI32(struct.options.size());
+          for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter99 : struct.options.entrySet())
+          {
+            oprot.writeString(_iter99.getKey());
+            oprot.writeString(_iter99.getValue());
+          }
+        }
+      }
+      if (struct.isSetConfigId()) {
+        oprot.writeString(struct.configId);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TSummarizerConfiguration struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      java.util.BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.classname = iprot.readString();
+        struct.setClassnameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        {
+          org.apache.thrift.protocol.TMap _map100 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.options = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map100.size);
+          java.lang.String _key101;
+          java.lang.String _val102;
+          for (int _i103 = 0; _i103 < _map100.size; ++_i103)
+          {
+            _key101 = iprot.readString();
+            _val102 = iprot.readString();
+            struct.options.put(_key101, _val102);
+          }
+        }
+        struct.setOptionsIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.configId = iprot.readString();
+        struct.setConfigIdIsSet(true);
+      }
+    }
+  }
+
+  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+  }
+  private static void unusedMethod() {}
+}
+

http://git-wip-us.apache.org/repos/asf/accumulo/blob/94cdcc4d/core/src/main/java/org/apache/accumulo/core/data/thrift/TSummary.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/data/thrift/TSummary.java b/core/src/main/java/org/apache/accumulo/core/data/thrift/TSummary.java
new file mode 100644
index 0000000..64b49c2
--- /dev/null
+++ b/core/src/main/java/org/apache/accumulo/core/data/thrift/TSummary.java
@@ -0,0 +1,842 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Autogenerated by Thrift Compiler (0.10.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.accumulo.core.data.thrift;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
+public class TSummary implements org.apache.thrift.TBase<TSummary, TSummary._Fields>, java.io.Serializable, Cloneable, Comparable<TSummary> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSummary");
+
+  private static final org.apache.thrift.protocol.TField SUMMARY_FIELD_DESC = new org.apache.thrift.protocol.TField("summary", org.apache.thrift.protocol.TType.MAP, (short)1);
+  private static final org.apache.thrift.protocol.TField CONFIG_FIELD_DESC = new org.apache.thrift.protocol.TField("config", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+  private static final org.apache.thrift.protocol.TField FILES_CONTAINING_FIELD_DESC = new org.apache.thrift.protocol.TField("filesContaining", org.apache.thrift.protocol.TType.I64, (short)3);
+  private static final org.apache.thrift.protocol.TField FILES_EXCEEDING_FIELD_DESC = new org.apache.thrift.protocol.TField("filesExceeding", org.apache.thrift.protocol.TType.I64, (short)4);
+  private static final org.apache.thrift.protocol.TField FILES_LARGE_FIELD_DESC = new org.apache.thrift.protocol.TField("filesLarge", org.apache.thrift.protocol.TType.I64, (short)5);
+
+  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new TSummaryStandardSchemeFactory();
+  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new TSummaryTupleSchemeFactory();
+
+  public java.util.Map<java.lang.String,java.lang.Long> summary; // required
+  public TSummarizerConfiguration config; // required
+  public long filesContaining; // required
+  public long filesExceeding; // required
+  public long filesLarge; // 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 {
+    SUMMARY((short)1, "summary"),
+    CONFIG((short)2, "config"),
+    FILES_CONTAINING((short)3, "filesContaining"),
+    FILES_EXCEEDING((short)4, "filesExceeding"),
+    FILES_LARGE((short)5, "filesLarge");
+
+    private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+    static {
+      for (_Fields field : java.util.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: // SUMMARY
+          return SUMMARY;
+        case 2: // CONFIG
+          return CONFIG;
+        case 3: // FILES_CONTAINING
+          return FILES_CONTAINING;
+        case 4: // FILES_EXCEEDING
+          return FILES_EXCEEDING;
+        case 5: // FILES_LARGE
+          return FILES_LARGE;
+        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 java.lang.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(java.lang.String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final java.lang.String _fieldName;
+
+    _Fields(short thriftId, java.lang.String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public java.lang.String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __FILESCONTAINING_ISSET_ID = 0;
+  private static final int __FILESEXCEEDING_ISSET_ID = 1;
+  private static final int __FILESLARGE_ISSET_ID = 2;
+  private byte __isset_bitfield = 0;
+  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.SUMMARY, new org.apache.thrift.meta_data.FieldMetaData("summary", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))));
+    tmpMap.put(_Fields.CONFIG, new org.apache.thrift.meta_data.FieldMetaData("config", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSummarizerConfiguration.class)));
+    tmpMap.put(_Fields.FILES_CONTAINING, new org.apache.thrift.meta_data.FieldMetaData("filesContaining", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.FILES_EXCEEDING, new org.apache.thrift.meta_data.FieldMetaData("filesExceeding", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.FILES_LARGE, new org.apache.thrift.meta_data.FieldMetaData("filesLarge", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSummary.class, metaDataMap);
+  }
+
+  public TSummary() {
+  }
+
+  public TSummary(
+    java.util.Map<java.lang.String,java.lang.Long> summary,
+    TSummarizerConfiguration config,
+    long filesContaining,
+    long filesExceeding,
+    long filesLarge)
+  {
+    this();
+    this.summary = summary;
+    this.config = config;
+    this.filesContaining = filesContaining;
+    setFilesContainingIsSet(true);
+    this.filesExceeding = filesExceeding;
+    setFilesExceedingIsSet(true);
+    this.filesLarge = filesLarge;
+    setFilesLargeIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TSummary(TSummary other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetSummary()) {
+      java.util.Map<java.lang.String,java.lang.Long> __this__summary = new java.util.HashMap<java.lang.String,java.lang.Long>(other.summary);
+      this.summary = __this__summary;
+    }
+    if (other.isSetConfig()) {
+      this.config = new TSummarizerConfiguration(other.config);
+    }
+    this.filesContaining = other.filesContaining;
+    this.filesExceeding = other.filesExceeding;
+    this.filesLarge = other.filesLarge;
+  }
+
+  public TSummary deepCopy() {
+    return new TSummary(this);
+  }
+
+  @Override
+  public void clear() {
+    this.summary = null;
+    this.config = null;
+    setFilesContainingIsSet(false);
+    this.filesContaining = 0;
+    setFilesExceedingIsSet(false);
+    this.filesExceeding = 0;
+    setFilesLargeIsSet(false);
+    this.filesLarge = 0;
+  }
+
+  public int getSummarySize() {
+    return (this.summary == null) ? 0 : this.summary.size();
+  }
+
+  public void putToSummary(java.lang.String key, long val) {
+    if (this.summary == null) {
+      this.summary = new java.util.HashMap<java.lang.String,java.lang.Long>();
+    }
+    this.summary.put(key, val);
+  }
+
+  public java.util.Map<java.lang.String,java.lang.Long> getSummary() {
+    return this.summary;
+  }
+
+  public TSummary setSummary(java.util.Map<java.lang.String,java.lang.Long> summary) {
+    this.summary = summary;
+    return this;
+  }
+
+  public void unsetSummary() {
+    this.summary = null;
+  }
+
+  /** Returns true if field summary is set (has been assigned a value) and false otherwise */
+  public boolean isSetSummary() {
+    return this.summary != null;
+  }
+
+  public void setSummaryIsSet(boolean value) {
+    if (!value) {
+      this.summary = null;
+    }
+  }
+
+  public TSummarizerConfiguration getConfig() {
+    return this.config;
+  }
+
+  public TSummary setConfig(TSummarizerConfiguration config) {
+    this.config = config;
+    return this;
+  }
+
+  public void unsetConfig() {
+    this.config = null;
+  }
+
+  /** Returns true if field config is set (has been assigned a value) and false otherwise */
+  public boolean isSetConfig() {
+    return this.config != null;
+  }
+
+  public void setConfigIsSet(boolean value) {
+    if (!value) {
+      this.config = null;
+    }
+  }
+
+  public long getFilesContaining() {
+    return this.filesContaining;
+  }
+
+  public TSummary setFilesContaining(long filesContaining) {
+    this.filesContaining = filesContaining;
+    setFilesContainingIsSet(true);
+    return this;
+  }
+
+  public void unsetFilesContaining() {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __FILESCONTAINING_ISSET_ID);
+  }
+
+  /** Returns true if field filesContaining is set (has been assigned a value) and false otherwise */
+  public boolean isSetFilesContaining() {
+    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __FILESCONTAINING_ISSET_ID);
+  }
+
+  public void setFilesContainingIsSet(boolean value) {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __FILESCONTAINING_ISSET_ID, value);
+  }
+
+  public long getFilesExceeding() {
+    return this.filesExceeding;
+  }
+
+  public TSummary setFilesExceeding(long filesExceeding) {
+    this.filesExceeding = filesExceeding;
+    setFilesExceedingIsSet(true);
+    return this;
+  }
+
+  public void unsetFilesExceeding() {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __FILESEXCEEDING_ISSET_ID);
+  }
+
+  /** Returns true if field filesExceeding is set (has been assigned a value) and false otherwise */
+  public boolean isSetFilesExceeding() {
+    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __FILESEXCEEDING_ISSET_ID);
+  }
+
+  public void setFilesExceedingIsSet(boolean value) {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __FILESEXCEEDING_ISSET_ID, value);
+  }
+
+  public long getFilesLarge() {
+    return this.filesLarge;
+  }
+
+  public TSummary setFilesLarge(long filesLarge) {
+    this.filesLarge = filesLarge;
+    setFilesLargeIsSet(true);
+    return this;
+  }
+
+  public void unsetFilesLarge() {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __FILESLARGE_ISSET_ID);
+  }
+
+  /** Returns true if field filesLarge is set (has been assigned a value) and false otherwise */
+  public boolean isSetFilesLarge() {
+    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __FILESLARGE_ISSET_ID);
+  }
+
+  public void setFilesLargeIsSet(boolean value) {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __FILESLARGE_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, java.lang.Object value) {
+    switch (field) {
+    case SUMMARY:
+      if (value == null) {
+        unsetSummary();
+      } else {
+        setSummary((java.util.Map<java.lang.String,java.lang.Long>)value);
+      }
+      break;
+
+    case CONFIG:
+      if (value == null) {
+        unsetConfig();
+      } else {
+        setConfig((TSummarizerConfiguration)value);
+      }
+      break;
+
+    case FILES_CONTAINING:
+      if (value == null) {
+        unsetFilesContaining();
+      } else {
+        setFilesContaining((java.lang.Long)value);
+      }
+      break;
+
+    case FILES_EXCEEDING:
+      if (value == null) {
+        unsetFilesExceeding();
+      } else {
+        setFilesExceeding((java.lang.Long)value);
+      }
+      break;
+
+    case FILES_LARGE:
+      if (value == null) {
+        unsetFilesLarge();
+      } else {
+        setFilesLarge((java.lang.Long)value);
+      }
+      break;
+
+    }
+  }
+
+  public java.lang.Object getFieldValue(_Fields field) {
+    switch (field) {
+    case SUMMARY:
+      return getSummary();
+
+    case CONFIG:
+      return getConfig();
+
+    case FILES_CONTAINING:
+      return getFilesContaining();
+
+    case FILES_EXCEEDING:
+      return getFilesExceeding();
+
+    case FILES_LARGE:
+      return getFilesLarge();
+
+    }
+    throw new java.lang.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 java.lang.IllegalArgumentException();
+    }
+
+    switch (field) {
+    case SUMMARY:
+      return isSetSummary();
+    case CONFIG:
+      return isSetConfig();
+    case FILES_CONTAINING:
+      return isSetFilesContaining();
+    case FILES_EXCEEDING:
+      return isSetFilesExceeding();
+    case FILES_LARGE:
+      return isSetFilesLarge();
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(java.lang.Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TSummary)
+      return this.equals((TSummary)that);
+    return false;
+  }
+
+  public boolean equals(TSummary that) {
+    if (that == null)
+      return false;
+    if (this == that)
+      return true;
+
+    boolean this_present_summary = true && this.isSetSummary();
+    boolean that_present_summary = true && that.isSetSummary();
+    if (this_present_summary || that_present_summary) {
+      if (!(this_present_summary && that_present_summary))
+        return false;
+      if (!this.summary.equals(that.summary))
+        return false;
+    }
+
+    boolean this_present_config = true && this.isSetConfig();
+    boolean that_present_config = true && that.isSetConfig();
+    if (this_present_config || that_present_config) {
+      if (!(this_present_config && that_present_config))
+        return false;
+      if (!this.config.equals(that.config))
+        return false;
+    }
+
+    boolean this_present_filesContaining = true;
+    boolean that_present_filesContaining = true;
+    if (this_present_filesContaining || that_present_filesContaining) {
+      if (!(this_present_filesContaining && that_present_filesContaining))
+        return false;
+      if (this.filesContaining != that.filesContaining)
+        return false;
+    }
+
+    boolean this_present_filesExceeding = true;
+    boolean that_present_filesExceeding = true;
+    if (this_present_filesExceeding || that_present_filesExceeding) {
+      if (!(this_present_filesExceeding && that_present_filesExceeding))
+        return false;
+      if (this.filesExceeding != that.filesExceeding)
+        return false;
+    }
+
+    boolean this_present_filesLarge = true;
+    boolean that_present_filesLarge = true;
+    if (this_present_filesLarge || that_present_filesLarge) {
+      if (!(this_present_filesLarge && that_present_filesLarge))
+        return false;
+      if (this.filesLarge != that.filesLarge)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int hashCode = 1;
+
+    hashCode = hashCode * 8191 + ((isSetSummary()) ? 131071 : 524287);
+    if (isSetSummary())
+      hashCode = hashCode * 8191 + summary.hashCode();
+
+    hashCode = hashCode * 8191 + ((isSetConfig()) ? 131071 : 524287);
+    if (isSetConfig())
+      hashCode = hashCode * 8191 + config.hashCode();
+
+    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(filesContaining);
+
+    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(filesExceeding);
+
+    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(filesLarge);
+
+    return hashCode;
+  }
+
+  @Override
+  public int compareTo(TSummary other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = java.lang.Boolean.valueOf(isSetSummary()).compareTo(other.isSetSummary());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSummary()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.summary, other.summary);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetConfig()).compareTo(other.isSetConfig());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetConfig()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.config, other.config);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetFilesContaining()).compareTo(other.isSetFilesContaining());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFilesContaining()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.filesContaining, other.filesContaining);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetFilesExceeding()).compareTo(other.isSetFilesExceeding());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFilesExceeding()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.filesExceeding, other.filesExceeding);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetFilesLarge()).compareTo(other.isSetFilesLarge());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFilesLarge()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.filesLarge, other.filesLarge);
+      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 {
+    scheme(iprot).read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    scheme(oprot).write(oprot, this);
+  }
+
+  @Override
+  public java.lang.String toString() {
+    java.lang.StringBuilder sb = new java.lang.StringBuilder("TSummary(");
+    boolean first = true;
+
+    sb.append("summary:");
+    if (this.summary == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.summary);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("config:");
+    if (this.config == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.config);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("filesContaining:");
+    sb.append(this.filesContaining);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("filesExceeding:");
+    sb.append(this.filesExceeding);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("filesLarge:");
+    sb.append(this.filesLarge);
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // check for sub-struct validity
+    if (config != null) {
+      config.validate();
+    }
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.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 TSummaryStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public TSummaryStandardScheme getScheme() {
+      return new TSummaryStandardScheme();
+    }
+  }
+
+  private static class TSummaryStandardScheme extends org.apache.thrift.scheme.StandardScheme<TSummary> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TSummary 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: // SUMMARY
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map104 = iprot.readMapBegin();
+                struct.summary = new java.util.HashMap<java.lang.String,java.lang.Long>(2*_map104.size);
+                java.lang.String _key105;
+                long _val106;
+                for (int _i107 = 0; _i107 < _map104.size; ++_i107)
+                {
+                  _key105 = iprot.readString();
+                  _val106 = iprot.readI64();
+                  struct.summary.put(_key105, _val106);
+                }
+                iprot.readMapEnd();
+              }
+              struct.setSummaryIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // CONFIG
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.config = new TSummarizerConfiguration();
+              struct.config.read(iprot);
+              struct.setConfigIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // FILES_CONTAINING
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.filesContaining = iprot.readI64();
+              struct.setFilesContainingIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // FILES_EXCEEDING
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.filesExceeding = iprot.readI64();
+              struct.setFilesExceedingIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // FILES_LARGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.filesLarge = iprot.readI64();
+              struct.setFilesLargeIsSet(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, TSummary struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.summary != null) {
+        oprot.writeFieldBegin(SUMMARY_FIELD_DESC);
+        {
+          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, struct.summary.size()));
+          for (java.util.Map.Entry<java.lang.String, java.lang.Long> _iter108 : struct.summary.entrySet())
+          {
+            oprot.writeString(_iter108.getKey());
+            oprot.writeI64(_iter108.getValue());
+          }
+          oprot.writeMapEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      if (struct.config != null) {
+        oprot.writeFieldBegin(CONFIG_FIELD_DESC);
+        struct.config.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(FILES_CONTAINING_FIELD_DESC);
+      oprot.writeI64(struct.filesContaining);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(FILES_EXCEEDING_FIELD_DESC);
+      oprot.writeI64(struct.filesExceeding);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(FILES_LARGE_FIELD_DESC);
+      oprot.writeI64(struct.filesLarge);
+      oprot.writeFieldEnd();
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TSummaryTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public TSummaryTupleScheme getScheme() {
+      return new TSummaryTupleScheme();
+    }
+  }
+
+  private static class TSummaryTupleScheme extends org.apache.thrift.scheme.TupleScheme<TSummary> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TSummary struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      java.util.BitSet optionals = new java.util.BitSet();
+      if (struct.isSetSummary()) {
+        optionals.set(0);
+      }
+      if (struct.isSetConfig()) {
+        optionals.set(1);
+      }
+      if (struct.isSetFilesContaining()) {
+        optionals.set(2);
+      }
+      if (struct.isSetFilesExceeding()) {
+        optionals.set(3);
+      }
+      if (struct.isSetFilesLarge()) {
+        optionals.set(4);
+      }
+      oprot.writeBitSet(optionals, 5);
+      if (struct.isSetSummary()) {
+        {
+          oprot.writeI32(struct.summary.size());
+          for (java.util.Map.Entry<java.lang.String, java.lang.Long> _iter109 : struct.summary.entrySet())
+          {
+            oprot.writeString(_iter109.getKey());
+            oprot.writeI64(_iter109.getValue());
+          }
+        }
+      }
+      if (struct.isSetConfig()) {
+        struct.config.write(oprot);
+      }
+      if (struct.isSetFilesContaining()) {
+        oprot.writeI64(struct.filesContaining);
+      }
+      if (struct.isSetFilesExceeding()) {
+        oprot.writeI64(struct.filesExceeding);
+      }
+      if (struct.isSetFilesLarge()) {
+        oprot.writeI64(struct.filesLarge);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TSummary struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      java.util.BitSet incoming = iprot.readBitSet(5);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TMap _map110 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, iprot.readI32());
+          struct.summary = new java.util.HashMap<java.lang.String,java.lang.Long>(2*_map110.size);
+          java.lang.String _key111;
+          long _val112;
+          for (int _i113 = 0; _i113 < _map110.size; ++_i113)
+          {
+            _key111 = iprot.readString();
+            _val112 = iprot.readI64();
+            struct.summary.put(_key111, _val112);
+          }
+        }
+        struct.setSummaryIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.config = new TSummarizerConfiguration();
+        struct.config.read(iprot);
+        struct.setConfigIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.filesContaining = iprot.readI64();
+        struct.setFilesContainingIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.filesExceeding = iprot.readI64();
+        struct.setFilesExceedingIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.filesLarge = iprot.readI64();
+        struct.setFilesLargeIsSet(true);
+      }
+    }
+  }
+
+  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+  }
+  private static void unusedMethod() {}
+}
+