Browse Source

extend client side status enum (#194)

Signed-off-by: 常泽川 <66781781@qq.com>
chinamcafee 3 years ago
parent
commit
ec3c47095d
1 changed files with 63 additions and 7 deletions
  1. 63 7
      src/main/java/io/milvus/param/R.java

+ 63 - 7
src/main/java/io/milvus/param/R.java

@@ -1,6 +1,7 @@
 package io.milvus.param;
 package io.milvus.param;
 
 
-import io.milvus.grpc.ErrorCode;
+import java.util.Arrays;
+import java.util.Optional;
 
 
 public class R<T> {
 public class R<T> {
     private Exception exception;
     private Exception exception;
@@ -33,30 +34,85 @@ public class R<T> {
 
 
     public static <T> R<T> failed(Exception exception){
     public static <T> R<T> failed(Exception exception){
         R<T> r = new R<>();
         R<T> r = new R<>();
-        r.setStatus(-1);
+        r.setStatus(Status.Unknown.getCode());
         r.setException(exception);
         r.setException(exception);
         return r;
         return r;
     }
     }
 
 
-    public static <T> R<T> failed(ErrorCode errorCode){
+    public static <T> R<T> failed(Status statusCode){
         R<T> r = new R<>();
         R<T> r = new R<>();
-        r.setStatus(errorCode.ordinal());
-        r.setException(new Exception(errorCode.name()));
+        r.setStatus(statusCode.getCode());
+        r.setException(new Exception(statusCode.name()));
         return r;
         return r;
     }
     }
 
 
     public static <T> R<T> success(){
     public static <T> R<T> success(){
         R<T> r = new R<>();
         R<T> r = new R<>();
-        r.setStatus(0);
+        r.setStatus(Status.Success.getCode());
         return r;
         return r;
     }
     }
 
 
 
 
     public static <T> R<T> success(T data){
     public static <T> R<T> success(T data){
         R<T> r = new R<>();
         R<T> r = new R<>();
-        r.setStatus(0);
+        r.setStatus(Status.Success.getCode());
         r.setData(data);
         r.setData(data);
         return r;
         return r;
     }
     }
 
 
+    /** Represents server and client side status code */
+    public enum Status {
+        // Server side error
+        Success(0),
+        UnexpectedError(1),
+        ConnectFailed(2),
+        PermissionDenied(3),
+        CollectionNotExists(4),
+        IllegalArgument(5),
+        IllegalDimension(7),
+        IllegalIndexType(8),
+        IllegalCollectionName(9),
+        IllegalTOPK(10),
+        IllegalRowRecord(11),
+        IllegalVectorID(12),
+        IllegalSearchResult(13),
+        FileNotFound(14),
+        MetaFailed(15),
+        CacheFailed(16),
+        CannotCreateFolder(17),
+        CannotCreateFile(18),
+        CannotDeleteFolder(19),
+        CannotDeleteFile(20),
+        BuildIndexError(21),
+        IllegalNLIST(22),
+        IllegalMetricType(23),
+        OutOfMemory(24),
+        IndexNotExist(25),
+        EmptyCollection(26),
+
+        // internal error code.
+        DDRequestRace(1000),
+
+        // Client side error
+        RpcError(-1),
+        ClientNotConnected(-2),
+        Unknown(-3),
+        VersionMismatch(-4);
+
+        private final int code;
+
+        Status(int code) {
+            this.code = code;
+        }
+
+        public static Status valueOf(int val) {
+            Optional<Status> search =
+                    Arrays.stream(values()).filter(status -> status.code == val).findFirst();
+            return search.orElse(Unknown);
+        }
+
+        public int getCode() {
+            return code;
+        }
+    }
 }
 }