1 // $Id: CQLTermNode.java,v 1.1 2002-10-25 07:38:17 mike Exp $
3 package org.z3950.zing.cql;
7 * Represents a terminal node in a CQL parse-tree ...
10 * @version $Id: CQLTermNode.java,v 1.1 2002-10-25 07:38:17 mike Exp $
12 class CQLTermNode extends CQLNode {
13 private String qualifier;
14 private String relation;
17 public CQLTermNode(String qualifier, String relation, String value) {
18 this.qualifier = qualifier;
19 this.relation = relation;
23 String toXCQL(int level) {
24 return (indent(level) + "<searchClause>\n" +
25 indent(level+1) + "<index>" + qualifier + "<index>\n" +
26 indent(level+1) + "<relation>" + relation + "<relation>\n" +
27 indent(level+1) + "<term>" + value + "<term>\n" +
28 indent(level) + "</searchClause>\n");
34 if (res.indexOf('"') != -1) {
35 // ### precede each '"' with a '/'
38 if (res.indexOf('"') != -1 ||
39 res.indexOf(' ') != -1 ||
40 res.indexOf('\t') != -1 ||
41 res.indexOf('=') != -1 ||
42 res.indexOf('<') != -1 ||
43 res.indexOf('>') != -1 ||
44 res.indexOf('/') != -1 ||
45 res.indexOf('(') != -1 ||
46 res.indexOf(')') != -1) {
47 res = '"' + res + '"';
50 // ### The qualifier may need quoting.
51 // ### We don't always need spaces around `relation'.
52 return qualifier + " " + relation + " " + value;