Package org.gradle.api.attributes

# Interface AttributeMatchingStrategy<T>

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

@Incubating public interface AttributeMatchingStrategy<T>
An attribute matching strategy is responsible for providing information about how an `Attribute` is matched during dependency resolution. In particular, it will tell if a value, provided by a consumer, is compatible with a value provided by a candidate.

Since:
  3.3

## Method Summary

Modifier and Type
Method
Description
`CompatibilityRuleChain<T>`
`getCompatibilityRules()`
`DisambiguationRuleChain<T>`
`getDisambiguationRules()`
`void`
`ordered(boolean pickLast, Comparator<T> comparator)`
A short-hand way to define both a compatibility rule and a disambiguation rule based on an order defined by the provided `Comparator`.
`void`
`ordered(Comparator<T> comparator)`
A short-hand way to define both a compatibility rule and a disambiguation rule based on an order defined by the provided `Comparator`.

## Method Details

### getCompatibilityRules

CompatibilityRuleChain<T> getCompatibilityRules()

### getDisambiguationRules

DisambiguationRuleChain<T> getDisambiguationRules()

### ordered

void ordered(Comparator<T> comparator)

A short-hand way to define both a compatibility rule and a disambiguation rule based on an order defined by the provided `Comparator`.

All provider values which are lower than or equal the consumer value are compatible. When disambiguating, it will pick the highest compatible value.

Parameters:
  `comparator` - the comparator to use for compatibility and disambiguation

### ordered

void ordered(boolean pickLast, Comparator<T> comparator)

A short-hand way to define both a compatibility rule and a disambiguation rule based on an order defined by the provided `Comparator`.

All provider values which are lower than or equal the consumer value are compatible.

Parameters:
  `pickLast` - tells if, for disambiguation, we should pick the last value in order instead of the first one
  `comparator` - the comparator to use for compatibility and disambiguation