Class OrderQueryNode


  • public class OrderQueryNode
    extends QueryNode
    Implements a query node that defines the order of nodes according to the values of properties.
    • Method Detail

      • getType

        public int getType()
        Returns the type of this node.
        Specified by:
        getType in class QueryNode
        Returns:
        the type of this node.
      • newOrderSpec

        public void newOrderSpec()
        Create and add a new (empty) order specification to this query node.
      • setAscending

        public void setAscending​(boolean value)
        Set the last order specification of this query node to ascending/descending
        Parameters:
        value - true for ascending and false for descending.
        Throws:
        java.lang.IllegalStateException - if no order specification is set
        See Also:
        OrderQueryNode.OrderSpec.setAscending(boolean)
      • setFunction

        public void setFunction​(java.lang.String name)
        Set the function of the last order specification of this query node.
        Parameters:
        name - a function name
        Throws:
        java.lang.IllegalStateException - if no order specification is set
        See Also:
        OrderQueryNode.OrderSpec.setFunction(String)
      • isValid

        public boolean isValid()
        Checks whether all order specifications of this query node have at least its path specified (i.e. non null.)
        Returns:
        true iff all order specification of this query node are valid.
      • addOrderSpec

        public void addOrderSpec​(Name property,
                                 boolean ascending)
        Deprecated.
        Adds an order specification to this query node.
        Parameters:
        property - the name of the property.
        ascending - if true values of this properties are ordered ascending; descending if false.
      • addOrderSpec

        public void addOrderSpec​(Path property,
                                 boolean ascending)
        Adds an order specification to this query node.
        Parameters:
        property - the relative path of the property.
        ascending - if true values of this properties are ordered ascending; descending if false.
      • addOrderSpec

        public void addOrderSpec​(OrderQueryNode.OrderSpec spec)
        Adds an order specification to this query node.
        Parameters:
        spec - the order spec.
      • 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
      • isAscending

        public boolean isAscending​(int i)
                            throws java.lang.IndexOutOfBoundsException
        Returns true if the property i should be ordered ascending. If false the property is ordered descending.
        Parameters:
        i - index of the property
        Returns:
        the order spec for the property i.
        Throws:
        java.lang.IndexOutOfBoundsException - if there is no property with index i.
      • getOrderSpecs

        public OrderQueryNode.OrderSpec[] getOrderSpecs()
        Returns a OrderSpec array that contains order by specifications.
        Returns:
        order by specs.
      • 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.
        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.