Add classes for visitor traversal
[cql-java-moved-to-github.git] / src / main / java / org / z3950 / zing / cql / CQLRelation.java
index 95eb303..81fd38c 100644 (file)
@@ -1,14 +1,11 @@
-// $Id: CQLRelation.java,v 1.19 2007-07-03 13:40:58 mike Exp $
 
 package org.z3950.zing.cql;
-import java.util.Vector;
+import java.util.List;
 import java.util.Properties;
-import java.lang.StringBuffer;
 
 /**
  * Represents a relation between a CQL index and term.
  *
- * @version    $Id: CQLRelation.java,v 1.19 2007-07-03 13:40:58 mike Exp $
  */
 public class CQLRelation extends CQLNode {
     ModifierSet ms;
@@ -40,25 +37,34 @@ public class CQLRelation extends CQLNode {
      * @return
      * An array of Modifier objects.
      */
-    public Vector<Modifier> getModifiers() {
+    public List<Modifier> getModifiers() {
        return ms.getModifiers();
     }
 
-    public String toXCQL(int level, Vector prefixes, Vector sortkeys) {
+    @Override
+    public void traverse(CQLNodeVisitor visitor) {
+      visitor.onRelation(this);
+    } 
+    
+    @Override
+    void toXCQLInternal(XCQLBuilder b, int level, List<CQLPrefix> prefixes,
+      List<ModifierSet> sortkeys) {
        if (sortkeys != null)
            throw new Error("CQLRelation.toXCQL() called with sortkeys");
-
-       return ms.toXCQL(level, "relation");
+       ms.toXCQLInternal(b, level, "relation", "value");
     }
 
+    @Override
     public String toCQL() {
        return ms.toCQL();
     }
 
+    @Override
     public String toPQF(Properties config) throws PQFTranslationException {
        throw new Error("CQLRelation.toPQF() can never be called");
     }
 
+    @Override
     public byte[] toType1BER(Properties config) {
        throw new Error("CQLRelation.toType1BER() can never be called");
     }