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

## Class ResourceComparator

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

- All Implemented Interfaces:
    java.lang.Cloneable, java.util.Comparator<Resource>
  Direct Known Subclasses:
    Content, Date, DelegatedResourceComparator, Exists, FileSystem, Name, Reverse, Size, Type

      public abstract class ResourceComparator
      extends DataType
      implements java.util.Comparator<Resource>

  Abstract Resource Comparator.
  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
    `ResourceComparator()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `compare(Resource foo, Resource bar)` Compare two objects.
    `boolean` | `equals(java.lang.Object o)` Test for equality with this ResourceComparator.
    `int` | `hashCode()` Hashcode based on the rules for equality.
    `protected abstract int` | `resourceCompare(Resource foo, Resource bar)` Compare two Resources.

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

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

    - #### ResourceComparator

          public ResourceComparator()

  - ### Method Detail

    - #### compare

          public final int compare(Resource foo,
                                   Resource bar)

      Compare two objects.
      Specified by:
        `compare` in interface `java.util.Comparator<Resource>`
      Parameters:
        `foo` - the first Object.
        `bar` - the second Object.
      Returns:
        a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
      Throws:
        `java.lang.ClassCastException` - if either argument is null.

    - #### equals

          public boolean equals(java.lang.Object o)

      Test for equality with this ResourceComparator.
      Specified by:
        `equals` in interface `java.util.Comparator<Resource>`
      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `o` - the Object to compare against.
      Returns:
        true if the specified Object equals this one.

    - #### hashCode

          public int hashCode()

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

    - #### resourceCompare

          protected abstract int resourceCompare(Resource foo,
                                                 Resource bar)

      Compare two Resources.
      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.