public class org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider extends java.lang.Object implements org.springframework.core.env.EnvironmentCapable, org.springframework.context.ResourceLoaderAware
{
static final java.lang.String DEFAULT_RESOURCE_PATTERN;
protected final org.apache.commons.logging.Log logger;
private java.lang.String resourcePattern;
private final java.util.List includeFilters;
private final java.util.List excludeFilters;
private org.springframework.core.env.Environment environment;
private org.springframework.context.'annotation'.ConditionEvaluator conditionEvaluator;
private org.springframework.core.io.support.ResourcePatternResolver resourcePatternResolver;
private org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory;
protected void <init>()
{
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
java.lang.Class v;
org.apache.commons.logging.Log v;
java.util.LinkedList v, v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(v);
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.apache.commons.logging.Log logger> = v;
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.lang.String resourcePattern> = "**/*.class";
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.util.List includeFilters> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.util.List excludeFilters> = v;
return;
}
public void <init>(boolean)
{
org.springframework.core.env.StandardEnvironment v;
boolean v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: boolean;
v = new org.springframework.core.env.StandardEnvironment;
specialinvoke v.<org.springframework.core.env.StandardEnvironment: void <init>()>();
specialinvoke v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: void <init>(boolean,org.springframework.core.env.Environment)>(v, v);
return;
}
public void <init>(boolean, org.springframework.core.env.Environment)
{
org.springframework.core.env.Environment v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
java.lang.Class v;
org.apache.commons.logging.Log v;
java.util.LinkedList v, v;
boolean v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: boolean;
v := @parameter: org.springframework.core.env.Environment;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(v);
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.apache.commons.logging.Log logger> = v;
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.lang.String resourcePattern> = "**/*.class";
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.util.List includeFilters> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.util.List excludeFilters> = v;
if v == 0 goto label;
virtualinvoke v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: void registerDefaultFilters()>();
label:
virtualinvoke v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: void setEnvironment(org.springframework.core.env.Environment)>(v);
virtualinvoke v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: void setResourceLoader(org.springframework.core.io.ResourceLoader)>(null);
return;
}
public void setResourcePattern(java.lang.String)
{
java.lang.String v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: java.lang.String;
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "\'resourcePattern\' must not be null");
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.lang.String resourcePattern> = v;
return;
}
public void addIncludeFilter(org.springframework.core.type.filter.TypeFilter)
{
java.util.List v;
org.springframework.core.type.filter.TypeFilter v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: org.springframework.core.type.filter.TypeFilter;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.util.List includeFilters>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
public void addExcludeFilter(org.springframework.core.type.filter.TypeFilter)
{
java.util.List v;
org.springframework.core.type.filter.TypeFilter v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: org.springframework.core.type.filter.TypeFilter;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.util.List excludeFilters>;
interfaceinvoke v.<java.util.List: void add(int,java.lang.Object)>(0, v);
return;
}
public void resetFilters(boolean)
{
java.util.List v, v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
boolean v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: boolean;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.util.List includeFilters>;
interfaceinvoke v.<java.util.List: void clear()>();
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.util.List excludeFilters>;
interfaceinvoke v.<java.util.List: void clear()>();
if v == 0 goto label;
virtualinvoke v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: void registerDefaultFilters()>();
label:
return;
}
protected void registerDefaultFilters()
{
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
java.util.List v, v, v;
java.lang.Class v, v, v;
java.lang.ClassNotFoundException v, v;
org.apache.commons.logging.Log v, v;
java.lang.ClassLoader v;
org.springframework.core.type.filter.AnnotationTypeFilter v, v, v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.util.List includeFilters>;
v = new org.springframework.core.type.filter.AnnotationTypeFilter;
specialinvoke v.<org.springframework.core.type.filter.AnnotationTypeFilter: void <init>(java.lang.Class)>(class "Lorg/springframework/stereotype/Component;");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = class "Lorg/springframework/context/annotation/ClassPathScanningCandidateComponentProvider;";
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
label:
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.util.List includeFilters>;
v = new org.springframework.core.type.filter.AnnotationTypeFilter;
v = staticinvoke <org.springframework.util.ClassUtils: java.lang.Class forName(java.lang.String,java.lang.ClassLoader)>("javax.annotation.ManagedBean", v);
specialinvoke v.<org.springframework.core.type.filter.AnnotationTypeFilter: void <init>(java.lang.Class,boolean)>(v, 0);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>("JSR-250 \'javax.annotation.ManagedBean\' found and supported for component scanning");
label:
goto label;
label:
v := @caughtexception;
label:
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.util.List includeFilters>;
v = new org.springframework.core.type.filter.AnnotationTypeFilter;
v = staticinvoke <org.springframework.util.ClassUtils: java.lang.Class forName(java.lang.String,java.lang.ClassLoader)>("javax.inject.Named", v);
specialinvoke v.<org.springframework.core.type.filter.AnnotationTypeFilter: void <init>(java.lang.Class,boolean)>(v, 0);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>("JSR-330 \'javax.inject.Named\' annotation found and supported for component scanning");
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.ClassNotFoundException from label to label with label;
}
public void setEnvironment(org.springframework.core.env.Environment)
{
org.springframework.core.env.Environment v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: org.springframework.core.env.Environment;
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "Environment must not be null");
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.env.Environment environment> = v;
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.context.'annotation'.ConditionEvaluator conditionEvaluator> = null;
return;
}
public final org.springframework.core.env.Environment getEnvironment()
{
org.springframework.core.env.Environment v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.env.Environment environment>;
return v;
}
protected org.springframework.beans.factory.support.BeanDefinitionRegistry getRegistry()
{
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
return null;
}
public void setResourceLoader(org.springframework.core.io.ResourceLoader)
{
org.springframework.core.io.ResourceLoader v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
org.springframework.core.type.classreading.CachingMetadataReaderFactory v;
org.springframework.core.io.support.ResourcePatternResolver v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: org.springframework.core.io.ResourceLoader;
v = staticinvoke <org.springframework.core.io.support.ResourcePatternUtils: org.springframework.core.io.support.ResourcePatternResolver getResourcePatternResolver(org.springframework.core.io.ResourceLoader)>(v);
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.io.support.ResourcePatternResolver resourcePatternResolver> = v;
v = new org.springframework.core.type.classreading.CachingMetadataReaderFactory;
specialinvoke v.<org.springframework.core.type.classreading.CachingMetadataReaderFactory: void <init>(org.springframework.core.io.ResourceLoader)>(v);
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory> = v;
return;
}
public final org.springframework.core.io.ResourceLoader getResourceLoader()
{
org.springframework.core.io.support.ResourcePatternResolver v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.io.support.ResourcePatternResolver resourcePatternResolver>;
return v;
}
public void setMetadataReaderFactory(org.springframework.core.type.classreading.MetadataReaderFactory)
{
org.springframework.core.type.classreading.MetadataReaderFactory v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: org.springframework.core.type.classreading.MetadataReaderFactory;
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory> = v;
return;
}
public final org.springframework.core.type.classreading.MetadataReaderFactory getMetadataReaderFactory()
{
org.springframework.core.type.classreading.MetadataReaderFactory v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory>;
return v;
}
public java.util.Set findCandidateComponents(java.lang.String)
{
org.springframework.core.type.classreading.MetadataReader v;
boolean v, v, v, v, v;
org.springframework.core.io.Resource v;
org.springframework.core.io.Resource[] v;
java.lang.Throwable v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
java.util.LinkedHashSet v;
org.springframework.context.'annotation'.ScannedGenericBeanDefinition v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
java.io.IOException v;
org.springframework.beans.factory.BeanDefinitionStoreException v, v;
org.springframework.core.type.classreading.MetadataReaderFactory v;
org.apache.commons.logging.Log v, v, v, v, v, v, v;
org.springframework.core.io.support.ResourcePatternResolver v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: java.lang.String;
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
label:
v = virtualinvoke v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.lang.String resolveBasePackage(java.lang.String)>(v);
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.lang.String resourcePattern>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("classpath*:\u0001/\u0001");
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.io.support.ResourcePatternResolver resourcePatternResolver>;
v = interfaceinvoke v.<org.springframework.core.io.support.ResourcePatternResolver: org.springframework.core.io.Resource[] getResources(java.lang.String)>(v);
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isTraceEnabled()>();
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v == 0 goto label;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.springframework.core.io.Resource)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Scanning \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void trace(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<org.springframework.core.io.Resource: boolean isReadable()>();
if v == 0 goto label;
label:
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory>;
v = interfaceinvoke v.<org.springframework.core.type.classreading.MetadataReaderFactory: org.springframework.core.type.classreading.MetadataReader getMetadataReader(org.springframework.core.io.Resource)>(v);
v = virtualinvoke v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: boolean isCandidateComponent(org.springframework.core.type.classreading.MetadataReader)>(v);
if v == 0 goto label;
v = new org.springframework.context.'annotation'.ScannedGenericBeanDefinition;
specialinvoke v.<org.springframework.context.'annotation'.ScannedGenericBeanDefinition: void <init>(org.springframework.core.type.classreading.MetadataReader)>(v);
virtualinvoke v.<org.springframework.context.'annotation'.ScannedGenericBeanDefinition: void setResource(org.springframework.core.io.Resource)>(v);
virtualinvoke v.<org.springframework.context.'annotation'.ScannedGenericBeanDefinition: void setSource(java.lang.Object)>(v);
v = virtualinvoke v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: boolean isCandidateComponent(org.springframework.beans.factory.'annotation'.AnnotatedBeanDefinition)>(v);
if v == 0 goto label;
if v == 0 goto label;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.springframework.core.io.Resource)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Identified candidate component class: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
if v == 0 goto label;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.springframework.core.io.Resource)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Ignored because not a concrete top-level class: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
goto label;
label:
if v == 0 goto label;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.springframework.core.io.Resource)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Ignored because not matching any filter: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void trace(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new org.springframework.beans.factory.BeanDefinitionStoreException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.springframework.core.io.Resource)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to read candidate component class: \u0001");
specialinvoke v.<org.springframework.beans.factory.BeanDefinitionStoreException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
if v == 0 goto label;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.springframework.core.io.Resource)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Ignored because not readable: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void trace(java.lang.Object)>(v);
label:
v = v + 1;
goto label;
label:
v := @caughtexception;
v = new org.springframework.beans.factory.BeanDefinitionStoreException;
specialinvoke v.<org.springframework.beans.factory.BeanDefinitionStoreException: void <init>(java.lang.String,java.lang.Throwable)>("I/O failure during classpath scanning", v);
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
}
protected java.lang.String resolveBasePackage(java.lang.String)
{
org.springframework.core.env.Environment v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
java.lang.String v, v, v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: java.lang.String;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.env.Environment environment>;
v = interfaceinvoke v.<org.springframework.core.env.Environment: java.lang.String resolveRequiredPlaceholders(java.lang.String)>(v);
v = staticinvoke <org.springframework.util.ClassUtils: java.lang.String convertClassNameToResourcePath(java.lang.String)>(v);
return v;
}
protected boolean isCandidateComponent(org.springframework.core.type.classreading.MetadataReader) throws java.io.IOException
{
java.util.Iterator v, v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
java.util.List v, v;
org.springframework.core.type.classreading.MetadataReaderFactory v, v;
org.springframework.core.type.classreading.MetadataReader v;
java.lang.Object v, v;
boolean v, v, v, v, v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: org.springframework.core.type.classreading.MetadataReader;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.util.List excludeFilters>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory>;
v = interfaceinvoke v.<org.springframework.core.type.filter.TypeFilter: boolean match(org.springframework.core.type.classreading.MetadataReader,org.springframework.core.type.classreading.MetadataReaderFactory)>(v, v);
if v == 0 goto label;
return 0;
label:
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: java.util.List includeFilters>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory>;
v = interfaceinvoke v.<org.springframework.core.type.filter.TypeFilter: boolean match(org.springframework.core.type.classreading.MetadataReader,org.springframework.core.type.classreading.MetadataReaderFactory)>(v, v);
if v == 0 goto label;
v = specialinvoke v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: boolean isConditionMatch(org.springframework.core.type.classreading.MetadataReader)>(v);
return v;
label:
return 0;
}
private boolean isConditionMatch(org.springframework.core.type.classreading.MetadataReader)
{
org.springframework.core.io.ResourceLoader v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
org.springframework.core.type.AnnotationMetadata v;
org.springframework.beans.factory.support.BeanDefinitionRegistry v;
org.springframework.context.'annotation'.ConditionEvaluator v, v, v;
org.springframework.core.env.Environment v;
org.springframework.core.type.classreading.MetadataReader v;
boolean v, v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: org.springframework.core.type.classreading.MetadataReader;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.context.'annotation'.ConditionEvaluator conditionEvaluator>;
if v != null goto label;
v = new org.springframework.context.'annotation'.ConditionEvaluator;
v = virtualinvoke v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.beans.factory.support.BeanDefinitionRegistry getRegistry()>();
v = virtualinvoke v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.env.Environment getEnvironment()>();
v = virtualinvoke v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.io.ResourceLoader getResourceLoader()>();
specialinvoke v.<org.springframework.context.'annotation'.ConditionEvaluator: void <init>(org.springframework.beans.factory.support.BeanDefinitionRegistry,org.springframework.core.env.Environment,org.springframework.core.io.ResourceLoader)>(v, v, v);
v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.context.'annotation'.ConditionEvaluator conditionEvaluator> = v;
label:
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.context.'annotation'.ConditionEvaluator conditionEvaluator>;
v = interfaceinvoke v.<org.springframework.core.type.classreading.MetadataReader: org.springframework.core.type.AnnotationMetadata getAnnotationMetadata()>();
v = virtualinvoke v.<org.springframework.context.'annotation'.ConditionEvaluator: boolean shouldSkip(org.springframework.core.type.AnnotatedTypeMetadata)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected boolean isCandidateComponent(org.springframework.beans.factory.'annotation'.AnnotatedBeanDefinition)
{
org.springframework.beans.factory.'annotation'.AnnotatedBeanDefinition v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
org.springframework.core.type.AnnotationMetadata v;
java.lang.Class v;
java.lang.String v;
boolean v, v, v, v, v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v := @parameter: org.springframework.beans.factory.'annotation'.AnnotatedBeanDefinition;
v = interfaceinvoke v.<org.springframework.beans.factory.'annotation'.AnnotatedBeanDefinition: org.springframework.core.type.AnnotationMetadata getMetadata()>();
v = interfaceinvoke v.<org.springframework.core.type.AnnotationMetadata: boolean isIndependent()>();
if v == 0 goto label;
v = interfaceinvoke v.<org.springframework.core.type.AnnotationMetadata: boolean isConcrete()>();
if v != 0 goto label;
v = interfaceinvoke v.<org.springframework.core.type.AnnotationMetadata: boolean isAbstract()>();
if v == 0 goto label;
v = class "Lorg/springframework/beans/factory/annotation/Lookup;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<org.springframework.core.type.AnnotationMetadata: boolean hasAnnotatedMethods(java.lang.String)>(v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void clearCache()
{
org.springframework.core.type.classreading.MetadataReaderFactory v, v;
org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider v;
boolean v;
v := @this: org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory>;
v = v instanceof org.springframework.core.type.classreading.CachingMetadataReaderFactory;
if v == 0 goto label;
v = v.<org.springframework.context.'annotation'.ClassPathScanningCandidateComponentProvider: org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory>;
virtualinvoke v.<org.springframework.core.type.classreading.CachingMetadataReaderFactory: void clearCache()>();
label:
return;
}
}