Class NAryQueryNode<T extends QueryNode>

java.lang.Object
org.apache.jackrabbit.spi.commons.query.QueryNode
org.apache.jackrabbit.spi.commons.query.NAryQueryNode<T>
Direct Known Subclasses:
AndQueryNode, LocationStepQueryNode, NotQueryNode, OrQueryNode, PathQueryNode, RelationQueryNode

public abstract class NAryQueryNode<T extends QueryNode> extends QueryNode
Defines an abstract query node for nodes that have child nodes.
  • Constructor Details

    • NAryQueryNode

      public NAryQueryNode(QueryNode parent)
      Creates a new NAryQueryNode with a reference to a parent QueryNode.
      Parameters:
      parent - the parent node.
    • NAryQueryNode

      public NAryQueryNode(QueryNode parent, T[] operands)
      Creates a new NAryQueryNode with a reference to a parent QueryNode and initial operands.
      Parameters:
      parent - the parent node.
      operands - child nodes of this NAryQueryNode.
  • Method Details

    • addOperand

      public void addOperand(T operand)
      Adds a new operand (child node) to this query node.
      Parameters:
      operand - the child QueryNode to add.
    • removeOperand

      public boolean removeOperand(T operand)
      Removes an operand (child node) from this query node.
      Parameters:
      operand - the child to remove.
      Returns:
      true if the operand was in the list of child nodes and has been removed; false if this node does not contain operand as a child node.
    • getOperands

      public QueryNode[] getOperands()
      Returns an array of currently set QueryNode operands of this QueryNode. Returns an empty array if no operands are set.
      Returns:
      currently set QueryNode operands.
    • getNumOperands

      public int getNumOperands()
      Returns the number of operands.
      Returns:
      the number of operands.
    • acceptOperands

      public Object[] acceptOperands(QueryNodeVisitor visitor, Object data) throws RepositoryException
      Helper class to accept a visitor for all operands of this NAryQueryNode.
      Parameters:
      visitor - the visitor to call back.
      data - arbitrary data for the visitor.
      Returns:
      the return values of the visitor.visit() calls.
      Throws:
      RepositoryException - if an error occurs.
    • equals

      public boolean equals(Object obj)
      Returns true if obj is the same type of QueryNode as this node and is equal to this node.
      Specified by:
      equals in class QueryNode
      Parameters:
      obj - the reference object with which to compare.
      Returns:
      true if obj is equal to this; false otherwise.
    • needsSystemTree

      public boolean needsSystemTree()
      Returns true if this query node needs items under /jcr:system to be queried.
      Specified by:
      needsSystemTree in class QueryNode
      Returns:
      true if this query node needs content under /jcr:system to be queried; false otherwise.