Package 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:
  `Cloneable`, `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
  Description
  `Reverse()`
  Default constructor.
  `Reverse(ResourceComparator c)`
  Construct a new Reverse, supplying the ResourceComparator to be reversed.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `add(ResourceComparator c)`
  Add the ResourceComparator to reverse.
  `protected void`
  `dieOnCircularReference(Stack<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, 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

  `reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

- ## Constructor Details

  - ### 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 Details

  - ### 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(Stack<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.