You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by vi...@apache.org on 2012/03/04 21:55:27 UTC
svn commit: r1296874 - in /incubator/vxquery/branches/vxquery_algebricks:
vxquery-core/src/main/java/org/apache/vxquery/context/
vxquery-core/src/main/java/org/apache/vxquery/functions/
vxquery-core/src/main/java/org/apache/vxquery/util/ vxquery-core/s...
Author: vinayakb
Date: Sun Mar 4 20:55:27 2012
New Revision: 1296874
URL: http://svn.apache.org/viewvc?rev=1296874&view=rev
Log:
Added translation for validation expression. Removed Pair and reused the one from apache commons.
Removed:
incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/util/Pair.java
Modified:
incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/DelegatingStaticContextImpl.java
incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContext.java
incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContextImpl.java
incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml
incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java
incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/javacc/xquery-grammar.jj
incubator/vxquery/branches/vxquery_algebricks/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestCaseResult.java
Modified: incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/DelegatingStaticContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/DelegatingStaticContextImpl.java?rev=1296874&r1=1296873&r2=1296874&view=diff
==============================================================================
--- incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/DelegatingStaticContextImpl.java (original)
+++ incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/DelegatingStaticContextImpl.java Sun Mar 4 20:55:27 2012
@@ -21,13 +21,13 @@ import java.util.List;
import javax.xml.namespace.QName;
+import org.apache.commons.lang3.tuple.Pair;
import org.apache.vxquery.collations.Collation;
import org.apache.vxquery.functions.Function;
import org.apache.vxquery.types.AttributeType;
import org.apache.vxquery.types.ElementType;
import org.apache.vxquery.types.SchemaType;
import org.apache.vxquery.types.SequenceType;
-import org.apache.vxquery.util.Pair;
public abstract class DelegatingStaticContextImpl implements StaticContext {
protected final StaticContext parent;
Modified: incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContext.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContext.java?rev=1296874&r1=1296873&r2=1296874&view=diff
==============================================================================
--- incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContext.java (original)
+++ incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContext.java Sun Mar 4 20:55:27 2012
@@ -21,13 +21,13 @@ import java.util.List;
import javax.xml.namespace.QName;
+import org.apache.commons.lang3.tuple.Pair;
import org.apache.vxquery.collations.Collation;
import org.apache.vxquery.functions.Function;
import org.apache.vxquery.types.AttributeType;
import org.apache.vxquery.types.ElementType;
import org.apache.vxquery.types.SchemaType;
import org.apache.vxquery.types.SequenceType;
-import org.apache.vxquery.util.Pair;
public interface StaticContext {
public abstract DataspaceContext getDataspaceContext();
Modified: incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContextImpl.java?rev=1296874&r1=1296873&r2=1296874&view=diff
==============================================================================
--- incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContextImpl.java (original)
+++ incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContextImpl.java Sun Mar 4 20:55:27 2012
@@ -26,13 +26,13 @@ import java.util.NoSuchElementException;
import javax.xml.namespace.QName;
+import org.apache.commons.lang3.tuple.Pair;
import org.apache.vxquery.collations.Collation;
import org.apache.vxquery.functions.Function;
import org.apache.vxquery.types.AttributeType;
import org.apache.vxquery.types.ElementType;
import org.apache.vxquery.types.SchemaType;
import org.apache.vxquery.types.SequenceType;
-import org.apache.vxquery.util.Pair;
public class StaticContextImpl implements StaticContext {
private final StaticContext parent;
@@ -303,7 +303,7 @@ public class StaticContextImpl implement
@Override
public void registerModuleImport(String uri, List<String> locations) {
- moduleImports.add(new Pair<String, List<String>>(uri, locations));
+ moduleImports.add(Pair.<String, List<String>> of(uri, locations));
}
@Override
@@ -326,7 +326,7 @@ public class StaticContextImpl implement
@Override
public void registerSchemaImport(String uri, List<String> locations) {
- schemaImports.add(new Pair<String, List<String>>(uri, locations));
+ schemaImports.add(Pair.<String, List<String>> of(uri, locations));
}
@Override
Modified: incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml
URL: http://svn.apache.org/viewvc/incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml?rev=1296874&r1=1296873&r2=1296874&view=diff
==============================================================================
--- incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml (original)
+++ incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml Sun Mar 4 20:55:27 2012
@@ -854,4 +854,16 @@
<param name="arg" type="item()*"/>
<return type="item()"/>
</operator>
+
+ <!-- opext:validate-lax($arg as item()*) as item()* -->
+ <operator name="opext:validate-lax">
+ <param name="arg" type="item()*"/>
+ <return type="item()*"/>
+ </operator>
+
+ <!-- opext:validate-strict($arg as item()*) as item()* -->
+ <operator name="opext:validate-strict">
+ <param name="arg" type="item()*"/>
+ <return type="item()*"/>
+ </operator>
</operators>
Modified: incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java?rev=1296874&r1=1296873&r2=1296874&view=diff
==============================================================================
--- incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java (original)
+++ incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java Sun Mar 4 20:55:27 2012
@@ -116,6 +116,7 @@ import org.apache.vxquery.xmlquery.ast.T
import org.apache.vxquery.xmlquery.ast.TypeExprNode;
import org.apache.vxquery.xmlquery.ast.UnaryExprNode;
import org.apache.vxquery.xmlquery.ast.UnorderedExprNode;
+import org.apache.vxquery.xmlquery.ast.ValidateExprNode;
import org.apache.vxquery.xmlquery.ast.VarDeclNode;
import org.apache.vxquery.xmlquery.ast.VarRefNode;
import org.apache.vxquery.xmlquery.ast.VersionDeclNode;
@@ -922,7 +923,8 @@ public class XMLQueryTranslator {
tCtx.pushVariableScope();
LogicalVariable forLVar = newLogicalVariable();
LogicalVariable posLVar = newLogicalVariable();
- UnnestOperator unnest = new UnnestOperator(forLVar, mutable(seq), posLVar, null);
+ UnnestOperator unnest = new UnnestOperator(forLVar, mutable(ufce(
+ BuiltinOperators.ITERATE, seq)), posLVar, null);
SequenceType forVarType = SequenceType.create(AnyItemType.INSTANCE,
Quantifier.QUANT_ONE);
if (fvdNode.getType() != null) {
@@ -1158,17 +1160,13 @@ public class XMLQueryTranslator {
sfce(BuiltinOperators.UNORDERED,
vre(translateExpression(((UnorderedExprNode) value).getExpr(), tCtx))), tCtx);
- /*
- case VALIDATE_EXPRESSION: {
- ValidateExprNode vNode = (ValidateExprNode) value;
- ValidateExpression.Mode mode = ValidateExpression.Mode.DEFAULT;
- if (vNode.getMode() != null) {
- mode = XQueryConstants.ValidationMode.LAX.equals(vNode.getMode()) ? ValidateExpression.Mode.LAX
- : ValidateExpression.Mode.STRICT;
- }
- return new ValidateExpression(currCtx, translateExpression(vNode.getExpr()), mode);
- }
- */
+ case VALIDATE_EXPRESSION: {
+ ValidateExprNode vNode = (ValidateExprNode) value;
+ XQueryConstants.ValidationMode mode = vNode.getMode();
+ Function fn = mode == null || XQueryConstants.ValidationMode.STRICT.equals(mode) ? BuiltinOperators.VALIDATE_STRICT
+ : BuiltinOperators.VALIDATE_LAX;
+ return createAssignment(sfce(fn, vre(translateExpression(vNode.getExpr(), tCtx))), tCtx);
+ }
default:
throw new IllegalStateException("Unknown node: " + value.getTag());
@@ -1262,6 +1260,8 @@ public class XMLQueryTranslator {
vars.add(var);
exprs.add(mutable(afce(BuiltinOperators.SEQUENCE, false, ctxExpr)));
AggregateOperator aop = new AggregateOperator(vars, exprs);
+ aop.getInputs().add(mutable(tCtx.op));
+ tCtx.op = aop;
tCtx = tCtx.popContext();
ctxExpr = vre(var);
ctxExpr = sfce(asc ? BuiltinOperators.SORT_DISTINCT_NODES_ASC_OR_ATOMICS
@@ -1279,7 +1279,8 @@ public class XMLQueryTranslator {
BuiltinTypeRegistry.XS_INTEGER, Quantifier.QUANT_ONE), lastLVar));
LogicalVariable forLVar = newLogicalVariable();
LogicalVariable posLVar = newLogicalVariable();
- UnnestOperator unnest = new UnnestOperator(forLVar, mutable(vre(seqLVar)), posLVar, null);
+ UnnestOperator unnest = new UnnestOperator(forLVar, mutable(ufce(BuiltinOperators.ITERATE, vre(seqLVar))),
+ posLVar, null);
SequenceType forVarType = SequenceType.create(AnyItemType.INSTANCE, Quantifier.QUANT_ONE);
XQueryVariable forVar = new XQueryVariable(XMLQueryCompilerConstants.DOT_VAR_NAME, forVarType, forLVar);
tCtx.varScope.registerVariable(forVar);
@@ -1737,16 +1738,6 @@ public class XMLQueryTranslator {
}
}
- private static class ExpressionTranslationResult {
- private ILogicalOperator op;
- private LogicalVariable var;
-
- public ExpressionTranslationResult(ILogicalOperator op, LogicalVariable var) {
- this.op = op;
- this.var = var;
- }
- }
-
private interface IVariableScope {
public IVariableScope getParentScope();
Modified: incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/javacc/xquery-grammar.jj
URL: http://svn.apache.org/viewvc/incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/javacc/xquery-grammar.jj?rev=1296874&r1=1296873&r2=1296874&view=diff
==============================================================================
--- incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/javacc/xquery-grammar.jj (original)
+++ incubator/vxquery/branches/vxquery_algebricks/vxquery-core/src/main/javacc/xquery-grammar.jj Sun Mar 4 20:55:27 2012
@@ -24,10 +24,12 @@ PARSER_BEGIN(XMLQuery)
package org.apache.vxquery.xmlquery.query;
+import org.apache.commons.lang3.tuple.Pair;
+
import org.apache.vxquery.xmlquery.ast.*;
import org.apache.vxquery.context.*;
import org.apache.vxquery.exceptions.*;
-import org.apache.vxquery.util.*;
+import org.apache.vxquery.util.SourceLocation;
import java.math.*;
import java.util.*;
@@ -1049,7 +1051,7 @@ ASTNode ComparisonExpr():
| opPair = GeneralComp()
| opPair = NodeComp()
) temp = FTContainsExpr() {
- result = createInfixExpr(opPair.first, result, temp, opPair.second);
+ result = createInfixExpr(opPair.getLeft(), result, temp, opPair.getRight());
}
)? {
return result;
@@ -1333,7 +1335,7 @@ Pair<Token, InfixExprNode.InfixOperator>
op = InfixExprNode.InfixOperator.GENERAL_GE;
}
) {
- return new Pair<Token, InfixExprNode.InfixOperator>(start, op);
+ return Pair.<Token, InfixExprNode.InfixOperator> of(start, op);
}
}
@@ -1369,7 +1371,7 @@ Pair<Token, InfixExprNode.InfixOperator>
op = InfixExprNode.InfixOperator.VALUE_GE;
}
) {
- return new Pair<Token, InfixExprNode.InfixOperator>(start, op);
+ return Pair.<Token, InfixExprNode.InfixOperator> of(start, op);
}
}
@@ -1393,7 +1395,7 @@ Pair<Token, InfixExprNode.InfixOperator>
op = InfixExprNode.InfixOperator.FOLLOWS;
}
) {
- return new Pair<Token, InfixExprNode.InfixOperator>(start, op);
+ return Pair.<Token, InfixExprNode.InfixOperator> of(start, op);
}
}
@@ -1569,8 +1571,8 @@ AxisStepNode ForwardStep():
}
{
LOOKAHEAD(2) aPair = ForwardAxis() nt = NodeTest() {
- AxisStepNode as = new AxisStepNode(createSourceLocation(aPair.first));
- as.setAxis(aPair.second);
+ AxisStepNode as = new AxisStepNode(createSourceLocation(aPair.getLeft()));
+ as.setAxis(aPair.getRight());
as.setNodeTest(nt);
return as;
}
@@ -1608,7 +1610,7 @@ Pair<Token, AxisStepNode.Axis> ForwardAx
axis = AxisStepNode.Axis.FOLLOWING;
}
) {
- return new Pair<Token, AxisStepNode.Axis>(t, axis);
+ return Pair.<Token, AxisStepNode.Axis> of(t, axis);
}
}
@@ -1635,8 +1637,8 @@ AxisStepNode ReverseStep() :
}
{
aPair = ReverseAxis() nt = NodeTest() {
- AxisStepNode as = new AxisStepNode(createSourceLocation(aPair.first));
- as.setAxis(aPair.second);
+ AxisStepNode as = new AxisStepNode(createSourceLocation(aPair.getLeft()));
+ as.setAxis(aPair.getRight());
as.setNodeTest(nt);
return as;
}
@@ -1668,7 +1670,7 @@ Pair<Token, AxisStepNode.Axis> ReverseAx
axis = AxisStepNode.Axis.ANCESTOR_OR_SELF;
}
) {
- return new Pair<Token, AxisStepNode.Axis>(t, axis);
+ return Pair.<Token, AxisStepNode.Axis> of(t, axis);
}
}
Modified: incubator/vxquery/branches/vxquery_algebricks/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestCaseResult.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/branches/vxquery_algebricks/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestCaseResult.java?rev=1296874&r1=1296873&r2=1296874&view=diff
==============================================================================
--- incubator/vxquery/branches/vxquery_algebricks/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestCaseResult.java (original)
+++ incubator/vxquery/branches/vxquery_algebricks/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestCaseResult.java Sun Mar 4 20:55:27 2012
@@ -21,8 +21,8 @@ import java.io.StringWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.commons.lang3.tuple.Pair;
import org.apache.vxquery.exceptions.SystemException;
-import org.apache.vxquery.util.Pair;
public class TestCaseResult {
private static final int DISPLAY_LEN = 1000;
@@ -97,10 +97,10 @@ public class TestCaseResult {
result = result.substring(m.end()).trim();
}
Pair<Boolean, String> cmp = textCompare(expResult, result);
- report = cmp.second;
- state = cmp.first ? State.EXPECTED_RESULT_GOT_SAME_RESULT
+ report = cmp.getRight();
+ state = cmp.getLeft() ? State.EXPECTED_RESULT_GOT_SAME_RESULT
: State.EXPECTED_RESULT_GOT_DIFFERENT_RESULT;
- if (cmp.first) {
+ if (cmp.getLeft()) {
break;
}
}
@@ -119,9 +119,9 @@ public class TestCaseResult {
System.err.println("Result : " + cmp);
}
if (cmp) {
- return new Pair<Boolean, String>(Boolean.TRUE, "Got expected result");
+ return Pair.<Boolean, String> of(Boolean.TRUE, "Got expected result");
} else {
- return new Pair<Boolean, String>(Boolean.FALSE, "Expected: " + truncate(expRes) + " Got: "
+ return Pair.<Boolean, String> of(Boolean.FALSE, "Expected: " + truncate(expRes) + " Got: "
+ truncate(actRes));
}
}