Class QueryTree

All Implemented Interfaces:
Cloneable

public class QueryTree extends RootItem
The root node of a query tree. This is always present above the actual semantic root to ease query manipulation, especially replacing the actual semantic root, but does not have any search semantics on its own.

To ease recursive manipulation of the query tree, this is a composite having one child, which is the actual root.

  • Setting the root item (at position 0, either directly or though the iterator of this, works as expected. Setting at any other position is disallowed.
  • Removing the root is allowed and causes this to be a null query.
  • Adding an item is only allowed if this is currently a null query (having no root)

This is also the home of accessor methods which eases querying into and manipulation of the query tree.

Author:
Arne Bergene Fossaa
  • Constructor Details

    • QueryTree

      public QueryTree()
    • QueryTree

      public QueryTree(Item root)
  • Method Details

    • equals

      public boolean equals(Object o)
      Description copied from class: CompositeItem
      Returns whether this item is of the same class and contains the same state as the given item.
      Overrides:
      equals in class RootItem
    • clone

      public QueryTree clone()
      Returns a deep copy of this
      Overrides:
      clone in class RootItem
    • withRank

      public Item withRank(Item item)
      Modifies this query to become the current query RANK with the given item.
      Returns:
      the resulting root item in this
    • and

      public Item and(Item item)
      Modifies this query to become the current query AND the given item.
      Returns:
      the resulting root item in this
    • getPositiveTerms

      public static List<IndexedItem> getPositiveTerms(Item item)
      Returns a flattened list of all positive query terms under the given item
    • treeSize

      public int treeSize()
      Returns the total number of items in this query tree.