X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Forg%2Fz3950%2Fzing%2Fcql%2FCQLTermNode.java;h=da6c75d9b6539b915ffa7424647853a33ce0cdcb;hb=a8088802d7221b9dc30c967bb8517fe3b089c414;hp=b12883e5acd39fcbb2d67fff7d02d3d0dd6d8b97;hpb=e52d49ef72a0d4531500e3e790fbe2e47fda8cba;p=cql-java-moved-to-github.git diff --git a/src/org/z3950/zing/cql/CQLTermNode.java b/src/org/z3950/zing/cql/CQLTermNode.java index b12883e..da6c75d 100644 --- a/src/org/z3950/zing/cql/CQLTermNode.java +++ b/src/org/z3950/zing/cql/CQLTermNode.java @@ -1,4 +1,4 @@ -// $Id: CQLTermNode.java,v 1.1 2002-10-25 07:38:17 mike Exp $ +// $Id: CQLTermNode.java,v 1.4 2002-10-27 00:46:25 mike Exp $ package org.z3950.zing.cql; @@ -7,48 +7,49 @@ package org.z3950.zing.cql; * Represents a terminal node in a CQL parse-tree ... * ### * - * @version $Id: CQLTermNode.java,v 1.1 2002-10-25 07:38:17 mike Exp $ + * @version $Id: CQLTermNode.java,v 1.4 2002-10-27 00:46:25 mike Exp $ */ -class CQLTermNode extends CQLNode { +public class CQLTermNode extends CQLNode { private String qualifier; private String relation; - private String value; + private String term; - public CQLTermNode(String qualifier, String relation, String value) { + public CQLTermNode(String qualifier, String relation, String term) { this.qualifier = qualifier; this.relation = relation; - this.value = value; + this.term = term; } String toXCQL(int level) { return (indent(level) + "\n" + - indent(level+1) + "" + qualifier + "\n" + - indent(level+1) + "" + relation + "\n" + - indent(level+1) + "" + value + "\n" + + indent(level+1) + "" + xq(qualifier) + "\n" + + indent(level+1) + "" + xq(relation) + "\n"+ + indent(level+1) + "" + xq(term) + "\n" + indent(level) + "\n"); } String toCQL() { - String res = value; + String quotedTerm = term; - if (res.indexOf('"') != -1) { + if (quotedTerm.indexOf('"') != -1) { // ### precede each '"' with a '/' } - if (res.indexOf('"') != -1 || - res.indexOf(' ') != -1 || - res.indexOf('\t') != -1 || - res.indexOf('=') != -1 || - res.indexOf('<') != -1 || - res.indexOf('>') != -1 || - res.indexOf('/') != -1 || - res.indexOf('(') != -1 || - res.indexOf(')') != -1) { - res = '"' + res + '"'; + // ### There must be a better way ... + if (quotedTerm.indexOf('"') != -1 || + quotedTerm.indexOf(' ') != -1 || + quotedTerm.indexOf('\t') != -1 || + quotedTerm.indexOf('=') != -1 || + quotedTerm.indexOf('<') != -1 || + quotedTerm.indexOf('>') != -1 || + quotedTerm.indexOf('/') != -1 || + quotedTerm.indexOf('(') != -1 || + quotedTerm.indexOf(')') != -1) { + quotedTerm = '"' + quotedTerm + '"'; } // ### The qualifier may need quoting. // ### We don't always need spaces around `relation'. - return qualifier + " " + relation + " " + value; + return qualifier + " " + relation + " " + quotedTerm; } }