Add classes for visitor traversal
[cql-java-moved-to-github.git] / src / main / java / org / z3950 / zing / cql / CQLPrefixNode.java
index c793d2f..2b23a6d 100644 (file)
@@ -1,4 +1,3 @@
-// $Id: CQLPrefixNode.java,v 1.10 2007-07-03 16:40:11 mike Exp $
 
 package org.z3950.zing.cql;
 import java.util.ArrayList;
@@ -9,24 +8,24 @@ import java.util.Properties;
 /**
  * Represents a prefix node in a CQL parse-tree.
  *
- * @version    $Id: CQLPrefixNode.java,v 1.10 2007-07-03 16:40:11 mike Exp $
  */
 public class CQLPrefixNode extends CQLNode {
+
+    private CQLPrefix prefix;
+
     /**
      * The prefix definition that governs the subtree.
      */
-    private CQLPrefix prefix;
-
     public CQLPrefix getPrefix() {
         return prefix;
     }
 
+    private CQLNode subtree;
+
     /**
      * The root of a parse-tree representing the part of the query
      * that is governed by this prefix definition.
-     */ 
-    private CQLNode subtree;
-
+     */
     public CQLNode getSubtree() {
       return subtree;
     }
@@ -42,13 +41,19 @@ public class CQLPrefixNode extends CQLNode {
     }
 
     @Override
-    public String toXCQL(int level, List<CQLPrefix> prefixes,
+    public void traverse(CQLNodeVisitor visitor) {
+      visitor.onPrfixNode(this);
+      subtree.traverse(visitor);
+    }
+
+    @Override
+    void toXCQLInternal(XCQLBuilder b, int level, List<CQLPrefix> prefixes,
                         List<ModifierSet> sortkeys) {
        List<CQLPrefix> tmp = (prefixes == null ?
                                 new ArrayList<CQLPrefix>() :
                                 new ArrayList<CQLPrefix>(prefixes));
        tmp.add(prefix);
-       return subtree.toXCQL(level, tmp, sortkeys);
+       subtree.toXCQLInternal(b, level, tmp, sortkeys);
     }
 
     @Override