Package net.sf.saxon.expr.sort
This package provides utility routines for sorting and grouping. Specifically, it contains a QuickSort implementation, and some AtomicComparer objects that handle character and numeric comparisons, together with the important DocumentOrderIterator which iterates over a set of nodes in document order.
The package also contains the classes to support the implementation of the XSLT 2.0 instruction xsl:for-each-group, and some utilities for maintaining sets and maps whose keys are unboxed integer values.
Michael H. Kay
Saxonica Limited
29 November 2011
-
Interface Summary Interface Description AtomicComparer Interface representing an object that can be used to compare two XPath atomic values for equality or for ordering.GroupIterator A GroupIterator is an iterator that iterates over a sequence of groups.IntIterator An iterator over a sequence of unboxed int valuesIntSet A set of integers represented as int valuesIntToIntMap Interface defining a map from integers to integersItemOrderComparer A Comparer used for comparing nodes in document order, or items in merge orderSortable A Sortable is an object that can be sorted using the QuickSort method.SortKeyEvaluator Callback interface used to evaluate sort keys. -
Class Summary Class Description AbstractIntSet Abstract superclass containing helper methods for various implementations of IntSetAlphanumericCollator A Comparer that treats strings as an alternating sequence of alpha parts and numeric parts.AtomicSortComparer An AtomicComparer used for comparing atomic values of arbitrary item types.CalendarValueComparer A comparer specifically for comparing two date, time, or dateTime valuesCaseFirstCollator A StringCollator that sorts lowercase before uppercase, or vice versa.CodepointCollatingComparer An AtomicComparer used for comparing strings, untypedAtomic values, and URIs using the Unicode codepoint collation.CodepointCollator A collating sequence that uses Unicode codepoint orderingCollatingAtomicComparer An AtomicComparer used for comparing strings, untypedAtomic values, and URIs using a collation.ComparableAtomicValueComparer A comparer for comparing two "ordinary" atomic values, where the values implement the Comparable interface and the equals() method with the appropriate XPath semantics.ComparisonKey An object used as a comparison key.ConditionalSorter An expression that sorts an underlying sequence into document order if some condition is true, or that returns the sequence "as is" (knowing that it doesn't need sorting) if the condition is false.DecimalSortComparer An AtomicComparer used for sorting values that are known to be instances of xs:decimal (including xs:integer), It also supports a separate method for getting a collation key to test equality of itemsDescendingComparer A Comparer used for comparing descending keys.DocumentOrderIterator DocumentOrderIterator takes as input an iteration of nodes in any order, and returns as output an iteration of the same nodes in document order, eliminating any duplicates.DocumentSorter A DocumentSorter is an expression that sorts a sequence of nodes into document order.DoubleSortComparer An AtomicComparer used for sorting values that are known to be numeric.EmptyGreatestComparer A Comparer that modifies a base comparer by sorting empty key values and NaN values last (greatest), as opposed to the default which sorts them first.EmptyIntIterator An iterator over a zero-length sequence of integersEqualityComparer A comparer for comparing two atomic values where (a) equals is defined, and is implemented using the Java equals() method, and (b) ordering is not defined, and results in a dynamic error.GenericAtomicComparer An AtomicComparer used for comparing atomic values of arbitrary item types.GenericSorter Generically sorts arbitrary shaped data (for example multiple arrays, 1,2 or 3-d matrices, and so on) using a quicksort or mergesort.GlobalOrderComparer A Comparer used for comparing nodes in document order.GroupAdjacentIterator A GroupAdjacentIterator iterates over a sequence of groups defined by xsl:for-each-group group-adjacent="x".GroupByIterator A GroupByIterator iterates over a sequence of groups defined by xsl:for-each-group group-by="x".GroupEndingIterator A GroupEndingIterator iterates over a sequence of groups defined by xsl:for-each-group group-ending-with="x".GroupMatchingIterator A GroupMatchingIterator contains code shared between GroupStartingIterator and GroupEndingIteratorGroupStartingIterator A GroupStartingIterator iterates over a sequence of groups defined by xsl:for-each-group group-starting-with="x".GroupToBeSorted This class is a specialization of ObjectToBeSorted for use when the sequence being sorted is a sequence of groups.IntArraySet Set of int values.IntComplementSet An immutable integer set containing all int values except those in an excluded setIntEmptySet An immutable integer set containing no integersIntHashMap<T> A hash table that maps int keys to Object values.IntHashSet Set of int values.IntRangeSet Set of int values.IntSingletonSet An immutable integer set containing a single integerIntToIntArrayMap An implementation ofIntToIntMap
that relies on serial searching, and is therefore optimized for very small map sizesIntToIntHashMap A hash table that maps int keys to int values.IntUniversalSet An immutable integer set containing every integerItemToBeSorted This class is a specialization of class ObjectToBeSorted for use when the sequence being sorted is a sequence of items (including tuples, which are represented as items).LocalOrderComparer A Comparer used for comparing nodes in document order.LRUCache<K,V> An LRU cache, based onLinkedHashMap
.NumericComparer A Comparer used for comparing sort keys when data-type="number".NumericComparer11 A Comparer used for comparing sort keys when data-type="number".ObjectToBeSorted<T> This class represents a member of a sequence that is being sorted.RuleBasedSubstringMatcher This class wraps a RuleBasedCollator to provide a SubstringMatcher.SimpleCollation A simple collation that just wraps a suppled ComparatorSortedGroupIterator A SortedGroupIterator is a modified SortedIterator.SortedIterator Class to do a sorted iterationSortExpression Expression equivalent to the imaginary syntax expr sortby (sort-key)+SortKeyDefinition A SortKeyDefinition defines one component of a sort key.TextComparer A Comparer used for comparing sort keys when data-type="text".