Add classes for visitor traversal
[cql-java-moved-to-github.git] / src / main / java / org / z3950 / zing / cql / CQLPrefixNode.java
index eed3d34..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,6 +41,12 @@ public class CQLPrefixNode extends CQLNode {
     }
 
     @Override
+    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 ?