You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by dp...@apache.org on 2005/05/03 16:56:19 UTC

svn commit: r167916 - in /incubator/jackrabbit/trunk/src: java/org/apache/jackrabbit/core/query/xpath/XPathQueryBuilder.java test/org/apache/jackrabbit/core/query/OrderByTest.java

Author: dpfister
Date: Tue May  3 07:56:19 2005
New Revision: 167916

URL: http://svn.apache.org/viewcvs?rev=167916&view=rev
Log:
Resolution to issue #571: support for jcr:score as a function

Modified:
    incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/query/xpath/XPathQueryBuilder.java
    incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/core/query/OrderByTest.java

Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/query/xpath/XPathQueryBuilder.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/query/xpath/XPathQueryBuilder.java?rev=167916&r1=167915&r2=167916&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/query/xpath/XPathQueryBuilder.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/query/xpath/XPathQueryBuilder.java Tue May  3 07:56:19 2005
@@ -127,6 +127,11 @@
     static final QName JCR_ROOT = new QName(Constants.NS_JCR_URI, "root");
 
     /**
+     * QName for jcr:score
+     */
+    static final QName JCR_SCORE = new QName(Constants.NS_JCR_URI, "score");
+
+    /**
      * String constant for operator 'eq'
      */
     private static final String OP_EQ = "eq";
@@ -817,6 +822,12 @@
                     } else {
                         exceptions.add(new InvalidQueryException("Unsupported location for jcr:deref()"));
                     }
+                }
+            } else if (JCR_SCORE.toJCRName(resolver).equals(fName)) {
+                if (queryNode.getType() == QueryNode.TYPE_ORDER) {
+                    createOrderSpec(node, (OrderQueryNode) queryNode);
+                } else {
+                    exceptions.add(new InvalidQueryException("Unsupported location for jcr:score()"));
                 }
             } else {
                 exceptions.add(new InvalidQueryException("Unsupported function: " + fName));

Modified: incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/core/query/OrderByTest.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/core/query/OrderByTest.java?rev=167916&r1=167915&r2=167916&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/core/query/OrderByTest.java (original)
+++ incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/core/query/OrderByTest.java Tue May  3 07:56:19 2005
@@ -46,7 +46,7 @@
         QueryResult result = q.execute();
         checkResult(result, 3);
 
-        String xpath = "/" + testRoot + "/*[@jcr:primaryType='nt:unstructured'] order by @jcr:score, @value";
+        String xpath = "/" + testRoot + "/*[@jcr:primaryType='nt:unstructured'] order by jcr:score(), @value";
         q = superuser.getWorkspace().getQueryManager().createQuery(xpath, Query.XPATH);
         result = q.execute();
         checkResult(result, 3);