Class SortKeyDefinition

  • All Implemented Interfaces:
    java.io.Serializable

    public class SortKeyDefinition
    extends java.lang.Object
    implements java.io.Serializable
    A SortKeyDefinition defines one component of a sort key.
    Note that most attributes defining the sort key can be attribute value templates, and can therefore vary from one invocation to another. We hold them as expressions. As soon as they are all known (which in general is only at run-time), the SortKeyDefinition is replaced by a FixedSortKeyDefinition in which all these values are fixed.
    See Also:
    Serialized Form
    • Field Detail

      • dataTypeExpression

        protected Expression dataTypeExpression
      • collationName

        protected Expression collationName
      • collation

        protected transient java.util.Comparator collation
      • baseURI

        protected java.lang.String baseURI
      • emptyLeast

        protected boolean emptyLeast
      • backwardsCompatible

        protected boolean backwardsCompatible
      • parentExpression

        protected Container parentExpression
      • comparer

        protected transient java.util.Comparator comparer
    • Constructor Detail

      • SortKeyDefinition

        public SortKeyDefinition()
    • Method Detail

      • setParentExpression

        public void setParentExpression​(Container container)
      • getParentExpression

        public Container getParentExpression()
      • setSortKey

        public void setSortKey​(Expression exp)
        Set the expression used as the sort key
      • getSortKey

        public Expression getSortKey()
        Get the expression used as the sort key
      • setOrder

        public void setOrder​(Expression exp)
        Set the order. This is supplied as an expression which must evaluate to "ascending" or "descending". If the order is fixed, supply e.g. new StringValue("ascending"). Default is "ascending".
      • setDataTypeExpression

        public void setDataTypeExpression​(Expression exp)
        Set the data type. This is supplied as an expression which must evaluate to "text", "number", or a QName. If the data type is fixed, the valus should be supplied using setDataType() and not via this method.
      • getDataTypeExpression

        public Expression getDataTypeExpression()
      • setCaseOrder

        public void setCaseOrder​(Expression exp)
        Set the case order. This is supplied as an expression which must evaluate to "upper-first" or "lower-first" or "#default". If the order is fixed, supply e.g. new StringValue("lower-first"). Default is "#default".
      • setLanguage

        public void setLanguage​(Expression exp)
        Set the language. This is supplied as an expression which evaluates to the language name. If the order is fixed, supply e.g. new StringValue("de").
      • setCollationName

        public void setCollationName​(Expression collationName)
        Set the collation.
      • getCollationName

        public Expression getCollationName()
      • setCollation

        public void setCollation​(java.util.Comparator collation)
      • getCollation

        public java.util.Comparator getCollation()
      • setBaseURI

        public void setBaseURI​(java.lang.String baseURI)
      • getBaseURI

        public java.lang.String getBaseURI()
      • setStable

        public void setStable​(Expression stable)
      • setBackwardsCompatible

        public void setBackwardsCompatible​(boolean compatible)
      • isBackwardsCompatible

        public boolean isBackwardsCompatible()
      • setEmptyLeast

        public void setEmptyLeast​(boolean emptyLeast)
        Set whether empty sequence comes before other values or after them
        Parameters:
        emptyLeast - true if () is considered lower than any other value
      • getEmptyLeast

        public boolean getEmptyLeast()
      • isFixed

        public boolean isFixed()
        Determine whether the sort key definition is fixed, that is, whether all the information needed to create a Comparator is known statically
      • makeComparator

        public java.util.Comparator makeComparator​(XPathContext context)
                                            throws XPathException
        Allocate a Comparator to perform the comparisons described by this sort key component
        Throws:
        XPathException
      • setComparer

        public void setComparer​(java.util.Comparator comp)
        Set the comparer which is used to compare two values according to this sort key.
      • getComparer

        public java.util.Comparator getComparer()
        Get the comparer which is used to compare two values according to this sort key.