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
`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.