X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Forg%2Fz3950%2Fzing%2Fcql%2FCQLBooleanNode.java;h=56c212fc66c1595bb29bc17f518222b09a038cdb;hb=f8154c71944186a9b64ddb782082a2026c5a912f;hp=c56aac40cb31f5f6ad71a58c32c6176d32cad051;hpb=069f263b3422968c95d2b2a74291f04dfcdb15ac;p=cql-java-moved-to-github.git diff --git a/src/org/z3950/zing/cql/CQLBooleanNode.java b/src/org/z3950/zing/cql/CQLBooleanNode.java index c56aac4..56c212f 100644 --- a/src/org/z3950/zing/cql/CQLBooleanNode.java +++ b/src/org/z3950/zing/cql/CQLBooleanNode.java @@ -1,15 +1,36 @@ -// $Id: CQLBooleanNode.java,v 1.2 2002-10-25 16:11:05 mike Exp $ +// $Id: CQLBooleanNode.java,v 1.6 2002-10-31 22:22:01 mike Exp $ package org.z3950.zing.cql; /** - * Represents a boolean node in a CQL parse-tree ... - * ### + * Represents a boolean node in a CQL parse-tree. + * ## * - * @version $Id: CQLBooleanNode.java,v 1.2 2002-10-25 16:11:05 mike Exp $ + * @version $Id: CQLBooleanNode.java,v 1.6 2002-10-31 22:22:01 mike Exp $ */ public abstract class CQLBooleanNode extends CQLNode { protected CQLNode left; protected CQLNode right; + + abstract String op(); + + String toXCQL(int level) { + return (indent(level) + "\n" + + booleanXQL(level+1) + + left.toXCQL(level+1) + + right.toXCQL(level+1) + + indent(level) + "\n"); + } + + String booleanXQL(int level) { + return(indent(level) + "\n" + + indent(level+1) + "" + op() + "\n" + + indent(level) + "\n"); + } + + String toCQL() { + // ### We don't always need parens around the operands + return "(" + left.toCQL() + ") " + op() + " (" + right.toCQL() + ")"; + } }