aboutsummaryrefslogtreecommitdiffstats
path: root/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java
diff options
context:
space:
mode:
authorLester Solbakken <lesters@oath.com>2019-02-15 09:25:02 +0100
committerLester Solbakken <lesters@oath.com>2019-02-15 09:25:02 +0100
commitccc9218dc538eef82a617717fe087047529664c4 (patch)
tree38bafd632d8ccc3e6099cf00640d3a8e421eaa04 /document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java
parentd96edb431241e3132f2bd23d5e673763e319fa63 (diff)
Add serialization for TensorRemoveUpdate
Diffstat (limited to 'document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java')
-rw-r--r--document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java b/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java
index 0f19937db41..2f22def9aa1 100644
--- a/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java
+++ b/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java
@@ -4,12 +4,13 @@ package com.yahoo.document.serialization;
import com.yahoo.document.DataType;
import com.yahoo.document.DocumentTypeManager;
import com.yahoo.document.TensorDataType;
-import com.yahoo.document.datatypes.FieldValue;
import com.yahoo.document.datatypes.TensorFieldValue;
import com.yahoo.document.update.TensorAddUpdate;
import com.yahoo.document.update.TensorModifyUpdate;
+import com.yahoo.document.update.TensorRemoveUpdate;
import com.yahoo.document.update.ValueUpdate;
import com.yahoo.io.GrowableByteBuffer;
+import com.yahoo.tensor.TensorType;
/**
* Class used for de-serializing documents on the current head document format.
@@ -49,4 +50,19 @@ public class VespaDocumentDeserializerHead extends VespaDocumentDeserializer6 {
tensor.deserialize(this);
return new TensorAddUpdate(tensor);
}
+
+ @Override
+ protected ValueUpdate readTensorRemoveUpdate(DataType type) {
+ if (!(type instanceof TensorDataType)) {
+ throw new DeserializationException("Expected tensor data type, got " + type);
+ }
+ TensorDataType tensorDataType = (TensorDataType)type;
+ TensorType tensorType = tensorDataType.getTensorType();
+
+ // TODO: for mixed case extract a new tensor type based only on mapped dimensions
+
+ TensorFieldValue tensor = new TensorFieldValue(tensorType);
+ tensor.deserialize(this);
+ return new TensorRemoveUpdate(tensor);
+ }
}