-// $Id: ModifierSet.java,v 1.10 2007-06-27 22:14:03 mike Exp $
+// $Id: ModifierSet.java,v 1.13 2007-07-03 13:30:18 mike Exp $
package org.z3950.zing.cql;
import java.util.Vector;
* zero or more <I>type</I> <I>comparison</I> <I>value</I> pairs,
* where type, comparison and value are all strings.
*
- * @version $Id: ModifierSet.java,v 1.10 2007-06-27 22:14:03 mike Exp $
+ * @version $Id: ModifierSet.java,v 1.13 2007-07-03 13:30:18 mike Exp $
*/
public class ModifierSet {
String base;
}
/**
- * Adds a modifier of the specified <TT>type</TT>, <TT>comparison</TT> and
- * <TT>value</TT> to a ModifierSet.
+ * Adds a modifier of the specified <TT>type</TT>,
+ * <TT>comparison</TT> and <TT>value</TT> to a ModifierSet.
*/
public void addModifier(String type, String comparison, String value) {
- // ### Need to have comparison passed in
Modifier modifier = new Modifier(type, comparison, value);
modifiers.add(modifier);
}
/**
+ * Adds a modifier of the specified <TT>type</TT>, but with no
+ * <TT>comparison</TT> and <TT>value</TT>, to a ModifierSet.
+ */
+ public void addModifier(String type) {
+ Modifier modifier = new Modifier(type);
+ modifiers.add(modifier);
+ }
+
+ /**
* Returns the value of the modifier in the specified ModifierSet
* that corresponds to the specified type.
*/
}
public String toXCQL(int level, String topLevelElement) {
+ return underlyingToXCQL(level, topLevelElement, "value");
+ }
+
+ public String sortKeyToXCQL(int level) {
+ return underlyingToXCQL(level, "key", "index");
+ }
+
+ private String underlyingToXCQL(int level, String topLevelElement,
+ String valueElement) {
StringBuffer buf = new StringBuffer();
buf.append(Utils.indent(level) + "<" + topLevelElement + ">\n");
buf.append(Utils.indent(level+1) +
- "<value>" + Utils.xq(base) + "</value>\n");
+ "<" + valueElement + ">" + Utils.xq(base) +
+ "</" + valueElement + ">\n");
if (modifiers.size() > 0) {
buf.append(Utils.indent(level+1) + "<modifiers>\n");
for (int i = 0; i < modifiers.size(); i++) {
- buf.append(modifiers.get(i).toXCQL(level+2, "relation"));
+ buf.append(modifiers.get(i).toXCQL(level+2, "comparison"));
}
buf.append(Utils.indent(level+1) + "</modifiers>\n");
}