Class AdviceModeImportSelector<A extends Annotation>
java.lang.Object
org.springframework.context.annotation.AdviceModeImportSelector<A>
- Type Parameters:
A
- annotation containing AdviceMode attribute
- All Implemented Interfaces:
ImportSelector
- Direct Known Subclasses:
AsyncConfigurationSelector
,CachingConfigurationSelector
,TransactionManagementConfigurationSelector
public abstract class AdviceModeImportSelector<A extends Annotation>
extends Object
implements ImportSelector
Convenient base class for
ImportSelector
implementations that select imports
based on an AdviceMode
value from an annotation (such as the @Enable*
annotations).- Since:
- 3.1
- Author:
- Chris Beams
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected String
The name of theAdviceMode
attribute for the annotation specified by the generic typeA
.protected abstract String[]
selectImports
(AdviceMode adviceMode) Determine which classes should be imported based on the givenAdviceMode
.final String[]
selectImports
(AnnotationMetadata importingClassMetadata) 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 typeAdviceMode
.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.context.annotation.ImportSelector
getExclusionFilter
-
Field Details
-
DEFAULT_ADVICE_MODE_ATTRIBUTE_NAME
The default advice mode attribute name.- See Also:
-
-
Constructor Details
-
AdviceModeImportSelector
public AdviceModeImportSelector()
-
-
Method Details
-
getAdviceModeAttributeName
The name of theAdviceMode
attribute for the annotation specified by the generic typeA
. The default is "mode", but subclasses may override in order to customize. -
selectImports
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 typeAdviceMode
.The
selectImports(AdviceMode)
method is then invoked, allowing the concrete implementation to choose imports in a safe and convenient fashion.- Specified by:
selectImports
in interfaceImportSelector
- Returns:
- the class names, or an empty array if none
- Throws:
IllegalArgumentException
- if expected annotationA
is not present on the importing@Configuration
class or ifselectImports(AdviceMode)
returnsnull
-
selectImports
Determine which classes should be imported based on the givenAdviceMode
.Returning
null
from this method indicates that theAdviceMode
could not be handled or was unknown and that anIllegalArgumentException
should be thrown.- Parameters:
adviceMode
- the value of the advice mode attribute for the annotation specified via generics.- Returns:
- array containing classes to import (empty array if none;
null
if the givenAdviceMode
is unknown)
-