A
- Annotation containing AdviceMode
attributepublic abstract class AdviceModeImportSelector<A extends Annotation> extends Object implements ImportSelector
ImportSelector
implementations that select imports
based on an AdviceMode
value from an annotation (such as the @Enable*
annotations).Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_ADVICE_MODE_ATTRIBUTE_NAME |
Constructor and Description |
---|
AdviceModeImportSelector() |
Modifier and Type | Method and Description |
---|---|
protected String |
getAdviceModeAttributeName()
The name of the
AdviceMode attribute for the annotation specified by the
generic type A . |
protected abstract String[] |
selectImports(AdviceMode adviceMode)
Determine which classes should be imported based on the given
AdviceMode . |
String[] |
selectImports(AnnotationMetadata importingClassMetadata)
Select and return the names of which class(es) should be imported based on
the
AnnotationMetadata of the importing @Configuration class. |
public static final String DEFAULT_ADVICE_MODE_ATTRIBUTE_NAME
protected String getAdviceModeAttributeName()
AdviceMode
attribute for the annotation specified by the
generic type A
. The default is "mode",
but subclasses may override in order to customize.public final String[] selectImports(AnnotationMetadata importingClassMetadata)
AnnotationMetadata
of the importing @Configuration
class.
This implementation resolves the type of annotation from generic metadata and
validates that (a) the annotation is in fact present on the importing
@Configuration
class and (b) that the given annotation has an
advice mode attribute of type
AdviceMode
.
The selectImports(AdviceMode)
method is then invoked, allowing the
concrete implementation to choose imports in a safe and convenient fashion.
selectImports
in interface ImportSelector
IllegalArgumentException
- if expected annotation A
is not present
on the importing @Configuration
class or if selectImports(AdviceMode)
returns null
protected abstract String[] selectImports(AdviceMode adviceMode)
AdviceMode
.
Returning null
from this method indicates that the AdviceMode
could
not be handled or was unknown and that an IllegalArgumentException
should
be thrown.
adviceMode
- the value of the advice mode attribute for the annotation specified via generics.null
if
the given AdviceMode
is unknown.