You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by th...@apache.org on 2012/08/30 16:37:40 UTC
svn commit: r1378961 - in /jackrabbit/oak/trunk/oak-jcr/src:
main/java/org/apache/jackrabbit/oak/jcr/query/qom/
test/java/org/apache/jackrabbit/oak/jcr/query/qom/
Author: thomasm
Date: Thu Aug 30 14:37:39 2012
New Revision: 1378961
URL: http://svn.apache.org/viewvc?rev=1378961&view=rev
Log:
OAK-28 Query implementation - JQOM toString(): quote names as toString() is used to create the SQL-2 statement
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ChildNodeImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ChildNodeJoinConditionImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ColumnImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/DescendantNodeImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/DescendantNodeJoinConditionImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/EquiJoinConditionImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/FullTextSearchImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/FullTextSearchScoreImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/LengthImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/NodeLocalNameImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/NodeNameImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/PropertyExistenceImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/PropertyValueImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/QOMNode.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SameNodeImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SameNodeJoinConditionImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SelectorImpl.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/qom/QomTest.java
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ChildNodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ChildNodeImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ChildNodeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ChildNodeImpl.java Thu Aug 30 14:37:39 2012
@@ -45,7 +45,9 @@ public class ChildNodeImpl extends Const
@Override
public String toString() {
- return "ISCHILDNODE(" + selectorName + ", " + quotePath(parentPath) + ')';
+ return "ISCHILDNODE(" +
+ quoteSelectorName(selectorName) + ", " +
+ quotePath(parentPath) + ')';
}
@Override
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ChildNodeJoinConditionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ChildNodeJoinConditionImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ChildNodeJoinConditionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ChildNodeJoinConditionImpl.java Thu Aug 30 14:37:39 2012
@@ -45,9 +45,9 @@ public class ChildNodeJoinConditionImpl
@Override
public String toString() {
- String child = getChildSelectorName();
- String parent = getParentSelectorName();
- return "ISCHILDNODE(" + child + ", " + parent + ')';
+ return "ISCHILDNODE(" +
+ quoteSelectorName(childSelectorName) + ", " +
+ quoteSelectorName(parentSelectorName) + ")";
}
}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ColumnImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ColumnImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ColumnImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/ColumnImpl.java Thu Aug 30 14:37:39 2012
@@ -51,10 +51,11 @@ public class ColumnImpl extends QOMNode
@Override
public String toString() {
if (propertyName != null) {
- return getSelectorName() + '.' + getPropertyName()
- + " AS [" + columnName + "]";
+ return quoteSelectorName(selectorName) + '.' +
+ quotePropertyName(propertyName) +
+ " AS " + quoteColumnName(columnName);
}
- return getSelectorName() + ".*";
+ return quoteSelectorName(selectorName) + ".*";
}
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/DescendantNodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/DescendantNodeImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/DescendantNodeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/DescendantNodeImpl.java Thu Aug 30 14:37:39 2012
@@ -45,7 +45,9 @@ public class DescendantNodeImpl extends
@Override
public String toString() {
- return "ISDESCENDANTNODE(" + getSelectorName() + ", " + quotePath(ancestorPath) + ')';
+ return "ISDESCENDANTNODE(" +
+ quoteSelectorName(selectorName) + ", " +
+ quotePath(ancestorPath) + ')';
}
@Override
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/DescendantNodeJoinConditionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/DescendantNodeJoinConditionImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/DescendantNodeJoinConditionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/DescendantNodeJoinConditionImpl.java Thu Aug 30 14:37:39 2012
@@ -47,9 +47,9 @@ public class DescendantNodeJoinCondition
@Override
public String toString() {
- String descendant = getDescendantSelectorName();
- String ancestor = getAncestorSelectorName();
- return "ISDESCENDANTNODE(" + descendant + ", " + ancestor + ')';
+ return "ISDESCENDANTNODE(" +
+ quoteSelectorName(descendantSelectorName) + ", " +
+ quoteSelectorName(ancestorSelectorName) + ')';
}
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/EquiJoinConditionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/EquiJoinConditionImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/EquiJoinConditionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/EquiJoinConditionImpl.java Thu Aug 30 14:37:39 2012
@@ -60,9 +60,10 @@ public class EquiJoinConditionImpl exten
@Override
public String toString() {
- // TODO quote property names?
- return getSelector1Name() + '.' + getProperty1Name()
- + " = " + getSelector2Name() + '.' + getProperty2Name();
+ return quoteSelectorName(selector1Name) + '.' +
+ quotePropertyName(property1Name) + " = " +
+ quoteSelectorName(selector2Name) + '.' +
+ quotePropertyName(property2Name);
}
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/FullTextSearchImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/FullTextSearchImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/FullTextSearchImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/FullTextSearchImpl.java Thu Aug 30 14:37:39 2012
@@ -53,13 +53,12 @@ public class FullTextSearchImpl extends
@Override
public String toString() {
- // TODO quote property names?
StringBuilder builder = new StringBuilder();
builder.append("CONTAINS(");
- builder.append(getSelectorName());
+ builder.append(quoteSelectorName(selectorName));
if (propertyName != null) {
builder.append('.');
- builder.append(propertyName);
+ builder.append(quotePropertyName(propertyName));
builder.append(", ");
} else {
builder.append(".*, ");
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/FullTextSearchScoreImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/FullTextSearchScoreImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/FullTextSearchScoreImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/FullTextSearchScoreImpl.java Thu Aug 30 14:37:39 2012
@@ -38,7 +38,7 @@ public class FullTextSearchScoreImpl ext
@Override
public String toString() {
- return "SCORE(" + getSelectorName() + ')';
+ return "SCORE(" + quoteSelectorName(selectorName) + ')';
}
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/LengthImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/LengthImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/LengthImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/LengthImpl.java Thu Aug 30 14:37:39 2012
@@ -38,7 +38,7 @@ public class LengthImpl extends DynamicO
@Override
public String toString() {
- return "LENGTH(" + getPropertyValue() + ')';
+ return "LENGTH(" + propertyValue + ')';
}
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/NodeLocalNameImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/NodeLocalNameImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/NodeLocalNameImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/NodeLocalNameImpl.java Thu Aug 30 14:37:39 2012
@@ -38,7 +38,7 @@ public class NodeLocalNameImpl extends D
@Override
public String toString() {
- return "LOCALNAME(" + getSelectorName() + ')';
+ return "LOCALNAME(" + quoteSelectorName(selectorName) + ')';
}
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/NodeNameImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/NodeNameImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/NodeNameImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/NodeNameImpl.java Thu Aug 30 14:37:39 2012
@@ -38,7 +38,7 @@ public class NodeNameImpl extends Dynami
@Override
public String toString() {
- return "NAME(" + getSelectorName() + ')';
+ return "NAME(" + quoteSelectorName(selectorName) + ')';
}
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/PropertyExistenceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/PropertyExistenceImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/PropertyExistenceImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/PropertyExistenceImpl.java Thu Aug 30 14:37:39 2012
@@ -45,8 +45,9 @@ public class PropertyExistenceImpl exten
@Override
public String toString() {
- // TODO quote property names?
- return getSelectorName() + '.' + propertyName + " IS NOT NULL";
+ return quoteSelectorName(selectorName) + '.' +
+ quotePropertyName(propertyName) +
+ " IS NOT NULL";
}
@Override
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/PropertyValueImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/PropertyValueImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/PropertyValueImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/PropertyValueImpl.java Thu Aug 30 14:37:39 2012
@@ -45,8 +45,8 @@ public class PropertyValueImpl extends D
@Override
public String toString() {
- // TODO quote property names?
- return getSelectorName() + '.' + propertyName;
+ return quoteSelectorName(selectorName) + '.' +
+ quotePropertyName(propertyName);
}
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/QOMNode.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/QOMNode.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/QOMNode.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/QOMNode.java Thu Aug 30 14:37:39 2012
@@ -32,7 +32,27 @@ abstract class QOMNode {
}
protected String quotePath(String path) {
- return '[' + path + ']';
+ return quoteName(path);
+ }
+
+ protected String quoteSelectorName(String name) {
+ return quoteName(name);
+ }
+
+ protected String quotePropertyName(String name) {
+ return quoteName(name);
+ }
+
+ protected String quoteColumnName(String name) {
+ return quoteName(name);
+ }
+
+ protected String quoteNodeTypeName(String name) {
+ return quoteName(name);
+ }
+
+ private static String quoteName(String name) {
+ return '[' + name + ']';
}
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SameNodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SameNodeImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SameNodeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SameNodeImpl.java Thu Aug 30 14:37:39 2012
@@ -45,7 +45,8 @@ public class SameNodeImpl extends Constr
@Override
public String toString() {
- return "ISSAMENODE(" + getSelectorName() + ", " + quotePath(path) + ')';
+ return "ISSAMENODE(" + quoteSelectorName(selectorName) +
+ ", " + quotePath(path) + ')';
}
@Override
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SameNodeJoinConditionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SameNodeJoinConditionImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SameNodeJoinConditionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SameNodeJoinConditionImpl.java Thu Aug 30 14:37:39 2012
@@ -55,9 +55,9 @@ public class SameNodeJoinConditionImpl e
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("ISSAMENODE(");
- builder.append(getSelector1Name());
+ builder.append(quoteSelectorName(selector1Name));
builder.append(", ");
- builder.append(getSelector2Name());
+ builder.append(quoteSelectorName(selector2Name));
if (selector2Path != null) {
builder.append(", ");
builder.append(quotePath(selector2Path));
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SelectorImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SelectorImpl.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SelectorImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/qom/SelectorImpl.java Thu Aug 30 14:37:39 2012
@@ -44,7 +44,8 @@ public class SelectorImpl extends Source
@Override
public String toString() {
- return "[" + nodeTypeName + "] AS " + getSelectorName();
+ return quoteNodeTypeName(nodeTypeName) + " AS " +
+ quoteSelectorName(selectorName);
}
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/qom/QomTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/qom/QomTest.java?rev=1378961&r1=1378960&r2=1378961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/qom/QomTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/qom/QomTest.java Thu Aug 30 14:37:39 2012
@@ -22,6 +22,7 @@ import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.Value;
import javax.jcr.ValueFactory;
+import javax.jcr.query.Query;
import javax.jcr.query.QueryManager;
import javax.jcr.query.qom.And;
import javax.jcr.query.qom.BindVariableValue;
@@ -84,6 +85,7 @@ public class QomTest extends AbstractRep
And and = f.and(c0, c1);
assertEquals(and.getConstraint1(), c0);
assertEquals(and.getConstraint2(), c1);
+ assertEquals("([x].[c0] IS NOT NULL) AND ([x].[c1] IS NOT NULL)", and.toString());
}
@Test
@@ -92,12 +94,14 @@ public class QomTest extends AbstractRep
Ordering o = f.ascending(p);
assertEquals(p, o.getOperand());
assertEquals(QueryObjectModelConstants.JCR_ORDER_ASCENDING, o.getOrder());
+ assertEquals("[selectorName].[propertyName]", p.toString());
}
@Test
public void bindVariable() throws RepositoryException {
BindVariableValue b = f.bindVariable("bindVariableName");
assertEquals("bindVariableName", b.getBindVariableName());
+ assertEquals("$bindVariableName", b.toString());
}
@Test
@@ -105,6 +109,7 @@ public class QomTest extends AbstractRep
ChildNode cn = f.childNode("selectorName", "parentPath");
assertEquals("selectorName", cn.getSelectorName());
assertEquals("parentPath", cn.getParentPath());
+ assertEquals("ISCHILDNODE([selectorName], [parentPath])", cn.toString());
}
@Test
@@ -113,6 +118,8 @@ public class QomTest extends AbstractRep
"parentSelectorName");
assertEquals("childSelectorName", c.getChildSelectorName());
assertEquals("parentSelectorName", c.getParentSelectorName());
+ assertEquals("ISCHILDNODE([childSelectorName], [parentSelectorName])",
+ c.toString());
}
@Test
@@ -121,6 +128,7 @@ public class QomTest extends AbstractRep
assertEquals("selectorName", c.getSelectorName());
assertEquals("propertyName", c.getPropertyName());
assertEquals("columnName", c.getColumnName());
+ assertEquals("[selectorName].[propertyName] AS [columnName]", c.toString());
}
@Test
@@ -131,6 +139,7 @@ public class QomTest extends AbstractRep
assertEquals(p, c.getOperand1());
assertEquals(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, c.getOperator());
assertEquals(l, c.getOperand2());
+ assertEquals("[selectorName].[propertyName] = 1", c.toString());
}
@Test
@@ -138,6 +147,7 @@ public class QomTest extends AbstractRep
DescendantNode d = f.descendantNode("selectorName", "path");
assertEquals("selectorName", d.getSelectorName());
assertEquals("path", d.getAncestorPath());
+ assertEquals("ISDESCENDANTNODE([selectorName], [path])", d.toString());
}
@Test
@@ -146,6 +156,8 @@ public class QomTest extends AbstractRep
"ancestorSelectorName");
assertEquals("descendantSelectorName", d.getDescendantSelectorName());
assertEquals("ancestorSelectorName", d.getAncestorSelectorName());
+ assertEquals("ISDESCENDANTNODE([descendantSelectorName], [ancestorSelectorName])",
+ d.toString());
}
@Test
@@ -154,6 +166,7 @@ public class QomTest extends AbstractRep
Ordering o = f.descending(p);
assertEquals(p, o.getOperand());
assertEquals(QueryObjectModelConstants.JCR_ORDER_DESCENDING, o.getOrder());
+ assertEquals("[selectorName].[propertyName] DESC", o.toString());
}
@Test
@@ -164,6 +177,8 @@ public class QomTest extends AbstractRep
assertEquals("property1Name", e.getProperty1Name());
assertEquals("selector2Name", e.getSelector2Name());
assertEquals("property2Name", e.getProperty2Name());
+ assertEquals("[selector1Name].[property1Name] = [selector2Name].[property2Name]",
+ e.toString());
}
@Test
@@ -173,12 +188,14 @@ public class QomTest extends AbstractRep
assertEquals("selectorName", x.getSelectorName());
assertEquals("propertyName", x.getPropertyName());
assertEquals(l, x.getFullTextSearchExpression());
+ assertEquals("CONTAINS([selectorName].[propertyName], 1)", x.toString());
}
@Test
public void fullTextSearchScore() throws RepositoryException {
FullTextSearchScore x = f.fullTextSearchScore("selectorName");
assertEquals("selectorName", x.getSelectorName());
+ assertEquals("SCORE([selectorName])", x.toString());
}
@Test
@@ -191,6 +208,7 @@ public class QomTest extends AbstractRep
assertEquals(right, j.getRight());
assertEquals(QueryObjectModelConstants.JCR_JOIN_TYPE_INNER, j.getJoinType());
assertEquals(jc, j.getJoinCondition());
+ assertEquals("ISCHILDNODE([childSelectorName], [parentSelectorName])", jc.toString());
}
@Test
@@ -198,6 +216,7 @@ public class QomTest extends AbstractRep
PropertyValue p = f.propertyValue("selectorName", "propertyName");
Length l = f.length(p);
assertEquals(p, l.getPropertyValue());
+ assertEquals("LENGTH([selectorName].[propertyName])", l.toString());
}
@Test
@@ -205,6 +224,9 @@ public class QomTest extends AbstractRep
Value v = vf.createValue(1);
Literal l = f.literal(v);
assertEquals(v, l.getLiteralValue());
+ assertEquals("1", l.toString());
+ assertEquals("'Joe''s'", f.literal(vf.createValue("Joe's")).toString());
+ assertEquals("' - \" - '", f.literal(vf.createValue(" - \" - ")).toString());
}
@Test
@@ -213,18 +235,21 @@ public class QomTest extends AbstractRep
Length length = f.length(p);
LowerCase l = f.lowerCase(length);
assertEquals(length, l.getOperand());
+ assertEquals("LOWER(LENGTH([selectorName].[propertyName]))", l.toString());
}
@Test
public void nodeLocalName() throws RepositoryException {
NodeLocalName n = f.nodeLocalName("selectorName");
assertEquals("selectorName", n.getSelectorName());
+ assertEquals("LOCALNAME([selectorName])", n.toString());
}
@Test
public void nodeName() throws RepositoryException {
NodeName n = f.nodeName("selectorName");
assertEquals("selectorName", n.getSelectorName());
+ assertEquals("NAME([selectorName])", n.toString());
}
@Test
@@ -232,6 +257,7 @@ public class QomTest extends AbstractRep
Constraint c = f.propertyExistence("x", "c0");
Not n = f.not(c);
assertEquals(c, n.getConstraint());
+ assertEquals("[x].[c0] IS NOT NULL", c.toString());
}
@Test
@@ -241,6 +267,7 @@ public class QomTest extends AbstractRep
Or or = f.or(c0, c1);
assertEquals(or.getConstraint1(), c0);
assertEquals(or.getConstraint2(), c1);
+ assertEquals("([x].[c0] IS NOT NULL) OR ([x].[c1] IS NOT NULL)", or.toString());
}
@Test
@@ -248,6 +275,7 @@ public class QomTest extends AbstractRep
PropertyExistence pe = f.propertyExistence("selectorName", "propertyName");
assertEquals("selectorName", pe.getSelectorName());
assertEquals("propertyName", pe.getPropertyName());
+ assertEquals("[selectorName].[propertyName] IS NOT NULL", pe.toString());
}
@Test
@@ -255,6 +283,7 @@ public class QomTest extends AbstractRep
PropertyValue pv = f.propertyValue("selectorName", "propertyName");
assertEquals("selectorName", pv.getSelectorName());
assertEquals("propertyName", pv.getPropertyName());
+ assertEquals("[selectorName].[propertyName]", pv.toString());
}
@Test
@@ -262,6 +291,7 @@ public class QomTest extends AbstractRep
SameNode s = f.sameNode("selectorName", "path");
assertEquals("selectorName", s.getSelectorName());
assertEquals("path", s.getPath());
+ assertEquals("ISSAMENODE([selectorName], [path])", s.toString());
}
@Test
@@ -270,6 +300,8 @@ public class QomTest extends AbstractRep
assertEquals("selector1Name", s.getSelector1Name());
assertEquals("selector2Name", s.getSelector2Name());
assertEquals("selector2Path", s.getSelector2Path());
+ assertEquals("ISSAMENODE([selector1Name], [selector2Name], [selector2Path])",
+ s.toString());
}
@Test
@@ -277,6 +309,7 @@ public class QomTest extends AbstractRep
Selector s = f.selector("nodeTypeName", "selectorName");
assertEquals("nodeTypeName", s.getNodeTypeName());
assertEquals("selectorName", s.getSelectorName());
+ assertEquals("[nodeTypeName] AS [selectorName]", s.toString());
}
@Test
@@ -285,6 +318,7 @@ public class QomTest extends AbstractRep
Length length = f.length(p);
UpperCase u = f.upperCase(length);
assertEquals(length, u.getOperand());
+ assertEquals("UPPER(LENGTH([selectorName].[propertyName]))", u.toString());
}
@Test
@@ -299,7 +333,7 @@ public class QomTest extends AbstractRep
Ordering[] ords = new Ordering[]{o};
Column[] cols = new Column[]{col};
QueryObjectModel q = f.createQuery(s, c, ords, cols);
- // assertEquals(Query.JCR_SQL2, q.getLanguage());
+ assertEquals(Query.JCR_JQOM, q.getLanguage());
String[] bv = q.getBindVariableNames();
assertEquals(1, bv.length);
assertEquals("var", bv[0]);