JSON object builder, pointable and unit tests.
Project: http://git-wip-us.apache.org/repos/asf/vxquery/repo Commit: http://git-wip-us.apache.org/repos/asf/vxquery/commit/2e3b8337 Tree: http://git-wip-us.apache.org/repos/asf/vxquery/tree/2e3b8337 Diff: http://git-wip-us.apache.org/repos/asf/vxquery/diff/2e3b8337 Branch: refs/heads/master Commit: 2e3b833713b62d98e7072b1cdf1aa23e2439f9d5 Parents: d9e8dc2 3fd8053 Author: Preston Carman <[email protected]> Authored: Tue May 24 18:02:52 2016 -0700 Committer: Preston Carman <[email protected]> Committed: Tue May 24 18:02:52 2016 -0700 ---------------------------------------------------------------------- .../datamodel/accessors/SequencePointable.java | 6 +- .../accessors/jsonItem/ObjectPointable.java | 124 +++++++++ .../builders/jsonItem/ObjectBuilder.java | 66 +++++ .../builders/sequence/SequenceBuilder.java | 6 + .../vxquery/datamodel/values/ValueTag.java | 3 + .../vxquery/datamodel/values/XDMConstants.java | 20 +- .../vxquery/types/BuiltinTypeConstants.java | 4 +- .../datamodel/AbstractPointableTest.java | 22 +- .../vxquery/datamodel/ObjectByteTest.java | 264 +++++++++++++++++++ 9 files changed, 501 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/vxquery/blob/2e3b8337/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/sequence/SequenceBuilder.java ---------------------------------------------------------------------- diff --cc vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/sequence/SequenceBuilder.java index 5cd31b1,a5ca065..e347818 --- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/sequence/SequenceBuilder.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/sequence/SequenceBuilder.java @@@ -42,7 -42,14 +42,13 @@@ public class SequenceBuilder implement slots.append(dataArea.getLength()); } + public void addItem(int tagValue, IValueReference p) throws IOException { + dataArea.getDataOutput().write(tagValue); + dataArea.getDataOutput().write(p.getByteArray(), p.getStartOffset(), p.getLength()); + slots.append(dataArea.getLength()); + } + public void finish() throws IOException { - DataOutput out = mvs.getDataOutput(); if (slots.getSize() != 1) { out.write(ValueTag.SEQUENCE_TAG); int size = slots.getSize(); http://git-wip-us.apache.org/repos/asf/vxquery/blob/2e3b8337/vxquery-core/src/main/java/org/apache/vxquery/datamodel/values/ValueTag.java ---------------------------------------------------------------------- diff --cc vxquery-core/src/main/java/org/apache/vxquery/datamodel/values/ValueTag.java index d2c8a9b,5600283..2e4d5c7 --- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/values/ValueTag.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/values/ValueTag.java @@@ -82,7 -84,7 +84,8 @@@ public class ValueTag public static final int COMMENT_NODE_TAG = 105; public static final int PI_NODE_TAG = 106; public static final int NODE_TREE_TAG = 107; + public static final int ARRAY_TAG = 108; + public static final int OBJECT_TAG = 109; public static boolean isAtomic(int tag) { return tag < 100; http://git-wip-us.apache.org/repos/asf/vxquery/blob/2e3b8337/vxquery-core/src/test/java/org/apache/vxquery/datamodel/AbstractPointableTest.java ----------------------------------------------------------------------
