Class LocationStepQueryNode

Direct Known Subclasses:
DerefQueryNode

public class LocationStepQueryNode extends NAryQueryNode<QueryNode>
Defines a location step for querying the path of a node.

/foo -> descendants = false, nameTest = foo
//foo -> descendants = true, nameTest = foo
//* -> descendants = true, nameTest = null
/* -> descendants = false, nameTest = null
/ -> descendants = false, nameTest = ""

  • Field Details

    • LAST

      public static final int LAST
      Constant value for position index = last()
      See Also:
    • NONE

      public static final int NONE
      Constant value to indicate no position index
      See Also:
    • EMPTY_NAME

      public static final Name EMPTY_NAME
      The empty name used in matching the root node. This is an implementation specific constant as the empty name is not a valid JCR name. TODO: The root location step should be refactored somehow
  • Method Details

    • getNameTest

      public Name getNameTest()
      Returns the label of the node for this location step, or null if the name test is '*'.
      Returns:
      the label of the node for this location step.
    • setNameTest

      public void setNameTest(Name nameTest)
      Sets a new name test.
      Parameters:
      nameTest - the name test or null to match all names.
    • getIncludeDescendants

      public boolean getIncludeDescendants()
      Returns true if this location step uses the descendant-or-self axis, false if this step uses the child axis.
      Returns:
      true if this step uses the descendant-or-self axis.
    • setIncludeDescendants

      public void setIncludeDescendants(boolean include)
      Sets a new value for the includeDescendants property.
      Parameters:
      include - the new value.
      See Also:
    • addPredicate

      public void addPredicate(QueryNode predicate)
      Adds a predicate node to this location step.
      Parameters:
      predicate - the node to add.
    • getPredicates

      public QueryNode[] getPredicates()
      Returns the predicate nodes for this location step. This method may also return a position predicate.
      Returns:
      the predicate nodes or an empty array if there are no predicates for this location step.
    • setIndex

      public void setIndex(int index)
      Sets the position index for this step. A value of NONE indicates that this location step has no position index assigned. That is, the step selects all same name siblings.
      Parameters:
      index - the position index.
    • getIndex

      public int getIndex()
      Returns the position index for this step. A value of NONE indicates that this location step has no position index assigned. That is, the step selects all same name siblings.
      Returns:
      the position index for this step.
    • accept

      public Object accept(QueryNodeVisitor visitor, Object data) throws RepositoryException
      Accepts a QueryNodeVisitor and calls the appropriate visit method on the visitor depending on the concrete implementation of this QueryNode.
      Specified by:
      accept in class QueryNode
      Parameters:
      visitor - the visitor to call back.
      data - arbitrary data for the visitor.
      Returns:
      the return value of the visitor.visit() call.
      Throws:
      RepositoryException
    • getType

      public int getType()
      Returns the type of this query node.
      Specified by:
      getType in class QueryNode
      Returns:
      the type of this query node.
    • 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.
      Overrides:
      equals in class NAryQueryNode<QueryNode>
      Parameters:
      obj - the reference object with which to compare.
      Returns:
      true if obj is equal to this; false otherwise.