org.apache.tools.ant.types.resources.comparators

## Class Reverse

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.types.DataType
    - - org.apache.tools.ant.types.resources.comparators.ResourceComparator
      - - org.apache.tools.ant.types.resources.comparators.Reverse

- All Implemented Interfaces:
    java.lang.Cloneable, java.util.Comparator<Resource>

      public class Reverse
      extends ResourceComparator

  Reverses another ResourceComparator. If no nested ResourceComparator is supplied, the compared Resources' natural order will be reversed.
  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
    `Reverse()` Default constructor.
    `Reverse(ResourceComparator c)` Construct a new Reverse, supplying the ResourceComparator to be reversed.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(ResourceComparator c)` Add the ResourceComparator to reverse.
    `protected void` | `dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p)` Check to see whether any DataType we hold references to is included in the Stack (which holds all DataType instances that directly or indirectly reference this instance, including this instance itself).
    `protected int` | `resourceCompare(Resource foo, Resource bar)` Compare two Resources.

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

      `compare, equals, hashCode`

    - ### 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, toString`

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

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

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

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.Comparator

      `comparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

- - ### Constructor Detail

    - #### Reverse

          public Reverse()

      Default constructor.

    - #### Reverse

          public Reverse(ResourceComparator c)

      Construct a new Reverse, supplying the ResourceComparator to be reversed.
      Parameters:
        `c` - the ResourceComparator to reverse.

  - ### Method Detail

    - #### add

          public void add(ResourceComparator c)

      Add the ResourceComparator to reverse.
      Parameters:
        `c` - the ResourceComparator to add.

    - #### resourceCompare

          protected int resourceCompare(Resource foo,
                                        Resource bar)

      Compare two Resources.
      Specified by:
        `resourceCompare` in class `ResourceComparator`
      Parameters:
        `foo` - the first Resource.
        `bar` - the second Resource.
      Returns:
        a negative integer, zero, or a positive integer as the first argument is greater than, equal to, or less than the second.

    - #### dieOnCircularReference

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

      Description copied from class: `DataType`
      Check to see whether any DataType we hold references to is included in the Stack (which holds all DataType instances that directly or indirectly reference this instance, including this instance itself).

      If one is included, throw a BuildException created by `circularReference`.

      This implementation is appropriate only for a DataType that cannot hold other DataTypes as children.

      The general contract of this method is that it shouldn't do anything if `DataType.checked` is true and set it to true on exit.

      Overrides:
        `dieOnCircularReference` in class `DataType`
      Parameters:
        `stk` - the stack of references to check.
        `p` - the project to use to dereference the references.
      Throws:
        `BuildException` - on error.