You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by el...@apache.org on 2014/09/22 22:45:10 UTC

[12/15] ACCUMULO-652 merged changes from trunk

http://git-wip-us.apache.org/repos/asf/accumulo/blob/58fcad6e/proxy/src/main/java/org/apache/accumulo/proxy/thrift/PIteratorSetting.java
----------------------------------------------------------------------
diff --cc proxy/src/main/java/org/apache/accumulo/proxy/thrift/PIteratorSetting.java
index 0000000,0000000..fbbfbe5
new file mode 100644
--- /dev/null
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/PIteratorSetting.java
@@@ -1,0 -1,0 +1,763 @@@
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one or more
++ * contributor license agreements.  See the NOTICE file distributed with
++ * this work for additional information regarding copyright ownership.
++ * The ASF licenses this file to You under the Apache License, Version 2.0
++ * (the "License"); you may not use this file except in compliance with
++ * the License.  You may obtain a copy of the License at
++ *
++ *     http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++/**
++ * Autogenerated by Thrift Compiler (0.9.0)
++ *
++ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
++ *  @generated
++ */
++package org.apache.accumulo.proxy.thrift;
++
++import org.apache.thrift.scheme.IScheme;
++import org.apache.thrift.scheme.SchemeFactory;
++import org.apache.thrift.scheme.StandardScheme;
++
++import org.apache.thrift.scheme.TupleScheme;
++import org.apache.thrift.protocol.TTupleProtocol;
++import org.apache.thrift.protocol.TProtocolException;
++import org.apache.thrift.EncodingUtils;
++import org.apache.thrift.TException;
++import java.util.List;
++import java.util.ArrayList;
++import java.util.Map;
++import java.util.HashMap;
++import java.util.EnumMap;
++import java.util.Set;
++import java.util.HashSet;
++import java.util.EnumSet;
++import java.util.Collections;
++import java.util.BitSet;
++import java.nio.ByteBuffer;
++import java.util.Arrays;
++import org.slf4j.Logger;
++import org.slf4j.LoggerFactory;
++
++@SuppressWarnings("all") public class PIteratorSetting implements org.apache.thrift.TBase<PIteratorSetting, PIteratorSetting._Fields>, java.io.Serializable, Cloneable {
++  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PIteratorSetting");
++
++  private static final org.apache.thrift.protocol.TField PRIORITY_FIELD_DESC = new org.apache.thrift.protocol.TField("priority", org.apache.thrift.protocol.TType.I32, (short)1);
++  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)2);
++  private static final org.apache.thrift.protocol.TField ITERATOR_CLASS_FIELD_DESC = new org.apache.thrift.protocol.TField("iteratorClass", org.apache.thrift.protocol.TType.STRING, (short)3);
++  private static final org.apache.thrift.protocol.TField PROPERTIES_FIELD_DESC = new org.apache.thrift.protocol.TField("properties", org.apache.thrift.protocol.TType.MAP, (short)4);
++
++  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
++  static {
++    schemes.put(StandardScheme.class, new PIteratorSettingStandardSchemeFactory());
++    schemes.put(TupleScheme.class, new PIteratorSettingTupleSchemeFactory());
++  }
++
++  public int priority; // required
++  public String name; // required
++  public String iteratorClass; // required
++  public Map<String,String> properties; // required
++
++  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
++  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
++    PRIORITY((short)1, "priority"),
++    NAME((short)2, "name"),
++    ITERATOR_CLASS((short)3, "iteratorClass"),
++    PROPERTIES((short)4, "properties");
++
++    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: // PRIORITY
++          return PRIORITY;
++        case 2: // NAME
++          return NAME;
++        case 3: // ITERATOR_CLASS
++          return ITERATOR_CLASS;
++        case 4: // PROPERTIES
++          return PROPERTIES;
++        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 __PRIORITY_ISSET_ID = 0;
++  private byte __isset_bitfield = 0;
++  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
++  static {
++    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
++    tmpMap.put(_Fields.PRIORITY, new org.apache.thrift.meta_data.FieldMetaData("priority", org.apache.thrift.TFieldRequirementType.DEFAULT, 
++        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
++    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
++        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
++    tmpMap.put(_Fields.ITERATOR_CLASS, new org.apache.thrift.meta_data.FieldMetaData("iteratorClass", org.apache.thrift.TFieldRequirementType.DEFAULT, 
++        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
++    tmpMap.put(_Fields.PROPERTIES, new org.apache.thrift.meta_data.FieldMetaData("properties", 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))));
++    metaDataMap = Collections.unmodifiableMap(tmpMap);
++    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(PIteratorSetting.class, metaDataMap);
++  }
++
++  public PIteratorSetting() {
++  }
++
++  public PIteratorSetting(
++    int priority,
++    String name,
++    String iteratorClass,
++    Map<String,String> properties)
++  {
++    this();
++    this.priority = priority;
++    setPriorityIsSet(true);
++    this.name = name;
++    this.iteratorClass = iteratorClass;
++    this.properties = properties;
++  }
++
++  /**
++   * Performs a deep copy on <i>other</i>.
++   */
++  public PIteratorSetting(PIteratorSetting other) {
++    __isset_bitfield = other.__isset_bitfield;
++    this.priority = other.priority;
++    if (other.isSetName()) {
++      this.name = other.name;
++    }
++    if (other.isSetIteratorClass()) {
++      this.iteratorClass = other.iteratorClass;
++    }
++    if (other.isSetProperties()) {
++      Map<String,String> __this__properties = new HashMap<String,String>();
++      for (Map.Entry<String, String> other_element : other.properties.entrySet()) {
++
++        String other_element_key = other_element.getKey();
++        String other_element_value = other_element.getValue();
++
++        String __this__properties_copy_key = other_element_key;
++
++        String __this__properties_copy_value = other_element_value;
++
++        __this__properties.put(__this__properties_copy_key, __this__properties_copy_value);
++      }
++      this.properties = __this__properties;
++    }
++  }
++
++  public PIteratorSetting deepCopy() {
++    return new PIteratorSetting(this);
++  }
++
++  @Override
++  public void clear() {
++    setPriorityIsSet(false);
++    this.priority = 0;
++    this.name = null;
++    this.iteratorClass = null;
++    this.properties = null;
++  }
++
++  public int getPriority() {
++    return this.priority;
++  }
++
++  public PIteratorSetting setPriority(int priority) {
++    this.priority = priority;
++    setPriorityIsSet(true);
++    return this;
++  }
++
++  public void unsetPriority() {
++    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PRIORITY_ISSET_ID);
++  }
++
++  /** Returns true if field priority is set (has been assigned a value) and false otherwise */
++  public boolean isSetPriority() {
++    return EncodingUtils.testBit(__isset_bitfield, __PRIORITY_ISSET_ID);
++  }
++
++  public void setPriorityIsSet(boolean value) {
++    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PRIORITY_ISSET_ID, value);
++  }
++
++  public String getName() {
++    return this.name;
++  }
++
++  public PIteratorSetting setName(String name) {
++    this.name = name;
++    return this;
++  }
++
++  public void unsetName() {
++    this.name = null;
++  }
++
++  /** Returns true if field name is set (has been assigned a value) and false otherwise */
++  public boolean isSetName() {
++    return this.name != null;
++  }
++
++  public void setNameIsSet(boolean value) {
++    if (!value) {
++      this.name = null;
++    }
++  }
++
++  public String getIteratorClass() {
++    return this.iteratorClass;
++  }
++
++  public PIteratorSetting setIteratorClass(String iteratorClass) {
++    this.iteratorClass = iteratorClass;
++    return this;
++  }
++
++  public void unsetIteratorClass() {
++    this.iteratorClass = null;
++  }
++
++  /** Returns true if field iteratorClass is set (has been assigned a value) and false otherwise */
++  public boolean isSetIteratorClass() {
++    return this.iteratorClass != null;
++  }
++
++  public void setIteratorClassIsSet(boolean value) {
++    if (!value) {
++      this.iteratorClass = null;
++    }
++  }
++
++  public int getPropertiesSize() {
++    return (this.properties == null) ? 0 : this.properties.size();
++  }
++
++  public void putToProperties(String key, String val) {
++    if (this.properties == null) {
++      this.properties = new HashMap<String,String>();
++    }
++    this.properties.put(key, val);
++  }
++
++  public Map<String,String> getProperties() {
++    return this.properties;
++  }
++
++  public PIteratorSetting setProperties(Map<String,String> properties) {
++    this.properties = properties;
++    return this;
++  }
++
++  public void unsetProperties() {
++    this.properties = null;
++  }
++
++  /** Returns true if field properties is set (has been assigned a value) and false otherwise */
++  public boolean isSetProperties() {
++    return this.properties != null;
++  }
++
++  public void setPropertiesIsSet(boolean value) {
++    if (!value) {
++      this.properties = null;
++    }
++  }
++
++  public void setFieldValue(_Fields field, Object value) {
++    switch (field) {
++    case PRIORITY:
++      if (value == null) {
++        unsetPriority();
++      } else {
++        setPriority((Integer)value);
++      }
++      break;
++
++    case NAME:
++      if (value == null) {
++        unsetName();
++      } else {
++        setName((String)value);
++      }
++      break;
++
++    case ITERATOR_CLASS:
++      if (value == null) {
++        unsetIteratorClass();
++      } else {
++        setIteratorClass((String)value);
++      }
++      break;
++
++    case PROPERTIES:
++      if (value == null) {
++        unsetProperties();
++      } else {
++        setProperties((Map<String,String>)value);
++      }
++      break;
++
++    }
++  }
++
++  public Object getFieldValue(_Fields field) {
++    switch (field) {
++    case PRIORITY:
++      return Integer.valueOf(getPriority());
++
++    case NAME:
++      return getName();
++
++    case ITERATOR_CLASS:
++      return getIteratorClass();
++
++    case PROPERTIES:
++      return getProperties();
++
++    }
++    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 PRIORITY:
++      return isSetPriority();
++    case NAME:
++      return isSetName();
++    case ITERATOR_CLASS:
++      return isSetIteratorClass();
++    case PROPERTIES:
++      return isSetProperties();
++    }
++    throw new IllegalStateException();
++  }
++
++  @Override
++  public boolean equals(Object that) {
++    if (that == null)
++      return false;
++    if (that instanceof PIteratorSetting)
++      return this.equals((PIteratorSetting)that);
++    return false;
++  }
++
++  public boolean equals(PIteratorSetting that) {
++    if (that == null)
++      return false;
++
++    boolean this_present_priority = true;
++    boolean that_present_priority = true;
++    if (this_present_priority || that_present_priority) {
++      if (!(this_present_priority && that_present_priority))
++        return false;
++      if (this.priority != that.priority)
++        return false;
++    }
++
++    boolean this_present_name = true && this.isSetName();
++    boolean that_present_name = true && that.isSetName();
++    if (this_present_name || that_present_name) {
++      if (!(this_present_name && that_present_name))
++        return false;
++      if (!this.name.equals(that.name))
++        return false;
++    }
++
++    boolean this_present_iteratorClass = true && this.isSetIteratorClass();
++    boolean that_present_iteratorClass = true && that.isSetIteratorClass();
++    if (this_present_iteratorClass || that_present_iteratorClass) {
++      if (!(this_present_iteratorClass && that_present_iteratorClass))
++        return false;
++      if (!this.iteratorClass.equals(that.iteratorClass))
++        return false;
++    }
++
++    boolean this_present_properties = true && this.isSetProperties();
++    boolean that_present_properties = true && that.isSetProperties();
++    if (this_present_properties || that_present_properties) {
++      if (!(this_present_properties && that_present_properties))
++        return false;
++      if (!this.properties.equals(that.properties))
++        return false;
++    }
++
++    return true;
++  }
++
++  @Override
++  public int hashCode() {
++    return 0;
++  }
++
++  public int compareTo(PIteratorSetting other) {
++    if (!getClass().equals(other.getClass())) {
++      return getClass().getName().compareTo(other.getClass().getName());
++    }
++
++    int lastComparison = 0;
++    PIteratorSetting typedOther = (PIteratorSetting)other;
++
++    lastComparison = Boolean.valueOf(isSetPriority()).compareTo(typedOther.isSetPriority());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetPriority()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.priority, typedOther.priority);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetName()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    lastComparison = Boolean.valueOf(isSetIteratorClass()).compareTo(typedOther.isSetIteratorClass());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetIteratorClass()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.iteratorClass, typedOther.iteratorClass);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    lastComparison = Boolean.valueOf(isSetProperties()).compareTo(typedOther.isSetProperties());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetProperties()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.properties, typedOther.properties);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    return 0;
++  }
++
++  public _Fields fieldForId(int fieldId) {
++    return _Fields.findByThriftId(fieldId);
++  }
++
++  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
++    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
++  }
++
++  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
++    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
++  }
++
++  @Override
++  public String toString() {
++    StringBuilder sb = new StringBuilder("PIteratorSetting(");
++    boolean first = true;
++
++    sb.append("priority:");
++    sb.append(this.priority);
++    first = false;
++    if (!first) sb.append(", ");
++    sb.append("name:");
++    if (this.name == null) {
++      sb.append("null");
++    } else {
++      sb.append(this.name);
++    }
++    first = false;
++    if (!first) sb.append(", ");
++    sb.append("iteratorClass:");
++    if (this.iteratorClass == null) {
++      sb.append("null");
++    } else {
++      sb.append(this.iteratorClass);
++    }
++    first = false;
++    if (!first) sb.append(", ");
++    sb.append("properties:");
++    if (this.properties == null) {
++      sb.append("null");
++    } else {
++      sb.append(this.properties);
++    }
++    first = false;
++    sb.append(")");
++    return sb.toString();
++  }
++
++  public void validate() throws org.apache.thrift.TException {
++    // check for required fields
++    // check for sub-struct validity
++  }
++
++  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
++    try {
++      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
++    } catch (org.apache.thrift.TException te) {
++      throw new java.io.IOException(te);
++    }
++  }
++
++  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
++    try {
++      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
++      __isset_bitfield = 0;
++      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
++    } catch (org.apache.thrift.TException te) {
++      throw new java.io.IOException(te);
++    }
++  }
++
++  private static class PIteratorSettingStandardSchemeFactory implements SchemeFactory {
++    public PIteratorSettingStandardScheme getScheme() {
++      return new PIteratorSettingStandardScheme();
++    }
++  }
++
++  private static class PIteratorSettingStandardScheme extends StandardScheme<PIteratorSetting> {
++
++    public void read(org.apache.thrift.protocol.TProtocol iprot, PIteratorSetting 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: // PRIORITY
++            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
++              struct.priority = iprot.readI32();
++              struct.setPriorityIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
++          case 2: // NAME
++            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
++              struct.name = iprot.readString();
++              struct.setNameIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
++          case 3: // ITERATOR_CLASS
++            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
++              struct.iteratorClass = iprot.readString();
++              struct.setIteratorClassIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
++          case 4: // PROPERTIES
++            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
++              {
++                org.apache.thrift.protocol.TMap _map8 = iprot.readMapBegin();
++                struct.properties = new HashMap<String,String>(2*_map8.size);
++                for (int _i9 = 0; _i9 < _map8.size; ++_i9)
++                {
++                  String _key10; // required
++                  String _val11; // required
++                  _key10 = iprot.readString();
++                  _val11 = iprot.readString();
++                  struct.properties.put(_key10, _val11);
++                }
++                iprot.readMapEnd();
++              }
++              struct.setPropertiesIsSet(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, PIteratorSetting struct) throws org.apache.thrift.TException {
++      struct.validate();
++
++      oprot.writeStructBegin(STRUCT_DESC);
++      oprot.writeFieldBegin(PRIORITY_FIELD_DESC);
++      oprot.writeI32(struct.priority);
++      oprot.writeFieldEnd();
++      if (struct.name != null) {
++        oprot.writeFieldBegin(NAME_FIELD_DESC);
++        oprot.writeString(struct.name);
++        oprot.writeFieldEnd();
++      }
++      if (struct.iteratorClass != null) {
++        oprot.writeFieldBegin(ITERATOR_CLASS_FIELD_DESC);
++        oprot.writeString(struct.iteratorClass);
++        oprot.writeFieldEnd();
++      }
++      if (struct.properties != null) {
++        oprot.writeFieldBegin(PROPERTIES_FIELD_DESC);
++        {
++          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.properties.size()));
++          for (Map.Entry<String, String> _iter12 : struct.properties.entrySet())
++          {
++            oprot.writeString(_iter12.getKey());
++            oprot.writeString(_iter12.getValue());
++          }
++          oprot.writeMapEnd();
++        }
++        oprot.writeFieldEnd();
++      }
++      oprot.writeFieldStop();
++      oprot.writeStructEnd();
++    }
++
++  }
++
++  private static class PIteratorSettingTupleSchemeFactory implements SchemeFactory {
++    public PIteratorSettingTupleScheme getScheme() {
++      return new PIteratorSettingTupleScheme();
++    }
++  }
++
++  private static class PIteratorSettingTupleScheme extends TupleScheme<PIteratorSetting> {
++
++    @Override
++    public void write(org.apache.thrift.protocol.TProtocol prot, PIteratorSetting struct) throws org.apache.thrift.TException {
++      TTupleProtocol oprot = (TTupleProtocol) prot;
++      BitSet optionals = new BitSet();
++      if (struct.isSetPriority()) {
++        optionals.set(0);
++      }
++      if (struct.isSetName()) {
++        optionals.set(1);
++      }
++      if (struct.isSetIteratorClass()) {
++        optionals.set(2);
++      }
++      if (struct.isSetProperties()) {
++        optionals.set(3);
++      }
++      oprot.writeBitSet(optionals, 4);
++      if (struct.isSetPriority()) {
++        oprot.writeI32(struct.priority);
++      }
++      if (struct.isSetName()) {
++        oprot.writeString(struct.name);
++      }
++      if (struct.isSetIteratorClass()) {
++        oprot.writeString(struct.iteratorClass);
++      }
++      if (struct.isSetProperties()) {
++        {
++          oprot.writeI32(struct.properties.size());
++          for (Map.Entry<String, String> _iter13 : struct.properties.entrySet())
++          {
++            oprot.writeString(_iter13.getKey());
++            oprot.writeString(_iter13.getValue());
++          }
++        }
++      }
++    }
++
++    @Override
++    public void read(org.apache.thrift.protocol.TProtocol prot, PIteratorSetting struct) throws org.apache.thrift.TException {
++      TTupleProtocol iprot = (TTupleProtocol) prot;
++      BitSet incoming = iprot.readBitSet(4);
++      if (incoming.get(0)) {
++        struct.priority = iprot.readI32();
++        struct.setPriorityIsSet(true);
++      }
++      if (incoming.get(1)) {
++        struct.name = iprot.readString();
++        struct.setNameIsSet(true);
++      }
++      if (incoming.get(2)) {
++        struct.iteratorClass = iprot.readString();
++        struct.setIteratorClassIsSet(true);
++      }
++      if (incoming.get(3)) {
++        {
++          org.apache.thrift.protocol.TMap _map14 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
++          struct.properties = new HashMap<String,String>(2*_map14.size);
++          for (int _i15 = 0; _i15 < _map14.size; ++_i15)
++          {
++            String _key16; // required
++            String _val17; // required
++            _key16 = iprot.readString();
++            _val17 = iprot.readString();
++            struct.properties.put(_key16, _val17);
++          }
++        }
++        struct.setPropertiesIsSet(true);
++      }
++    }
++  }
++
++}
++

