Implement new, wider toXCQL() API.
[cql-java-moved-to-github.git] / src / org / z3950 / zing / cql / CQLTermNode.java
index 87511fc..f9b17ac 100644 (file)
@@ -1,4 +1,4 @@
-// $Id: CQLTermNode.java,v 1.26 2007-06-27 22:44:40 mike Exp $
+// $Id: CQLTermNode.java,v 1.28 2007-07-03 13:41:24 mike Exp $
 
 package org.z3950.zing.cql;
 import java.util.Properties;
@@ -12,7 +12,7 @@ import java.util.Vector;
  * these must be provided - you can't have an index without a
  * relation or vice versa.
  *
- * @version    $Id: CQLTermNode.java,v 1.26 2007-06-27 22:44:40 mike Exp $
+ * @version    $Id: CQLTermNode.java,v 1.28 2007-07-03 13:41:24 mike Exp $
  */
 public class CQLTermNode extends CQLNode {
     private String index;
@@ -37,7 +37,10 @@ public class CQLTermNode extends CQLNode {
     private static boolean isResultSetIndex(String qual) {
        return (qual.equals("srw.resultSet") ||
                qual.equals("srw.resultSetId") ||
-               qual.equals("srw.resultSetName"));
+               qual.equals("srw.resultSetName") ||
+               qual.equals("cql.resultSet") ||
+               qual.equals("cql.resultSetId") ||
+               qual.equals("cql.resultSetName"));
     }
 
     public String getResultSetName() {
@@ -47,12 +50,14 @@ public class CQLTermNode extends CQLNode {
            return null;
     }
 
-    public String toXCQL(int level, Vector prefixes) {
+    public String toXCQL(int level, Vector<CQLPrefix> prefixes,
+                        Vector<ModifierSet> sortkeys) {
        return (indent(level) + "<searchClause>\n" +
                renderPrefixes(level+1, prefixes) +
                indent(level+1) + "<index>" + xq(index) + "</index>\n" +
-               relation.toXCQL(level+1, new Vector<String>()) +
+               relation.toXCQL(level+1) +
                indent(level+1) + "<term>" + xq(term) + "</term>\n" +
+               renderSortKeys(level+1, sortkeys) +
                indent(level) + "</searchClause>\n");
     }
 
@@ -62,7 +67,8 @@ public class CQLTermNode extends CQLNode {
        String res = quotedTerm;
 
        if (index != null &&
-           !index.equalsIgnoreCase("srw.serverChoice")) {
+           !index.equalsIgnoreCase("srw.serverChoice") &&
+           !index.equalsIgnoreCase("cql.serverChoice")) {
            // ### We don't always need spaces around `relation'.
            res = quotedIndex + " " + relation.toCQL() + " " + quotedTerm;
        }