-// $Id: CQLRelation.java,v 1.1 2002-10-30 09:19:26 mike Exp $
+// $Id: CQLRelation.java,v 1.3 2002-11-06 00:05:58 mike Exp $
package org.z3950.zing.cql;
import java.util.Vector;
/**
* Represents a relation between a CQL qualifier and term.
- * ###
+ * ##
*
- * @version $Id: CQLRelation.java,v 1.1 2002-10-30 09:19:26 mike Exp $
+ * @version $Id: CQLRelation.java,v 1.3 2002-11-06 00:05:58 mike Exp $
*/
public class CQLRelation extends CQLNode {
- String base;
- Vector modifiers;
+ ModifierSet ms;
public CQLRelation(String base) {
- this.base = base;
- modifiers = new Vector();
+ ms = new ModifierSet(base);
}
- public void addModifier(String modifier) {
- modifiers.add(modifier);
+ public String getBase() {
+ return ms.getBase();
}
- public String[] getModifiers() {
- int n = modifiers.size();
- String[] res = new String[n];
- for (int i = 0; i < n; i++) {
- res[i] = (String) modifiers.get(i);
- }
-
- return res;
+ public void addModifier(String modifier) {
+ ms.addModifier(null, modifier);
}
+ // ### should have a public method to retrieve all modifiers
+
public String toXCQL(int level) {
- StringBuffer buf = new StringBuffer();
- buf.append (indent(level) + "<relation>\n" +
- indent(level+1) + "<value>" + xq(base) + "</value>\n");
- String[] mods = getModifiers();
- if (mods.length > 0) {
- buf.append(indent(level+1) + "<modifiers>\n");
- for (int i = 0; i < mods.length; i++)
- buf.append(indent(level+2)).
- append("<modifier><value>"). append(mods[i]).
- append("</value></modifier>\n");
- buf.append(indent(level+1) + "</modifiers>\n");
- }
- buf.append(indent(level) + "</relation>\n");
- return buf.toString();
+ return ms.toXCQL(level, "relation");
}
public String toCQL() {
- StringBuffer buf = new StringBuffer(base);
- String[] mods = getModifiers();
- for (int i = 0; i < mods.length; i++) {
- buf.append("/").append(mods[i]);
- }
-
- return buf.toString();
+ return ms.toCQL();
}
- public static void main(String[] args) {
- if (args.length < 1) {
- System.err.println("Usage: CQLRelation <base> <modifier>...");
- System.exit(1);
- }
-
- CQLRelation res = new CQLRelation(args[0]);
- for (int i = 1; i < args.length; i++) {
- res.addModifier(args[i]);
- }
-
- System.out.println(res.toCQL());
+ public String toPQF(Properties config)
+ throws UnknownQualifierException, UnknownRelationException {
+ throw Error("CQLRelation.toPQF() can never be called");
}
}