You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by mr...@apache.org on 2006/12/11 10:28:19 UTC

svn commit: r485577 - /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/xpath/XPathQueryBuilder.java

Author: mreutegg
Date: Mon Dec 11 01:28:18 2006
New Revision: 485577

URL: http://svn.apache.org/viewvc?view=rev&rev=485577
Log:
JCR-668: Allow pseudo properties in query relation

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/xpath/XPathQueryBuilder.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/xpath/XPathQueryBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/xpath/XPathQueryBuilder.java?view=diff&rev=485577&r1=485576&r2=485577
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/xpath/XPathQueryBuilder.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/xpath/XPathQueryBuilder.java Mon Dec 11 01:28:18 2006
@@ -923,6 +923,17 @@
                 } else {
                     exceptions.add(new InvalidQueryException("Unsupported location for fn:upper-case()"));
                 }
+            } else if (queryNode.getType() == QueryNode.TYPE_RELATION) {
+                // use function name as name of a pseudo property in a relation
+                try {
+                    QName name = NameFormat.parse(fName + "()", resolver);
+                    RelationQueryNode relNode = (RelationQueryNode) queryNode;
+                    relNode.setRelativePath(Path.create(name, 0));
+                } catch (IllegalNameException e) {
+                    exceptions.add(e);
+                } catch (UnknownPrefixException e) {
+                    exceptions.add(e);
+                }
             } else {
                 exceptions.add(new InvalidQueryException("Unsupported function: " + fName));
             }