public interface  org.eclipse.microprofile.context.spi.ContextManagerProvider extends java.lang.Object
{
public static final java.util.concurrent.atomic.AtomicReference INSTANCE;
public static org.eclipse.microprofile.context.spi.ContextManagerProvider instance()
{
java.lang.IllegalStateException v, v;
java.util.Iterator v;
java.util.ServiceLoader v;
java.util.concurrent.atomic.AtomicReference v, v;
java.lang.Object v, v;
boolean v, v;
v = <org.eclipse.microprofile.context.spi.ContextManagerProvider: java.util.concurrent.atomic.AtomicReference INSTANCE>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v != null goto label;
v = staticinvoke <java.util.ServiceLoader: java.util.ServiceLoader load(java.lang.Class)>(class "Lorg/eclipse/microprofile/context/spi/ContextManagerProvider;");
v = virtualinvoke v.<java.util.ServiceLoader: 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 = <org.eclipse.microprofile.context.spi.ContextManagerProvider: java.util.concurrent.atomic.AtomicReference INSTANCE>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: boolean compareAndSet(java.lang.Object,java.lang.Object)>(null, v);
if v == 0 goto label;
v = v;
goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("ContextManagerProvider already set");
throw v;
label:
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Container has not registered a ContextManagerProvider");
throw v;
label:
return v;
}
public static org.eclipse.microprofile.context.spi.ContextManagerProviderRegistration register(org.eclipse.microprofile.context.spi.ContextManagerProvider) throws java.lang.IllegalStateException
{
java.lang.IllegalStateException v;
org.eclipse.microprofile.context.spi.ContextManagerProviderRegistration v;
org.eclipse.microprofile.context.spi.ContextManagerProvider v;
java.util.concurrent.atomic.AtomicReference v;
boolean v;
v := @parameter: org.eclipse.microprofile.context.spi.ContextManagerProvider;
v = <org.eclipse.microprofile.context.spi.ContextManagerProvider: java.util.concurrent.atomic.AtomicReference INSTANCE>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: boolean compareAndSet(java.lang.Object,java.lang.Object)>(null, v);
if v == 0 goto label;
v = new org.eclipse.microprofile.context.spi.ContextManagerProviderRegistration;
specialinvoke v.<org.eclipse.microprofile.context.spi.ContextManagerProviderRegistration: void <init>(org.eclipse.microprofile.context.spi.ContextManagerProvider)>(v);
return v;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("A ContextManagerProvider implementation has already been registered.");
throw v;
}
public org.eclipse.microprofile.context.spi.ContextManager getContextManager()
{
java.lang.Thread v;
org.eclipse.microprofile.context.spi.ContextManagerProvider v;
java.lang.Object v;
java.security.PrivilegedAction v;
java.lang.SecurityManager v;
org.eclipse.microprofile.context.spi.ContextManager v;
v := @this: org.eclipse.microprofile.context.spi.ContextManagerProvider;
v = staticinvoke <java.lang.System: java.lang.SecurityManager getSecurityManager()>();
if v != null goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
goto label;
label:
v = staticinvoke <org.eclipse.microprofile.context.spi.ContextManagerProvider$lambda_getContextManager_0__3309: java.security.PrivilegedAction bootstrap$()>();
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
label:
v = interfaceinvoke v.<org.eclipse.microprofile.context.spi.ContextManagerProvider: org.eclipse.microprofile.context.spi.ContextManager getContextManager(java.lang.ClassLoader)>(v);
return v;
}
public abstract org.eclipse.microprofile.context.spi.ContextManager getContextManager(java.lang.ClassLoader);
public org.eclipse.microprofile.context.spi.ContextManager$Builder getContextManagerBuilder()
{
java.lang.UnsupportedOperationException v;
org.eclipse.microprofile.context.spi.ContextManagerProvider v;
v := @this: org.eclipse.microprofile.context.spi.ContextManagerProvider;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
public void registerContextManager(org.eclipse.microprofile.context.spi.ContextManager, java.lang.ClassLoader)
{
java.lang.UnsupportedOperationException v;
org.eclipse.microprofile.context.spi.ContextManagerProvider v;
java.lang.ClassLoader v;
org.eclipse.microprofile.context.spi.ContextManager v;
v := @this: org.eclipse.microprofile.context.spi.ContextManagerProvider;
v := @parameter: org.eclipse.microprofile.context.spi.ContextManager;
v := @parameter: java.lang.ClassLoader;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
public void releaseContextManager(org.eclipse.microprofile.context.spi.ContextManager)
{
java.lang.UnsupportedOperationException v;
org.eclipse.microprofile.context.spi.ContextManager v;
org.eclipse.microprofile.context.spi.ContextManagerProvider v;
v := @this: org.eclipse.microprofile.context.spi.ContextManagerProvider;
v := @parameter: org.eclipse.microprofile.context.spi.ContextManager;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
static void <clinit>()
{
java.util.concurrent.atomic.AtomicReference v;
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>()>();
<org.eclipse.microprofile.context.spi.ContextManagerProvider: java.util.concurrent.atomic.AtomicReference INSTANCE> = v;
return;
}
}