Class OrderBy

  • All Implemented Interfaces:
    Cloneable, LanguageObject

    public class OrderBy
    extends Object
    implements LanguageObject
    Represents the ORDER BY clause of a query. The ORDER BY clause states what order the rows of a result should be returned in. Each element in the ORDER BY represents a sort that is completed in the order listed. The optional keywords ASC and DESC can be put after each element to specify whether the sort is ascending or descending.
    • Constructor Detail

      • OrderBy

        public OrderBy()
        Constructs a default instance of this class.
      • OrderBy

        public OrderBy​(List<? extends Expression> parameters)
        Constructs an instance of this class from an ordered list of elements.
        parameters - The ordered list of SingleElementSymbol
      • OrderBy

        public OrderBy​(List<? extends Expression> parameters,
                       List<Boolean> types)
        Constructs an instance of this class from an ordered set of elements.
        parameters - The ordered list of SingleElementSymbol
        types - The list of directions by which the results are ordered (Boolean, true=ascending)
    • Method Detail

      • getVariableCount

        public int getVariableCount()
        Returns the number of elements in ORDER BY.
        Number of variables in ORDER BY
      • getVariable

        public Expression getVariable​(int index)
        Returns the ORDER BY element at the specified index.
        index - Index to get
        The element at the index
      • getOrderType

        public Boolean getOrderType​(int index)
        Returns the sort order at the specified index
        index - Index to get
        The sort order at the index
      • addVariable

        public OrderByItem addVariable​(Expression element)
        Adds a new variable to the list of order by elements.
        element - Element to add
      • addVariable

        public OrderByItem addVariable​(Expression element,
                                       boolean type)
        Adds a new variable to the list of order by elements with the specified sort order
        element - Element to add
        type - True for ascending, false for descending
      • acceptVisitor

        public void acceptVisitor​(LanguageVisitor visitor)
        Description copied from interface: LanguageObject
        Method for accepting a visitor. It is the responsibility of the language object to call back on the visitor.
        Specified by:
        acceptVisitor in interface LanguageObject
        visitor - Visitor being used
      • clone

        public OrderBy clone()
        Return deep copy of this ORDER BY clause.
        Specified by:
        clone in interface LanguageObject
        clone in class Object
        Deep clone of this object
      • equals

        public boolean equals​(Object obj)
        Compare two OrderBys for equality. Order is important in the order by, so that is considered in the comparison. Also, the sort orders are considered.
        equals in class Object
        obj - Other object
        True if equal
      • hashCode

        public int hashCode()
        Get hashcode for OrderBy. WARNING: The hash code relies on the variables in the select, so changing the variables will change the hash code, causing a select to be lost in a hash structure. Do not hash a OrderBy if you plan to change it.
        hashCode in class Object
        Hash code
      • toString

        public String toString()
        Returns a string representation of an instance of this class.
        toString in class Object
        String representation of object
      • setExpressionPosition

        public void setExpressionPosition​(int orderIndex,
                                          int selectIndex)
      • getExpressionPosition

        public int getExpressionPosition​(int orderIndex)
      • removeOrderByItem

        public void removeOrderByItem​(int index)
      • hasUnrelated

        public boolean hasUnrelated()
      • getSortKeys

        public List<Expression> getSortKeys()
        Get the list or sort key symbols. Modifications to this list will not add or remove OrderByItems.
      • setUserOrdering

        public void setUserOrdering​(boolean userOrdering)
      • isUserOrdering

        public boolean isUserOrdering()