incubator-blur-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From amccu...@apache.org
Subject [4/8] Added a new method during mutations, block waiting for visibility. This allows the client to perform a lot of updates and collect the generation information and then block once for all the mutations.
Date Sun, 25 Nov 2012 02:34:11 GMT
http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/ce72e544/src/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Blur.java
----------------------------------------------------------------------
diff --git a/src/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Blur.java b/src/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Blur.java
index 07dd1f3..68f0e1b 100644
--- a/src/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Blur.java
+++ b/src/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Blur.java
@@ -102,7 +102,7 @@ public class Blur {
      * @param options
      * @param documents
      */
-    public void addDocuments(MutateOptions options, List<Document> documents) throws BlurException, org.apache.thrift.TException;
+    public List<Generation> addDocuments(MutateOptions options, List<Document> documents) throws BlurException, org.apache.thrift.TException;
 
     /**
      * Delete Documents to the given table in the provided shard.  If the table or shard is not found on this shard server a BlurException will be thrown.
@@ -112,7 +112,7 @@ public class Blur {
      * @param options
      * @param queries
      */
-    public void deleteDocumentsByQueries(MutateOptions options, List<ByteBuffer> queries) throws BlurException, org.apache.thrift.TException;
+    public List<Generation> deleteDocumentsByQueries(MutateOptions options, List<ByteBuffer> queries) throws BlurException, org.apache.thrift.TException;
 
     /**
      * Delete Documents to the given table in the provided shard.  If the table or shard is not found on this shard server a BlurException will be thrown.
@@ -122,7 +122,7 @@ public class Blur {
      * @param options
      * @param terms
      */
-    public void deleteDocuments(MutateOptions options, List<Term> terms) throws BlurException, org.apache.thrift.TException;
+    public List<Generation> deleteDocuments(MutateOptions options, List<Term> terms) throws BlurException, org.apache.thrift.TException;
 
     /**
      * Update Documents to the given table in the provided shard.  If the table or shard is not found on this shard server a BlurException will be thrown.
@@ -132,7 +132,9 @@ public class Blur {
      * @param options
      * @param updatePackages
      */
-    public void updateDocuments(MutateOptions options, List<UpdatePackage> updatePackages) throws BlurException, org.apache.thrift.TException;
+    public List<Generation> updateDocuments(MutateOptions options, List<UpdatePackage> updatePackages) throws BlurException, org.apache.thrift.TException;
+
+    public void blockUntilGenerationIsVisible(List<Generation> generations, boolean forceRefresh) throws BlurException, org.apache.thrift.TException;
 
     /**
      * Returns a list of all the shard servers for the given cluster.
@@ -260,6 +262,8 @@ public class Blur {
 
     public void updateDocuments(MutateOptions options, List<UpdatePackage> updatePackages, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.updateDocuments_call> resultHandler) throws org.apache.thrift.TException;
 
+    public void blockUntilGenerationIsVisible(List<Generation> generations, boolean forceRefresh, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.blockUntilGenerationIsVisible_call> resultHandler) throws org.apache.thrift.TException;
+
     public void serverList(org.apache.thrift.async.AsyncMethodCallback<AsyncClient.serverList_call> resultHandler) throws org.apache.thrift.TException;
 
     public void serverLayout(String table, String server, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.serverLayout_call> resultHandler) throws org.apache.thrift.TException;
@@ -414,10 +418,10 @@ public class Blur {
       return;
     }
 
-    public void addDocuments(MutateOptions options, List<Document> documents) throws BlurException, org.apache.thrift.TException
+    public List<Generation> addDocuments(MutateOptions options, List<Document> documents) throws BlurException, org.apache.thrift.TException
     {
       send_addDocuments(options, documents);
-      recv_addDocuments();
+      return recv_addDocuments();
     }
 
     public void send_addDocuments(MutateOptions options, List<Document> documents) throws org.apache.thrift.TException
@@ -428,20 +432,23 @@ public class Blur {
       sendBase("addDocuments", args);
     }
 
-    public void recv_addDocuments() throws BlurException, org.apache.thrift.TException
+    public List<Generation> recv_addDocuments() throws BlurException, org.apache.thrift.TException
     {
       addDocuments_result result = new addDocuments_result();
       receiveBase(result, "addDocuments");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
       if (result.e != null) {
         throw result.e;
       }
-      return;
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "addDocuments failed: unknown result");
     }
 
-    public void deleteDocumentsByQueries(MutateOptions options, List<ByteBuffer> queries) throws BlurException, org.apache.thrift.TException
+    public List<Generation> deleteDocumentsByQueries(MutateOptions options, List<ByteBuffer> queries) throws BlurException, org.apache.thrift.TException
     {
       send_deleteDocumentsByQueries(options, queries);
-      recv_deleteDocumentsByQueries();
+      return recv_deleteDocumentsByQueries();
     }
 
     public void send_deleteDocumentsByQueries(MutateOptions options, List<ByteBuffer> queries) throws org.apache.thrift.TException
@@ -452,20 +459,23 @@ public class Blur {
       sendBase("deleteDocumentsByQueries", args);
     }
 
-    public void recv_deleteDocumentsByQueries() throws BlurException, org.apache.thrift.TException
+    public List<Generation> recv_deleteDocumentsByQueries() throws BlurException, org.apache.thrift.TException
     {
       deleteDocumentsByQueries_result result = new deleteDocumentsByQueries_result();
       receiveBase(result, "deleteDocumentsByQueries");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
       if (result.e != null) {
         throw result.e;
       }
-      return;
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteDocumentsByQueries failed: unknown result");
     }
 
-    public void deleteDocuments(MutateOptions options, List<Term> terms) throws BlurException, org.apache.thrift.TException
+    public List<Generation> deleteDocuments(MutateOptions options, List<Term> terms) throws BlurException, org.apache.thrift.TException
     {
       send_deleteDocuments(options, terms);
-      recv_deleteDocuments();
+      return recv_deleteDocuments();
     }
 
     public void send_deleteDocuments(MutateOptions options, List<Term> terms) throws org.apache.thrift.TException
@@ -476,20 +486,23 @@ public class Blur {
       sendBase("deleteDocuments", args);
     }
 
-    public void recv_deleteDocuments() throws BlurException, org.apache.thrift.TException
+    public List<Generation> recv_deleteDocuments() throws BlurException, org.apache.thrift.TException
     {
       deleteDocuments_result result = new deleteDocuments_result();
       receiveBase(result, "deleteDocuments");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
       if (result.e != null) {
         throw result.e;
       }
-      return;
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteDocuments failed: unknown result");
     }
 
-    public void updateDocuments(MutateOptions options, List<UpdatePackage> updatePackages) throws BlurException, org.apache.thrift.TException
+    public List<Generation> updateDocuments(MutateOptions options, List<UpdatePackage> updatePackages) throws BlurException, org.apache.thrift.TException
     {
       send_updateDocuments(options, updatePackages);
-      recv_updateDocuments();
+      return recv_updateDocuments();
     }
 
     public void send_updateDocuments(MutateOptions options, List<UpdatePackage> updatePackages) throws org.apache.thrift.TException
@@ -500,10 +513,37 @@ public class Blur {
       sendBase("updateDocuments", args);
     }
 
-    public void recv_updateDocuments() throws BlurException, org.apache.thrift.TException
+    public List<Generation> recv_updateDocuments() throws BlurException, org.apache.thrift.TException
     {
       updateDocuments_result result = new updateDocuments_result();
       receiveBase(result, "updateDocuments");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.e != null) {
+        throw result.e;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "updateDocuments failed: unknown result");
+    }
+
+    public void blockUntilGenerationIsVisible(List<Generation> generations, boolean forceRefresh) throws BlurException, org.apache.thrift.TException
+    {
+      send_blockUntilGenerationIsVisible(generations, forceRefresh);
+      recv_blockUntilGenerationIsVisible();
+    }
+
+    public void send_blockUntilGenerationIsVisible(List<Generation> generations, boolean forceRefresh) throws org.apache.thrift.TException
+    {
+      blockUntilGenerationIsVisible_args args = new blockUntilGenerationIsVisible_args();
+      args.setGenerations(generations);
+      args.setForceRefresh(forceRefresh);
+      sendBase("blockUntilGenerationIsVisible", args);
+    }
+
+    public void recv_blockUntilGenerationIsVisible() throws BlurException, org.apache.thrift.TException
+    {
+      blockUntilGenerationIsVisible_result result = new blockUntilGenerationIsVisible_result();
+      receiveBase(result, "blockUntilGenerationIsVisible");
       if (result.e != null) {
         throw result.e;
       }
@@ -1040,13 +1080,13 @@ public class Blur {
         prot.writeMessageEnd();
       }
 
-      public void getResult() throws BlurException, org.apache.thrift.TException {
+      public List<Generation> getResult() throws BlurException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
         org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
         org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
-        (new Client(prot)).recv_addDocuments();
+        return (new Client(prot)).recv_addDocuments();
       }
     }
 
@@ -1075,13 +1115,13 @@ public class Blur {
         prot.writeMessageEnd();
       }
 
-      public void getResult() throws BlurException, org.apache.thrift.TException {
+      public List<Generation> getResult() throws BlurException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
         org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
         org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
-        (new Client(prot)).recv_deleteDocumentsByQueries();
+        return (new Client(prot)).recv_deleteDocumentsByQueries();
       }
     }
 
@@ -1110,13 +1150,13 @@ public class Blur {
         prot.writeMessageEnd();
       }
 
-      public void getResult() throws BlurException, org.apache.thrift.TException {
+      public List<Generation> getResult() throws BlurException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
         org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
         org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
-        (new Client(prot)).recv_deleteDocuments();
+        return (new Client(prot)).recv_deleteDocuments();
       }
     }
 
@@ -1145,13 +1185,48 @@ public class Blur {
         prot.writeMessageEnd();
       }
 
+      public List<Generation> getResult() throws BlurException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_updateDocuments();
+      }
+    }
+
+    public void blockUntilGenerationIsVisible(List<Generation> generations, boolean forceRefresh, org.apache.thrift.async.AsyncMethodCallback<blockUntilGenerationIsVisible_call> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      blockUntilGenerationIsVisible_call method_call = new blockUntilGenerationIsVisible_call(generations, forceRefresh, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class blockUntilGenerationIsVisible_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private List<Generation> generations;
+      private boolean forceRefresh;
+      public blockUntilGenerationIsVisible_call(List<Generation> generations, boolean forceRefresh, org.apache.thrift.async.AsyncMethodCallback<blockUntilGenerationIsVisible_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.generations = generations;
+        this.forceRefresh = forceRefresh;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("blockUntilGenerationIsVisible", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        blockUntilGenerationIsVisible_args args = new blockUntilGenerationIsVisible_args();
+        args.setGenerations(generations);
+        args.setForceRefresh(forceRefresh);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
       public void getResult() throws BlurException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
         org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
         org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
-        (new Client(prot)).recv_updateDocuments();
+        (new Client(prot)).recv_blockUntilGenerationIsVisible();
       }
     }
 
@@ -1627,6 +1702,7 @@ public class Blur {
       processMap.put("deleteDocumentsByQueries", new deleteDocumentsByQueries());
       processMap.put("deleteDocuments", new deleteDocuments());
       processMap.put("updateDocuments", new updateDocuments());
+      processMap.put("blockUntilGenerationIsVisible", new blockUntilGenerationIsVisible());
       processMap.put("serverList", new serverList());
       processMap.put("serverLayout", new serverLayout());
       processMap.put("tableList", new tableList());
@@ -1756,7 +1832,7 @@ public class Blur {
       public addDocuments_result getResult(I iface, addDocuments_args args) throws org.apache.thrift.TException {
         addDocuments_result result = new addDocuments_result();
         try {
-          iface.addDocuments(args.options, args.documents);
+          result.success = iface.addDocuments(args.options, args.documents);
         } catch (BlurException e) {
           result.e = e;
         }
@@ -1780,7 +1856,7 @@ public class Blur {
       public deleteDocumentsByQueries_result getResult(I iface, deleteDocumentsByQueries_args args) throws org.apache.thrift.TException {
         deleteDocumentsByQueries_result result = new deleteDocumentsByQueries_result();
         try {
-          iface.deleteDocumentsByQueries(args.options, args.queries);
+          result.success = iface.deleteDocumentsByQueries(args.options, args.queries);
         } catch (BlurException e) {
           result.e = e;
         }
@@ -1804,7 +1880,7 @@ public class Blur {
       public deleteDocuments_result getResult(I iface, deleteDocuments_args args) throws org.apache.thrift.TException {
         deleteDocuments_result result = new deleteDocuments_result();
         try {
-          iface.deleteDocuments(args.options, args.terms);
+          result.success = iface.deleteDocuments(args.options, args.terms);
         } catch (BlurException e) {
           result.e = e;
         }
@@ -1828,7 +1904,31 @@ public class Blur {
       public updateDocuments_result getResult(I iface, updateDocuments_args args) throws org.apache.thrift.TException {
         updateDocuments_result result = new updateDocuments_result();
         try {
-          iface.updateDocuments(args.options, args.updatePackages);
+          result.success = iface.updateDocuments(args.options, args.updatePackages);
+        } catch (BlurException e) {
+          result.e = e;
+        }
+        return result;
+      }
+    }
+
+    public static class blockUntilGenerationIsVisible<I extends Iface> extends org.apache.thrift.ProcessFunction<I, blockUntilGenerationIsVisible_args> {
+      public blockUntilGenerationIsVisible() {
+        super("blockUntilGenerationIsVisible");
+      }
+
+      public blockUntilGenerationIsVisible_args getEmptyArgsInstance() {
+        return new blockUntilGenerationIsVisible_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public blockUntilGenerationIsVisible_result getResult(I iface, blockUntilGenerationIsVisible_args args) throws org.apache.thrift.TException {
+        blockUntilGenerationIsVisible_result result = new blockUntilGenerationIsVisible_result();
+        try {
+          iface.blockUntilGenerationIsVisible(args.generations, args.forceRefresh);
         } catch (BlurException e) {
           result.e = e;
         }
@@ -6368,6 +6468,7 @@ public class Blur {
   public static class addDocuments_result implements org.apache.thrift.TBase<addDocuments_result, addDocuments_result._Fields>, java.io.Serializable, Cloneable   {
     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addDocuments_result");
 
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
     private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
@@ -6376,10 +6477,12 @@ public class Blur {
       schemes.put(TupleScheme.class, new addDocuments_resultTupleSchemeFactory());
     }
 
+    public List<Generation> success; // required
     public BlurException e; // 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 {
+      SUCCESS((short)0, "success"),
       E((short)1, "e");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -6395,6 +6498,8 @@ public class Blur {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
           case 1: // E
             return E;
           default:
@@ -6440,6 +6545,9 @@ public class Blur {
     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.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", 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, Generation.class))));
       tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
@@ -6450,9 +6558,11 @@ public class Blur {
     }
 
     public addDocuments_result(
+      List<Generation> success,
       BlurException e)
     {
       this();
+      this.success = success;
       this.e = e;
     }
 
@@ -6460,6 +6570,13 @@ public class Blur {
      * Performs a deep copy on <i>other</i>.
      */
     public addDocuments_result(addDocuments_result other) {
+      if (other.isSetSuccess()) {
+        List<Generation> __this__success = new ArrayList<Generation>();
+        for (Generation other_element : other.success) {
+          __this__success.add(new Generation(other_element));
+        }
+        this.success = __this__success;
+      }
       if (other.isSetE()) {
         this.e = new BlurException(other.e);
       }
@@ -6471,9 +6588,49 @@ public class Blur {
 
     @Override
     public void clear() {
+      this.success = null;
       this.e = null;
     }
 
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<Generation> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(Generation elem) {
+      if (this.success == null) {
+        this.success = new ArrayList<Generation>();
+      }
+      this.success.add(elem);
+    }
+
+    public List<Generation> getSuccess() {
+      return this.success;
+    }
+
+    public addDocuments_result setSuccess(List<Generation> success) {
+      this.success = success;
+      return this;
+    }
+
+    public void unsetSuccess() {
+      this.success = null;
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      if (!value) {
+        this.success = null;
+      }
+    }
+
     public BlurException getE() {
       return this.e;
     }
@@ -6500,6 +6657,14 @@ public class Blur {
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((List<Generation>)value);
+        }
+        break;
+
       case E:
         if (value == null) {
           unsetE();
@@ -6513,6 +6678,9 @@ public class Blur {
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
       case E:
         return getE();
 
@@ -6527,6 +6695,8 @@ public class Blur {
       }
 
       switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
       case E:
         return isSetE();
       }
@@ -6546,6 +6716,15 @@ public class Blur {
       if (that == null)
         return false;
 
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
       boolean this_present_e = true && this.isSetE();
       boolean that_present_e = true && that.isSetE();
       if (this_present_e || that_present_e) {
@@ -6571,6 +6750,16 @@ public class Blur {
       int lastComparison = 0;
       addDocuments_result typedOther = (addDocuments_result)other;
 
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE());
       if (lastComparison != 0) {
         return lastComparison;
@@ -6601,6 +6790,14 @@ public class Blur {
       StringBuilder sb = new StringBuilder("addDocuments_result(");
       boolean first = true;
 
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
+      first = false;
+      if (!first) sb.append(", ");
       sb.append("e:");
       if (this.e == null) {
         sb.append("null");
@@ -6651,6 +6848,25 @@ public class Blur {
             break;
           }
           switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list160 = iprot.readListBegin();
+                  struct.success = new ArrayList<Generation>(_list160.size);
+                  for (int _i161 = 0; _i161 < _list160.size; ++_i161)
+                  {
+                    Generation _elem162; // required
+                    _elem162 = new Generation();
+                    _elem162.read(iprot);
+                    struct.success.add(_elem162);
+                  }
+                  iprot.readListEnd();
+                }
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             case 1: // E
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.e = new BlurException();
@@ -6675,6 +6891,18 @@ public class Blur {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+            for (Generation _iter163 : struct.success)
+            {
+              _iter163.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
         if (struct.e != null) {
           oprot.writeFieldBegin(E_FIELD_DESC);
           struct.e.write(oprot);
@@ -6698,10 +6926,22 @@ public class Blur {
       public void write(org.apache.thrift.protocol.TProtocol prot, addDocuments_result struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
-        if (struct.isSetE()) {
+        if (struct.isSetSuccess()) {
           optionals.set(0);
         }
-        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetE()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          {
+            oprot.writeI32(struct.success.size());
+            for (Generation _iter164 : struct.success)
+            {
+              _iter164.write(oprot);
+            }
+          }
+        }
         if (struct.isSetE()) {
           struct.e.write(oprot);
         }
@@ -6710,8 +6950,22 @@ public class Blur {
       @Override
       public void read(org.apache.thrift.protocol.TProtocol prot, addDocuments_result struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
-        BitSet incoming = iprot.readBitSet(1);
+        BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
+          {
+            org.apache.thrift.protocol.TList _list165 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new ArrayList<Generation>(_list165.size);
+            for (int _i166 = 0; _i166 < _list165.size; ++_i166)
+            {
+              Generation _elem167; // required
+              _elem167 = new Generation();
+              _elem167.read(iprot);
+              struct.success.add(_elem167);
+            }
+          }
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
           struct.e = new BlurException();
           struct.e.read(iprot);
           struct.setEIsSet(true);
@@ -7121,13 +7375,13 @@ public class Blur {
             case 2: // QUERIES
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list160 = iprot.readListBegin();
-                  struct.queries = new ArrayList<ByteBuffer>(_list160.size);
-                  for (int _i161 = 0; _i161 < _list160.size; ++_i161)
+                  org.apache.thrift.protocol.TList _list168 = iprot.readListBegin();
+                  struct.queries = new ArrayList<ByteBuffer>(_list168.size);
+                  for (int _i169 = 0; _i169 < _list168.size; ++_i169)
                   {
-                    ByteBuffer _elem162; // required
-                    _elem162 = iprot.readBinary();
-                    struct.queries.add(_elem162);
+                    ByteBuffer _elem170; // required
+                    _elem170 = iprot.readBinary();
+                    struct.queries.add(_elem170);
                   }
                   iprot.readListEnd();
                 }
@@ -7160,9 +7414,9 @@ public class Blur {
           oprot.writeFieldBegin(QUERIES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.queries.size()));
-            for (ByteBuffer _iter163 : struct.queries)
+            for (ByteBuffer _iter171 : struct.queries)
             {
-              oprot.writeBinary(_iter163);
+              oprot.writeBinary(_iter171);
             }
             oprot.writeListEnd();
           }
@@ -7199,9 +7453,9 @@ public class Blur {
         if (struct.isSetQueries()) {
           {
             oprot.writeI32(struct.queries.size());
-            for (ByteBuffer _iter164 : struct.queries)
+            for (ByteBuffer _iter172 : struct.queries)
             {
-              oprot.writeBinary(_iter164);
+              oprot.writeBinary(_iter172);
             }
           }
         }
@@ -7218,13 +7472,13 @@ public class Blur {
         }
         if (incoming.get(1)) {
           {
-            org.apache.thrift.protocol.TList _list165 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-            struct.queries = new ArrayList<ByteBuffer>(_list165.size);
-            for (int _i166 = 0; _i166 < _list165.size; ++_i166)
+            org.apache.thrift.protocol.TList _list173 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+            struct.queries = new ArrayList<ByteBuffer>(_list173.size);
+            for (int _i174 = 0; _i174 < _list173.size; ++_i174)
             {
-              ByteBuffer _elem167; // required
-              _elem167 = iprot.readBinary();
-              struct.queries.add(_elem167);
+              ByteBuffer _elem175; // required
+              _elem175 = iprot.readBinary();
+              struct.queries.add(_elem175);
             }
           }
           struct.setQueriesIsSet(true);
@@ -7237,6 +7491,7 @@ public class Blur {
   public static class deleteDocumentsByQueries_result implements org.apache.thrift.TBase<deleteDocumentsByQueries_result, deleteDocumentsByQueries_result._Fields>, java.io.Serializable, Cloneable   {
     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteDocumentsByQueries_result");
 
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
     private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
@@ -7245,10 +7500,12 @@ public class Blur {
       schemes.put(TupleScheme.class, new deleteDocumentsByQueries_resultTupleSchemeFactory());
     }
 
+    public List<Generation> success; // required
     public BlurException e; // 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 {
+      SUCCESS((short)0, "success"),
       E((short)1, "e");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -7264,6 +7521,8 @@ public class Blur {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
           case 1: // E
             return E;
           default:
@@ -7309,6 +7568,9 @@ public class Blur {
     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.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", 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, Generation.class))));
       tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
@@ -7319,9 +7581,11 @@ public class Blur {
     }
 
     public deleteDocumentsByQueries_result(
+      List<Generation> success,
       BlurException e)
     {
       this();
+      this.success = success;
       this.e = e;
     }
 
@@ -7329,6 +7593,13 @@ public class Blur {
      * Performs a deep copy on <i>other</i>.
      */
     public deleteDocumentsByQueries_result(deleteDocumentsByQueries_result other) {
+      if (other.isSetSuccess()) {
+        List<Generation> __this__success = new ArrayList<Generation>();
+        for (Generation other_element : other.success) {
+          __this__success.add(new Generation(other_element));
+        }
+        this.success = __this__success;
+      }
       if (other.isSetE()) {
         this.e = new BlurException(other.e);
       }
@@ -7340,9 +7611,49 @@ public class Blur {
 
     @Override
     public void clear() {
+      this.success = null;
       this.e = null;
     }
 
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<Generation> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(Generation elem) {
+      if (this.success == null) {
+        this.success = new ArrayList<Generation>();
+      }
+      this.success.add(elem);
+    }
+
+    public List<Generation> getSuccess() {
+      return this.success;
+    }
+
+    public deleteDocumentsByQueries_result setSuccess(List<Generation> success) {
+      this.success = success;
+      return this;
+    }
+
+    public void unsetSuccess() {
+      this.success = null;
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      if (!value) {
+        this.success = null;
+      }
+    }
+
     public BlurException getE() {
       return this.e;
     }
@@ -7369,7 +7680,15 @@ public class Blur {
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
-      case E:
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((List<Generation>)value);
+        }
+        break;
+
+      case E:
         if (value == null) {
           unsetE();
         } else {
@@ -7382,6 +7701,9 @@ public class Blur {
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
       case E:
         return getE();
 
@@ -7396,6 +7718,8 @@ public class Blur {
       }
 
       switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
       case E:
         return isSetE();
       }
@@ -7415,6 +7739,15 @@ public class Blur {
       if (that == null)
         return false;
 
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
       boolean this_present_e = true && this.isSetE();
       boolean that_present_e = true && that.isSetE();
       if (this_present_e || that_present_e) {
@@ -7440,6 +7773,16 @@ public class Blur {
       int lastComparison = 0;
       deleteDocumentsByQueries_result typedOther = (deleteDocumentsByQueries_result)other;
 
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE());
       if (lastComparison != 0) {
         return lastComparison;
@@ -7470,6 +7813,14 @@ public class Blur {
       StringBuilder sb = new StringBuilder("deleteDocumentsByQueries_result(");
       boolean first = true;
 
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
+      first = false;
+      if (!first) sb.append(", ");
       sb.append("e:");
       if (this.e == null) {
         sb.append("null");
@@ -7520,6 +7871,25 @@ public class Blur {
             break;
           }
           switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list176 = iprot.readListBegin();
+                  struct.success = new ArrayList<Generation>(_list176.size);
+                  for (int _i177 = 0; _i177 < _list176.size; ++_i177)
+                  {
+                    Generation _elem178; // required
+                    _elem178 = new Generation();
+                    _elem178.read(iprot);
+                    struct.success.add(_elem178);
+                  }
+                  iprot.readListEnd();
+                }
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             case 1: // E
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.e = new BlurException();
@@ -7544,6 +7914,18 @@ public class Blur {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+            for (Generation _iter179 : struct.success)
+            {
+              _iter179.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
         if (struct.e != null) {
           oprot.writeFieldBegin(E_FIELD_DESC);
           struct.e.write(oprot);
@@ -7567,10 +7949,22 @@ public class Blur {
       public void write(org.apache.thrift.protocol.TProtocol prot, deleteDocumentsByQueries_result struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
-        if (struct.isSetE()) {
+        if (struct.isSetSuccess()) {
           optionals.set(0);
         }
-        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetE()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          {
+            oprot.writeI32(struct.success.size());
+            for (Generation _iter180 : struct.success)
+            {
+              _iter180.write(oprot);
+            }
+          }
+        }
         if (struct.isSetE()) {
           struct.e.write(oprot);
         }
@@ -7579,8 +7973,22 @@ public class Blur {
       @Override
       public void read(org.apache.thrift.protocol.TProtocol prot, deleteDocumentsByQueries_result struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
-        BitSet incoming = iprot.readBitSet(1);
+        BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
+          {
+            org.apache.thrift.protocol.TList _list181 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new ArrayList<Generation>(_list181.size);
+            for (int _i182 = 0; _i182 < _list181.size; ++_i182)
+            {
+              Generation _elem183; // required
+              _elem183 = new Generation();
+              _elem183.read(iprot);
+              struct.success.add(_elem183);
+            }
+          }
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
           struct.e = new BlurException();
           struct.e.read(iprot);
           struct.setEIsSet(true);
@@ -7988,14 +8396,14 @@ public class Blur {
             case 2: // TERMS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list168 = iprot.readListBegin();
-                  struct.terms = new ArrayList<Term>(_list168.size);
-                  for (int _i169 = 0; _i169 < _list168.size; ++_i169)
+                  org.apache.thrift.protocol.TList _list184 = iprot.readListBegin();
+                  struct.terms = new ArrayList<Term>(_list184.size);
+                  for (int _i185 = 0; _i185 < _list184.size; ++_i185)
                   {
-                    Term _elem170; // required
-                    _elem170 = new Term();
-                    _elem170.read(iprot);
-                    struct.terms.add(_elem170);
+                    Term _elem186; // required
+                    _elem186 = new Term();
+                    _elem186.read(iprot);
+                    struct.terms.add(_elem186);
                   }
                   iprot.readListEnd();
                 }
@@ -8028,9 +8436,9 @@ public class Blur {
           oprot.writeFieldBegin(TERMS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.terms.size()));
-            for (Term _iter171 : struct.terms)
+            for (Term _iter187 : struct.terms)
             {
-              _iter171.write(oprot);
+              _iter187.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -8067,9 +8475,9 @@ public class Blur {
         if (struct.isSetTerms()) {
           {
             oprot.writeI32(struct.terms.size());
-            for (Term _iter172 : struct.terms)
+            for (Term _iter188 : struct.terms)
             {
-              _iter172.write(oprot);
+              _iter188.write(oprot);
             }
           }
         }
@@ -8086,14 +8494,14 @@ public class Blur {
         }
         if (incoming.get(1)) {
           {
-            org.apache.thrift.protocol.TList _list173 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.terms = new ArrayList<Term>(_list173.size);
-            for (int _i174 = 0; _i174 < _list173.size; ++_i174)
+            org.apache.thrift.protocol.TList _list189 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.terms = new ArrayList<Term>(_list189.size);
+            for (int _i190 = 0; _i190 < _list189.size; ++_i190)
             {
-              Term _elem175; // required
-              _elem175 = new Term();
-              _elem175.read(iprot);
-              struct.terms.add(_elem175);
+              Term _elem191; // required
+              _elem191 = new Term();
+              _elem191.read(iprot);
+              struct.terms.add(_elem191);
             }
           }
           struct.setTermsIsSet(true);
@@ -8106,6 +8514,7 @@ public class Blur {
   public static class deleteDocuments_result implements org.apache.thrift.TBase<deleteDocuments_result, deleteDocuments_result._Fields>, java.io.Serializable, Cloneable   {
     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteDocuments_result");
 
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
     private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
@@ -8114,10 +8523,12 @@ public class Blur {
       schemes.put(TupleScheme.class, new deleteDocuments_resultTupleSchemeFactory());
     }
 
+    public List<Generation> success; // required
     public BlurException e; // 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 {
+      SUCCESS((short)0, "success"),
       E((short)1, "e");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -8133,6 +8544,8 @@ public class Blur {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
           case 1: // E
             return E;
           default:
@@ -8178,6 +8591,9 @@ public class Blur {
     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.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", 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, Generation.class))));
       tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
@@ -8188,9 +8604,11 @@ public class Blur {
     }
 
     public deleteDocuments_result(
+      List<Generation> success,
       BlurException e)
     {
       this();
+      this.success = success;
       this.e = e;
     }
 
@@ -8198,6 +8616,13 @@ public class Blur {
      * Performs a deep copy on <i>other</i>.
      */
     public deleteDocuments_result(deleteDocuments_result other) {
+      if (other.isSetSuccess()) {
+        List<Generation> __this__success = new ArrayList<Generation>();
+        for (Generation other_element : other.success) {
+          __this__success.add(new Generation(other_element));
+        }
+        this.success = __this__success;
+      }
       if (other.isSetE()) {
         this.e = new BlurException(other.e);
       }
@@ -8209,9 +8634,49 @@ public class Blur {
 
     @Override
     public void clear() {
+      this.success = null;
       this.e = null;
     }
 
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<Generation> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(Generation elem) {
+      if (this.success == null) {
+        this.success = new ArrayList<Generation>();
+      }
+      this.success.add(elem);
+    }
+
+    public List<Generation> getSuccess() {
+      return this.success;
+    }
+
+    public deleteDocuments_result setSuccess(List<Generation> success) {
+      this.success = success;
+      return this;
+    }
+
+    public void unsetSuccess() {
+      this.success = null;
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      if (!value) {
+        this.success = null;
+      }
+    }
+
     public BlurException getE() {
       return this.e;
     }
@@ -8238,6 +8703,14 @@ public class Blur {
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((List<Generation>)value);
+        }
+        break;
+
       case E:
         if (value == null) {
           unsetE();
@@ -8251,6 +8724,9 @@ public class Blur {
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
       case E:
         return getE();
 
@@ -8265,6 +8741,8 @@ public class Blur {
       }
 
       switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
       case E:
         return isSetE();
       }
@@ -8284,6 +8762,15 @@ public class Blur {
       if (that == null)
         return false;
 
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
       boolean this_present_e = true && this.isSetE();
       boolean that_present_e = true && that.isSetE();
       if (this_present_e || that_present_e) {
@@ -8309,6 +8796,16 @@ public class Blur {
       int lastComparison = 0;
       deleteDocuments_result typedOther = (deleteDocuments_result)other;
 
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE());
       if (lastComparison != 0) {
         return lastComparison;
@@ -8339,6 +8836,14 @@ public class Blur {
       StringBuilder sb = new StringBuilder("deleteDocuments_result(");
       boolean first = true;
 
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
+      first = false;
+      if (!first) sb.append(", ");
       sb.append("e:");
       if (this.e == null) {
         sb.append("null");
@@ -8389,6 +8894,25 @@ public class Blur {
             break;
           }
           switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list192 = iprot.readListBegin();
+                  struct.success = new ArrayList<Generation>(_list192.size);
+                  for (int _i193 = 0; _i193 < _list192.size; ++_i193)
+                  {
+                    Generation _elem194; // required
+                    _elem194 = new Generation();
+                    _elem194.read(iprot);
+                    struct.success.add(_elem194);
+                  }
+                  iprot.readListEnd();
+                }
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             case 1: // E
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.e = new BlurException();
@@ -8413,6 +8937,18 @@ public class Blur {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+            for (Generation _iter195 : struct.success)
+            {
+              _iter195.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
         if (struct.e != null) {
           oprot.writeFieldBegin(E_FIELD_DESC);
           struct.e.write(oprot);
@@ -8436,20 +8972,1069 @@ public class Blur {
       public void write(org.apache.thrift.protocol.TProtocol prot, deleteDocuments_result struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
-        if (struct.isSetE()) {
+        if (struct.isSetSuccess()) {
           optionals.set(0);
         }
-        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetE()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          {
+            oprot.writeI32(struct.success.size());
+            for (Generation _iter196 : struct.success)
+            {
+              _iter196.write(oprot);
+            }
+          }
+        }
+        if (struct.isSetE()) {
+          struct.e.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, deleteDocuments_result struct) throws org.apache.thrift.TException {
+        TTupleProtocol iprot = (TTupleProtocol) prot;
+        BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          {
+            org.apache.thrift.protocol.TList _list197 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new ArrayList<Generation>(_list197.size);
+            for (int _i198 = 0; _i198 < _list197.size; ++_i198)
+            {
+              Generation _elem199; // required
+              _elem199 = new Generation();
+              _elem199.read(iprot);
+              struct.success.add(_elem199);
+            }
+          }
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.e = new BlurException();
+          struct.e.read(iprot);
+          struct.setEIsSet(true);
+        }
+      }
+    }
+
+  }
+
+  public static class updateDocuments_args implements org.apache.thrift.TBase<updateDocuments_args, updateDocuments_args._Fields>, java.io.Serializable, Cloneable   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateDocuments_args");
+
+    private static final org.apache.thrift.protocol.TField OPTIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("options", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField UPDATE_PACKAGES_FIELD_DESC = new org.apache.thrift.protocol.TField("updatePackages", org.apache.thrift.protocol.TType.LIST, (short)2);
+
+    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+    static {
+      schemes.put(StandardScheme.class, new updateDocuments_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new updateDocuments_argsTupleSchemeFactory());
+    }
+
+    public MutateOptions options; // required
+    public List<UpdatePackage> updatePackages; // 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 {
+      OPTIONS((short)1, "options"),
+      UPDATE_PACKAGES((short)2, "updatePackages");
+
+      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: // OPTIONS
+            return OPTIONS;
+          case 2: // UPDATE_PACKAGES
+            return UPDATE_PACKAGES;
+          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.OPTIONS, new org.apache.thrift.meta_data.FieldMetaData("options", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MutateOptions.class)));
+      tmpMap.put(_Fields.UPDATE_PACKAGES, new org.apache.thrift.meta_data.FieldMetaData("updatePackages", 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, UpdatePackage.class))));
+      metaDataMap = Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateDocuments_args.class, metaDataMap);
+    }
+
+    public updateDocuments_args() {
+    }
+
+    public updateDocuments_args(
+      MutateOptions options,
+      List<UpdatePackage> updatePackages)
+    {
+      this();
+      this.options = options;
+      this.updatePackages = updatePackages;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public updateDocuments_args(updateDocuments_args other) {
+      if (other.isSetOptions()) {
+        this.options = new MutateOptions(other.options);
+      }
+      if (other.isSetUpdatePackages()) {
+        List<UpdatePackage> __this__updatePackages = new ArrayList<UpdatePackage>();
+        for (UpdatePackage other_element : other.updatePackages) {
+          __this__updatePackages.add(new UpdatePackage(other_element));
+        }
+        this.updatePackages = __this__updatePackages;
+      }
+    }
+
+    public updateDocuments_args deepCopy() {
+      return new updateDocuments_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.options = null;
+      this.updatePackages = null;
+    }
+
+    public MutateOptions getOptions() {
+      return this.options;
+    }
+
+    public updateDocuments_args setOptions(MutateOptions 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 int getUpdatePackagesSize() {
+      return (this.updatePackages == null) ? 0 : this.updatePackages.size();
+    }
+
+    public java.util.Iterator<UpdatePackage> getUpdatePackagesIterator() {
+      return (this.updatePackages == null) ? null : this.updatePackages.iterator();
+    }
+
+    public void addToUpdatePackages(UpdatePackage elem) {
+      if (this.updatePackages == null) {
+        this.updatePackages = new ArrayList<UpdatePackage>();
+      }
+      this.updatePackages.add(elem);
+    }
+
+    public List<UpdatePackage> getUpdatePackages() {
+      return this.updatePackages;
+    }
+
+    public updateDocuments_args setUpdatePackages(List<UpdatePackage> updatePackages) {
+      this.updatePackages = updatePackages;
+      return this;
+    }
+
+    public void unsetUpdatePackages() {
+      this.updatePackages = null;
+    }
+
+    /** Returns true if field updatePackages is set (has been assigned a value) and false otherwise */
+    public boolean isSetUpdatePackages() {
+      return this.updatePackages != null;
+    }
+
+    public void setUpdatePackagesIsSet(boolean value) {
+      if (!value) {
+        this.updatePackages = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case OPTIONS:
+        if (value == null) {
+          unsetOptions();
+        } else {
+          setOptions((MutateOptions)value);
+        }
+        break;
+
+      case UPDATE_PACKAGES:
+        if (value == null) {
+          unsetUpdatePackages();
+        } else {
+          setUpdatePackages((List<UpdatePackage>)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case OPTIONS:
+        return getOptions();
+
+      case UPDATE_PACKAGES:
+        return getUpdatePackages();
+
+      }
+      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 OPTIONS:
+        return isSetOptions();
+      case UPDATE_PACKAGES:
+        return isSetUpdatePackages();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof updateDocuments_args)
+        return this.equals((updateDocuments_args)that);
+      return false;
+    }
+
+    public boolean equals(updateDocuments_args that) {
+      if (that == null)
+        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_updatePackages = true && this.isSetUpdatePackages();
+      boolean that_present_updatePackages = true && that.isSetUpdatePackages();
+      if (this_present_updatePackages || that_present_updatePackages) {
+        if (!(this_present_updatePackages && that_present_updatePackages))
+          return false;
+        if (!this.updatePackages.equals(that.updatePackages))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      return 0;
+    }
+
+    public int compareTo(updateDocuments_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+      updateDocuments_args typedOther = (updateDocuments_args)other;
+
+      lastComparison = Boolean.valueOf(isSetOptions()).compareTo(typedOther.isSetOptions());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOptions()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.options, typedOther.options);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetUpdatePackages()).compareTo(typedOther.isSetUpdatePackages());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetUpdatePackages()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.updatePackages, typedOther.updatePackages);
+        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("updateDocuments_args(");
+      boolean first = true;
+
+      sb.append("options:");
+      if (this.options == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.options);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("updatePackages:");
+      if (this.updatePackages == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.updatePackages);
+      }
+      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 (options != null) {
+        options.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 updateDocuments_argsStandardSchemeFactory implements SchemeFactory {
+      public updateDocuments_argsStandardScheme getScheme() {
+        return new updateDocuments_argsStandardScheme();
+      }
+    }
+
+    private static class updateDocuments_argsStandardScheme extends StandardScheme<updateDocuments_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, updateDocuments_args 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: // OPTIONS
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.options = new MutateOptions();
+                struct.options.read(iprot);
+                struct.setOptionsIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // UPDATE_PACKAGES
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list200 = iprot.readListBegin();
+                  struct.updatePackages = new ArrayList<UpdatePackage>(_list200.size);
+                  for (int _i201 = 0; _i201 < _list200.size; ++_i201)
+                  {
+                    UpdatePackage _elem202; // required
+                    _elem202 = new UpdatePackage();
+                    _elem202.read(iprot);
+                    struct.updatePackages.add(_elem202);
+                  }
+                  iprot.readListEnd();
+                }
+                struct.setUpdatePackagesIsSet(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, updateDocuments_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.options != null) {
+          oprot.writeFieldBegin(OPTIONS_FIELD_DESC);
+          struct.options.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.updatePackages != null) {
+          oprot.writeFieldBegin(UPDATE_PACKAGES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.updatePackages.size()));
+            for (UpdatePackage _iter203 : struct.updatePackages)
+            {
+              _iter203.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class updateDocuments_argsTupleSchemeFactory implements SchemeFactory {
+      public updateDocuments_argsTupleScheme getScheme() {
+        return new updateDocuments_argsTupleScheme();
+      }
+    }
+
+    private static class updateDocuments_argsTupleScheme extends TupleScheme<updateDocuments_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, updateDocuments_args struct) throws org.apache.thrift.TException {
+        TTupleProtocol oprot = (TTupleProtocol) prot;
+        BitSet optionals = new BitSet();
+        if (struct.isSetOptions()) {
+          optionals.set(0);
+        }
+        if (struct.isSetUpdatePackages()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetOptions()) {
+          struct.options.write(oprot);
+        }
+        if (struct.isSetUpdatePackages()) {
+          {
+            oprot.writeI32(struct.updatePackages.size());
+            for (UpdatePackage _iter204 : struct.updatePackages)
+            {
+              _iter204.write(oprot);
+            }
+          }
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, updateDocuments_args struct) throws org.apache.thrift.TException {
+        TTupleProtocol iprot = (TTupleProtocol) prot;
+        BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.options = new MutateOptions();
+          struct.options.read(iprot);
+          struct.setOptionsIsSet(true);
+        }
+        if (incoming.get(1)) {
+          {
+            org.apache.thrift.protocol.TList _list205 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.updatePackages = new ArrayList<UpdatePackage>(_list205.size);
+            for (int _i206 = 0; _i206 < _list205.size; ++_i206)
+            {
+              UpdatePackage _elem207; // required
+              _elem207 = new UpdatePackage();
+              _elem207.read(iprot);
+              struct.updatePackages.add(_elem207);
+            }
+          }
+          struct.setUpdatePackagesIsSet(true);
+        }
+      }
+    }
+
+  }
+
+  public static class updateDocuments_result implements org.apache.thrift.TBase<updateDocuments_result, updateDocuments_result._Fields>, java.io.Serializable, Cloneable   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateDocuments_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
+    private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+    static {
+      schemes.put(StandardScheme.class, new updateDocuments_resultStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new updateDocuments_resultTupleSchemeFactory());
+    }
+
+    public List<Generation> success; // required
+    public BlurException e; // 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 {
+      SUCCESS((short)0, "success"),
+      E((short)1, "e");
+
+      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 0: // SUCCESS
+            return SUCCESS;
+          case 1: // E
+            return E;
+          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.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", 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, Generation.class))));
+      tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
+      metaDataMap = Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateDocuments_result.class, metaDataMap);
+    }
+
+    public updateDocuments_result() {
+    }
+
+    public updateDocuments_result(
+      List<Generation> success,
+      BlurException e)
+    {
+      this();
+      this.success = success;
+      this.e = e;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public updateDocuments_result(updateDocuments_result other) {
+      if (other.isSetSuccess()) {
+        List<Generation> __this__success = new ArrayList<Generation>();
+        for (Generation other_element : other.success) {
+          __this__success.add(new Generation(other_element));
+        }
+        this.success = __this__success;
+      }
+      if (other.isSetE()) {
+        this.e = new BlurException(other.e);
+      }
+    }
+
+    public updateDocuments_result deepCopy() {
+      return new updateDocuments_result(this);
+    }
+
+    @Override
+    public void clear() {
+      this.success = null;
+      this.e = null;
+    }
+
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<Generation> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(Generation elem) {
+      if (this.success == null) {
+        this.success = new ArrayList<Generation>();
+      }
+      this.success.add(elem);
+    }
+
+    public List<Generation> getSuccess() {
+      return this.success;
+    }
+
+    public updateDocuments_result setSuccess(List<Generation> success) {
+      this.success = success;
+      return this;
+    }
+
+    public void unsetSuccess() {
+      this.success = null;
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      if (!value) {
+        this.success = null;
+      }
+    }
+
+    public BlurException getE() {
+      return this.e;
+    }
+
+    public updateDocuments_result setE(BlurException e) {
+      this.e = e;
+      return this;
+    }
+
+    public void unsetE() {
+      this.e = null;
+    }
+
+    /** Returns true if field e is set (has been assigned a value) and false otherwise */
+    public boolean isSetE() {
+      return this.e != null;
+    }
+
+    public void setEIsSet(boolean value) {
+      if (!value) {
+        this.e = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((List<Generation>)value);
+        }
+        break;
+
+      case E:
+        if (value == null) {
+          unsetE();
+        } else {
+          setE((BlurException)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case E:
+        return getE();
+
+      }
+      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 SUCCESS:
+        return isSetSuccess();
+      case E:
+        return isSetE();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof updateDocuments_result)
+        return this.equals((updateDocuments_result)that);
+      return false;
+    }
+
+    public boolean equals(updateDocuments_result that) {
+      if (that == null)
+        return false;
+
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
+      boolean this_present_e = true && this.isSetE();
+      boolean that_present_e = true && that.isSetE();
+      if (this_present_e || that_present_e) {
+        if (!(this_present_e && that_present_e))
+          return false;
+        if (!this.e.equals(that.e))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      return 0;
+    }
+
+    public int compareTo(updateDocuments_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+      updateDocuments_result typedOther = (updateDocuments_result)other;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetE()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, typedOther.e);
+        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("updateDocuments_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("e:");
+      if (this.e == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.e);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class updateDocuments_resultStandardSchemeFactory implements SchemeFactory {
+      public updateDocuments_resultStandardScheme getScheme() {
+        return new updateDocuments_resultStandardScheme();
+      }
+    }
+
+    private static class updateDocuments_resultStandardScheme extends StandardScheme<updateDocuments_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, updateDocuments_result 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 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list208 = iprot.readListBegin();
+                  struct.success = new ArrayList<Generation>(_list208.size);
+                  for (int _i209 = 0; _i209 < _list208.size; ++_i209)
+                  {
+                    Generation _elem210; // required
+                    _elem210 = new Generation();
+                    _elem210.read(iprot);
+                    struct.success.add(_elem210);
+                  }
+                  iprot.readListEnd();
+                }
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // E
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+        

<TRUNCATED>

Mime
View raw message