org.apache.jackrabbit.spi.commons.query
Class NAryQueryNode<T extends QueryNode>

java.lang.Object
  extended by org.apache.jackrabbit.spi.commons.query.QueryNode
      extended by 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.


Field Summary
protected  List<T> operands
          The list of operands / children
 
Fields inherited from class org.apache.jackrabbit.spi.commons.query.QueryNode
TYPE_AND, TYPE_DEREF, TYPE_EXACT, TYPE_LOCATION, TYPE_NODETYPE, TYPE_NOT, TYPE_OR, TYPE_ORDER, TYPE_PATH, TYPE_PROP_FUNCTION, TYPE_RELATION, TYPE_ROOT, TYPE_TEXTSEARCH
 
Constructor Summary
NAryQueryNode(QueryNode parent)
          Creates a new NAryQueryNode with a reference to a parent QueryNode.
NAryQueryNode(QueryNode parent, T[] operands)
          Creates a new NAryQueryNode with a reference to a parent QueryNode and initial operands.
 
Method Summary
 Object[] acceptOperands(QueryNodeVisitor visitor, Object data)
          Helper class to accept a visitor for all operands of this NAryQueryNode.
 void addOperand(T operand)
          Adds a new operand (child node) to this query node.
 boolean equals(Object obj)
          Returns true if obj is the same type of QueryNode as this node and is equal to this node.
 int getNumOperands()
          Returns the number of operands.
 QueryNode[] getOperands()
          Returns an array of currently set QueryNode operands of this QueryNode.
 boolean needsSystemTree()
          Returns true if this query node needs items under /jcr:system to be queried.
 boolean removeOperand(T operand)
          Removes an operand (child node) from this query node.
 
Methods inherited from class org.apache.jackrabbit.spi.commons.query.QueryNode
accept, dump, getParent, getType
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

operands

protected List<T extends QueryNode> operands
The list of operands / children

Constructor Detail

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 Detail

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)
Description copied from class: QueryNode
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.


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.