Rewrite XML serialization avoiding string concats
[cql-java-moved-to-github.git] / src / main / java / org / z3950 / zing / cql / CQLPrefixNode.java
index 10cff1a..eed3d34 100644 (file)
@@ -1,9 +1,9 @@
 // $Id: CQLPrefixNode.java,v 1.10 2007-07-03 16:40:11 mike Exp $
 
 package org.z3950.zing.cql;
-import java.lang.String;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Properties;
-import java.util.Vector;
 
 
 /**
@@ -41,15 +41,17 @@ public class CQLPrefixNode extends CQLNode {
        this.subtree = subtree;
     }
 
-    public String toXCQL(int level, Vector<CQLPrefix> prefixes,
-                        Vector<ModifierSet> sortkeys) {
-       Vector<CQLPrefix> tmp = (prefixes == null ?
-                                new Vector<CQLPrefix>() :
-                                new Vector<CQLPrefix>(prefixes));
+    @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
     public String toCQL() {
        // ### We don't always need parens around the subtree
        if (prefix.name == null) {
@@ -61,6 +63,7 @@ public class CQLPrefixNode extends CQLNode {
        }
     }
 
+    @Override
     public String toPQF(Properties config) throws PQFTranslationException {
        // Prefixes and their identifiers don't actually play any role
        // in PQF translation, since the meanings of the indexes,
@@ -69,6 +72,7 @@ public class CQLPrefixNode extends CQLNode {
        return subtree.toPQF(config);
     }
 
+    @Override
     public byte[] toType1BER(Properties config) throws PQFTranslationException {
        // See comment on toPQF()
        return subtree.toType1BER(config);