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

Reply via email to