|
1 | 1 | package io.weaviate.client6.v1.api.collections.data; |
2 | 2 |
|
| 3 | +import java.time.OffsetDateTime; |
3 | 4 | import java.util.ArrayList; |
4 | 5 | import java.util.Arrays; |
5 | 6 | import java.util.List; |
@@ -138,10 +139,98 @@ public static <T> void buildObject(WeaviateProtoBatch.BatchObject.Builder object |
138 | 139 |
|
139 | 140 | if (value instanceof String v) { |
140 | 141 | protoValue.setStringValue(v); |
| 142 | + } else if (value instanceof UUID v) { |
| 143 | + protoValue.setStringValue(v.toString()); |
| 144 | + } else if (value instanceof OffsetDateTime v) { |
| 145 | + protoValue.setStringValue(v.toString()); |
| 146 | + } else if (value instanceof Boolean v) { |
| 147 | + protoValue.setBoolValue(v.booleanValue()); |
141 | 148 | } else if (value instanceof Number v) { |
142 | 149 | protoValue.setNumberValue(v.doubleValue()); |
| 150 | + } else if (value instanceof List v) { |
| 151 | + protoValue.setListValue( |
| 152 | + com.google.protobuf.ListValue.newBuilder() |
| 153 | + .addAllValues(v.stream() |
| 154 | + .map(listValue -> { |
| 155 | + var protoListValue = com.google.protobuf.Value.newBuilder(); |
| 156 | + if (listValue instanceof String lv) { |
| 157 | + protoListValue.setStringValue(lv); |
| 158 | + } else if (listValue instanceof UUID lv) { |
| 159 | + protoListValue.setStringValue(lv.toString()); |
| 160 | + } else if (listValue instanceof OffsetDateTime lv) { |
| 161 | + protoListValue.setStringValue(lv.toString()); |
| 162 | + } else if (listValue instanceof Boolean lv) { |
| 163 | + protoListValue.setBoolValue(lv); |
| 164 | + } else if (listValue instanceof Number lv) { |
| 165 | + protoListValue.setNumberValue(lv.doubleValue()); |
| 166 | + } |
| 167 | + return protoListValue.build(); |
| 168 | + }) |
| 169 | + .toList())); |
| 170 | + |
| 171 | + } else if (value.getClass().isArray()) { |
| 172 | + List<com.google.protobuf.Value> values; |
| 173 | + |
| 174 | + if (value instanceof String[] v) { |
| 175 | + values = Arrays.stream(v) |
| 176 | + .map(lv -> com.google.protobuf.Value.newBuilder().setStringValue(lv).build()).toList(); |
| 177 | + } else if (value instanceof UUID[] v) { |
| 178 | + values = Arrays.stream(v) |
| 179 | + .map(lv -> com.google.protobuf.Value.newBuilder().setStringValue(lv.toString()).build()).toList(); |
| 180 | + } else if (value instanceof OffsetDateTime[] v) { |
| 181 | + values = Arrays.stream(v) |
| 182 | + .map(lv -> com.google.protobuf.Value.newBuilder().setStringValue(lv.toString()).build()).toList(); |
| 183 | + } else if (value instanceof Boolean[] v) { |
| 184 | + values = Arrays.stream(v) |
| 185 | + .map(lv -> com.google.protobuf.Value.newBuilder().setBoolValue(lv).build()).toList(); |
| 186 | + } else if (value instanceof boolean[] v) { |
| 187 | + values = new ArrayList<>(); |
| 188 | + for (boolean b : v) { |
| 189 | + values.add(com.google.protobuf.Value.newBuilder().setBoolValue(b).build()); |
| 190 | + } |
| 191 | + } else if (value instanceof short[] v) { |
| 192 | + values = new ArrayList<>(); |
| 193 | + for (short s : v) { |
| 194 | + values.add(com.google.protobuf.Value.newBuilder().setNumberValue(s).build()); |
| 195 | + } |
| 196 | + } else if (value instanceof int[] v) { |
| 197 | + values = Arrays.stream(v).boxed() |
| 198 | + .map(lv -> com.google.protobuf.Value.newBuilder().setNumberValue(lv).build()).toList(); |
| 199 | + } else if (value instanceof long[] v) { |
| 200 | + values = Arrays.stream(v).boxed() |
| 201 | + .map(lv -> com.google.protobuf.Value.newBuilder().setNumberValue(lv).build()).toList(); |
| 202 | + } else if (value instanceof float[] v) { |
| 203 | + values = new ArrayList<>(); |
| 204 | + for (float s : v) { |
| 205 | + values.add(com.google.protobuf.Value.newBuilder().setNumberValue(s).build()); |
| 206 | + } |
| 207 | + } else if (value instanceof double[] v) { |
| 208 | + values = Arrays.stream(v).boxed() |
| 209 | + .map(lv -> com.google.protobuf.Value.newBuilder().setNumberValue(lv).build()).toList(); |
| 210 | + } else if (value instanceof Short[] v) { |
| 211 | + values = Arrays.stream(v) |
| 212 | + .map(lv -> com.google.protobuf.Value.newBuilder().setNumberValue(lv).build()).toList(); |
| 213 | + } else if (value instanceof Integer[] v) { |
| 214 | + values = Arrays.stream(v) |
| 215 | + .map(lv -> com.google.protobuf.Value.newBuilder().setNumberValue(lv).build()).toList(); |
| 216 | + } else if (value instanceof Long[] v) { |
| 217 | + values = Arrays.stream(v) |
| 218 | + .map(lv -> com.google.protobuf.Value.newBuilder().setNumberValue(lv).build()).toList(); |
| 219 | + } else if (value instanceof Float[] v) { |
| 220 | + values = Arrays.stream(v) |
| 221 | + .map(lv -> com.google.protobuf.Value.newBuilder().setNumberValue(lv).build()).toList(); |
| 222 | + } else if (value instanceof Double[] v) { |
| 223 | + values = Arrays.stream(v) |
| 224 | + .map(lv -> com.google.protobuf.Value.newBuilder().setNumberValue(lv).build()).toList(); |
| 225 | + } else { |
| 226 | + throw new AssertionError("(insertMany) branch not covered " + value.getClass()); |
| 227 | + } |
| 228 | + |
| 229 | + protoValue.setListValue(com.google.protobuf.ListValue.newBuilder() |
| 230 | + .addAllValues(values) |
| 231 | + .build()); |
143 | 232 | } else { |
144 | | - assert false : "(insertMany) branch not covered"; |
| 233 | + throw new AssertionError("(insertMany) branch not covered " + value.getClass()); |
145 | 234 | } |
146 | 235 |
|
147 | 236 | nonRef.putFields(entry.getKey(), protoValue.build()); |
|
0 commit comments