Added functions to help with simplifying the XMLParser calls. Only one array backed value store is needed.
Project: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/commit/a76d647b Tree: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/tree/a76d647b Diff: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/diff/a76d647b Branch: refs/heads/prestonc/parser Commit: a76d647b11a92c6d31d0787624d4a6b2f5e56030 Parents: f64c3a7 Author: Preston Carman <[email protected]> Authored: Fri Feb 14 23:24:04 2014 -0800 Committer: Preston Carman <[email protected]> Committed: Thu Feb 27 14:22:24 2014 -0800 ---------------------------------------------------------------------- .../builders/nodes/AttributeNodeBuilder.java | 5 +++++ .../builders/nodes/CommentNodeBuilder.java | 4 ++++ .../builders/nodes/ElementNodeBuilder.java | 20 ++++++++++++++++++++ .../datamodel/builders/nodes/PINodeBuilder.java | 8 ++++++++ .../builders/nodes/TextNodeBuilder.java | 4 ++++ 5 files changed, 41 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a76d647b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/AttributeNodeBuilder.java ---------------------------------------------------------------------- diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/AttributeNodeBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/AttributeNodeBuilder.java index cea7799..667001a 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/AttributeNodeBuilder.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/AttributeNodeBuilder.java @@ -56,4 +56,9 @@ public class AttributeNodeBuilder extends AbstractNodeBuilder { public void setValue(IValueReference value) throws IOException { out.write(value.getByteArray(), value.getStartOffset(), value.getLength()); } + + public void setValue(String string) throws IOException { + out.write(ValueTag.XS_UNTYPED_ATOMIC_TAG); + out.writeUTF(string); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a76d647b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/CommentNodeBuilder.java ---------------------------------------------------------------------- diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/CommentNodeBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/CommentNodeBuilder.java index 104868f..dce961c 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/CommentNodeBuilder.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/CommentNodeBuilder.java @@ -44,4 +44,8 @@ public class CommentNodeBuilder extends AbstractNodeBuilder { public void setValue(IValueReference value) throws IOException { out.write(value.getByteArray(), value.getStartOffset(), value.getLength()); } + + public void setValue(String string) throws IOException { + out.writeUTF(string); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a76d647b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/ElementNodeBuilder.java ---------------------------------------------------------------------- diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/ElementNodeBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/ElementNodeBuilder.java index d455fd5..4493bd1 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/ElementNodeBuilder.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/ElementNodeBuilder.java @@ -59,6 +59,11 @@ public class ElementNodeBuilder extends AbstractNodeBuilder { childrenDataArea = new ArrayBackedValueStorage(); } + public void setMvs(IMutableValueStorage mvs) throws IOException { + this.mvs = mvs; + out = mvs.getDataOutput(); + } + @Override public void reset(IMutableValueStorage mvs) throws IOException { this.mvs = mvs; @@ -83,6 +88,21 @@ public class ElementNodeBuilder extends AbstractNodeBuilder { BytePointable.setByte(mvs.getByteArray(), headerOffset, header); } + public void setTagHeader(int nsCount, int attrCount, int childrenCount) throws IOException { + byte header = 0; + if (nsCount > 0) { + header |= ElementNodePointable.NS_CHUNK_EXISTS_MASK; + } + if (attrCount > 0) { + header |= ElementNodePointable.ATTRIBUTES_CHUNK_EXISTS_MASK; + } + if (childrenCount > 0) { + header |= ElementNodePointable.CHILDREN_CHUNK_EXISTS_MASK; + } + out.write(ValueTag.ELEMENT_NODE_TAG); + out.writeByte(header); + } + public void setName(int uriCode, int localNameCode, int prefixCode) throws IOException { out.writeInt(prefixCode); out.writeInt(uriCode); http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a76d647b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/PINodeBuilder.java ---------------------------------------------------------------------- diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/PINodeBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/PINodeBuilder.java index a472143..344a8f4 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/PINodeBuilder.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/PINodeBuilder.java @@ -45,7 +45,15 @@ public class PINodeBuilder extends AbstractNodeBuilder { out.write(value.getByteArray(), value.getStartOffset(), value.getLength()); } + public void setTarget(String string) throws IOException { + out.writeUTF(string); + } + public void setContent(IValueReference value) throws IOException { out.write(value.getByteArray(), value.getStartOffset(), value.getLength()); } + + public void setContent(String string) throws IOException { + out.writeUTF(string); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a76d647b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/TextNodeBuilder.java ---------------------------------------------------------------------- diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/TextNodeBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/TextNodeBuilder.java index acddb8b..387b77e 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/TextNodeBuilder.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/TextNodeBuilder.java @@ -44,4 +44,8 @@ public class TextNodeBuilder extends AbstractNodeBuilder { public void setValue(IValueReference value) throws IOException { out.write(value.getByteArray(), value.getStartOffset(), value.getLength()); } + + public void setValue(String string) throws IOException { + out.writeUTF(string); + } } \ No newline at end of file
