You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by ti...@apache.org on 2014/03/20 23:56:33 UTC
[1/3] git commit: improved printing of constants and types in plans
Repository: incubator-vxquery
Updated Branches:
refs/heads/master 04ac20d12 -> a09d1f5dd
improved printing of constants and types in plans
Project: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/commit/04c11094
Tree: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/tree/04c11094
Diff: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/diff/04c11094
Branch: refs/heads/master
Commit: 04c11094ccf8930de8d273709abb076c159ac4e5
Parents: 04ac20d
Author: Till Westmann <we...@gmail.com>
Authored: Mon Mar 17 10:59:33 2014 -0700
Committer: Till Westmann <we...@gmail.com>
Committed: Mon Mar 17 10:59:33 2014 -0700
----------------------------------------------------------------------
.../algebricks/VXQueryConstantValue.java | 2 +-
...ueryLogicalExpressionPrettyPrintVisitor.java | 26 +++++++++++++++++++-
.../vxquery/serializer/XMLSerializer.java | 2 +-
.../org/apache/vxquery/types/AnyItemType.java | 7 +++++-
.../vxquery/types/BuiltinTypeRegistry.java | 2 ++
.../org/apache/vxquery/types/Quantifier.java | 13 +++++++++-
.../org/apache/vxquery/types/SequenceType.java | 4 +--
7 files changed, 49 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/04c11094/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryConstantValue.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryConstantValue.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryConstantValue.java
index a0090b0..1cbe74e 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryConstantValue.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryConstantValue.java
@@ -57,7 +57,7 @@ public class VXQueryConstantValue implements IAlgebricksConstantValue {
@Override
public String toString() {
StringBuilder buffer = new StringBuilder();
- buffer.append(type).append("(bytes[").append(value.length).append("] = [").append(Hex.encodeHexString(value))
+ buffer.append(type).append(" (bytes[").append(value.length).append("] = [").append(Hex.encodeHexString(value))
.append("])");
return buffer.toString();
}
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/04c11094/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java
index 48e923b..65ace85 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java
@@ -14,6 +14,9 @@
*/
package org.apache.vxquery.compiler.algebricks.prettyprint;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.io.UnsupportedEncodingException;
import java.util.List;
import org.apache.commons.lang3.mutable.Mutable;
@@ -22,6 +25,7 @@ import org.apache.vxquery.context.StaticContext;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.functions.BuiltinOperators;
+import org.apache.vxquery.serializer.XMLSerializer;
import org.apache.vxquery.types.SequenceType;
import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
@@ -30,6 +34,7 @@ import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
+import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IAlgebricksConstantValue;
import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.StatefulFunctionCallExpression;
import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.UnnestingFunctionCallExpression;
@@ -43,16 +48,35 @@ public class VXQueryLogicalExpressionPrettyPrintVisitor implements ILogicalExpre
StaticContext ctx;
IntegerPointable ip;
TaggedValuePointable tvp;
+ XMLSerializer serializer;
public VXQueryLogicalExpressionPrettyPrintVisitor(StaticContext ctx) {
this.ctx = ctx;
this.ip = (IntegerPointable) IntegerPointable.FACTORY.createPointable();
this.tvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+ this.serializer = new XMLSerializer();
}
@Override
public String visitConstantExpression(ConstantExpression expr, Integer indent) throws AlgebricksException {
- return expr.toString();
+ IAlgebricksConstantValue value = expr.getValue();
+ if (value instanceof VXQueryConstantValue) {
+ VXQueryConstantValue vxqValue = (VXQueryConstantValue) value;
+ tvp.set(vxqValue.getValue(), 0, vxqValue.getValue().length);
+
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ PrintStream ps = new PrintStream(os);
+
+ serializer.printTaggedValuePointable(ps, tvp);
+
+ try {
+ return vxqValue.getType() + ": " + os.toString("UTF8");
+ } catch (UnsupportedEncodingException e) {
+ // print stack trace and return the default
+ e.printStackTrace();
+ }
+ }
+ return value.toString();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/04c11094/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java b/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
index f2999bb..51670e8 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
@@ -79,7 +79,7 @@ public class XMLSerializer implements IPrinter {
}
}
- private void printTaggedValuePointable(PrintStream ps, TaggedValuePointable tvp) {
+ public void printTaggedValuePointable(PrintStream ps, TaggedValuePointable tvp) {
byte tag = tvp.getTag();
switch ((int) tag) {
case ValueTag.XS_ANY_URI_TAG:
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/04c11094/vxquery-core/src/main/java/org/apache/vxquery/types/AnyItemType.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/AnyItemType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/AnyItemType.java
index ce7de21..32cd3b0 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/AnyItemType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/AnyItemType.java
@@ -36,4 +36,9 @@ public final class AnyItemType implements ItemType {
public boolean equals(Object other) {
return other instanceof AnyItemType;
}
-}
\ No newline at end of file
+
+ @Override
+ public String toString() {
+ return String.valueOf(BuiltinTypeRegistry.INSTANCE.getTypeName(BuiltinTypeConstants.XS_ANY_TYPE_ID));
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/04c11094/vxquery-core/src/main/java/org/apache/vxquery/types/BuiltinTypeRegistry.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/BuiltinTypeRegistry.java b/vxquery-core/src/main/java/org/apache/vxquery/types/BuiltinTypeRegistry.java
index ec4472e..a5da4d7 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/BuiltinTypeRegistry.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/BuiltinTypeRegistry.java
@@ -218,7 +218,9 @@ public final class BuiltinTypeRegistry {
types[BuiltinTypeConstants.XS_NOTATION_TYPE_ID] = XS_NOTATION;
typeNames = new QName[BuiltinTypeConstants.BUILTIN_TYPE_COUNT];
+ typeNames[BuiltinTypeConstants.XS_ANY_TYPE_ID] = BuiltinTypeQNames.XS_ANY_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_ANY_SIMPLE_TYPE_ID] = BuiltinTypeQNames.XS_ANY_SIMPLE_TYPE_QNAME;
+ typeNames[BuiltinTypeConstants.XS_UNTYPED_TYPE_ID] = BuiltinTypeQNames.XS_UNTYPED_QNAME;
typeNames[BuiltinTypeConstants.XS_ANY_ATOMIC_TYPE_ID] = BuiltinTypeQNames.XS_ANY_ATOMIC_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_STRING_TYPE_ID] = BuiltinTypeQNames.XS_STRING_TYPE_QNAME;
typeNames[BuiltinTypeConstants.XS_NORMALIZED_STRING_TYPE_ID] = BuiltinTypeQNames.XS_NORMALIZED_STRING_TYPE_QNAME;
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/04c11094/vxquery-core/src/main/java/org/apache/vxquery/types/Quantifier.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/Quantifier.java b/vxquery-core/src/main/java/org/apache/vxquery/types/Quantifier.java
index bc2c11f..686986f 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/Quantifier.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/Quantifier.java
@@ -103,4 +103,15 @@ public enum Quantifier {
public boolean allowsRepeating() {
return this == QUANT_PLUS || this == QUANT_STAR;
}
-}
\ No newline at end of file
+
+ public static String toString(Quantifier q) {
+ switch (q) {
+ case QUANT_ONE: return " ";
+ case QUANT_PLUS: return "+";
+ case QUANT_QUESTION: return "?";
+ case QUANT_STAR: return "*";
+ case QUANT_ZERO: return "-";
+ }
+ throw new IllegalArgumentException();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/04c11094/vxquery-core/src/main/java/org/apache/vxquery/types/SequenceType.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/SequenceType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/SequenceType.java
index 01b5314..2986a8c 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/SequenceType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/SequenceType.java
@@ -148,6 +148,6 @@ public final class SequenceType implements Serializable {
}
public String toString() {
- return String.valueOf(itemType) + " " + quantifier;
+ return String.valueOf(itemType) + Quantifier.toString(quantifier);
}
-}
\ No newline at end of file
+}
[2/3] git commit: reuse streams for pretty-printing
Posted by ti...@apache.org.
reuse streams for pretty-printing
Project: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/commit/8cc2837c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/tree/8cc2837c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/diff/8cc2837c
Branch: refs/heads/master
Commit: 8cc2837c58216885a6ec9d56f1abfd00d9ca3d25
Parents: 04c1109
Author: Till Westmann <we...@gmail.com>
Authored: Mon Mar 17 13:15:12 2014 -0700
Committer: Till Westmann <we...@gmail.com>
Committed: Mon Mar 17 13:15:12 2014 -0700
----------------------------------------------------------------------
.../VXQueryLogicalExpressionPrettyPrintVisitor.java | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/8cc2837c/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java
index 65ace85..ccdfb6b 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java
@@ -49,12 +49,16 @@ public class VXQueryLogicalExpressionPrettyPrintVisitor implements ILogicalExpre
IntegerPointable ip;
TaggedValuePointable tvp;
XMLSerializer serializer;
+ ByteArrayOutputStream os;
+ PrintStream ps;
public VXQueryLogicalExpressionPrettyPrintVisitor(StaticContext ctx) {
this.ctx = ctx;
this.ip = (IntegerPointable) IntegerPointable.FACTORY.createPointable();
this.tvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
this.serializer = new XMLSerializer();
+ this.os = new ByteArrayOutputStream();
+ this.ps = new PrintStream(os);
}
@Override
@@ -63,17 +67,15 @@ public class VXQueryLogicalExpressionPrettyPrintVisitor implements ILogicalExpre
if (value instanceof VXQueryConstantValue) {
VXQueryConstantValue vxqValue = (VXQueryConstantValue) value;
tvp.set(vxqValue.getValue(), 0, vxqValue.getValue().length);
-
- ByteArrayOutputStream os = new ByteArrayOutputStream();
- PrintStream ps = new PrintStream(os);
-
serializer.printTaggedValuePointable(ps, tvp);
-
try {
return vxqValue.getType() + ": " + os.toString("UTF8");
} catch (UnsupportedEncodingException e) {
// print stack trace and return the default
e.printStackTrace();
+ } finally {
+ ps.flush();
+ os.reset();
}
}
return value.toString();
[3/3] git commit: pretty-print path steps
Posted by ti...@apache.org.
pretty-print path steps
Project: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/commit/a09d1f5d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/tree/a09d1f5d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/diff/a09d1f5d
Branch: refs/heads/master
Commit: a09d1f5ddccbf2f031424a79e764d220128863b6
Parents: 8cc2837
Author: Till Westmann <we...@gmail.com>
Authored: Wed Mar 19 16:45:32 2014 -0700
Committer: Till Westmann <we...@gmail.com>
Committed: Wed Mar 19 16:45:32 2014 -0700
----------------------------------------------------------------------
.../java/org/apache/vxquery/cli/VXQuery.java | 3 +-
...ueryLogicalExpressionPrettyPrintVisitor.java | 45 ++++++++++++--------
.../org/apache/vxquery/types/AnyItemType.java | 10 ++---
.../org/apache/vxquery/types/AnyNodeType.java | 5 +++
.../org/apache/vxquery/types/AnySimpleType.java | 5 +++
.../java/org/apache/vxquery/types/AnyType.java | 5 +++
.../org/apache/vxquery/types/AttributeType.java | 10 +++++
.../org/apache/vxquery/types/CommentType.java | 5 +++
.../org/apache/vxquery/types/DocumentType.java | 7 +++
.../org/apache/vxquery/types/ElementType.java | 18 +++++---
.../types/ProcessingInstructionType.java | 11 +++++
.../java/org/apache/vxquery/types/TextType.java | 5 +++
.../xmlquery/query/XMLQueryCompiler.java | 2 +-
13 files changed, 101 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a09d1f5d/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
----------------------------------------------------------------------
diff --git a/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java b/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
index 7e3abfc..de1f52f 100644
--- a/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
+++ b/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
@@ -236,9 +236,8 @@ public class VXQuery {
private StringBuilder appendPrettyPlan(StringBuilder sb, Module module) {
try {
- StaticContext ctx = module.getCompilerControlBlock().getStaticContext();
ILogicalExpressionVisitor<String, Integer> ev = new VXQueryLogicalExpressionPrettyPrintVisitor(
- ctx);
+ module.getModuleContext());
LogicalOperatorPrettyPrintVisitor v = new LogicalOperatorPrettyPrintVisitor(ev);
PlanPrettyPrinter.printPlan(module.getBody(), sb, v, 0);
} catch (AlgebricksException e) {
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a09d1f5d/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java
index ccdfb6b..c630837 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/prettyprint/VXQueryLogicalExpressionPrettyPrintVisitor.java
@@ -96,21 +96,7 @@ public class VXQueryLogicalExpressionPrettyPrintVisitor implements ILogicalExpre
@Override
public String visitScalarFunctionCallExpression(ScalarFunctionCallExpression expr, Integer indent)
throws AlgebricksException {
- assert expr.getExpressionTag() == LogicalExpressionTag.FUNCTION_CALL;
-
- StringBuilder sb = new StringBuilder();
-
- FunctionIdentifier fi = expr.getFunctionIdentifier();
- if (identifiesTypeOperator(fi)) {
- final ILogicalExpression typeEx = expr.getArguments().get(1).getValue();
- assert typeEx.getExpressionTag() == LogicalExpressionTag.CONSTANT;
- SequenceType type = getSequenceType((ConstantExpression) typeEx);
- sb.append(fi + " <" + type + ">, Args:");
- appendArgument(sb, expr.getArguments().get(0), indent + 2);
- } else {
- appendFunction(sb, expr, indent);
- }
- return sb.toString();
+ return appendFunction(new StringBuilder(), expr, indent).toString();
}
@Override
@@ -133,10 +119,35 @@ public class VXQueryLogicalExpressionPrettyPrintVisitor implements ILogicalExpre
|| BuiltinOperators.INSTANCE_OF.getFunctionIdentifier().equals(fi);
}
+ protected boolean identifiesPathStep(FunctionIdentifier fi) {
+ return BuiltinOperators.CHILD.getFunctionIdentifier().equals(fi)
+ || BuiltinOperators.ATTRIBUTE.getFunctionIdentifier().equals(fi)
+ || BuiltinOperators.ANCESTOR.getFunctionIdentifier().equals(fi)
+ || BuiltinOperators.ANCESTOR_OR_SELF.getFunctionIdentifier().equals(fi)
+ || BuiltinOperators.DESCENDANT.getFunctionIdentifier().equals(fi)
+ || BuiltinOperators.DESCENDANT_OR_SELF.getFunctionIdentifier().equals(fi)
+ || BuiltinOperators.PARENT.getFunctionIdentifier().equals(fi)
+ || BuiltinOperators.FOLLOWING.getFunctionIdentifier().equals(fi)
+ || BuiltinOperators.FOLLOWING_SIBLING.getFunctionIdentifier().equals(fi)
+ || BuiltinOperators.PRECEDING.getFunctionIdentifier().equals(fi)
+ || BuiltinOperators.PRECEDING_SIBLING.getFunctionIdentifier().equals(fi)
+ || BuiltinOperators.SELF.getFunctionIdentifier().equals(fi);
+ }
+
protected StringBuilder appendFunction(StringBuilder sb, AbstractFunctionCallExpression expr, Integer indent)
throws AlgebricksException {
- sb.append("function-call: " + expr.getFunctionIdentifier() + ", Args:");
- appendArguments(sb, expr.getArguments(), indent + 2);
+ assert expr.getExpressionTag() == LogicalExpressionTag.FUNCTION_CALL;
+ FunctionIdentifier fi = expr.getFunctionIdentifier();
+ if (identifiesTypeOperator(fi) || identifiesPathStep(fi)) {
+ final ILogicalExpression typeEx = expr.getArguments().get(1).getValue();
+ assert typeEx.getExpressionTag() == LogicalExpressionTag.CONSTANT;
+ SequenceType type = getSequenceType((ConstantExpression) typeEx);
+ sb.append(fi + " <" + type + ">, Args:");
+ appendArgument(sb, expr.getArguments().get(0), indent + 2);
+ } else {
+ sb.append("function-call: " + fi + ", Args:");
+ appendArguments(sb, expr.getArguments(), indent + 2);
+ }
return sb;
}
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a09d1f5d/vxquery-core/src/main/java/org/apache/vxquery/types/AnyItemType.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/AnyItemType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/AnyItemType.java
index 32cd3b0..c6db3ad 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/AnyItemType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/AnyItemType.java
@@ -28,6 +28,11 @@ public final class AnyItemType implements ItemType {
}
@Override
+ public String toString() {
+ return "item";
+ }
+
+ @Override
public int hashCode() {
return AnyItemType.class.hashCode();
}
@@ -36,9 +41,4 @@ public final class AnyItemType implements ItemType {
public boolean equals(Object other) {
return other instanceof AnyItemType;
}
-
- @Override
- public String toString() {
- return String.valueOf(BuiltinTypeRegistry.INSTANCE.getTypeName(BuiltinTypeConstants.XS_ANY_TYPE_ID));
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a09d1f5d/vxquery-core/src/main/java/org/apache/vxquery/types/AnyNodeType.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/AnyNodeType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/AnyNodeType.java
index a40e703..2f8ffce 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/AnyNodeType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/AnyNodeType.java
@@ -28,6 +28,11 @@ public final class AnyNodeType extends AbstractNodeType {
}
@Override
+ public String toString() {
+ return "node";
+ }
+
+ @Override
public int hashCode() {
return AnyNodeType.class.hashCode();
}
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a09d1f5d/vxquery-core/src/main/java/org/apache/vxquery/types/AnySimpleType.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/AnySimpleType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/AnySimpleType.java
index 7781656..bc5044c 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/AnySimpleType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/AnySimpleType.java
@@ -53,6 +53,11 @@ public final class AnySimpleType implements SimpleType {
}
@Override
+ public String toString() {
+ return String.valueOf(BuiltinTypeRegistry.INSTANCE.getTypeName(getTypeId()));
+ }
+
+ @Override
public int hashCode() {
return AnySimpleType.class.hashCode();
}
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a09d1f5d/vxquery-core/src/main/java/org/apache/vxquery/types/AnyType.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/AnyType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/AnyType.java
index b8911fa..19519c2 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/AnyType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/AnyType.java
@@ -53,6 +53,11 @@ public final class AnyType implements ComplexType {
}
@Override
+ public String toString() {
+ return String.valueOf(BuiltinTypeRegistry.INSTANCE.getTypeName(getTypeId()));
+ }
+
+ @Override
public int hashCode() {
return AnyType.class.hashCode();
}
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a09d1f5d/vxquery-core/src/main/java/org/apache/vxquery/types/AttributeType.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/AttributeType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/AttributeType.java
index 69f5e28..0cacd59 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/AttributeType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/AttributeType.java
@@ -42,6 +42,16 @@ public final class AttributeType extends AbstractNodeType {
}
@Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("attribute(");
+ sb.append(nameTest != null ? nameTest : "*");
+ if (contentType != null) {
+ sb.append(", ").append(contentType);
+ }
+ return sb.append(")").toString();
+ }
+
+ @Override
public int hashCode() {
final int prime = 31;
int result = 1;
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a09d1f5d/vxquery-core/src/main/java/org/apache/vxquery/types/CommentType.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/CommentType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/CommentType.java
index 8300e0a..4ca4a7c 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/CommentType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/CommentType.java
@@ -28,6 +28,11 @@ public final class CommentType extends AbstractNodeType {
}
@Override
+ public String toString() {
+ return "comment";
+ }
+
+ @Override
public int hashCode() {
return CommentType.class.hashCode();
}
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a09d1f5d/vxquery-core/src/main/java/org/apache/vxquery/types/DocumentType.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/DocumentType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/DocumentType.java
index f06fb71..bc02842 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/DocumentType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/DocumentType.java
@@ -35,6 +35,13 @@ public final class DocumentType extends AbstractNodeType {
}
@Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("document(");
+ sb.append(elementType != null ? elementType : "*");
+ return sb.append(")").toString();
+ }
+
+ @Override
public int hashCode() {
final int prime = 31;
int result = 1;
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a09d1f5d/vxquery-core/src/main/java/org/apache/vxquery/types/ElementType.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/ElementType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/ElementType.java
index 343f18b..26dffe9 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/ElementType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/ElementType.java
@@ -47,6 +47,19 @@ public final class ElementType extends AbstractNodeType {
}
@Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("element(");
+ sb.append(nameTest != null ? nameTest : "*");
+ if (contentType != null) {
+ sb.append(", ").append(contentType);
+ }
+ if (nilled) {
+ sb.append(", nilled");
+ }
+ return sb.append(")").toString();
+ }
+
+ @Override
public int hashCode() {
final int prime = 31;
int result = 1;
@@ -79,9 +92,4 @@ public final class ElementType extends AbstractNodeType {
return false;
return true;
}
-
- @Override
- public String toString() {
- return "NodeTest(" + nameTest + ", " + contentType + ", nilled = " + nilled + ")";
- }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a09d1f5d/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java
index ce2ebcf..d1f294a 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java
@@ -18,6 +18,8 @@ package org.apache.vxquery.types;
import java.util.Arrays;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+
public final class ProcessingInstructionType extends AbstractNodeType {
public static final ProcessingInstructionType ANYPI = new ProcessingInstructionType(null);
@@ -37,6 +39,15 @@ public final class ProcessingInstructionType extends AbstractNodeType {
}
@Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("processing-instruction(");
+ if (target != null) {
+ UTF8StringPointable.toString(sb, target, 0);
+ }
+ return sb.append(")").toString();
+ }
+
+ @Override
public int hashCode() {
final int prime = 31;
int result = 1;
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a09d1f5d/vxquery-core/src/main/java/org/apache/vxquery/types/TextType.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/TextType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/TextType.java
index 1e55bda..0709245 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/TextType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/TextType.java
@@ -28,6 +28,11 @@ public final class TextType extends AbstractNodeType {
}
@Override
+ public String toString() {
+ return "text";
+ }
+
+ @Override
public int hashCode() {
return TextType.class.hashCode();
}
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/a09d1f5d/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
index 8b10efc..e6a9007 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
@@ -155,7 +155,7 @@ public class XMLQueryCompiler {
listener.notifyParseResult(moduleNode);
module = new XMLQueryTranslator(ccb).translateModule(moduleNode);
pprinter = new LogicalOperatorPrettyPrintVisitor(new VXQueryLogicalExpressionPrettyPrintVisitor(module
- .getCompilerControlBlock().getStaticContext()));
+ .getModuleContext()));
compiler = cFactory.createCompiler(module.getBody(), mdProvider, 0);
listener.notifyTranslationResult(module);
XMLQueryTypeChecker.typeCheckModule(module);