r1341 - xwiki/trunk/src/main/java/com/xpn/xwiki/plugin/query
Ludovic Dubost
ludovic at users.forge.objectweb.org
Tue Sep 26 01:55:42 CEST 2006
Author: ludovic
Date: 2006-09-26 01:54:50 +0200 (Tue, 26 Sep 2006)
New Revision: 1341
Modified:
xwiki/trunk/src/main/java/com/xpn/xwiki/plugin/query/QueryPlugin.java
xwiki/trunk/src/main/java/com/xpn/xwiki/plugin/query/XWikiQuery.java
Log:
Support ordering in query generator
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/plugin/query/QueryPlugin.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/plugin/query/QueryPlugin.java 2006-09-22 08:19:02 UTC (rev 1340)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/plugin/query/QueryPlugin.java 2006-09-25 23:54:50 UTC (rev 1341)
@@ -26,6 +26,7 @@
import com.xpn.xwiki.XWikiException;
import com.xpn.xwiki.api.Api;
import com.xpn.xwiki.objects.classes.BaseClass;
+import com.xpn.xwiki.objects.classes.PropertyClass;
import com.xpn.xwiki.plugin.XWikiDefaultPlugin;
import com.xpn.xwiki.plugin.XWikiPluginInterface;
import com.xpn.xwiki.store.XWikiStoreInterface;
@@ -243,7 +244,34 @@
xpath.append(where);
xpath.append("]");
}
- xpath.append("/@name");
+ xpath.append("/@doc:fullName");
+
+ List oProps = query.getOrderProperties();
+ String orderClause = "";
+ if ((oProps!=null)&&(oProps.size()>0)) {
+ for (int i=0;i<oProps.size();i++) {
+ OrderClause clause = (OrderClause) oProps.get(i);
+ String propPath = clause.getProperty();
+ int i1 = propPath.indexOf("_");
+ if (i1!=-1) {
+ String propClassName = propPath.substring(0, i1);
+ if (propClassName.equals(className)) {
+ String propName = propPath.substring(i1+1);
+ if (!orderClause.equals("")) {
+ orderClause += " and ";
+ }
+ orderClause += "@f:" + propName;
+ if (clause.getOrder()==OrderClause.DESC)
+ orderClause += " descending";
+ }
+ }
+ }
+ }
+ if (!orderClause.equals("")) {
+ xpath.append(" order by ");
+ xpath.append(orderClause);
+ }
+
return xpath.toString();
}
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/plugin/query/XWikiQuery.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/plugin/query/XWikiQuery.java 2006-09-22 08:19:02 UTC (rev 1340)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/plugin/query/XWikiQuery.java 2006-09-25 23:54:50 UTC (rev 1341)
@@ -93,4 +93,8 @@
public void addOrderProperty(String property, int order) {
orderProperties.add(new OrderClause(property, order));
}
+
+ public List getOrderProperties() {
+ return orderProperties;
+ }
}
More information about the Xwiki-notifications
mailing list