Package org.springframework.core.annotation

# Enum Class MergedAnnotations.SearchStrategy

java.lang.Object
java.lang.Enum<MergedAnnotations.SearchStrategy>
org.springframework.core.annotation.MergedAnnotations.SearchStrategy

All Implemented Interfaces:
  `Serializable`, `Comparable<MergedAnnotations.SearchStrategy>`, `Constable`

Enclosing interface:
  MergedAnnotations

public static enum MergedAnnotations.SearchStrategy extends Enum<MergedAnnotations.SearchStrategy>
Search strategies supported by `MergedAnnotations.search(SearchStrategy)` as well as `MergedAnnotations.from(AnnotatedElement, SearchStrategy)` and variants of that method.

Each strategy creates a different set of aggregates that will be combined to create the final `MergedAnnotations`.

## Nested Class Summary

## Nested classes/interfaces inherited from class java.lang.Enum

`Enum.EnumDesc<E extends Enum<E>>`

## Enum Constant Summary

Enum Constants
Enum Constant
Description
`DIRECT`
Find only directly declared annotations, without considering `@Inherited` annotations and without searching superclasses or implemented interfaces.
`INHERITED_ANNOTATIONS`
Find all directly declared annotations as well as any `@Inherited` superclass annotations.
`SUPERCLASS`
Find all directly declared and superclass annotations.
`TYPE_HIERARCHY`
Perform a full search of the entire type hierarchy, including superclasses and implemented interfaces.

## Method Summary

Modifier and Type
Method
Description
`static MergedAnnotations.SearchStrategy`
`valueOf(String name)`
Returns the enum constant of this class with the specified name.
`static MergedAnnotations.SearchStrategy[]`
`values()`
Returns an array containing the constants of this enum class, in the order they are declared.

### Methods inherited from class java.lang.Enum

`clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`

## Enum Constant Details

### DIRECT

public static final MergedAnnotations.SearchStrategy DIRECT
Find only directly declared annotations, without considering `@Inherited` annotations and without searching superclasses or implemented interfaces.

### INHERITED_ANNOTATIONS

public static final MergedAnnotations.SearchStrategy INHERITED_ANNOTATIONS
Find all directly declared annotations as well as any `@Inherited` superclass annotations.

This strategy is only really useful when used with `Class` types since the `@Inherited` annotation is ignored for all other annotated elements.

This strategy does not search implemented interfaces.

### SUPERCLASS

public static final MergedAnnotations.SearchStrategy SUPERCLASS
Find all directly declared and superclass annotations.

This strategy is similar to `INHERITED_ANNOTATIONS` except the annotations do not need to be meta-annotated with `@Inherited`.

This strategy does not search implemented interfaces.

### TYPE_HIERARCHY

public static final MergedAnnotations.SearchStrategy TYPE_HIERARCHY
Perform a full search of the entire type hierarchy, including superclasses and implemented interfaces.

When combined with `MergedAnnotations.Search.withEnclosingClasses(Predicate)`, enclosing classes will also be recursively searched if the supplied `Predicate` evaluates to `true`.

Superclass and enclosing class annotations do not need to be meta-annotated with `@Inherited`.

## Method Details

### values

public static MergedAnnotations.SearchStrategy[] values()
Returns an array containing the constants of this enum class, in the order they are declared.

Returns:
  an array containing the constants of this enum class, in the order they are declared

### valueOf

public static MergedAnnotations.SearchStrategy valueOf(String name)
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)

Parameters:
  `name` - the name of the enum constant to be returned.
Returns:
  the enum constant with the specified name
Throws:
  `IllegalArgumentException` - if this enum class has no constant with the specified name
  `NullPointerException` - if the argument is null