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 2013/05/15 17:35:16 UTC

svn commit: r1482908 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query: Query.java XPathToSQL2Converter.java ast/SelectorImpl.java

Author: thomasm
Date: Wed May 15 15:35:16 2013
New Revision: 1482908

URL: http://svn.apache.org/r1482908
Log:
OAK-262 Query: support pseudo properties like jcr:score() and rep:excerpt()

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/Query.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/XPathToSQL2Converter.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/Query.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/Query.java?rev=1482908&r1=1482907&r2=1482908&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/Query.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/Query.java Wed May 15 15:35:16 2013
@@ -76,6 +76,11 @@ public class Query {
      */
     public static final String JCR_SCORE = "jcr:score";
 
+    /**
+     * The "rep:excerpt" pseudo-property.
+     */
+    public static final String REP_EXCERPT = "rep:excerpt";
+
     private static final Logger LOG = LoggerFactory.getLogger(Query.class);
 
     final SourceImpl source;

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/XPathToSQL2Converter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/XPathToSQL2Converter.java?rev=1482908&r1=1482907&r2=1482908&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/XPathToSQL2Converter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/XPathToSQL2Converter.java Wed May 15 15:35:16 2013
@@ -17,6 +17,8 @@
 package org.apache.jackrabbit.oak.query;
 
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.math.BigDecimal;
 import java.text.ParseException;
@@ -27,6 +29,8 @@ import java.util.ArrayList;
  */
 public class XPathToSQL2Converter {
 
+    static final Logger LOG = LoggerFactory.getLogger(XPathToSQL2Converter.class);
+
     // Character types, used during the tokenizer phase
     private static final int CHAR_END = -1, CHAR_VALUE = 2;
     private static final int CHAR_NAME = 4, CHAR_SPECIAL_1 = 5, CHAR_SPECIAL_2 = 6;

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java?rev=1482908&r1=1482907&r2=1482908&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java Wed May 15 15:35:16 2013
@@ -289,8 +289,6 @@ public class SelectorImpl extends Source
         if (r == null) {
             return null;
         }
-        // TODO support pseudo-properties such as jcr:score using
-        // r.getValue(columnName)
         String path = r.getPath();
         if (path == null) {
             return null;
@@ -321,6 +319,10 @@ public class SelectorImpl extends Source
                 return null;
             }
             return PropertyValues.newString(local);
+        } else if (propertyName.equals(Query.JCR_SCORE)) {
+            return currentRow.getValue(Query.JCR_SCORE);
+        } else if (propertyName.equals(Query.REP_EXCERPT)) {
+            return currentRow.getValue(Query.REP_EXCERPT);
         }
         return PropertyValues.create(t.getProperty(propertyName));
     }