diff options
author | freva <valerijf@yahoo-inc.com> | 2017-02-10 11:10:09 +0100 |
---|---|---|
committer | freva <valerijf@yahoo-inc.com> | 2017-02-10 11:10:09 +0100 |
commit | 7f7b4e172e4ab301c46b8c7d2377f45685862221 (patch) | |
tree | ab771cf4cfbadd919bc3bdd55e23f75923699e66 /document | |
parent | 3ddf7f0ead9c91a061e266b017bc5ba5a716ae61 (diff) |
Fixed DocumentUpdateJsonSerialized and it's test to the new format
Diffstat (limited to 'document')
-rw-r--r-- | document/src/main/java/com/yahoo/document/json/DocumentUpdateJsonSerializer.java | 22 | ||||
-rw-r--r-- | document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java | 25 |
2 files changed, 28 insertions, 19 deletions
diff --git a/document/src/main/java/com/yahoo/document/json/DocumentUpdateJsonSerializer.java b/document/src/main/java/com/yahoo/document/json/DocumentUpdateJsonSerializer.java index c2d33d2bf80..dae9a96015d 100644 --- a/document/src/main/java/com/yahoo/document/json/DocumentUpdateJsonSerializer.java +++ b/document/src/main/java/com/yahoo/document/json/DocumentUpdateJsonSerializer.java @@ -25,6 +25,7 @@ import com.yahoo.document.datatypes.Struct; import com.yahoo.document.datatypes.StructuredFieldValue; import com.yahoo.document.datatypes.TensorFieldValue; import com.yahoo.document.datatypes.WeightedSet; +import com.yahoo.document.fieldpathupdate.AddFieldPathUpdate; import com.yahoo.document.fieldpathupdate.AssignFieldPathUpdate; import com.yahoo.document.fieldpathupdate.FieldPathUpdate; import com.yahoo.document.fieldpathupdate.RemoveFieldPathUpdate; @@ -110,12 +111,9 @@ public class DocumentUpdateJsonSerializer if (! update.getFieldPathUpdates().isEmpty()) { generator.writeArrayFieldStart("fieldpaths"); for (FieldPathUpdate up : update.getFieldPathUpdates()) { - generator.writeStartObject(); - generator.writeStringField("fieldpath", up.getOriginalFieldPath()); - generator.writeStringField("operation", up.getUpdateType().name().toLowerCase()); - if (up.getOriginalWhereClause() != null) { - generator.writeStringField("where", up.getOriginalWhereClause()); - } + generator.writeStartObject(); // Ends fieldpath operation object inside 'fieldpaths' array + generator.writeObjectFieldStart(up.getUpdateType().name().toLowerCase()); + generator.writeObjectFieldStart(up.getOriginalFieldPath()); if (up instanceof AssignFieldPathUpdate) { AssignFieldPathUpdate assignUp = (AssignFieldPathUpdate) up; @@ -127,12 +125,22 @@ public class DocumentUpdateJsonSerializer Field value = new Field("value"); assignUp.getNewValue().serialize(value, this); } + } else if (up instanceof AddFieldPathUpdate) { + Field items = new Field("items"); + ((AddFieldPathUpdate) up).getNewValues().serialize(items, this); } else if (up instanceof RemoveFieldPathUpdate) { } else { throw new RuntimeException("Unsupported fieldpaths operation: " + up.getClass().getName()); } - generator.writeEndObject(); + + generator.writeEndObject(); // Ends fieldpath object + if (up.getOriginalWhereClause() != null) { + generator.writeStringField("where", up.getOriginalWhereClause()); + } + + generator.writeEndObject(); // Ends operation object + generator.writeEndObject(); // Ends fieldpath operation object inside 'fieldpaths' array } generator.writeEndArray(); } diff --git a/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java b/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java index 055354757f1..17aaf625c0f 100644 --- a/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java +++ b/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java @@ -347,10 +347,11 @@ public class DocumentUpdateJsonSerializerTest { " {", " 'assign': {", " 'int_field': {", - " 'value': ['test', 'of', 'array', 'add'],", + " 'value': '1',", " 'createmissingpath': false,", " 'removeifzero': false", - " }", + " },", + " 'where': 'int_field > 3'", " }", " },", " {", @@ -361,7 +362,7 @@ public class DocumentUpdateJsonSerializerTest { " 'removeifzero': false", " }", " }", - " },", + " }", " ]", "}" )); @@ -374,15 +375,15 @@ public class DocumentUpdateJsonSerializerTest { " 'update': 'DOCUMENT_ID',", " 'fieldpaths': [", " {", - " 'int_field': {", - " 'remove': {}", + " 'remove': {", + " 'int_field': {}", " }", " },", " {", - " 'string_field': {", - " 'remove': {}", + " 'remove': {", + " 'string_field': {}", " }", - " },", + " }", " ]", "}" )); @@ -395,15 +396,15 @@ public class DocumentUpdateJsonSerializerTest { " 'update': 'DOCUMENT_ID',", " 'fieldpaths': [", " {", - " 'int_field': {", - " 'add': {", + " 'add': {", + " 'int_field': {", " 'items': [123, 456, 789]", " }", " }", " },", " {", - " 'string_field': {", - " 'add': {", + " 'add': {", + " 'string_field': {", " 'items': ['test', 'of', 'array', 'add']", " }", " }", |