From commits-return-13859-apmail-jackrabbit-commits-archive=jackrabbit.apache.org@jackrabbit.apache.org Tue Jan 22 13:38:07 2013 Return-Path: X-Original-To: apmail-jackrabbit-commits-archive@www.apache.org Delivered-To: apmail-jackrabbit-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 67E23E934 for ; Tue, 22 Jan 2013 13:38:07 +0000 (UTC) Received: (qmail 38763 invoked by uid 500); 22 Jan 2013 13:38:07 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 38627 invoked by uid 500); 22 Jan 2013 13:38:06 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 38531 invoked by uid 99); 22 Jan 2013 13:38:02 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 Jan 2013 13:38:02 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 Jan 2013 13:38:01 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 8DFD12388A40; Tue, 22 Jan 2013 13:37:42 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1436914 [3/3] - in /jackrabbit/trunk: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/ jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/xpath/ Date: Tue, 22 Jan 2013 13:37:42 -0000 To: commits@jackrabbit.apache.org From: jukka@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130122133742.8DFD12388A40@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java?rev=1436914&r1=1436913&r2=1436914&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java Tue Jan 22 13:37:41 2013 @@ -1166,6 +1166,8 @@ public class SearchIndex extends Abstrac sortFields.add(new SortField(orderProps[i].getString(), new UpperCaseSortComparator(scs), !orderSpecs[i])); } else if ("lower-case".equals(orderFuncs[i])) { sortFields.add(new SortField(orderProps[i].getString(), new LowerCaseSortComparator(scs), !orderSpecs[i])); + } else if ("normalize".equals(orderFuncs[i])) { + sortFields.add(new SortField(orderProps[i].getString(), new NormalizeSortComparator(scs), !orderSpecs[i])); } else { sortFields.add(new SortField(orderProps[i].getString(), scs, !orderSpecs[i])); } Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/xpath/XPathQueryBuilder.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/xpath/XPathQueryBuilder.java?rev=1436914&r1=1436913&r2=1436914&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/xpath/XPathQueryBuilder.java (original) +++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/xpath/XPathQueryBuilder.java Tue Jan 22 13:37:41 2013 @@ -85,6 +85,11 @@ public class XPathQueryBuilder implement static final Name FN_UPPER_CASE = NAME_FACTORY.create(NS_FN_URI, "upper-case"); /** + * Name for 'rep:normalize' + */ + static final Name REP_NORMALIZE = NAME_FACTORY.create(Name.NS_REP_URI, "normalize"); + + /** * Name for 'not' as defined in XPath 1.0 (no prefix) */ static final Name FN_NOT_10 = NAME_FACTORY.create("", "not"); @@ -1009,7 +1014,18 @@ public class XPathQueryBuilder implement exceptions.add(new InvalidQueryException("Unsupported location for fn:upper-case()")); } } else { - exceptions.add(new InvalidQueryException("Unsupported location for fn:upper-case()")); + exceptions.add(new InvalidQueryException("Wrong number of argument for fn:upper-case()")); + } + } else if (REP_NORMALIZE.equals(funName)) { + if (node.jjtGetNumChildren() == 2) { + if (queryNode.getType() == QueryNode.TYPE_ORDER) { + ((OrderQueryNode) queryNode).setFunction(REP_NORMALIZE.getLocalName()); + node.childrenAccept(this, queryNode); + } else { + exceptions.add(new InvalidQueryException("Unsupported location for rep:normalize()")); + } + } else { + exceptions.add(new InvalidQueryException("Wrong number of argument for rep:normalize()")); } } else if (REP_SIMILAR.equals(funName)) { if (node.jjtGetNumChildren() == 3) {