Skip to content
Snippets Groups Projects
Verified Commit cc35e3fe authored by Timm Fitschen's avatar Timm Fitschen
Browse files

WIP: SELECT for GRPC API

parent 09412397
Branches
Tags
2 merge requests!80Release 0.9,!72F grpc select
Pipeline #29853 failed
This commit is part of merge request !80. Comments created here will be created in the context of that merge request.
...@@ -622,7 +622,7 @@ public class CaosDBToGrpcConverters { ...@@ -622,7 +622,7 @@ public class CaosDBToGrpcConverters {
String selector = s.getSelector(); String selector = s.getSelector();
switch (selector) { switch (selector) {
case "name": case "name":
if (e.getName() != null) { if (e.hasName()) {
result.setScalarValue(ScalarValue.newBuilder().setStringValue(e.getName())); result.setScalarValue(ScalarValue.newBuilder().setStringValue(e.getName()));
} }
break; break;
...@@ -631,10 +631,27 @@ public class CaosDBToGrpcConverters { ...@@ -631,10 +631,27 @@ public class CaosDBToGrpcConverters {
result.setScalarValue(ScalarValue.newBuilder().setStringValue(e.getId().toString())); result.setScalarValue(ScalarValue.newBuilder().setStringValue(e.getId().toString()));
break; break;
case "description":
if (e.hasDescription()) {
result.setScalarValue(ScalarValue.newBuilder().setStringValue(e.getDescription()));
}
break;
case "unit":
if (e.hasUnit()) {
final String unit = getStringUnit(e);
result.setScalarValue(ScalarValue.newBuilder().setStringValue(unit));
}
break;
// TODO path, hash
default: default:
// selector for a normal property // selector for a normal property
for (Property p : e.getProperties()) { for (Property p : e.getProperties()) {
if (p.getName() != null && p.getName().equals(selector) && s.getSubselection() == null) { if (p.getName() != null && p.getName().equals(selector)) {
if (s.getSubselection() == null) {
// no subselection -> just return the actual value
try { try {
p.parseValue(); p.parseValue();
} catch (Message m) { } catch (Message m) {
...@@ -644,10 +661,43 @@ public class CaosDBToGrpcConverters { ...@@ -644,10 +661,43 @@ public class CaosDBToGrpcConverters {
continue; continue;
} else if (p.getValue() instanceof CollectionValue) { } else if (p.getValue() instanceof CollectionValue) {
} else if (p.getValue() instanceof GenericValue) {
if (((GenericValue) p.getValue()).getValue() instanceof Double) {
result.setScalarValue(
ScalarValue.newBuilder()
.setDoubleValue((Double) ((GenericValue) p.getValue()).getValue()));
} else if (((GenericValue) p.getValue()).getValue() instanceof Integer) {
result.setScalarValue(
ScalarValue.newBuilder()
.setIntegerValue((Integer) ((GenericValue) p.getValue()).getValue()));
} else { } else {
result.setScalarValue( result.setScalarValue(
ScalarValue.newBuilder().setStringValue(p.getValue().toString())); ScalarValue.newBuilder().setStringValue(p.getValue().toString()));
} }
} else if (p.getValue() instanceof BooleanValue) {
result.setScalarValue(
ScalarValue.newBuilder()
.setBooleanValue(((BooleanValue) p.getValue()).getValue()));
} else {
result.setScalarValue(
ScalarValue.newBuilder().setStringValue(p.getValue().toString()));
}
} else {
// with subselection, e.g. p1.unit, site.geolocation.longitude
switch (s.getSubselection().getSelector()) {
case "unit":
final String unit = getStringUnit(p);
if (unit != null) {
result.setScalarValue(ScalarValue.newBuilder().setStringValue(unit));
}
break;
// TODO name, description, id
default:
break;
}
}
} }
} }
break; break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment