Class MergedAnnotationPredicates
java.lang.Object
org.springframework.core.annotation.MergedAnnotationPredicates
Predicate implementations that provide various test operations for
 
MergedAnnotations.- Since:
 - 5.2
 - Author:
 - Phillip Webb
 
- 
Method Summary
Modifier and TypeMethodDescriptionstatic <A extends Annotation>
Predicate<MergedAnnotation<A>>firstRunOf(Function<? super MergedAnnotation<A>, ?> valueExtractor) Create a new stateful, single usePredicatethat matches only the first run of an extracted value.static <A extends Annotation>
Predicate<MergedAnnotation<? extends A>>Create a newPredicatethat evaluates totrueif the merged annotation type is contained in the specified array.static <A extends Annotation>
Predicate<MergedAnnotation<? extends A>>Create a newPredicatethat evaluates totrueif the name of the merged annotation type is contained in the specified array.static <A extends Annotation>
Predicate<MergedAnnotation<? extends A>>typeIn(Collection<?> types) Create a newPredicatethat evaluates totrueif the merged annotation type is contained in the specified collection.static <A extends Annotation,K> 
Predicate<MergedAnnotation<A>>unique(Function<? super MergedAnnotation<A>, K> keyExtractor) Create a new stateful, single usePredicatethat matches annotations that are unique based on the extracted key. 
- 
Method Details
- 
typeIn
public static <A extends Annotation> Predicate<MergedAnnotation<? extends A>> typeIn(String... typeNames) Create a newPredicatethat evaluates totrueif the name of the merged annotation type is contained in the specified array.- Type Parameters:
 A- the annotation type- Parameters:
 typeNames- the names that should be matched- Returns:
 - a 
Predicateto test the annotation type 
 - 
typeIn
public static <A extends Annotation> Predicate<MergedAnnotation<? extends A>> typeIn(Class<?>... types) Create a newPredicatethat evaluates totrueif the merged annotation type is contained in the specified array.- Type Parameters:
 A- the annotation type- Parameters:
 types- the types that should be matched- Returns:
 - a 
Predicateto test the annotation type 
 - 
typeIn
public static <A extends Annotation> Predicate<MergedAnnotation<? extends A>> typeIn(Collection<?> types) Create a newPredicatethat evaluates totrueif the merged annotation type is contained in the specified collection.- Type Parameters:
 A- the annotation type- Parameters:
 types- the type names or classes that should be matched- Returns:
 - a 
Predicateto test the annotation type 
 - 
firstRunOf
public static <A extends Annotation> Predicate<MergedAnnotation<A>> firstRunOf(Function<? super MergedAnnotation<A>, ?> valueExtractor) Create a new stateful, single usePredicatethat matches only the first run of an extracted value. For example,MergedAnnotationPredicates.firstRunOf(MergedAnnotation::distance)will match the first annotation, and any subsequent runs that have the same distance.NOTE: This predicate only matches the first run. Once the extracted value changes, the predicate always returns
false. For example, if you have a set of annotations with distances[1, 1, 2, 1]then only the first two will match.- Parameters:
 valueExtractor- function used to extract the value to check- Returns:
 - a 
Predicatethat matches the first run of the extracted values 
 - 
unique
public static <A extends Annotation,K> Predicate<MergedAnnotation<A>> unique(Function<? super MergedAnnotation<A>, K> keyExtractor) Create a new stateful, single usePredicatethat matches annotations that are unique based on the extracted key. For exampleMergedAnnotationPredicates.unique(MergedAnnotation::getType)will match the first time a unique type is encountered.- Parameters:
 keyExtractor- function used to extract the key used to test for uniqueness- Returns:
 - a 
Predicatethat matches a unique annotation based on the extracted key 
 
 -