org.springframework.context.annotation

Class AdviceModeImportSelector<A extends java.lang.annotation.Annotation>

  • java.lang.Object
    • org.springframework.context.annotation.AdviceModeImportSelector<A>
    • Field Detail

      • DEFAULT_ADVICE_MODE_ATTRIBUTE_NAME

        public static final java.lang.String DEFAULT_ADVICE_MODE_ATTRIBUTE_NAME
        The default advice mode attribute name.
        See Also:
        Constant Field Values
    • Constructor Detail

      • AdviceModeImportSelector

        public AdviceModeImportSelector()
    • Method Detail

      • getAdviceModeAttributeName

        protected java.lang.String getAdviceModeAttributeName()
        The name of the AdviceMode attribute for the annotation specified by the generic type A. The default is "mode", but subclasses may override in order to customize.
      • selectImports

        public final java.lang.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 type AdviceMode.

        The selectImports(AdviceMode) method is then invoked, allowing the concrete implementation to choose imports in a safe and convenient fashion.

        Specified by:
        selectImports in interface ImportSelector
        Throws:
        java.lang.IllegalArgumentException - if expected annotation A is not present on the importing @Configuration class or if selectImports(AdviceMode) returns null
      • selectImports

        @Nullable
        protected abstract java.lang.String[] selectImports(AdviceMode adviceMode)
        Determine which classes should be imported based on the given AdviceMode.

        Returning null from this method indicates that the AdviceMode could not be handled or was unknown and that an IllegalArgumentException 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 given AdviceMode is unknown)