Towards 0.2 --
[cql-java-moved-to-github.git] / src / org / z3950 / zing / cql / CQLRelation.java
index 3de9f57..6d7e138 100644 (file)
@@ -1,4 +1,4 @@
-// $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;
@@ -6,71 +6,37 @@ import java.lang.StringBuffer;
 
 /**
  * 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");
     }
 }