java.lang.Object
org.apache.lucene.queryparser.flexible.core.nodes.QueryNodeImpl
All Implemented Interfaces:
Cloneable, QueryNode
Direct Known Subclasses:
AbstractRangeQueryNode, BooleanQueryNode, BoostQueryNode, DeletedQueryNode, FieldQueryNode, GroupQueryNode, IntervalQueryNode, MatchAllDocsQueryNode, MinShouldMatchNode, ModifierQueryNode, MultiPhraseQueryNode, OpaqueQueryNode, PathQueryNode, PhraseSlopQueryNode, PointQueryNode, RegexpQueryNode, SlopQueryNode, TokenizedPhraseQueryNode

public abstract class QueryNodeImpl extends Object implements QueryNode, Cloneable
A QueryNodeImpl is the default implementation of the interface QueryNode
  • Field Details

    • PLAINTEXT_FIELD_NAME

      public static final String PLAINTEXT_FIELD_NAME
      See Also:
    • toQueryStringIgnoreFields

      protected boolean toQueryStringIgnoreFields
      If set to true the method toQueryString will not write field names
  • Constructor Details

    • QueryNodeImpl

      public QueryNodeImpl()
  • Method Details

    • allocate

      protected void allocate()
    • add

      public final void add(QueryNode child)
      Specified by:
      add in interface QueryNode
    • add

      public final void add(List<QueryNode> children)
      Specified by:
      add in interface QueryNode
    • isLeaf

      public boolean isLeaf()
      Description copied from interface: QueryNode
      verify if a node is a Leaf node
      Specified by:
      isLeaf in interface QueryNode
    • set

      public final void set(List<QueryNode> children)
      Specified by:
      set in interface QueryNode
    • cloneTree

      public QueryNode cloneTree() throws CloneNotSupportedException
      Description copied from interface: QueryNode
      Recursive clone the QueryNode tree The tags are not copied to the new tree when you call the cloneTree() method
      Specified by:
      cloneTree in interface QueryNode
      Returns:
      the cloned tree
      Throws:
      CloneNotSupportedException
    • clone

      public QueryNode clone() throws CloneNotSupportedException
      Overrides:
      clone in class Object
      Throws:
      CloneNotSupportedException
    • setLeaf

      protected void setLeaf(boolean isLeaf)
    • getChildren

      public final List<QueryNode> getChildren()
      Description copied from interface: QueryNode
      get Children nodes
      Specified by:
      getChildren in interface QueryNode
      Returns:
      a List for QueryNode object. Returns null, for nodes that do not contain children. All leaf Nodes return null.
    • setTag

      public void setTag(String tagName, Object value)
      Description copied from interface: QueryNode
      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.
      Specified by:
      setTag in interface QueryNode
    • unsetTag

      public void unsetTag(String tagName)
      Description copied from interface: QueryNode
      Unset a tag. tagName will be converted to lowercase.
      Specified by:
      unsetTag in interface QueryNode
    • containsTag

      public boolean containsTag(String tagName)
      verify if a node contains a tag
      Specified by:
      containsTag in interface QueryNode
    • getTag

      public Object getTag(String tagName)
      Description copied from interface: QueryNode
      Returns object stored under that tag name
      Specified by:
      getTag in interface QueryNode
    • getParent

      public QueryNode getParent()
      Specified by:
      getParent in interface QueryNode
    • isRoot

      protected boolean isRoot()
    • isDefaultField

      protected boolean isDefaultField(CharSequence fld)
      This method is use toQueryString to detect if fld is the default field
      Parameters:
      fld - - field name
      Returns:
      true if fld is the default field
    • toString

      public String toString()
      Every implementation of this class should return pseudo xml like this:

      For FieldQueryNode: <field start='1' end='2' field='subject' text='foo'/>

      Specified by:
      toString in interface QueryNode
      Overrides:
      toString in class Object
      See Also:
    • getTagMap

      public Map<String,Object> getTagMap()
      Returns a map containing all tags attached to this query node.
      Specified by:
      getTagMap in interface QueryNode
      Returns:
      a map containing all tags attached to this query node
    • removeChildren

      public void removeChildren(QueryNode childNode)
      Description copied from interface: QueryNode
      Remove a child node
      Specified by:
      removeChildren in interface QueryNode
      Parameters:
      childNode - Which child to remove
    • removeFromParent

      public void removeFromParent()
      Description copied from interface: QueryNode
      Removes this query node from its parent.
      Specified by:
      removeFromParent in interface QueryNode