diff options
author | Lester Solbakken <lesters@oath.com> | 2019-02-15 09:25:02 +0100 |
---|---|---|
committer | Lester Solbakken <lesters@oath.com> | 2019-02-15 09:25:02 +0100 |
commit | ccc9218dc538eef82a617717fe087047529664c4 (patch) | |
tree | 38bafd632d8ccc3e6099cf00640d3a8e421eaa04 /document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java | |
parent | d96edb431241e3132f2bd23d5e673763e319fa63 (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.java | 18 |
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); + } } |