Example usage for org.springframework.context.annotation ConfigurationClassUtils isConfigurationCandidate

List of usage examples for org.springframework.context.annotation ConfigurationClassUtils isConfigurationCandidate

Introduction

In this page you can find the example usage for org.springframework.context.annotation ConfigurationClassUtils isConfigurationCandidate.

Prototype

public static boolean isConfigurationCandidate(AnnotationMetadata metadata) 

Source Link

Document

Check the given metadata for a configuration class candidate (or nested component class declared within a configuration/component class).

Usage

From source file:org.springframework.context.annotation.ConfigurationClassParser.java

/**
 * Register member (nested) classes that happen to be configuration classes themselves.
 *//*  ww w  . j av a  2s  .  c om*/
private void processMemberClasses(ConfigurationClass configClass, SourceClass sourceClass) throws IOException {
    Collection<SourceClass> memberClasses = sourceClass.getMemberClasses();
    if (!memberClasses.isEmpty()) {
        List<SourceClass> candidates = new ArrayList<>(memberClasses.size());
        for (SourceClass memberClass : memberClasses) {
            if (ConfigurationClassUtils.isConfigurationCandidate(memberClass.getMetadata()) && !memberClass
                    .getMetadata().getClassName().equals(configClass.getMetadata().getClassName())) {
                candidates.add(memberClass);
            }
        }
        OrderComparator.sort(candidates);
        for (SourceClass candidate : candidates) {
            if (this.importStack.contains(configClass)) {
                this.problemReporter.error(new CircularImportProblem(configClass, this.importStack));
            } else {
                this.importStack.push(configClass);
                try {
                    processConfigurationClass(candidate.asConfigClass(configClass));
                } finally {
                    this.importStack.pop();
                }
            }
        }
    }
}