Compare (Apache Ant API)
Date: 2018-07-10

org.apache.tools.ant.types.resources.selectors

## Class Compare

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.types.DataType
    - - org.apache.tools.ant.types.resources.selectors.Compare

- All Implemented Interfaces:
    java.lang.Cloneable, ResourceSelector

      public class Compare
      extends DataType
      implements ResourceSelector

  ResourceSelector that compares against "control" Resource(s) using ResourceComparators.
  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
    `Compare()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(ResourceComparator c)` Add a ResourceComparator to this Compare selector.
    `ResourceCollection` | `createControl()` Create the nested control element.
    `protected void` | `dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p)` Overrides the version from DataType to recurse on nested ResourceComparators.
    `boolean` | `isSelected(Resource r)` Return true if this Resource is selected.
    `void` | `setAgainst(Quantifier against)` Set the quantifier to be used.
    `void` | `setWhen(Comparison when)` Set the comparison to be used.

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

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### Compare

          public Compare()

  - ### Method Detail

    - #### add

          public void add(ResourceComparator c)

      Add a ResourceComparator to this Compare selector. If multiple ResourceComparators are added, they will be processed in LIFO order.
      Parameters:
        `c` - the ResourceComparator to add.

    - #### setAgainst

          public void setAgainst(Quantifier against)

      Set the quantifier to be used. Default "all".
      Parameters:
        `against` - the Quantifier EnumeratedAttribute to use.

    - #### setWhen

          public void setWhen(Comparison when)

      Set the comparison to be used. Default "equal".
      Parameters:
        `when` - the Comparison EnumeratedAttribute to use.

    - #### createControl

          public ResourceCollection createControl()

      Create the nested control element. These are the resources to compare against.
      Returns:
        ResourceCollection.

    - #### isSelected

          public boolean isSelected(Resource r)

      Return true if this Resource is selected.
      Specified by:
        `isSelected` in interface `ResourceSelector`
      Parameters:
        `r` - the Resource to check.
      Returns:
        whether the Resource was selected.

    - #### dieOnCircularReference

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

      Overrides the version from DataType to recurse on nested ResourceComparators.
      Overrides:
        `dieOnCircularReference` in class `DataType`
      Parameters:
        `stk` - the stack of data types to use (recursively).
        `p` - the project to use to dereference the references.
      Throws:
        `BuildException` - on error.