summaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorHaakon Dybdahl <dybdahl@yahoo-inc.com>2017-02-10 15:23:53 +0100
committerHaakon Dybdahl <dybdahl@yahoo-inc.com>2017-02-10 15:23:53 +0100
commit2615bc676a05d61169edd55654d3936e1ddbaa22 (patch)
tree02d26b5e57bb8bf778f42c98b31a7a1b6ac71f3b /document
parent82cf0a369f440319871be6768ce1ca92d7e9e3ba (diff)
Move logic around.
Diffstat (limited to 'document')
-rw-r--r--document/src/main/java/com/yahoo/document/json/JsonReader.java137
-rw-r--r--document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java (renamed from document/src/main/java/com/yahoo/document/json/VespaJsonDocumentReader.java)130
-rw-r--r--document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java43
-rw-r--r--document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java3
4 files changed, 155 insertions, 158 deletions
diff --git a/document/src/main/java/com/yahoo/document/json/JsonReader.java b/document/src/main/java/com/yahoo/document/json/JsonReader.java
index ab8a4ba917d..0d9c9544501 100644
--- a/document/src/main/java/com/yahoo/document/json/JsonReader.java
+++ b/document/src/main/java/com/yahoo/document/json/JsonReader.java
@@ -5,34 +5,21 @@ import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.google.common.annotations.Beta;
-import com.google.common.base.Preconditions;
-import com.yahoo.document.Document;
import com.yahoo.document.DocumentId;
import com.yahoo.document.DocumentOperation;
-import com.yahoo.document.DocumentPut;
-import com.yahoo.document.DocumentRemove;
import com.yahoo.document.DocumentType;
import com.yahoo.document.DocumentTypeManager;
-import com.yahoo.document.DocumentUpdate;
-import com.yahoo.document.Field;
import com.yahoo.document.TestAndSetCondition;
import com.yahoo.document.json.document.DocumentParser;
import com.yahoo.document.json.readers.DocumentParseInfo;
-import com.yahoo.document.update.FieldUpdate;
+import com.yahoo.document.json.readers.VespaJsonDocumentReader;
import java.io.IOException;
import java.io.InputStream;
import java.util.Optional;
import static com.yahoo.document.json.JsonReader.ReaderState.END_OF_FEED;
-import static com.yahoo.document.json.readers.AddRemoveCreator.createAdds;
-import static com.yahoo.document.json.readers.AddRemoveCreator.createRemoves;
-import static com.yahoo.document.json.readers.CompositeReader.populateComposite;
import static com.yahoo.document.json.readers.JsonParserHelpers.expectArrayStart;
-import static com.yahoo.document.json.readers.JsonParserHelpers.expectObjectStart;
-import static com.yahoo.document.json.readers.MapReader.UPDATE_MATCH;
-import static com.yahoo.document.json.readers.MapReader.createMapUpdate;
-import static com.yahoo.document.json.readers.SingleValueReader.readSingleUpdate;
/**
* Initialize Vespa documents/updates/removes from an InputStream containing a
@@ -49,8 +36,6 @@ public class JsonReader {
return documentParser.parse(Optional.empty());
}
- private static final String UPDATE_REMOVE = "remove";
- private static final String UPDATE_ADD = "add";
private final JsonParser parser;
private final DocumentTypeManager typeManager;
@@ -88,7 +73,9 @@ public class JsonReader {
throw new RuntimeException(e);
}
documentParseInfo.operationType = operationType;
- DocumentOperation operation = createDocumentOperation(documentParseInfo);
+ VespaJsonDocumentReader vespaJsonDocumentReader = new VespaJsonDocumentReader(
+ getDocumentTypeFromString(documentParseInfo.documentId.getDocType(), typeManager), documentParseInfo);
+ DocumentOperation operation = vespaJsonDocumentReader.createDocumentOperation();
operation.setCondition(TestAndSetCondition.fromConditionString(documentParseInfo.condition));
return operation;
}
@@ -117,122 +104,14 @@ public class JsonReader {
state = END_OF_FEED;
return null;
}
- DocumentOperation operation = createDocumentOperation(documentParseInfo.get());
+ VespaJsonDocumentReader vespaJsonDocumentReader = new VespaJsonDocumentReader(
+ getDocumentTypeFromString(documentParseInfo.get().documentId.getDocType(), typeManager),
+ documentParseInfo.get());
+ DocumentOperation operation = vespaJsonDocumentReader.createDocumentOperation();
operation.setCondition(TestAndSetCondition.fromConditionString(documentParseInfo.get().condition));
return operation;
}
- private DocumentOperation createDocumentOperation(DocumentParseInfo documentParseInfo) {
- DocumentType documentType = getDocumentTypeFromString(documentParseInfo.documentId.getDocType(), typeManager);
- final DocumentOperation documentOperation;
- try {
- switch (documentParseInfo.operationType) {
- case PUT:
- documentOperation = new DocumentPut(new Document(documentType, documentParseInfo.documentId));
- readPut(documentParseInfo.fieldsBuffer, (DocumentPut) documentOperation);
- verifyEndState(documentParseInfo.fieldsBuffer, JsonToken.END_OBJECT);
- break;
- case REMOVE:
- documentOperation = new DocumentRemove(documentParseInfo.documentId);
- break;
- case UPDATE:
- documentOperation = new DocumentUpdate(documentType, documentParseInfo.documentId);
- if (documentParseInfo.fieldsBuffer.size() == 0 && documentParseInfo.fieldpathsBuffer.size() == 0) {
- throw new IllegalArgumentException("Either 'fields' or 'fieldpaths' must be set");
- }
-
- if (documentParseInfo.fieldsBuffer.size() > 0) {
- readUpdate(documentParseInfo.fieldsBuffer, (DocumentUpdate) documentOperation);
- verifyEndState(documentParseInfo.fieldsBuffer, JsonToken.END_OBJECT);
- }
- if (documentParseInfo.fieldpathsBuffer.size() > 0) {
- VespaJsonDocumentReader vespaJsonDocumentReader = new VespaJsonDocumentReader(documentType, documentParseInfo);
- vespaJsonDocumentReader.read((DocumentUpdate) documentOperation);
- verifyEndState(documentParseInfo.fieldpathsBuffer, JsonToken.END_ARRAY);
- }
- break;
- default:
- throw new IllegalStateException("Implementation out of sync with itself. This is a bug.");
- }
- } catch (JsonReaderException e) {
- throw JsonReaderException.addDocId(e, documentParseInfo.documentId);
- }
- if (documentParseInfo.create.isPresent()) {
- if (!(documentOperation instanceof DocumentUpdate)) {
- throw new RuntimeException("Could not set create flag on non update operation.");
- }
- DocumentUpdate update = (DocumentUpdate) documentOperation;
- update.setCreateIfNonExistent(documentParseInfo.create.get());
- }
- return documentOperation;
- }
-
- // Exposed for unit testing...
- void readUpdate(TokenBuffer buffer, DocumentUpdate next) {
- if (buffer.size() == 0) {
- buffer.bufferObject(nextToken(parser), parser);
- }
- populateUpdateFromBuffer(buffer, next);
- }
-
- // Exposed for unit testing...
- void readPut(TokenBuffer buffer, DocumentPut put) {
- if (buffer.size() == 0) {
- buffer.bufferObject(nextToken(parser), parser);
- }
- try {
- populateComposite(buffer, put.getDocument());
- } catch (JsonReaderException e) {
- throw JsonReaderException.addDocId(e, put.getId());
- }
- }
-
- private void verifyEndState(TokenBuffer buffer, JsonToken expectedFinalToken) {
- Preconditions.checkState(buffer.currentToken() == expectedFinalToken,
- "Expected end of JSON struct (%s), got %s", expectedFinalToken, buffer.currentToken());
- Preconditions.checkState(buffer.nesting() == 0, "Nesting not zero at end of operation");
- Preconditions.checkState(buffer.next() == null, "Dangling data at end of operation");
- Preconditions.checkState(buffer.size() == 0, "Dangling data at end of operation");
- }
-
- private static void populateUpdateFromBuffer(TokenBuffer buffer, DocumentUpdate update) {
- expectObjectStart(buffer.currentToken());
- int localNesting = buffer.nesting();
- JsonToken t = buffer.next();
-
- while (localNesting <= buffer.nesting()) {
- expectObjectStart(t);
- String fieldName = buffer.currentName();
- Field field = update.getType().getField(fieldName);
- addFieldUpdates(buffer, update, field);
- t = buffer.next();
- }
- }
-
- private static void addFieldUpdates(TokenBuffer buffer, DocumentUpdate update, Field field) {
- int localNesting = buffer.nesting();
- FieldUpdate fieldUpdate = FieldUpdate.create(field);
-
- buffer.next();
- while (localNesting <= buffer.nesting()) {
- switch (buffer.currentName()) {
- case UPDATE_REMOVE:
- createRemoves(buffer, field, fieldUpdate);
- break;
- case UPDATE_ADD:
- createAdds(buffer, field, fieldUpdate);
- break;
- case UPDATE_MATCH:
- fieldUpdate.addValueUpdate(createMapUpdate(buffer, field));
- break;
- default:
- String action = buffer.currentName();
- fieldUpdate.addValueUpdate(readSingleUpdate(buffer, field.getDataType(), action));
- }
- buffer.next();
- }
- update.addFieldUpdate(fieldUpdate);
- }
public DocumentType readDocumentType(DocumentId docId) {
return getDocumentTypeFromString(docId.getDocType(), typeManager);
diff --git a/document/src/main/java/com/yahoo/document/json/VespaJsonDocumentReader.java b/document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java
index 511fd894043..a8e1934bed1 100644
--- a/document/src/main/java/com/yahoo/document/json/VespaJsonDocumentReader.java
+++ b/document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java
@@ -1,10 +1,15 @@
-package com.yahoo.document.json;
+package com.yahoo.document.json.readers;
import com.fasterxml.jackson.core.JsonToken;
-import com.yahoo.document.ArrayDataType;
+import com.google.common.base.Preconditions;
import com.yahoo.document.DataType;
+import com.yahoo.document.Document;
+import com.yahoo.document.DocumentOperation;
+import com.yahoo.document.DocumentPut;
+import com.yahoo.document.DocumentRemove;
import com.yahoo.document.DocumentType;
import com.yahoo.document.DocumentUpdate;
+import com.yahoo.document.Field;
import com.yahoo.document.NumericDataType;
import com.yahoo.document.datatypes.Array;
import com.yahoo.document.datatypes.FieldValue;
@@ -12,14 +17,21 @@ import com.yahoo.document.fieldpathupdate.AddFieldPathUpdate;
import com.yahoo.document.fieldpathupdate.AssignFieldPathUpdate;
import com.yahoo.document.fieldpathupdate.FieldPathUpdate;
import com.yahoo.document.fieldpathupdate.RemoveFieldPathUpdate;
-import com.yahoo.document.json.readers.CompositeReader;
-import com.yahoo.document.json.readers.DocumentParseInfo;
+import com.yahoo.document.json.JsonReaderException;
+import com.yahoo.document.json.TokenBuffer;
import com.yahoo.document.select.parser.ParseException;
+import com.yahoo.document.update.FieldUpdate;
+import static com.yahoo.document.json.readers.AddRemoveCreator.createAdds;
+import static com.yahoo.document.json.readers.AddRemoveCreator.createRemoves;
+import static com.yahoo.document.json.readers.CompositeReader.populateComposite;
import static com.yahoo.document.json.readers.JsonParserHelpers.expectObjectEnd;
import static com.yahoo.document.json.readers.JsonParserHelpers.expectObjectStart;
import static com.yahoo.document.json.readers.JsonParserHelpers.expectArrayEnd;
import static com.yahoo.document.json.readers.JsonParserHelpers.expectArrayStart;
+import static com.yahoo.document.json.readers.MapReader.UPDATE_MATCH;
+import static com.yahoo.document.json.readers.MapReader.createMapUpdate;
+import static com.yahoo.document.json.readers.SingleValueReader.readSingleUpdate;
/**
* @author valerijf
@@ -28,13 +40,117 @@ public class VespaJsonDocumentReader {
private final DocumentType documentType;
private final DocumentParseInfo documentParseInfo;
- VespaJsonDocumentReader(DocumentType documentType, DocumentParseInfo documentParseInfo) {
+ private static final String UPDATE_REMOVE = "remove";
+ private static final String UPDATE_ADD = "add";
+
+ public VespaJsonDocumentReader(DocumentType documentType, DocumentParseInfo documentParseInfo) {
this.documentType = documentType;
this.documentParseInfo = documentParseInfo;
}
- public void read(DocumentUpdate update) {
- parseFieldpathsBuffer(update, documentParseInfo.fieldpathsBuffer);
+ public DocumentOperation createDocumentOperation() {
+ final DocumentOperation documentOperation;
+ try {
+ switch (documentParseInfo.operationType) {
+ case PUT:
+ documentOperation = new DocumentPut(new Document(documentType, documentParseInfo.documentId));
+ readPut(documentParseInfo.fieldsBuffer, (DocumentPut) documentOperation);
+ verifyEndState(documentParseInfo.fieldsBuffer, JsonToken.END_OBJECT);
+ break;
+ case REMOVE:
+ documentOperation = new DocumentRemove(documentParseInfo.documentId);
+ break;
+ case UPDATE:
+ documentOperation = new DocumentUpdate(documentType, documentParseInfo.documentId);
+ if (documentParseInfo.fieldsBuffer.size() == 0 && documentParseInfo.fieldpathsBuffer.size() == 0) {
+ throw new IllegalArgumentException("Either 'fields' or 'fieldpaths' must be set");
+ }
+
+ if (documentParseInfo.fieldsBuffer.size() > 0) {
+ readUpdate(documentParseInfo.fieldsBuffer, (DocumentUpdate) documentOperation);
+ verifyEndState(documentParseInfo.fieldsBuffer, JsonToken.END_OBJECT);
+ }
+ if (documentParseInfo.fieldpathsBuffer.size() > 0) {
+ VespaJsonDocumentReader vespaJsonDocumentReader = new VespaJsonDocumentReader(documentType, documentParseInfo);
+ parseFieldpathsBuffer((DocumentUpdate) documentOperation, documentParseInfo.fieldpathsBuffer);
+ verifyEndState(documentParseInfo.fieldpathsBuffer, JsonToken.END_ARRAY);
+ }
+ break;
+ default:
+ throw new IllegalStateException("Implementation out of sync with itself. This is a bug.");
+ }
+ } catch (JsonReaderException e) {
+ throw JsonReaderException.addDocId(e, documentParseInfo.documentId);
+ }
+ if (documentParseInfo.create.isPresent()) {
+ if (!(documentOperation instanceof DocumentUpdate)) {
+ throw new RuntimeException("Could not set create flag on non update operation.");
+ }
+ DocumentUpdate update = (DocumentUpdate) documentOperation;
+ update.setCreateIfNonExistent(documentParseInfo.create.get());
+ }
+ return documentOperation;
+ }
+
+ // Exposed for unit testing...
+ public static void readUpdate(TokenBuffer buffer, DocumentUpdate next) {
+ populateUpdateFromBuffer(buffer, next);
+ }
+
+ // Exposed for unit testing...
+ public static void readPut(TokenBuffer buffer, DocumentPut put) {
+ try {
+ populateComposite(buffer, put.getDocument());
+ } catch (JsonReaderException e) {
+ throw JsonReaderException.addDocId(e, put.getId());
+ }
+ }
+
+ private static void verifyEndState(TokenBuffer buffer, JsonToken expectedFinalToken) {
+ Preconditions.checkState(buffer.currentToken() == expectedFinalToken,
+ "Expected end of JSON struct (%s), got %s", expectedFinalToken, buffer.currentToken());
+ Preconditions.checkState(buffer.nesting() == 0, "Nesting not zero at end of operation");
+ Preconditions.checkState(buffer.next() == null, "Dangling data at end of operation");
+ Preconditions.checkState(buffer.size() == 0, "Dangling data at end of operation");
+ }
+
+ private static void populateUpdateFromBuffer(TokenBuffer buffer, DocumentUpdate update) {
+ expectObjectStart(buffer.currentToken());
+ int localNesting = buffer.nesting();
+ JsonToken t = buffer.next();
+
+ while (localNesting <= buffer.nesting()) {
+ expectObjectStart(t);
+ String fieldName = buffer.currentName();
+ Field field = update.getType().getField(fieldName);
+ addFieldUpdates(buffer, update, field);
+ t = buffer.next();
+ }
+ }
+
+ private static void addFieldUpdates(TokenBuffer buffer, DocumentUpdate update, Field field) {
+ int localNesting = buffer.nesting();
+ FieldUpdate fieldUpdate = FieldUpdate.create(field);
+
+ buffer.next();
+ while (localNesting <= buffer.nesting()) {
+ switch (buffer.currentName()) {
+ case UPDATE_REMOVE:
+ createRemoves(buffer, field, fieldUpdate);
+ break;
+ case UPDATE_ADD:
+ createAdds(buffer, field, fieldUpdate);
+ break;
+ case UPDATE_MATCH:
+ fieldUpdate.addValueUpdate(createMapUpdate(buffer, field));
+ break;
+ default:
+ String action = buffer.currentName();
+ fieldUpdate.addValueUpdate(readSingleUpdate(buffer, field.getDataType(), action));
+ }
+ buffer.next();
+ }
+ update.addFieldUpdate(fieldUpdate);
}
private void parseFieldpathsBuffer(DocumentUpdate update, TokenBuffer buffer) {
diff --git a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java
index 756e3fe3aa9..3ad6f270bff 100644
--- a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java
+++ b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java
@@ -32,6 +32,7 @@ import com.yahoo.document.datatypes.TensorFieldValue;
import com.yahoo.document.datatypes.WeightedSet;
import com.yahoo.document.json.document.DocumentParser;
import com.yahoo.document.json.readers.DocumentParseInfo;
+import com.yahoo.document.json.readers.VespaJsonDocumentReader;
import com.yahoo.document.update.AddValueUpdate;
import com.yahoo.document.update.ArithmeticValueUpdate;
import com.yahoo.document.update.ArithmeticValueUpdate.Operator;
@@ -216,7 +217,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- r.readPut(parseInfo.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
smokeTestDoc(put.getDocument());
}
@@ -232,7 +233,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- r.readPut(parseInfo.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
smokeTestDoc(put.getDocument());
}
@@ -246,7 +247,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- r.readPut(parseInfo.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
assertEquals("id:unittest:smoke::whee", parseInfo.documentId.toString());
}
@@ -262,7 +263,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- r.readPut(parseInfo.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("skuggsjaa"));
assertSame(Struct.class, f.getClass());
@@ -282,7 +283,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- r.readUpdate(parseInfo.fieldsBuffer, doc);
+ VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
checkSimpleArrayAdd(doc);
}
@@ -298,7 +299,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- r.readUpdate(parseInfo.fieldsBuffer, doc);
+ VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
Map<String, Integer> weights = new HashMap<>();
FieldUpdate x = doc.getFieldUpdate("actualset");
for (ValueUpdate<?> v : x.getValueUpdates()) {
@@ -328,7 +329,7 @@ public class JsonReaderTestCase {
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- r.readUpdate(parseInfo.fieldsBuffer, doc);
+ VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
Map<String, Tuple2<Number, String>> matches = new HashMap<>();
FieldUpdate x = doc.getFieldUpdate("actualset");
for (ValueUpdate<?> v : x.getValueUpdates()) {
@@ -370,7 +371,7 @@ public class JsonReaderTestCase {
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- r.readUpdate(parseInfo.fieldsBuffer, doc);
+ VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
Map<String, Tuple2<Number, Operator>> matches = new HashMap<>();
FieldUpdate x = doc.getFieldUpdate("actualset");
for (ValueUpdate v : x.getValueUpdates()) {
@@ -404,7 +405,7 @@ public class JsonReaderTestCase {
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- r.readUpdate(parseInfo.fieldsBuffer, doc);
+ VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
Map<Number, String> matches = new HashMap<>();
FieldUpdate x = doc.getFieldUpdate("actualarray");
for (ValueUpdate v : x.getValueUpdates()) {
@@ -441,7 +442,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- r.readPut(parseInfo.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("actualset"));
assertSame(WeightedSet.class, f.getClass());
@@ -462,7 +463,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- r.readPut(parseInfo.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("actualarray"));
assertSame(Array.class, f.getClass());
@@ -483,7 +484,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- r.readPut(parseInfo.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("actualmap"));
assertSame(MapFieldValue.class, f.getClass());
@@ -502,7 +503,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- r.readPut(parseInfo.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("singlepos"));
assertSame(Struct.class, f.getClass());
@@ -519,7 +520,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- r.readPut(parseInfo.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("singlepos"));
assertSame(Struct.class, f.getClass());
@@ -540,7 +541,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- r.readPut(parseInfo.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("actualraw"));
assertSame(Raw.class, f.getClass());
@@ -560,7 +561,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- r.readPut(parseInfo.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue("actualMapStringToArrayOfInt");
assertSame(MapFieldValue.class, f.getClass());
@@ -582,7 +583,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- r.readUpdate(parseInfo.fieldsBuffer, doc);
+ VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
FieldUpdate f = doc.getFieldUpdate("something");
assertEquals(1, f.size());
AssignValueUpdate a = (AssignValueUpdate) f.getValueUpdate(0);
@@ -601,7 +602,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- r.readUpdate(parseInfo.fieldsBuffer, doc);
+ VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
FieldUpdate f = doc.getFieldUpdate("actualMapStringToArrayOfInt");
assertEquals(1, f.size());
AssignValueUpdate assign = (AssignValueUpdate) f.getValueUpdate(0);
@@ -625,7 +626,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- r.readUpdate(parseInfo.fieldsBuffer, doc);
+ VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
FieldUpdate x = doc.getFieldUpdate("actualset");
assertEquals(1, x.size());
AssignValueUpdate assign = (AssignValueUpdate) x.getValueUpdate(0);
@@ -828,7 +829,7 @@ public class JsonReaderTestCase {
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
exception.expect(NullPointerException.class);
exception.expectMessage("Could not get field \"smething\" in the structure of type \"smoke\".");
- r.readPut(parseInfo.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
}
@Test
@@ -855,7 +856,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- r.readPut(parseInfo.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
smokeTestDoc(put.getDocument());
}
diff --git a/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java b/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java
index 76d18e71a51..4928f1be374 100644
--- a/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java
+++ b/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java
@@ -23,6 +23,7 @@ import com.yahoo.document.WeightedSetDataType;
import com.yahoo.document.datatypes.ReferenceFieldValue;
import com.yahoo.document.datatypes.TensorFieldValue;
import com.yahoo.document.json.readers.DocumentParseInfo;
+import com.yahoo.document.json.readers.VespaJsonDocumentReader;
import com.yahoo.tensor.TensorType;
import com.yahoo.text.Utf8;
import org.apache.commons.codec.binary.Base64;
@@ -299,7 +300,7 @@ public class JsonWriterTestCase {
DocumentParseInfo raw = r.parseDocument().get();
DocumentType docType = r.readDocumentType(raw.documentId);
DocumentPut put = new DocumentPut(new Document(docType, raw.documentId));
- r.readPut(raw.fieldsBuffer, put);
+ VespaJsonDocumentReader.readPut(raw.fieldsBuffer, put);
return put.getDocument();
}