http://git-wip-us.apache.org/repos/asf/accumulo/blob/58fcad6e/proxy/src/main/java/org/apache/accumulo/proxy/thrift/PKey.java
----------------------------------------------------------------------
diff --cc proxy/src/main/java/org/apache/accumulo/proxy/thrift/PKey.java
index 0000000,0000000..5f2c81f
new file mode 100644
--- /dev/null
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/PKey.java
@@@ -1,0 -1,0 +1,846 @@@
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one or more
++ * contributor license agreements.  See the NOTICE file distributed with
++ * this work for additional information regarding copyright ownership.
++ * The ASF licenses this file to You under the Apache License, Version 2.0
++ * (the "License"); you may not use this file except in compliance with
++ * the License.  You may obtain a copy of the License at
++ *
++ *     http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++/**
++ * Autogenerated by Thrift Compiler (0.9.0)
++ *
++ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
++ *  @generated
++ */
++package org.apache.accumulo.proxy.thrift;
++
++import org.apache.thrift.scheme.IScheme;
++import org.apache.thrift.scheme.SchemeFactory;
++import org.apache.thrift.scheme.StandardScheme;
++
++import org.apache.thrift.scheme.TupleScheme;
++import org.apache.thrift.protocol.TTupleProtocol;
++import org.apache.thrift.protocol.TProtocolException;
++import org.apache.thrift.EncodingUtils;
++import org.apache.thrift.TException;
++import java.util.List;
++import java.util.ArrayList;
++import java.util.Map;
++import java.util.HashMap;
++import java.util.EnumMap;
++import java.util.Set;
++import java.util.HashSet;
++import java.util.EnumSet;
++import java.util.Collections;
++import java.util.BitSet;
++import java.nio.ByteBuffer;
++import java.util.Arrays;
++import org.slf4j.Logger;
++import org.slf4j.LoggerFactory;
++
++@SuppressWarnings("all") public class PKey implements org.apache.thrift.TBase<PKey, PKey._Fields>, java.io.Serializable, Cloneable {
++  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PKey");
++
++  private static final org.apache.thrift.protocol.TField ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("row", org.apache.thrift.protocol.TType.STRING, (short)1);
++  private static final org.apache.thrift.protocol.TField COL_FAMILY_FIELD_DESC = new org.apache.thrift.protocol.TField("colFamily", org.apache.thrift.protocol.TType.STRING, (short)2);
++  private static final org.apache.thrift.protocol.TField COL_QUALIFIER_FIELD_DESC = new org.apache.thrift.protocol.TField("colQualifier", org.apache.thrift.protocol.TType.STRING, (short)3);
++  private static final org.apache.thrift.protocol.TField COL_VISIBILITY_FIELD_DESC = new org.apache.thrift.protocol.TField("colVisibility", org.apache.thrift.protocol.TType.STRING, (short)4);
++  private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField("timestamp", org.apache.thrift.protocol.TType.I64, (short)5);
++
++  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
++  static {
++    schemes.put(StandardScheme.class, new PKeyStandardSchemeFactory());
++    schemes.put(TupleScheme.class, new PKeyTupleSchemeFactory());
++  }
++
++  public ByteBuffer row; // required
++  public ByteBuffer colFamily; // required
++  public ByteBuffer colQualifier; // required
++  public ByteBuffer colVisibility; // required
++  public long timestamp; // optional
++
++  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
++  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
++    ROW((short)1, "row"),
++    COL_FAMILY((short)2, "colFamily"),
++    COL_QUALIFIER((short)3, "colQualifier"),
++    COL_VISIBILITY((short)4, "colVisibility"),
++    TIMESTAMP((short)5, "timestamp");
++
++    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: // ROW
++          return ROW;
++        case 2: // COL_FAMILY
++          return COL_FAMILY;
++        case 3: // COL_QUALIFIER
++          return COL_QUALIFIER;
++        case 4: // COL_VISIBILITY
++          return COL_VISIBILITY;
++        case 5: // TIMESTAMP
++          return TIMESTAMP;
++        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 __TIMESTAMP_ISSET_ID = 0;
++  private byte __isset_bitfield = 0;
++  private _Fields optionals[] = {_Fields.TIMESTAMP};
++  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
++  static {
++    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
++    tmpMap.put(_Fields.ROW, new org.apache.thrift.meta_data.FieldMetaData("row", org.apache.thrift.TFieldRequirementType.DEFAULT, 
++        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
++    tmpMap.put(_Fields.COL_FAMILY, new org.apache.thrift.meta_data.FieldMetaData("colFamily", org.apache.thrift.TFieldRequirementType.DEFAULT, 
++        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
++    tmpMap.put(_Fields.COL_QUALIFIER, new org.apache.thrift.meta_data.FieldMetaData("colQualifier", org.apache.thrift.TFieldRequirementType.DEFAULT, 
++        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
++    tmpMap.put(_Fields.COL_VISIBILITY, new org.apache.thrift.meta_data.FieldMetaData("colVisibility", org.apache.thrift.TFieldRequirementType.DEFAULT, 
++        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
++    tmpMap.put(_Fields.TIMESTAMP, new org.apache.thrift.meta_data.FieldMetaData("timestamp", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
++        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
++    metaDataMap = Collections.unmodifiableMap(tmpMap);
++    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(PKey.class, metaDataMap);
++  }
++
++  public PKey() {
++  }
++
++  public PKey(
++    ByteBuffer row,
++    ByteBuffer colFamily,
++    ByteBuffer colQualifier,
++    ByteBuffer colVisibility)
++  {
++    this();
++    this.row = row;
++    this.colFamily = colFamily;
++    this.colQualifier = colQualifier;
++    this.colVisibility = colVisibility;
++  }
++
++  /**
++   * Performs a deep copy on <i>other</i>.
++   */
++  public PKey(PKey other) {
++    __isset_bitfield = other.__isset_bitfield;
++    if (other.isSetRow()) {
++      this.row = org.apache.thrift.TBaseHelper.copyBinary(other.row);
++;
++    }
++    if (other.isSetColFamily()) {
++      this.colFamily = org.apache.thrift.TBaseHelper.copyBinary(other.colFamily);
++;
++    }
++    if (other.isSetColQualifier()) {
++      this.colQualifier = org.apache.thrift.TBaseHelper.copyBinary(other.colQualifier);
++;
++    }
++    if (other.isSetColVisibility()) {
++      this.colVisibility = org.apache.thrift.TBaseHelper.copyBinary(other.colVisibility);
++;
++    }
++    this.timestamp = other.timestamp;
++  }
++
++  public PKey deepCopy() {
++    return new PKey(this);
++  }
++
++  @Override
++  public void clear() {
++    this.row = null;
++    this.colFamily = null;
++    this.colQualifier = null;
++    this.colVisibility = null;
++    setTimestampIsSet(false);
++    this.timestamp = 0;
++  }
++
++  public byte[] getRow() {
++    setRow(org.apache.thrift.TBaseHelper.rightSize(row));
++    return row == null ? null : row.array();
++  }
++
++  public ByteBuffer bufferForRow() {
++    return row;
++  }
++
++  public PKey setRow(byte[] row) {
++    setRow(row == null ? (ByteBuffer)null : ByteBuffer.wrap(row));
++    return this;
++  }
++
++  public PKey setRow(ByteBuffer row) {
++    this.row = row;
++    return this;
++  }
++
++  public void unsetRow() {
++    this.row = null;
++  }
++
++  /** Returns true if field row is set (has been assigned a value) and false otherwise */
++  public boolean isSetRow() {
++    return this.row != null;
++  }
++
++  public void setRowIsSet(boolean value) {
++    if (!value) {
++      this.row = null;
++    }
++  }
++
++  public byte[] getColFamily() {
++    setColFamily(org.apache.thrift.TBaseHelper.rightSize(colFamily));
++    return colFamily == null ? null : colFamily.array();
++  }
++
++  public ByteBuffer bufferForColFamily() {
++    return colFamily;
++  }
++
++  public PKey setColFamily(byte[] colFamily) {
++    setColFamily(colFamily == null ? (ByteBuffer)null : ByteBuffer.wrap(colFamily));
++    return this;
++  }
++
++  public PKey setColFamily(ByteBuffer colFamily) {
++    this.colFamily = colFamily;
++    return this;
++  }
++
++  public void unsetColFamily() {
++    this.colFamily = null;
++  }
++
++  /** Returns true if field colFamily is set (has been assigned a value) and false otherwise */
++  public boolean isSetColFamily() {
++    return this.colFamily != null;
++  }
++
++  public void setColFamilyIsSet(boolean value) {
++    if (!value) {
++      this.colFamily = null;
++    }
++  }
++
++  public byte[] getColQualifier() {
++    setColQualifier(org.apache.thrift.TBaseHelper.rightSize(colQualifier));
++    return colQualifier == null ? null : colQualifier.array();
++  }
++
++  public ByteBuffer bufferForColQualifier() {
++    return colQualifier;
++  }
++
++  public PKey setColQualifier(byte[] colQualifier) {
++    setColQualifier(colQualifier == null ? (ByteBuffer)null : ByteBuffer.wrap(colQualifier));
++    return this;
++  }
++
++  public PKey setColQualifier(ByteBuffer colQualifier) {
++    this.colQualifier = colQualifier;
++    return this;
++  }
++
++  public void unsetColQualifier() {
++    this.colQualifier = null;
++  }
++
++  /** Returns true if field colQualifier is set (has been assigned a value) and false otherwise */
++  public boolean isSetColQualifier() {
++    return this.colQualifier != null;
++  }
++
++  public void setColQualifierIsSet(boolean value) {
++    if (!value) {
++      this.colQualifier = null;
++    }
++  }
++
++  public byte[] getColVisibility() {
++    setColVisibility(org.apache.thrift.TBaseHelper.rightSize(colVisibility));
++    return colVisibility == null ? null : colVisibility.array();
++  }
++
++  public ByteBuffer bufferForColVisibility() {
++    return colVisibility;
++  }
++
++  public PKey setColVisibility(byte[] colVisibility) {
++    setColVisibility(colVisibility == null ? (ByteBuffer)null : ByteBuffer.wrap(colVisibility));
++    return this;
++  }
++
++  public PKey setColVisibility(ByteBuffer colVisibility) {
++    this.colVisibility = colVisibility;
++    return this;
++  }
++
++  public void unsetColVisibility() {
++    this.colVisibility = null;
++  }
++
++  /** Returns true if field colVisibility is set (has been assigned a value) and false otherwise */
++  public boolean isSetColVisibility() {
++    return this.colVisibility != null;
++  }
++
++  public void setColVisibilityIsSet(boolean value) {
++    if (!value) {
++      this.colVisibility = null;
++    }
++  }
++
++  public long getTimestamp() {
++    return this.timestamp;
++  }
++
++  public PKey setTimestamp(long timestamp) {
++    this.timestamp = timestamp;
++    setTimestampIsSet(true);
++    return this;
++  }
++
++  public void unsetTimestamp() {
++    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
++  }
++
++  /** Returns true if field timestamp is set (has been assigned a value) and false otherwise */
++  public boolean isSetTimestamp() {
++    return EncodingUtils.testBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
++  }
++
++  public void setTimestampIsSet(boolean value) {
++    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
++  }
++
++  public void setFieldValue(_Fields field, Object value) {
++    switch (field) {
++    case ROW:
++      if (value == null) {
++        unsetRow();
++      } else {
++        setRow((ByteBuffer)value);
++      }
++      break;
++
++    case COL_FAMILY:
++      if (value == null) {
++        unsetColFamily();
++      } else {
++        setColFamily((ByteBuffer)value);
++      }
++      break;
++
++    case COL_QUALIFIER:
++      if (value == null) {
++        unsetColQualifier();
++      } else {
++        setColQualifier((ByteBuffer)value);
++      }
++      break;
++
++    case COL_VISIBILITY:
++      if (value == null) {
++        unsetColVisibility();
++      } else {
++        setColVisibility((ByteBuffer)value);
++      }
++      break;
++
++    case TIMESTAMP:
++      if (value == null) {
++        unsetTimestamp();
++      } else {
++        setTimestamp((Long)value);
++      }
++      break;
++
++    }
++  }
++
++  public Object getFieldValue(_Fields field) {
++    switch (field) {
++    case ROW:
++      return getRow();
++
++    case COL_FAMILY:
++      return getColFamily();
++
++    case COL_QUALIFIER:
++      return getColQualifier();
++
++    case COL_VISIBILITY:
++      return getColVisibility();
++
++    case TIMESTAMP:
++      return Long.valueOf(getTimestamp());
++
++    }
++    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 ROW:
++      return isSetRow();
++    case COL_FAMILY:
++      return isSetColFamily();
++    case COL_QUALIFIER:
++      return isSetColQualifier();
++    case COL_VISIBILITY:
++      return isSetColVisibility();
++    case TIMESTAMP:
++      return isSetTimestamp();
++    }
++    throw new IllegalStateException();
++  }
++
++  @Override
++  public boolean equals(Object that) {
++    if (that == null)
++      return false;
++    if (that instanceof PKey)
++      return this.equals((PKey)that);
++    return false;
++  }
++
++  public boolean equals(PKey that) {
++    if (that == null)
++      return false;
++
++    boolean this_present_row = true && this.isSetRow();
++    boolean that_present_row = true && that.isSetRow();
++    if (this_present_row || that_present_row) {
++      if (!(this_present_row && that_present_row))
++        return false;
++      if (!this.row.equals(that.row))
++        return false;
++    }
++
++    boolean this_present_colFamily = true && this.isSetColFamily();
++    boolean that_present_colFamily = true && that.isSetColFamily();
++    if (this_present_colFamily || that_present_colFamily) {
++      if (!(this_present_colFamily && that_present_colFamily))
++        return false;
++      if (!this.colFamily.equals(that.colFamily))
++        return false;
++    }
++
++    boolean this_present_colQualifier = true && this.isSetColQualifier();
++    boolean that_present_colQualifier = true && that.isSetColQualifier();
++    if (this_present_colQualifier || that_present_colQualifier) {
++      if (!(this_present_colQualifier && that_present_colQualifier))
++        return false;
++      if (!this.colQualifier.equals(that.colQualifier))
++        return false;
++    }
++
++    boolean this_present_colVisibility = true && this.isSetColVisibility();
++    boolean that_present_colVisibility = true && that.isSetColVisibility();
++    if (this_present_colVisibility || that_present_colVisibility) {
++      if (!(this_present_colVisibility && that_present_colVisibility))
++        return false;
++      if (!this.colVisibility.equals(that.colVisibility))
++        return false;
++    }
++
++    boolean this_present_timestamp = true && this.isSetTimestamp();
++    boolean that_present_timestamp = true && that.isSetTimestamp();
++    if (this_present_timestamp || that_present_timestamp) {
++      if (!(this_present_timestamp && that_present_timestamp))
++        return false;
++      if (this.timestamp != that.timestamp)
++        return false;
++    }
++
++    return true;
++  }
++
++  @Override
++  public int hashCode() {
++    return 0;
++  }
++
++  public int compareTo(PKey other) {
++    if (!getClass().equals(other.getClass())) {
++      return getClass().getName().compareTo(other.getClass().getName());
++    }
++
++    int lastComparison = 0;
++    PKey typedOther = (PKey)other;
++
++    lastComparison = Boolean.valueOf(isSetRow()).compareTo(typedOther.isSetRow());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetRow()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.row, typedOther.row);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    lastComparison = Boolean.valueOf(isSetColFamily()).compareTo(typedOther.isSetColFamily());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetColFamily()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.colFamily, typedOther.colFamily);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    lastComparison = Boolean.valueOf(isSetColQualifier()).compareTo(typedOther.isSetColQualifier());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetColQualifier()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.colQualifier, typedOther.colQualifier);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    lastComparison = Boolean.valueOf(isSetColVisibility()).compareTo(typedOther.isSetColVisibility());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetColVisibility()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.colVisibility, typedOther.colVisibility);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    lastComparison = Boolean.valueOf(isSetTimestamp()).compareTo(typedOther.isSetTimestamp());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetTimestamp()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.timestamp, typedOther.timestamp);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    return 0;
++  }
++
++  public _Fields fieldForId(int fieldId) {
++    return _Fields.findByThriftId(fieldId);
++  }
++
++  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
++    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
++  }
++
++  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
++    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
++  }
++
++  @Override
++  public String toString() {
++    StringBuilder sb = new StringBuilder("PKey(");
++    boolean first = true;
++
++    sb.append("row:");
++    if (this.row == null) {
++      sb.append("null");
++    } else {
++      org.apache.thrift.TBaseHelper.toString(this.row, sb);
++    }
++    first = false;
++    if (!first) sb.append(", ");
++    sb.append("colFamily:");
++    if (this.colFamily == null) {
++      sb.append("null");
++    } else {
++      org.apache.thrift.TBaseHelper.toString(this.colFamily, sb);
++    }
++    first = false;
++    if (!first) sb.append(", ");
++    sb.append("colQualifier:");
++    if (this.colQualifier == null) {
++      sb.append("null");
++    } else {
++      org.apache.thrift.TBaseHelper.toString(this.colQualifier, sb);
++    }
++    first = false;
++    if (!first) sb.append(", ");
++    sb.append("colVisibility:");
++    if (this.colVisibility == null) {
++      sb.append("null");
++    } else {
++      org.apache.thrift.TBaseHelper.toString(this.colVisibility, sb);
++    }
++    first = false;
++    if (isSetTimestamp()) {
++      if (!first) sb.append(", ");
++      sb.append("timestamp:");
++      sb.append(this.timestamp);
++      first = false;
++    }
++    sb.append(")");
++    return sb.toString();
++  }
++
++  public void validate() throws org.apache.thrift.TException {
++    // check for required fields
++    // check for sub-struct validity
++  }
++
++  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
++    try {
++      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
++    } catch (org.apache.thrift.TException te) {
++      throw new java.io.IOException(te);
++    }
++  }
++
++  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
++    try {
++      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
++      __isset_bitfield = 0;
++      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
++    } catch (org.apache.thrift.TException te) {
++      throw new java.io.IOException(te);
++    }
++  }
++
++  private static class PKeyStandardSchemeFactory implements SchemeFactory {
++    public PKeyStandardScheme getScheme() {
++      return new PKeyStandardScheme();
++    }
++  }
++
++  private static class PKeyStandardScheme extends StandardScheme<PKey> {
++
++    public void read(org.apache.thrift.protocol.TProtocol iprot, PKey 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: // ROW
++            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
++              struct.row = iprot.readBinary();
++              struct.setRowIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
++          case 2: // COL_FAMILY
++            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
++              struct.colFamily = iprot.readBinary();
++              struct.setColFamilyIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
++          case 3: // COL_QUALIFIER
++            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
++              struct.colQualifier = iprot.readBinary();
++              struct.setColQualifierIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
++          case 4: // COL_VISIBILITY
++            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
++              struct.colVisibility = iprot.readBinary();
++              struct.setColVisibilityIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
++          case 5: // TIMESTAMP
++            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
++              struct.timestamp = iprot.readI64();
++              struct.setTimestampIsSet(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, PKey struct) throws org.apache.thrift.TException {
++      struct.validate();
++
++      oprot.writeStructBegin(STRUCT_DESC);
++      if (struct.row != null) {
++        oprot.writeFieldBegin(ROW_FIELD_DESC);
++        oprot.writeBinary(struct.row);
++        oprot.writeFieldEnd();
++      }
++      if (struct.colFamily != null) {
++        oprot.writeFieldBegin(COL_FAMILY_FIELD_DESC);
++        oprot.writeBinary(struct.colFamily);
++        oprot.writeFieldEnd();
++      }
++      if (struct.colQualifier != null) {
++        oprot.writeFieldBegin(COL_QUALIFIER_FIELD_DESC);
++        oprot.writeBinary(struct.colQualifier);
++        oprot.writeFieldEnd();
++      }
++      if (struct.colVisibility != null) {
++        oprot.writeFieldBegin(COL_VISIBILITY_FIELD_DESC);
++        oprot.writeBinary(struct.colVisibility);
++        oprot.writeFieldEnd();
++      }
++      if (struct.isSetTimestamp()) {
++        oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
++        oprot.writeI64(struct.timestamp);
++        oprot.writeFieldEnd();
++      }
++      oprot.writeFieldStop();
++      oprot.writeStructEnd();
++    }
++
++  }
++
++  private static class PKeyTupleSchemeFactory implements SchemeFactory {
++    public PKeyTupleScheme getScheme() {
++      return new PKeyTupleScheme();
++    }
++  }
++
++  private static class PKeyTupleScheme extends TupleScheme<PKey> {
++
++    @Override
++    public void write(org.apache.thrift.protocol.TProtocol prot, PKey struct) throws org.apache.thrift.TException {
++      TTupleProtocol oprot = (TTupleProtocol) prot;
++      BitSet optionals = new BitSet();
++      if (struct.isSetRow()) {
++        optionals.set(0);
++      }
++      if (struct.isSetColFamily()) {
++        optionals.set(1);
++      }
++      if (struct.isSetColQualifier()) {
++        optionals.set(2);
++      }
++      if (struct.isSetColVisibility()) {
++        optionals.set(3);
++      }
++      if (struct.isSetTimestamp()) {
++        optionals.set(4);
++      }
++      oprot.writeBitSet(optionals, 5);
++      if (struct.isSetRow()) {
++        oprot.writeBinary(struct.row);
++      }
++      if (struct.isSetColFamily()) {
++        oprot.writeBinary(struct.colFamily);
++      }
++      if (struct.isSetColQualifier()) {
++        oprot.writeBinary(struct.colQualifier);
++      }
++      if (struct.isSetColVisibility()) {
++        oprot.writeBinary(struct.colVisibility);
++      }
++      if (struct.isSetTimestamp()) {
++        oprot.writeI64(struct.timestamp);
++      }
++    }
++
++    @Override
++    public void read(org.apache.thrift.protocol.TProtocol prot, PKey struct) throws org.apache.thrift.TException {
++      TTupleProtocol iprot = (TTupleProtocol) prot;
++      BitSet incoming = iprot.readBitSet(5);
++      if (incoming.get(0)) {
++        struct.row = iprot.readBinary();
++        struct.setRowIsSet(true);
++      }
++      if (incoming.get(1)) {
++        struct.colFamily = iprot.readBinary();
++        struct.setColFamilyIsSet(true);
++      }
++      if (incoming.get(2)) {
++        struct.colQualifier = iprot.readBinary();
++        struct.setColQualifierIsSet(true);
++      }
++      if (incoming.get(3)) {
++        struct.colVisibility = iprot.readBinary();
++        struct.setColVisibilityIsSet(true);
++      }
++      if (incoming.get(4)) {
++        struct.timestamp = iprot.readI64();
++        struct.setTimestampIsSet(true);
++      }
++    }
++  }
++
++}
++

http://git-wip-us.apache.org/repos/asf/accumulo/blob/58fcad6e/proxy/src/main/java/org/apache/accumulo/proxy/thrift/PKeyValue.java
----------------------------------------------------------------------
diff --cc proxy/src/main/java/org/apache/accumulo/proxy/thrift/PKeyValue.java
index 0000000,0000000..b3f776a
new file mode 100644
--- /dev/null
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/PKeyValue.java
@@@ -1,0 -1,0 +1,518 @@@
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one or more
++ * contributor license agreements.  See the NOTICE file distributed with
++ * this work for additional information regarding copyright ownership.
++ * The ASF licenses this file to You under the Apache License, Version 2.0
++ * (the "License"); you may not use this file except in compliance with
++ * the License.  You may obtain a copy of the License at
++ *
++ *     http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++/**
++ * Autogenerated by Thrift Compiler (0.9.0)
++ *
++ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
++ *  @generated
++ */
++package org.apache.accumulo.proxy.thrift;
++
++import org.apache.thrift.scheme.IScheme;
++import org.apache.thrift.scheme.SchemeFactory;
++import org.apache.thrift.scheme.StandardScheme;
++
++import org.apache.thrift.scheme.TupleScheme;
++import org.apache.thrift.protocol.TTupleProtocol;
++import org.apache.thrift.protocol.TProtocolException;
++import org.apache.thrift.EncodingUtils;
++import org.apache.thrift.TException;
++import java.util.List;
++import java.util.ArrayList;
++import java.util.Map;
++import java.util.HashMap;
++import java.util.EnumMap;
++import java.util.Set;
++import java.util.HashSet;
++import java.util.EnumSet;
++import java.util.Collections;
++import java.util.BitSet;
++import java.nio.ByteBuffer;
++import java.util.Arrays;
++import org.slf4j.Logger;
++import org.slf4j.LoggerFactory;
++
++@SuppressWarnings("all") public class PKeyValue implements org.apache.thrift.TBase<PKeyValue, PKeyValue._Fields>, java.io.Serializable, Cloneable {
++  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PKeyValue");
++
++  private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("key", org.apache.thrift.protocol.TType.STRUCT, (short)1);
++  private static final org.apache.thrift.protocol.TField VALUE_FIELD_DESC = new org.apache.thrift.protocol.TField("value", org.apache.thrift.protocol.TType.STRING, (short)2);
++
++  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
++  static {
++    schemes.put(StandardScheme.class, new PKeyValueStandardSchemeFactory());
++    schemes.put(TupleScheme.class, new PKeyValueTupleSchemeFactory());
++  }
++
++  public PKey key; // required
++  public ByteBuffer value; // required
++
++  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
++  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
++    KEY((short)1, "key"),
++    VALUE((short)2, "value");
++
++    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: // KEY
++          return KEY;
++        case 2: // VALUE
++          return VALUE;
++        default:
++          return null;
++      }
++    }
++
++    /**
++     * Find the _Fields constant that matches fieldId, throwing an exception
++     * if it is not found.
++     */
++    public static _Fields findByThriftIdOrThrow(int fieldId) {
++      _Fields fields = findByThriftId(fieldId);
++      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
++      return fields;
++    }
++
++    /**
++     * Find the _Fields constant that matches name, or null if its not found.
++     */
++    public static _Fields findByName(String name) {
++      return byName.get(name);
++    }
++
++    private final short _thriftId;
++    private final String _fieldName;
++
++    _Fields(short thriftId, String fieldName) {
++      _thriftId = thriftId;
++      _fieldName = fieldName;
++    }
++
++    public short getThriftFieldId() {
++      return _thriftId;
++    }
++
++    public String getFieldName() {
++      return _fieldName;
++    }
++  }
++
++  // isset id assignments
++  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
++  static {
++    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
++    tmpMap.put(_Fields.KEY, new org.apache.thrift.meta_data.FieldMetaData("key", org.apache.thrift.TFieldRequirementType.DEFAULT, 
++        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PKey.class)));
++    tmpMap.put(_Fields.VALUE, new org.apache.thrift.meta_data.FieldMetaData("value", org.apache.thrift.TFieldRequirementType.DEFAULT, 
++        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
++    metaDataMap = Collections.unmodifiableMap(tmpMap);
++    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(PKeyValue.class, metaDataMap);
++  }
++
++  public PKeyValue() {
++  }
++
++  public PKeyValue(
++    PKey key,
++    ByteBuffer value)
++  {
++    this();
++    this.key = key;
++    this.value = value;
++  }
++
++  /**
++   * Performs a deep copy on <i>other</i>.
++   */
++  public PKeyValue(PKeyValue other) {
++    if (other.isSetKey()) {
++      this.key = new PKey(other.key);
++    }
++    if (other.isSetValue()) {
++      this.value = org.apache.thrift.TBaseHelper.copyBinary(other.value);
++;
++    }
++  }
++
++  public PKeyValue deepCopy() {
++    return new PKeyValue(this);
++  }
++
++  @Override
++  public void clear() {
++    this.key = null;
++    this.value = null;
++  }
++
++  public PKey getKey() {
++    return this.key;
++  }
++
++  public PKeyValue setKey(PKey key) {
++    this.key = key;
++    return this;
++  }
++
++  public void unsetKey() {
++    this.key = null;
++  }
++
++  /** Returns true if field key is set (has been assigned a value) and false otherwise */
++  public boolean isSetKey() {
++    return this.key != null;
++  }
++
++  public void setKeyIsSet(boolean value) {
++    if (!value) {
++      this.key = null;
++    }
++  }
++
++  public byte[] getValue() {
++    setValue(org.apache.thrift.TBaseHelper.rightSize(value));
++    return value == null ? null : value.array();
++  }
++
++  public ByteBuffer bufferForValue() {
++    return value;
++  }
++
++  public PKeyValue setValue(byte[] value) {
++    setValue(value == null ? (ByteBuffer)null : ByteBuffer.wrap(value));
++    return this;
++  }
++
++  public PKeyValue setValue(ByteBuffer value) {
++    this.value = value;
++    return this;
++  }
++
++  public void unsetValue() {
++    this.value = null;
++  }
++
++  /** Returns true if field value is set (has been assigned a value) and false otherwise */
++  public boolean isSetValue() {
++    return this.value != null;
++  }
++
++  public void setValueIsSet(boolean value) {
++    if (!value) {
++      this.value = null;
++    }
++  }
++
++  public void setFieldValue(_Fields field, Object value) {
++    switch (field) {
++    case KEY:
++      if (value == null) {
++        unsetKey();
++      } else {
++        setKey((PKey)value);
++      }
++      break;
++
++    case VALUE:
++      if (value == null) {
++        unsetValue();
++      } else {
++        setValue((ByteBuffer)value);
++      }
++      break;
++
++    }
++  }
++
++  public Object getFieldValue(_Fields field) {
++    switch (field) {
++    case KEY:
++      return getKey();
++
++    case VALUE:
++      return getValue();
++
++    }
++    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 KEY:
++      return isSetKey();
++    case VALUE:
++      return isSetValue();
++    }
++    throw new IllegalStateException();
++  }
++
++  @Override
++  public boolean equals(Object that) {
++    if (that == null)
++      return false;
++    if (that instanceof PKeyValue)
++      return this.equals((PKeyValue)that);
++    return false;
++  }
++
++  public boolean equals(PKeyValue that) {
++    if (that == null)
++      return false;
++
++    boolean this_present_key = true && this.isSetKey();
++    boolean that_present_key = true && that.isSetKey();
++    if (this_present_key || that_present_key) {
++      if (!(this_present_key && that_present_key))
++        return false;
++      if (!this.key.equals(that.key))
++        return false;
++    }
++
++    boolean this_present_value = true && this.isSetValue();
++    boolean that_present_value = true && that.isSetValue();
++    if (this_present_value || that_present_value) {
++      if (!(this_present_value && that_present_value))
++        return false;
++      if (!this.value.equals(that.value))
++        return false;
++    }
++
++    return true;
++  }
++
++  @Override
++  public int hashCode() {
++    return 0;
++  }
++
++  public int compareTo(PKeyValue other) {
++    if (!getClass().equals(other.getClass())) {
++      return getClass().getName().compareTo(other.getClass().getName());
++    }
++
++    int lastComparison = 0;
++    PKeyValue typedOther = (PKeyValue)other;
++
++    lastComparison = Boolean.valueOf(isSetKey()).compareTo(typedOther.isSetKey());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetKey()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.key, typedOther.key);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    lastComparison = Boolean.valueOf(isSetValue()).compareTo(typedOther.isSetValue());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetValue()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.value, typedOther.value);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    return 0;
++  }
++
++  public _Fields fieldForId(int fieldId) {
++    return _Fields.findByThriftId(fieldId);
++  }
++
++  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
++    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
++  }
++
++  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
++    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
++  }
++
++  @Override
++  public String toString() {
++    StringBuilder sb = new StringBuilder("PKeyValue(");
++    boolean first = true;
++
++    sb.append("key:");
++    if (this.key == null) {
++      sb.append("null");
++    } else {
++      sb.append(this.key);
++    }
++    first = false;
++    if (!first) sb.append(", ");
++    sb.append("value:");
++    if (this.value == null) {
++      sb.append("null");
++    } else {
++      org.apache.thrift.TBaseHelper.toString(this.value, sb);
++    }
++    first = false;
++    sb.append(")");
++    return sb.toString();
++  }
++
++  public void validate() throws org.apache.thrift.TException {
++    // check for required fields
++    // check for sub-struct validity
++    if (key != null) {
++      key.validate();
++    }
++  }
++
++  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
++    try {
++      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
++    } catch (org.apache.thrift.TException te) {
++      throw new java.io.IOException(te);
++    }
++  }
++
++  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
++    try {
++      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 PKeyValueStandardSchemeFactory implements SchemeFactory {
++    public PKeyValueStandardScheme getScheme() {
++      return new PKeyValueStandardScheme();
++    }
++  }
++
++  private static class PKeyValueStandardScheme extends StandardScheme<PKeyValue> {
++
++    public void read(org.apache.thrift.protocol.TProtocol iprot, PKeyValue 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: // KEY
++            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
++              struct.key = new PKey();
++              struct.key.read(iprot);
++              struct.setKeyIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
++          case 2: // VALUE
++            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
++              struct.value = iprot.readBinary();
++              struct.setValueIsSet(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, PKeyValue struct) throws org.apache.thrift.TException {
++      struct.validate();
++
++      oprot.writeStructBegin(STRUCT_DESC);
++      if (struct.key != null) {
++        oprot.writeFieldBegin(KEY_FIELD_DESC);
++        struct.key.write(oprot);
++        oprot.writeFieldEnd();
++      }
++      if (struct.value != null) {
++        oprot.writeFieldBegin(VALUE_FIELD_DESC);
++        oprot.writeBinary(struct.value);
++        oprot.writeFieldEnd();
++      }
++      oprot.writeFieldStop();
++      oprot.writeStructEnd();
++    }
++
++  }
++
++  private static class PKeyValueTupleSchemeFactory implements SchemeFactory {
++    public PKeyValueTupleScheme getScheme() {
++      return new PKeyValueTupleScheme();
++    }
++  }
++
++  private static class PKeyValueTupleScheme extends TupleScheme<PKeyValue> {
++
++    @Override
++    public void write(org.apache.thrift.protocol.TProtocol prot, PKeyValue struct) throws org.apache.thrift.TException {
++      TTupleProtocol oprot = (TTupleProtocol) prot;
++      BitSet optionals = new BitSet();
++      if (struct.isSetKey()) {
++        optionals.set(0);
++      }
++      if (struct.isSetValue()) {
++        optionals.set(1);
++      }
++      oprot.writeBitSet(optionals, 2);
++      if (struct.isSetKey()) {
++        struct.key.write(oprot);
++      }
++      if (struct.isSetValue()) {
++        oprot.writeBinary(struct.value);
++      }
++    }
++
++    @Override
++    public void read(org.apache.thrift.protocol.TProtocol prot, PKeyValue struct) throws org.apache.thrift.TException {
++      TTupleProtocol iprot = (TTupleProtocol) prot;
++      BitSet incoming = iprot.readBitSet(2);
++      if (incoming.get(0)) {
++        struct.key = new PKey();
++        struct.key.read(iprot);
++        struct.setKeyIsSet(true);
++      }
++      if (incoming.get(1)) {
++        struct.value = iprot.readBinary();
++        struct.setValueIsSet(true);
++      }
++    }
++  }
++
++}
++

http://git-wip-us.apache.org/repos/asf/accumulo/blob/58fcad6e/proxy/src/main/java/org/apache/accumulo/proxy/thrift/PRange.java
----------------------------------------------------------------------
diff --cc proxy/src/main/java/org/apache/accumulo/proxy/thrift/PRange.java
index 0000000,0000000..8ae323d
new file mode 100644
--- /dev/null
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/PRange.java
@@@ -1,0 -1,0 +1,512 @@@
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one or more
++ * contributor license agreements.  See the NOTICE file distributed with
++ * this work for additional information regarding copyright ownership.
++ * The ASF licenses this file to You under the Apache License, Version 2.0
++ * (the "License"); you may not use this file except in compliance with
++ * the License.  You may obtain a copy of the License at
++ *
++ *     http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++/**
++ * Autogenerated by Thrift Compiler (0.9.0)
++ *
++ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
++ *  @generated
++ */
++package org.apache.accumulo.proxy.thrift;
++
++import org.apache.thrift.scheme.IScheme;
++import org.apache.thrift.scheme.SchemeFactory;
++import org.apache.thrift.scheme.StandardScheme;
++
++import org.apache.thrift.scheme.TupleScheme;
++import org.apache.thrift.protocol.TTupleProtocol;
++import org.apache.thrift.protocol.TProtocolException;
++import org.apache.thrift.EncodingUtils;
++import org.apache.thrift.TException;
++import java.util.List;
++import java.util.ArrayList;
++import java.util.Map;
++import java.util.HashMap;
++import java.util.EnumMap;
++import java.util.Set;
++import java.util.HashSet;
++import java.util.EnumSet;
++import java.util.Collections;
++import java.util.BitSet;
++import java.nio.ByteBuffer;
++import java.util.Arrays;
++import org.slf4j.Logger;
++import org.slf4j.LoggerFactory;
++
++@SuppressWarnings("all") public class PRange implements org.apache.thrift.TBase<PRange, PRange._Fields>, java.io.Serializable, Cloneable {
++  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PRange");
++
++  private static final org.apache.thrift.protocol.TField START_FIELD_DESC = new org.apache.thrift.protocol.TField("start", org.apache.thrift.protocol.TType.STRUCT, (short)1);
++  private static final org.apache.thrift.protocol.TField STOP_FIELD_DESC = new org.apache.thrift.protocol.TField("stop", org.apache.thrift.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 PRangeStandardSchemeFactory());
++    schemes.put(TupleScheme.class, new PRangeTupleSchemeFactory());
++  }
++
++  public PKey start; // required
++  public PKey stop; // required
++
++  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
++  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
++    START((short)1, "start"),
++    STOP((short)2, "stop");
++
++    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: // START
++          return START;
++        case 2: // STOP
++          return STOP;
++        default:
++          return null;
++      }
++    }
++
++    /**
++     * Find the _Fields constant that matches fieldId, throwing an exception
++     * if it is not found.
++     */
++    public static _Fields findByThriftIdOrThrow(int fieldId) {
++      _Fields fields = findByThriftId(fieldId);
++      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
++      return fields;
++    }
++
++    /**
++     * Find the _Fields constant that matches name, or null if its not found.
++     */
++    public static _Fields findByName(String name) {
++      return byName.get(name);
++    }
++
++    private final short _thriftId;
++    private final String _fieldName;
++
++    _Fields(short thriftId, String fieldName) {
++      _thriftId = thriftId;
++      _fieldName = fieldName;
++    }
++
++    public short getThriftFieldId() {
++      return _thriftId;
++    }
++
++    public String getFieldName() {
++      return _fieldName;
++    }
++  }
++
++  // isset id assignments
++  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
++  static {
++    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
++    tmpMap.put(_Fields.START, new org.apache.thrift.meta_data.FieldMetaData("start", org.apache.thrift.TFieldRequirementType.DEFAULT, 
++        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PKey.class)));
++    tmpMap.put(_Fields.STOP, new org.apache.thrift.meta_data.FieldMetaData("stop", org.apache.thrift.TFieldRequirementType.DEFAULT, 
++        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PKey.class)));
++    metaDataMap = Collections.unmodifiableMap(tmpMap);
++    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(PRange.class, metaDataMap);
++  }
++
++  public PRange() {
++  }
++
++  public PRange(
++    PKey start,
++    PKey stop)
++  {
++    this();
++    this.start = start;
++    this.stop = stop;
++  }
++
++  /**
++   * Performs a deep copy on <i>other</i>.
++   */
++  public PRange(PRange other) {
++    if (other.isSetStart()) {
++      this.start = new PKey(other.start);
++    }
++    if (other.isSetStop()) {
++      this.stop = new PKey(other.stop);
++    }
++  }
++
++  public PRange deepCopy() {
++    return new PRange(this);
++  }
++
++  @Override
++  public void clear() {
++    this.start = null;
++    this.stop = null;
++  }
++
++  public PKey getStart() {
++    return this.start;
++  }
++
++  public PRange setStart(PKey start) {
++    this.start = start;
++    return this;
++  }
++
++  public void unsetStart() {
++    this.start = null;
++  }
++
++  /** Returns true if field start is set (has been assigned a value) and false otherwise */
++  public boolean isSetStart() {
++    return this.start != null;
++  }
++
++  public void setStartIsSet(boolean value) {
++    if (!value) {
++      this.start = null;
++    }
++  }
++
++  public PKey getStop() {
++    return this.stop;
++  }
++
++  public PRange setStop(PKey stop) {
++    this.stop = stop;
++    return this;
++  }
++
++  public void unsetStop() {
++    this.stop = null;
++  }
++
++  /** Returns true if field stop is set (has been assigned a value) and false otherwise */
++  public boolean isSetStop() {
++    return this.stop != null;
++  }
++
++  public void setStopIsSet(boolean value) {
++    if (!value) {
++      this.stop = null;
++    }
++  }
++
++  public void setFieldValue(_Fields field, Object value) {
++    switch (field) {
++    case START:
++      if (value == null) {
++        unsetStart();
++      } else {
++        setStart((PKey)value);
++      }
++      break;
++
++    case STOP:
++      if (value == null) {
++        unsetStop();
++      } else {
++        setStop((PKey)value);
++      }
++      break;
++
++    }
++  }
++
++  public Object getFieldValue(_Fields field) {
++    switch (field) {
++    case START:
++      return getStart();
++
++    case STOP:
++      return getStop();
++
++    }
++    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 START:
++      return isSetStart();
++    case STOP:
++      return isSetStop();
++    }
++    throw new IllegalStateException();
++  }
++
++  @Override
++  public boolean equals(Object that) {
++    if (that == null)
++      return false;
++    if (that instanceof PRange)
++      return this.equals((PRange)that);
++    return false;
++  }
++
++  public boolean equals(PRange that) {
++    if (that == null)
++      return false;
++
++    boolean this_present_start = true && this.isSetStart();
++    boolean that_present_start = true && that.isSetStart();
++    if (this_present_start || that_present_start) {
++      if (!(this_present_start && that_present_start))
++        return false;
++      if (!this.start.equals(that.start))
++        return false;
++    }
++
++    boolean this_present_stop = true && this.isSetStop();
++    boolean that_present_stop = true && that.isSetStop();
++    if (this_present_stop || that_present_stop) {
++      if (!(this_present_stop && that_present_stop))
++        return false;
++      if (!this.stop.equals(that.stop))
++        return false;
++    }
++
++    return true;
++  }
++
++  @Override
++  public int hashCode() {
++    return 0;
++  }
++
++  public int compareTo(PRange other) {
++    if (!getClass().equals(other.getClass())) {
++      return getClass().getName().compareTo(other.getClass().getName());
++    }
++
++    int lastComparison = 0;
++    PRange typedOther = (PRange)other;
++
++    lastComparison = Boolean.valueOf(isSetStart()).compareTo(typedOther.isSetStart());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetStart()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.start, typedOther.start);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    lastComparison = Boolean.valueOf(isSetStop()).compareTo(typedOther.isSetStop());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetStop()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.stop, typedOther.stop);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    return 0;
++  }
++
++  public _Fields fieldForId(int fieldId) {
++    return _Fields.findByThriftId(fieldId);
++  }
++
++  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
++    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
++  }
++
++  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
++    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
++  }
++
++  @Override
++  public String toString() {
++    StringBuilder sb = new StringBuilder("PRange(");
++    boolean first = true;
++
++    sb.append("start:");
++    if (this.start == null) {
++      sb.append("null");
++    } else {
++      sb.append(this.start);
++    }
++    first = false;
++    if (!first) sb.append(", ");
++    sb.append("stop:");
++    if (this.stop == null) {
++      sb.append("null");
++    } else {
++      sb.append(this.stop);
++    }
++    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 (start != null) {
++      start.validate();
++    }
++    if (stop != null) {
++      stop.validate();
++    }
++  }
++
++  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
++    try {
++      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
++    } catch (org.apache.thrift.TException te) {
++      throw new java.io.IOException(te);
++    }
++  }
++
++  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
++    try {
++      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 PRangeStandardSchemeFactory implements SchemeFactory {
++    public PRangeStandardScheme getScheme() {
++      return new PRangeStandardScheme();
++    }
++  }
++
++  private static class PRangeStandardScheme extends StandardScheme<PRange> {
++
++    public void read(org.apache.thrift.protocol.TProtocol iprot, PRange 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: // START
++            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
++              struct.start = new PKey();
++              struct.start.read(iprot);
++              struct.setStartIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
++          case 2: // STOP
++            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
++              struct.stop = new PKey();
++              struct.stop.read(iprot);
++              struct.setStopIsSet(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, PRange struct) throws org.apache.thrift.TException {
++      struct.validate();
++
++      oprot.writeStructBegin(STRUCT_DESC);
++      if (struct.start != null) {
++        oprot.writeFieldBegin(START_FIELD_DESC);
++        struct.start.write(oprot);
++        oprot.writeFieldEnd();
++      }
++      if (struct.stop != null) {
++        oprot.writeFieldBegin(STOP_FIELD_DESC);
++        struct.stop.write(oprot);
++        oprot.writeFieldEnd();
++      }
++      oprot.writeFieldStop();
++      oprot.writeStructEnd();
++    }
++
++  }
++
++  private static class PRangeTupleSchemeFactory implements SchemeFactory {
++    public PRangeTupleScheme getScheme() {
++      return new PRangeTupleScheme();
++    }
++  }
++
++  private static class PRangeTupleScheme extends TupleScheme<PRange> {
++
++    @Override
++    public void write(org.apache.thrift.protocol.TProtocol prot, PRange struct) throws org.apache.thrift.TException {
++      TTupleProtocol oprot = (TTupleProtocol) prot;
++      BitSet optionals = new BitSet();
++      if (struct.isSetStart()) {
++        optionals.set(0);
++      }
++      if (struct.isSetStop()) {
++        optionals.set(1);
++      }
++      oprot.writeBitSet(optionals, 2);
++      if (struct.isSetStart()) {
++        struct.start.write(oprot);
++      }
++      if (struct.isSetStop()) {
++        struct.stop.write(oprot);
++      }
++    }
++
++    @Override
++    public void read(org.apache.thrift.protocol.TProtocol prot, PRange struct) throws org.apache.thrift.TException {
++      TTupleProtocol iprot = (TTupleProtocol) prot;
++      BitSet incoming = iprot.readBitSet(2);
++      if (incoming.get(0)) {
++        struct.start = new PKey();
++        struct.start.read(iprot);
++        struct.setStartIsSet(true);
++      }
++      if (incoming.get(1)) {
++        struct.stop = new PKey();
++        struct.stop.read(iprot);
++        struct.setStopIsSet(true);
++      }
++    }
++  }
++
++}
++