You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2010/08/19 16:50:24 UTC
svn commit: r987176 -
/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/
Author: jukka
Date: Thu Aug 19 14:50:23 2010
New Revision: 987176
URL: http://svn.apache.org/viewvc?rev=987176&view=rev
Log:
JCR-2721: Add toString() methods to QOM tree classes
Work in progress.
Modified:
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/AbstractQOMNode.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/AndImpl.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/BindVariableValueImpl.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/ColumnImpl.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/ComparisonImpl.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/EquiJoinConditionImpl.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/JoinImpl.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/LiteralImpl.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/NotImpl.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/OrImpl.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/QueryObjectModelTree.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/SelectorImpl.java
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/AbstractQOMNode.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/AbstractQOMNode.java?rev=987176&r1=987175&r2=987176&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/AbstractQOMNode.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/AbstractQOMNode.java Thu Aug 19 14:50:23 2010
@@ -81,4 +81,23 @@ public abstract class AbstractQOMNode {
return path.toString();
}
}
+
+ protected String quote(Name name) {
+ String str = getJCRName(name);
+ if (str.indexOf(':') != -1) {
+ return "[" + str + "]";
+ } else {
+ return str;
+ }
+ }
+
+ protected String protect(Object expression) {
+ String str = expression.toString();
+ if (str.indexOf(" ") != -1) {
+ return "(" + str + ")";
+ } else {
+ return str;
+ }
+ }
+
}
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/AndImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/AndImpl.java?rev=987176&r1=987175&r2=987176&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/AndImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/AndImpl.java Thu Aug 19 14:50:23 2010
@@ -71,4 +71,11 @@ public class AndImpl extends ConstraintI
public Object accept(QOMTreeVisitor visitor, Object data) throws Exception {
return visitor.visit(this, data);
}
+
+ //------------------------< Object >----------------------------------------
+
+ public String toString() {
+ return protect(constraint1) + " AND " + protect(constraint2);
+ }
+
}
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/BindVariableValueImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/BindVariableValueImpl.java?rev=987176&r1=987175&r2=987176&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/BindVariableValueImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/BindVariableValueImpl.java Thu Aug 19 14:50:23 2010
@@ -69,4 +69,11 @@ public class BindVariableValueImpl
public Object accept(QOMTreeVisitor visitor, Object data) throws Exception {
return visitor.visit(this, data);
}
+
+ //------------------------< Object >----------------------------------------
+
+ public String toString() {
+ return "$" + getBindVariableName();
+ }
+
}
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/ColumnImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/ColumnImpl.java?rev=987176&r1=987175&r2=987176&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/ColumnImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/ColumnImpl.java Thu Aug 19 14:50:23 2010
@@ -118,4 +118,16 @@ public class ColumnImpl extends Abstract
public Object accept(QOMTreeVisitor visitor, Object data) throws Exception {
return visitor.visit(this, data);
}
+
+ //------------------------< Object >----------------------------------------
+
+ public String toString() {
+ if (propertyName != null) {
+ return getSelectorName() + "." + getPropertyName()
+ + " AS " + getColumnName();
+ } else {
+ return getSelectorName() + ".*";
+ }
+ }
+
}
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/ComparisonImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/ComparisonImpl.java?rev=987176&r1=987175&r2=987176&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/ComparisonImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/ComparisonImpl.java Thu Aug 19 14:50:23 2010
@@ -105,4 +105,11 @@ public class ComparisonImpl extends Cons
public Object accept(QOMTreeVisitor visitor, Object data) throws Exception {
return visitor.visit(this, data);
}
+
+ //------------------------< Object >----------------------------------------
+
+ public String toString() {
+ return operator.formatSql(protect(operand1), protect(operand2));
+ }
+
}
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/EquiJoinConditionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/EquiJoinConditionImpl.java?rev=987176&r1=987175&r2=987176&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/EquiJoinConditionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/EquiJoinConditionImpl.java Thu Aug 19 14:50:23 2010
@@ -143,4 +143,12 @@ public class EquiJoinConditionImpl
public Object accept(QOMTreeVisitor visitor, Object data) throws Exception {
return visitor.visit(this, data);
}
+
+ //------------------------< Object >----------------------------------------
+
+ public String toString() {
+ return getSelector1Name() + "." + quote(getProperty1QName())
+ + " = " + getSelector2Name() + "." + quote(getProperty2QName());
+ }
+
}
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/JoinImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/JoinImpl.java?rev=987176&r1=987175&r2=987176&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/JoinImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/JoinImpl.java Thu Aug 19 14:50:23 2010
@@ -129,4 +129,11 @@ public class JoinImpl extends SourceImpl
public Object accept(QOMTreeVisitor visitor, Object data) throws Exception {
return visitor.visit(this, data);
}
+
+ //------------------------< Object >----------------------------------------
+
+ public String toString() {
+ return joinType.formatSql(left, right, joinCondition);
+ }
+
}
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/LiteralImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/LiteralImpl.java?rev=987176&r1=987175&r2=987176&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/LiteralImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/LiteralImpl.java Thu Aug 19 14:50:23 2010
@@ -18,6 +18,7 @@ package org.apache.jackrabbit.spi.common
import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
+import javax.jcr.RepositoryException;
import javax.jcr.Value;
import javax.jcr.query.qom.Literal;
@@ -51,4 +52,20 @@ public class LiteralImpl extends StaticO
public Object accept(QOMTreeVisitor visitor, Object data) throws Exception {
return visitor.visit(this, data);
}
+
+ //------------------------< Object >----------------------------------------
+
+ public String toString() {
+ try {
+ String str = value.getString();
+ if (str.indexOf(' ') != -1) {
+ str = "\"" + str + "\"";
+ }
+ return str;
+ } catch (RepositoryException e) {
+ return value.toString();
+ }
+ }
+
+
}
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/NotImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/NotImpl.java?rev=987176&r1=987175&r2=987176&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/NotImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/NotImpl.java Thu Aug 19 14:50:23 2010
@@ -56,4 +56,11 @@ public class NotImpl extends ConstraintI
public Object accept(QOMTreeVisitor visitor, Object data) throws Exception {
return visitor.visit(this, data);
}
+
+ //------------------------< Object >----------------------------------------
+
+ public String toString() {
+ return "NOT " + protect(constraint);
+ }
+
}
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/OrImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/OrImpl.java?rev=987176&r1=987175&r2=987176&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/OrImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/OrImpl.java Thu Aug 19 14:50:23 2010
@@ -71,4 +71,11 @@ public class OrImpl extends ConstraintIm
public Object accept(QOMTreeVisitor visitor, Object data) throws Exception {
return visitor.visit(this, data);
}
+
+ //------------------------< Object >----------------------------------------
+
+ public String toString() {
+ return protect(constraint1) + " OR " + protect(constraint2);
+ }
+
}
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/QueryObjectModelTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/QueryObjectModelTree.java?rev=987176&r1=987175&r2=987176&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/QueryObjectModelTree.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/QueryObjectModelTree.java Thu Aug 19 14:50:23 2010
@@ -20,6 +20,7 @@ import org.apache.jackrabbit.spi.commons
import org.apache.jackrabbit.spi.Name;
import javax.jcr.query.InvalidQueryException;
+
import java.util.Map;
import java.util.HashMap;
import java.util.Arrays;
@@ -227,4 +228,30 @@ public class QueryObjectModelTree extend
throw new InvalidQueryException(e.getMessage());
}
}
+
+ //------------------------< Object >----------------------------------------
+
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+
+ builder.append("SELECT ");
+ for (int i = 0; i < columns.length; i++) {
+ if (i > 0) {
+ builder.append(", ");
+ }
+ builder.append(columns[i]);
+ }
+
+ builder.append(" FROM ");
+ builder.append(source);
+
+ if (constraint != null) {
+ builder.append(" WHERE ");
+ builder.append(constraint);
+ }
+
+ return builder.toString();
+ }
+
+
}
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/SelectorImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/SelectorImpl.java?rev=987176&r1=987175&r2=987176&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/SelectorImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/qom/SelectorImpl.java Thu Aug 19 14:50:23 2010
@@ -108,4 +108,11 @@ public class SelectorImpl extends Source
public Object accept(QOMTreeVisitor visitor, Object data) throws Exception {
return visitor.visit(this, data);
}
+
+ //------------------------< Object >----------------------------------------
+
+ public String toString() {
+ return quote(nodeTypeName) + " AS " + getSelectorName();
+ }
+
}