+++ /dev/null
-package org.apache.lucene.queryParser.core.nodes;
-
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.lucene.queryParser.core.parser.EscapeQuerySyntax;
-
-/**
- * A {@link QueryNode} is a interface implemented by all nodes on a QueryNode
- * tree.
- */
-public interface QueryNode extends Serializable {
-
- /** convert to a query string understood by the query parser */
- // TODO: this interface might be changed in the future
- public CharSequence toQueryString(EscapeQuerySyntax escapeSyntaxParser);
-
- /** for printing */
- public String toString();
-
- /** get Children nodes */
- public List<QueryNode> getChildren();
-
- /** verify if a node is a Leaf node */
- public boolean isLeaf();
-
- /** verify if a node contains a tag */
- public boolean containsTag(String tagName);
-
- /** verify if a node contains a tag
- * @deprecated use {@link #containsTag(String)} instead
- */
- @Deprecated
- public boolean containsTag(CharSequence tagName);
-
- /**
- * @param tagName
- * @return of stored on under that tag name
- */
- public Object getTag(String tagName);
-
- /**
- * @param tagName
- * @return of stored on under that tag name
- *
- * @deprecated use {@link #getTag(String)} instead
- */
- @Deprecated
- public Object getTag(CharSequence tagName);
-
- public QueryNode getParent();
-
- /**
- * Recursive clone the QueryNode tree The tags are not copied to the new tree
- * when you call the cloneTree() method
- *
- * @return the cloned tree
- * @throws CloneNotSupportedException
- */
- public QueryNode cloneTree() throws CloneNotSupportedException;
-
- // Below are the methods that can change state of a QueryNode
- // Write Operations (not Thread Safe)
-
- // add a new child to a non Leaf node
- public void add(QueryNode child);
-
- public void add(List<QueryNode> children);
-
- // reset the children of a node
- public void set(List<QueryNode> children);
-
- /**
- * Associate the specified value with the specified tagName. If the tagName
- * already exists, the old value is replaced. The tagName and value cannot be
- * null. tagName will be converted to lowercase.
- *
- * @param tagName
- * @param value
- */
- public void setTag(String tagName, Object value);
-
- /**
- * Associate the specified value with the specified tagName. If the tagName
- * already exists, the old value is replaced. The tagName and value cannot be
- * null. tagName will be converted to lowercase.
- *
- * @param tagName
- * @param value
- *
- * @deprecated use {@link #setTag(String, Object)} instead
- */
- @Deprecated
- public void setTag(CharSequence tagName, Object value);
-
- /**
- * Unset a tag. tagName will be converted to lowercase.
- *
- * @param tagName
- */
- public void unsetTag(String tagName);
-
- /**
- * Unset a tag. tagName will be converted to lowercase.
- *
- * @param tagName
- *
- * @deprecated use {@link #unsetTag(String)} instead
- */
- @Deprecated
- public void unsetTag(CharSequence tagName);
-
- /**
- * Returns a map containing all tags attached to this query node.
- *
- * @return a map containing all tags attached to this query node
- *
- * @deprecated use {@link #getTagMap()}
- */
- @Deprecated
- public Map<CharSequence, Object> getTags();
-
- /**
- * Returns a map containing all tags attached to this query node.
- *
- * @return a map containing all tags attached to this query node
- */
- public Map<String, Object> getTagMap();
-
-}