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 Detail

      • LAST

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

        public static final int NONE
        Constant value to indicate no position index
        See Also:
        Constant Field Values
      • 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 Detail

      • 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:
        getIncludeDescendants()
      • 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 java.lang.Object accept​(QueryNodeVisitor visitor,
                                       java.lang.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​(java.lang.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.