org.gradle.api.attributes

## Interface MultipleCandidatesDetails<T>

- Type Parameters:
    `T` - the concrete type of the attribute

      @Incubating
      public interface MultipleCandidatesDetails<T>

  Provides context about candidates for an attribute. In particular, this class gives access to the value of an attribute as found on the consumer, but also a list of candidates for the same attribute on the producer side. It is possible to determine what to do in case an attribute is missing, or unknown, on both the consumer and producer sides.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `closestMatch(AttributeValue<T> candidate)` Calling this method indicates that the candidate is the closest match.
    `Set<AttributeValue<T>>` | `getCandidateValues()` A set of candidate values.
    `AttributeValue<T>` | `getConsumerValue()` The value of the attribute on the consumer side.

- - ### Method Detail

    - #### getConsumerValue

          AttributeValue<T> getConsumerValue()

      The value of the attribute on the consumer side. All possible outcomes are valid (present, missing, unknown)
      Returns:
        the value of the attribute as found on the consumer side

    - #### getCandidateValues

          Set<AttributeValue<T>> getCandidateValues()

      A set of candidate values.
      Returns:
        the set of candidates

    - #### closestMatch

          void closestMatch(AttributeValue<T> candidate)

      Calling this method indicates that the candidate is the closest match. It is allowed to call this method several times with different values, in which case it indicates that multiple candidates are equally compatible.
      Parameters:
        `candidate` - the closest match