package org.apache.lucene.queryparser.flexible.aqp.nodes; import org.apache.lucene.queryparser.flexible.messages.MessageImpl; 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; public class AqpAdsabsSynonymQueryNode extends QueryNodeImpl implements QueryNode { private static final long serialVersionUID = 6262993993478292390L; private boolean allowed = false; public AqpAdsabsSynonymQueryNode(QueryNode child, boolean activated) { if (child == null) { throw new QueryNodeError(new MessageImpl( QueryParserMessages.PARAMETER_VALUE_NOT_SUPPORTED, "child", "null")); } allocate(); setLeaf(false); add(child); this.allowed = activated; } public String toString() { return "<synonymNode activated='" + this.isActivated() + "'>" + "\n" + getChild().toString() + "\n</synonymNode>"; } public QueryNode getChild() { return getChildren().get(0); } public boolean isActivated() { return allowed; } public void setActivated(boolean val) { allowed = val; } public CharSequence toQueryString(EscapeQuerySyntax escapeSyntaxParser) { if (isActivated()) { return "#" + getChild().toQueryString(escapeSyntaxParser); } else { return "=" + getChild().toQueryString(escapeSyntaxParser); } } }