org.apache.tools.ant.types.resources

## Class Sort

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.types.DataType
    - - org.apache.tools.ant.types.resources.AbstractResourceCollectionWrapper
      - - org.apache.tools.ant.types.resources.BaseResourceCollectionWrapper
        - - org.apache.tools.ant.types.resources.Sort

- All Implemented Interfaces:
    java.lang.Cloneable, java.lang.Iterable<Resource>, ResourceCollection

      public class Sort
      extends BaseResourceCollectionWrapper

  ResourceCollection that sorts another ResourceCollection. Note that Sort must not be used in cases where the ordering of the objects being sorted might change during the sorting process.
  Since:
    Ant 1.7

- - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.types.DataType

      `checked, ref`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Sort()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(ResourceComparator c)` Add a ResourceComparator to this Sort ResourceCollection.
    `protected void` | `dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p)` Overrides the BaseResourceCollectionContainer version to recurse on nested ResourceComparators.
    `protected java.util.Collection<Resource>` | `getCollection()` Sort the contained elements.

    - ### Methods inherited from class org.apache.tools.ant.types.resources.BaseResourceCollectionWrapper

      `createIterator, getSize`

    - ### Methods inherited from class org.apache.tools.ant.types.resources.AbstractResourceCollectionWrapper

      `add, getResourceCollection, isCache, isFilesystemOnly, iterator, setCache, size, toString`

    - ### Methods inherited from class org.apache.tools.ant.types.DataType

      `checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, setRefid, tooManyAttributes`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProject`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.tools.ant.types.ResourceCollection

      `isEmpty, stream`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### Sort

          public Sort()

  - ### Method Detail

    - #### getCollection

          protected java.util.Collection<Resource> getCollection()

      Sort the contained elements.
      Specified by:
        `getCollection` in class `BaseResourceCollectionWrapper`
      Returns:
        a Collection of Resources.

    - #### add

          public void add(ResourceComparator c)

      Add a ResourceComparator to this Sort ResourceCollection. If multiple ResourceComparators are added, they will be processed in LIFO order.
      Parameters:
        `c` - the ResourceComparator to add.

    - #### dieOnCircularReference

          protected void dieOnCircularReference(java.util.Stack<java.lang.Object> stk,
                                                Project p)
                                         throws BuildException

      Overrides the BaseResourceCollectionContainer version to recurse on nested ResourceComparators.
      Overrides:
        `dieOnCircularReference` in class `AbstractResourceCollectionWrapper`
      Parameters:
        `stk` - the stack of data types to use (recursively).
        `p` - the project to use to dereference the references.
      Throws:
        `BuildException` - on error.