From 99c31b634fadfd38ba932e088bc44ec539d81e3e Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Fri, 18 Nov 2022 13:46:15 +0100
Subject: [PATCH] WIP: SELECT for GRPC

---
 .../server/grpc/CaosDBToGrpcConverters.java   | 28 +++++++++++++++----
 1 file changed, 23 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java b/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java
index f9ba7b3c..75abb312 100644
--- a/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java
+++ b/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java
@@ -626,6 +626,12 @@ public class CaosDBToGrpcConverters {
           return convert(e.getValue());
         }
         break;
+      case "version":
+        if (e.hasVersion()) {
+          result.setScalarValue(convertStringValue(e.getVersion().getId()));
+          return result;
+        }
+        break;
       case "name":
         if (e.hasName()) {
           result.setScalarValue(convertStringValue(e.getName()));
@@ -645,8 +651,8 @@ public class CaosDBToGrpcConverters {
         break;
 
       case "unit":
-        if (e.hasUnit()) {
-          final String unit = getStringUnit(e);
+        final String unit = getStringUnit(e);
+        if (unit != null) {
           result.setScalarValue(convertStringValue(unit));
           return result;
         }
@@ -704,6 +710,13 @@ public class CaosDBToGrpcConverters {
                   results.add(result);
                   break;
 
+                case "version":
+                  if (p.hasVersion()) {
+                    result.setScalarValue(convertStringValue(p.getVersion().getId()));
+                    return result;
+                  }
+                  break;
+
                 case "description":
                   if (p.hasDescription()) {
                     result = org.caosdb.api.entity.v1.Value.newBuilder();
@@ -713,10 +726,10 @@ public class CaosDBToGrpcConverters {
                   break;
 
                 case "unit":
-                  final String unit = getStringUnit(p);
-                  if (unit != null) {
+                  final String property_unit = getStringUnit(p);
+                  if (property_unit != null) {
                     result = org.caosdb.api.entity.v1.Value.newBuilder();
-                    result.setScalarValue(convertStringValue(unit));
+                    result.setScalarValue(convertStringValue(property_unit));
                     results.add(result);
                   }
                   break;
@@ -730,6 +743,11 @@ public class CaosDBToGrpcConverters {
                   break;
                 case "value":
                   if (p.hasValue()) {
+                    try {
+                      p.parseValue();
+                    } catch (Message m) {
+                      throw new TransactionException(m);
+                    }
                     result = org.caosdb.api.entity.v1.Value.newBuilder();
                     result = convert(p.getValue());
                     results.add(result);
-- 
GitLab