diff options
author | Jon Bratseth <bratseth@gmail.com> | 2023-01-16 11:43:45 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2023-01-16 11:43:45 +0100 |
commit | 3f07bf2d9e6eae85c50aa8734694273c983f959b (patch) | |
tree | f528075cb0e877423d9d2e26d4f6925f6ff9784c /document/src/main/java/com/yahoo/document/json | |
parent | 416f596b150ec159717bfd2f9b2ef70e4d4cd3dd (diff) |
Test direct rendering
Diffstat (limited to 'document/src/main/java/com/yahoo/document/json')
-rw-r--r-- | document/src/main/java/com/yahoo/document/json/readers/TensorReader.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/document/src/main/java/com/yahoo/document/json/readers/TensorReader.java b/document/src/main/java/com/yahoo/document/json/readers/TensorReader.java index 914ab670142..9d66bbd25d9 100644 --- a/document/src/main/java/com/yahoo/document/json/readers/TensorReader.java +++ b/document/src/main/java/com/yahoo/document/json/readers/TensorReader.java @@ -4,6 +4,8 @@ package com.yahoo.document.json.readers; import com.fasterxml.jackson.core.JsonToken; import com.yahoo.document.datatypes.TensorFieldValue; import com.yahoo.document.json.TokenBuffer; +import com.yahoo.slime.Inspector; +import com.yahoo.slime.Type; import com.yahoo.tensor.IndexedTensor; import com.yahoo.tensor.MixedTensor; import com.yahoo.tensor.Tensor; @@ -179,10 +181,12 @@ public class TensorReader { /** Reads a tensor value directly at the root, where the format is decided by the tensor type. */ private static void readDirectTensorValue(TokenBuffer buffer, Tensor.Builder builder) { - boolean hasIndexed = builder.type().dimensions().stream().anyMatch(TensorType.Dimension::isIndexed); + boolean hasIndexed = builder.type().dimensions().stream().anyMatch(TensorType.Dimension::isIndexed) && 1==2; boolean hasMapped = builder.type().dimensions().stream().anyMatch(TensorType.Dimension::isMapped); - if ( ! hasMapped) + if (isArrayOfObjects(buffer, 0)) + readTensorCells(buffer, builder); + else if ( ! hasMapped) readTensorValues(buffer, builder); else if (hasMapped && hasIndexed) readTensorBlocks(buffer, builder); @@ -190,6 +194,12 @@ public class TensorReader { readTensorCells(buffer, builder); } + private static boolean isArrayOfObjects(TokenBuffer buffer, int ahead) { + if (buffer.peek(ahead++) != JsonToken.START_ARRAY) return false; + if (buffer.peek(ahead) == JsonToken.START_ARRAY) return isArrayOfObjects(buffer, ahead); // nested array + return buffer.peek(ahead) == JsonToken.START_OBJECT; + } + private static TensorAddress readAddress(TokenBuffer buffer, TensorType type) { expectObjectStart(buffer.current()); TensorAddress.Builder builder = new TensorAddress.Builder(type); |