public class org.apache.dubbo.config.spring.extension.SpringExtensionFactory extends java.lang.Object implements org.apache.dubbo.common.extension.ExtensionFactory
{
private static final org.apache.dubbo.common.logger.Logger logger;
private static final java.util.Set CONTEXTS;
public void <init>()
{
org.apache.dubbo.config.spring.extension.SpringExtensionFactory v;
v := @this: org.apache.dubbo.config.spring.extension.SpringExtensionFactory;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static void addApplicationContext(org.springframework.context.ApplicationContext)
{
java.util.Set v;
org.springframework.context.ApplicationContext v;
boolean v;
v := @parameter: org.springframework.context.ApplicationContext;
v = <org.apache.dubbo.config.spring.extension.SpringExtensionFactory: java.util.Set CONTEXTS>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = v instanceof org.springframework.context.ConfigurableApplicationContext;
if v == 0 goto label;
interfaceinvoke v.<org.springframework.context.ConfigurableApplicationContext: void registerShutdownHook()>();
label:
return;
}
public static void removeApplicationContext(org.springframework.context.ApplicationContext)
{
java.util.Set v;
org.springframework.context.ApplicationContext v;
v := @parameter: org.springframework.context.ApplicationContext;
v = <org.apache.dubbo.config.spring.extension.SpringExtensionFactory: java.util.Set CONTEXTS>;
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>(v);
return;
}
public static java.util.Set getContexts()
{
java.util.Set v;
v = <org.apache.dubbo.config.spring.extension.SpringExtensionFactory: java.util.Set CONTEXTS>;
return v;
}
public static void clearContexts()
{
java.util.Set v;
v = <org.apache.dubbo.config.spring.extension.SpringExtensionFactory: java.util.Set CONTEXTS>;
interfaceinvoke v.<java.util.Set: void clear()>();
return;
}
public java.lang.Object getExtension(java.lang.Class, java.lang.String)
{
java.util.Iterator v;
java.util.Set v;
org.springframework.context.ApplicationContext v;
org.apache.dubbo.config.spring.extension.SpringExtensionFactory v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v;
boolean v, v, v;
v := @this: org.apache.dubbo.config.spring.extension.SpringExtensionFactory;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.Class: boolean isInterface()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Class: boolean isAnnotationPresent(java.lang.Class)>(class "Lorg/apache/dubbo/common/extension/SPI;");
if v == 0 goto label;
return null;
label:
v = <org.apache.dubbo.config.spring.extension.SpringExtensionFactory: java.util.Set CONTEXTS>;
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <org.apache.dubbo.config.spring.util.DubboBeanUtils: java.lang.Object getOptionalBean(org.springframework.beans.factory.ListableBeanFactory,java.lang.String,java.lang.Class)>(v, v, v);
if v == null goto label;
return v;
label:
return null;
}
static void <clinit>()
{
org.apache.dubbo.common.logger.Logger v;
org.apache.dubbo.common.utils.ConcurrentHashSet v;
v = staticinvoke <org.apache.dubbo.common.logger.LoggerFactory: org.apache.dubbo.common.logger.Logger getLogger(java.lang.Class)>(class "Lorg/apache/dubbo/config/spring/extension/SpringExtensionFactory;");
<org.apache.dubbo.config.spring.extension.SpringExtensionFactory: org.apache.dubbo.common.logger.Logger logger> = v;
v = new org.apache.dubbo.common.utils.ConcurrentHashSet;
specialinvoke v.<org.apache.dubbo.common.utils.ConcurrentHashSet: void <init>()>();
<org.apache.dubbo.config.spring.extension.SpringExtensionFactory: java.util.Set CONTEXTS> = v;
return;
}
}