content: package org.apache.lucene.queryparser.flexible.aqp.nodes;
  
  import org.apache.lucene.queryparser.flexible.core.QueryNodeError;
  import org.apache.lucene.queryparser.flexible.core.messages.QueryParserMessages;
  import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode;
  import org.apache.lucene.queryparser.flexible.core.nodes.QueryNodeImpl;
  import org.apache.lucene.queryparser.flexible.core.parser.EscapeQuerySyntax;
  import org.apache.lucene.queryparser.flexible.messages.MessageImpl;
  
  import java.util.List;
  
  public class AqpDisjunctionQueryNode extends QueryNodeImpl {
  
      private Float tieBreaker = null;
  
      public AqpDisjunctionQueryNode(List<QueryNode> children, float tieBreaker) {
          if (children == null) {
              throw new QueryNodeError(
                      new MessageImpl(QueryParserMessages.PARAMETER_VALUE_NOT_SUPPORTED,
                              "children", "null"));
          }
          allocate();
          setLeaf(false);
          add(children);
          this.tieBreaker = tieBreaker;
      }
  
      public CharSequence toQueryString(EscapeQuerySyntax escapeSyntaxParser) {
          if (getChildren().size() == 0)
              return "";
  
          StringBuilder sb = new StringBuilder();
          sb.append("(");
          boolean notFirst = false;
          for (QueryNode child : getChildren()) {
              if (notFirst) {
                  sb.append(" | ");
              }
              sb.append(child.toQueryString(escapeSyntaxParser));
              notFirst = true;
          }
          sb.append(")");
          return sb.toString();
  
      }
  
      public String toString() {
          StringBuffer bo = new StringBuffer();
          bo.append("<disjunction tieBreaker=\"");
          bo.append(tieBreaker);
          bo.append("\">\n");
          for (QueryNode child : this.getChildren()) {
              bo.append(child.toString());
              bo.append("\n");
          }
          bo.append("\n</disjunction>");
          return bo.toString();
      }
  
      public Float getTieBreaker() {
          return tieBreaker;
      }
  
      public void setTieBreaker(Float tieBreaker) {
          this.tieBreaker = tieBreaker;
      }
  
  }
  