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

## Class DelegatedResourceComparator

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

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

      public class DelegatedResourceComparator
      extends ResourceComparator

  Delegates to other ResourceComparators or, if none specified, uses Resources' natural ordering.
  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
    `DelegatedResourceComparator()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(ResourceComparator c)` Add a delegate ResourceComparator.
    `protected void` | `dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p)` Overrides the version from DataType to recurse on nested ResourceSelector s.
    `boolean` | `equals(java.lang.Object o)` Equality method based on the vector of resources, or if a reference, the referredto object.
    `int` | `hashCode()` Hashcode based on the rules for equality.
    `protected int` | `resourceCompare(Resource foo, Resource bar)` Compare two Resources.

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

      `compare, getCheckedRef`

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

      `checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, 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

    - #### DelegatedResourceComparator

          public DelegatedResourceComparator()

  - ### Method Detail

    - #### add

          public void add(ResourceComparator c)

      Add a delegate ResourceComparator.
      Parameters:
        `c` - the next delegate ResourceComparator.

    - #### equals

          public boolean equals(java.lang.Object o)

      Equality method based on the vector of resources, or if a reference, the referredto object.
      Specified by:
        `equals` in interface `java.util.Comparator<Resource>`
      Overrides:
        `equals` in class `ResourceComparator`
      Parameters:
        `o` - the object to check against.
      Returns:
        true if there is equality.

    - #### hashCode

          public int hashCode()

      Hashcode based on the rules for equality.
      Overrides:
        `hashCode` in class `ResourceComparator`
      Returns:
        a hashcode.

    - #### 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 less than, equal to, or greater than the second.

    - #### dieOnCircularReference

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

      Overrides the version from DataType to recurse on nested ResourceSelector s.
      Overrides:
        `dieOnCircularReference` in class `DataType`
      Parameters:
        `stk` - the Stack of references.
        `p` - the Project to resolve against.
      Throws:
        `BuildException` - on error.