public class org.glassfish.cdi.transaction.TransactionScopedContextImpl extends java.lang.Object implements jakarta.enterprise.context.spi.Context
{
public static final java.lang.String TRANSACTION_SYNCHRONIZATION_REGISTRY_JNDI_NAME;
java.util.concurrent.ConcurrentHashMap beansPerTransaction;
public void <init>()
{
java.util.concurrent.ConcurrentHashMap v;
org.glassfish.cdi.transaction.TransactionScopedContextImpl v;
v := @this: org.glassfish.cdi.transaction.TransactionScopedContextImpl;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.glassfish.cdi.transaction.TransactionScopedContextImpl: java.util.concurrent.ConcurrentHashMap beansPerTransaction> = v;
return;
}
public java.util.concurrent.ConcurrentHashMap getBeansPerTransaction()
{
java.util.concurrent.ConcurrentHashMap v;
org.glassfish.cdi.transaction.TransactionScopedContextImpl v;
v := @this: org.glassfish.cdi.transaction.TransactionScopedContextImpl;
v = v.<org.glassfish.cdi.transaction.TransactionScopedContextImpl: java.util.concurrent.ConcurrentHashMap beansPerTransaction>;
return v;
}
public java.lang.Class getScope()
{
org.glassfish.cdi.transaction.TransactionScopedContextImpl v;
v := @this: org.glassfish.cdi.transaction.TransactionScopedContextImpl;
return class "Ljakarta/transaction/TransactionScoped;";
}
public java.lang.Object get(jakarta.enterprise.context.spi.Contextual, jakarta.enterprise.context.spi.CreationalContext)
{
jakarta.transaction.TransactionSynchronizationRegistry v;
org.glassfish.cdi.transaction.TransactionScopedContextImpl v;
java.lang.Object v, v;
jakarta.enterprise.context.spi.CreationalContext v;
jakarta.enterprise.context.spi.Contextual v;
v := @this: org.glassfish.cdi.transaction.TransactionScopedContextImpl;
v := @parameter: jakarta.enterprise.context.spi.Contextual;
v := @parameter: jakarta.enterprise.context.spi.CreationalContext;
v = specialinvoke v.<org.glassfish.cdi.transaction.TransactionScopedContextImpl: jakarta.transaction.TransactionSynchronizationRegistry getTransactionSynchronizationRegistry()>();
v = specialinvoke v.<org.glassfish.cdi.transaction.TransactionScopedContextImpl: java.lang.Object getContextualId(jakarta.enterprise.context.spi.Contextual)>(v);
v = specialinvoke v.<org.glassfish.cdi.transaction.TransactionScopedContextImpl: java.lang.Object getContextualInstance(java.lang.Object,jakarta.transaction.TransactionSynchronizationRegistry)>(v, v);
if v != null goto label;
v = specialinvoke v.<org.glassfish.cdi.transaction.TransactionScopedContextImpl: java.lang.Object createContextualInstance(jakarta.enterprise.context.spi.Contextual,java.lang.Object,jakarta.enterprise.context.spi.CreationalContext,jakarta.transaction.TransactionSynchronizationRegistry)>(v, v, v, v);
label:
return v;
}
public java.lang.Object get(jakarta.enterprise.context.spi.Contextual)
{
jakarta.transaction.TransactionSynchronizationRegistry v;
org.glassfish.cdi.transaction.TransactionScopedContextImpl v;
java.lang.Object v, v;
jakarta.enterprise.context.spi.Contextual v;
v := @this: org.glassfish.cdi.transaction.TransactionScopedContextImpl;
v := @parameter: jakarta.enterprise.context.spi.Contextual;
v = specialinvoke v.<org.glassfish.cdi.transaction.TransactionScopedContextImpl: java.lang.Object getContextualId(jakarta.enterprise.context.spi.Contextual)>(v);
v = specialinvoke v.<org.glassfish.cdi.transaction.TransactionScopedContextImpl: jakarta.transaction.TransactionSynchronizationRegistry getTransactionSynchronizationRegistry()>();
v = specialinvoke v.<org.glassfish.cdi.transaction.TransactionScopedContextImpl: java.lang.Object getContextualInstance(java.lang.Object,jakarta.transaction.TransactionSynchronizationRegistry)>(v, v);
return v;
}
public boolean isActive()
{
java.lang.Throwable v;
org.glassfish.cdi.transaction.TransactionScopedContextImpl v;
v := @this: org.glassfish.cdi.transaction.TransactionScopedContextImpl;
label:
specialinvoke v.<org.glassfish.cdi.transaction.TransactionScopedContextImpl: jakarta.transaction.TransactionSynchronizationRegistry getTransactionSynchronizationRegistry()>();
label:
return 1;
label:
v := @caughtexception;
return 0;
catch jakarta.enterprise.context.ContextNotActiveException from label to label with label;
}
private java.lang.Object getContextualId(jakarta.enterprise.context.spi.Contextual)
{
org.glassfish.cdi.transaction.TransactionScopedContextImpl v;
java.lang.String v;
jakarta.enterprise.context.spi.Contextual v;
boolean v;
v := @this: org.glassfish.cdi.transaction.TransactionScopedContextImpl;
v := @parameter: jakarta.enterprise.context.spi.Contextual;
v = v instanceof jakarta.enterprise.inject.spi.PassivationCapable;
if v == 0 goto label;
v = interfaceinvoke v.<jakarta.enterprise.inject.spi.PassivationCapable: java.lang.String getId()>();
return v;
label:
return v;
}
private java.lang.Object createContextualInstance(jakarta.enterprise.context.spi.Contextual, java.lang.Object, jakarta.enterprise.context.spi.CreationalContext, jakarta.transaction.TransactionSynchronizationRegistry)
{
jakarta.transaction.TransactionSynchronizationRegistry v;
org.glassfish.cdi.transaction.TransactionScopedContextImpl v;
java.util.concurrent.ConcurrentHashMap v, v;
java.util.Set v;
jakarta.enterprise.context.spi.CreationalContext v;
jakarta.enterprise.context.spi.Contextual v;
java.util.HashSet v;
java.lang.Object v, v, v;
org.glassfish.cdi.transaction.TransactionScopedBean v;
v := @this: org.glassfish.cdi.transaction.TransactionScopedContextImpl;
v := @parameter: jakarta.enterprise.context.spi.Contextual;
v := @parameter: java.lang.Object;
v := @parameter: jakarta.enterprise.context.spi.CreationalContext;
v := @parameter: jakarta.transaction.TransactionSynchronizationRegistry;
v = new org.glassfish.cdi.transaction.TransactionScopedBean;
specialinvoke v.<org.glassfish.cdi.transaction.TransactionScopedBean: void <init>(jakarta.enterprise.context.spi.Contextual,jakarta.enterprise.context.spi.CreationalContext,org.glassfish.cdi.transaction.TransactionScopedContextImpl)>(v, v, v);
interfaceinvoke v.<jakarta.transaction.TransactionSynchronizationRegistry: void putResource(java.lang.Object,java.lang.Object)>(v, v);
interfaceinvoke v.<jakarta.transaction.TransactionSynchronizationRegistry: void registerInterposedSynchronization(jakarta.transaction.Synchronization)>(v);
v = v.<org.glassfish.cdi.transaction.TransactionScopedContextImpl: java.util.concurrent.ConcurrentHashMap beansPerTransaction>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = staticinvoke <java.util.Collections: java.util.Set synchronizedSet(java.util.Set)>(v);
goto label;
label:
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = staticinvoke <java.util.Collections: java.util.Set synchronizedSet(java.util.Set)>(v);
staticinvoke <org.glassfish.cdi.transaction.TransactionScopedCDIUtil: void fireEvent(java.lang.String)>("INITIALIZED_EVENT");
v = v.<org.glassfish.cdi.transaction.TransactionScopedContextImpl: java.util.concurrent.ConcurrentHashMap beansPerTransaction>;
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.glassfish.cdi.transaction.TransactionScopedBean: java.lang.Object getContextualInstance()>();
return v;
}
private java.lang.Object getContextualInstance(java.lang.Object, jakarta.transaction.TransactionSynchronizationRegistry)
{
jakarta.transaction.TransactionSynchronizationRegistry v;
org.glassfish.cdi.transaction.TransactionScopedContextImpl v;
java.lang.Object v, v, v;
v := @this: org.glassfish.cdi.transaction.TransactionScopedContextImpl;
v := @parameter: java.lang.Object;
v := @parameter: jakarta.transaction.TransactionSynchronizationRegistry;
v = interfaceinvoke v.<jakarta.transaction.TransactionSynchronizationRegistry: java.lang.Object getResource(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<org.glassfish.cdi.transaction.TransactionScopedBean: java.lang.Object getContextualInstance()>();
return v;
label:
return null;
}
private jakarta.transaction.TransactionSynchronizationRegistry getTransactionSynchronizationRegistry()
{
javax.naming.InitialContext v;
jakarta.enterprise.context.ContextNotActiveException v, v;
org.glassfish.cdi.transaction.TransactionScopedContextImpl v;
int v;
java.lang.Object v;
javax.naming.NamingException v;
v := @this: org.glassfish.cdi.transaction.TransactionScopedContextImpl;
label:
v = new javax.naming.InitialContext;
specialinvoke v.<javax.naming.InitialContext: void <init>()>();
v = virtualinvoke v.<javax.naming.InitialContext: java.lang.Object lookup(java.lang.String)>("java:comp/TransactionSynchronizationRegistry");
label:
goto label;
label:
v := @caughtexception;
v = new jakarta.enterprise.context.ContextNotActiveException;
specialinvoke v.<jakarta.enterprise.context.ContextNotActiveException: void <init>(java.lang.String,java.lang.Throwable)>("Could not get TransactionSynchronizationRegistry", v);
throw v;
label:
v = interfaceinvoke v.<jakarta.transaction.TransactionSynchronizationRegistry: int getTransactionStatus()>();
if v == 0 goto label;
if v == 1 goto label;
if v == 2 goto label;
if v == 5 goto label;
if v == 7 goto label;
if v == 8 goto label;
if v != 9 goto label;
label:
return v;
label:
v = new jakarta.enterprise.context.ContextNotActiveException;
specialinvoke v.<jakarta.enterprise.context.ContextNotActiveException: void <init>(java.lang.String)>("TransactionSynchronizationRegistry status is not active.");
throw v;
catch javax.naming.NamingException from label to label with label;
}
}