class org.crac.Core$ResourceWrapper extends java.lang.ref.WeakReference implements java.lang.reflect.InvocationHandler
{
private static final java.util.WeakHashMap weakMap;
private java.lang.Object proxy;
private org.crac.Resource strongRef;
public void setProxy(java.lang.Object)
{
java.lang.Object v;
org.crac.Core$ResourceWrapper v;
v := @this: org.crac.Core$ResourceWrapper;
v := @parameter: java.lang.Object;
v.<org.crac.Core$ResourceWrapper: java.lang.Object proxy> = v;
return;
}
public void <init>(org.crac.Resource)
{
org.crac.Core$ResourceWrapper v;
org.crac.Resource v;
java.util.WeakHashMap v;
v := @this: org.crac.Core$ResourceWrapper;
v := @parameter: org.crac.Resource;
specialinvoke v.<java.lang.ref.WeakReference: void <init>(java.lang.Object)>(v);
v = <org.crac.Core$ResourceWrapper: java.util.WeakHashMap weakMap>;
virtualinvoke v.<java.util.WeakHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v.<org.crac.Core$ResourceWrapper: org.crac.Resource strongRef> = null;
return;
}
public java.lang.Object invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) throws java.lang.Throwable
{
java.lang.Throwable v;
java.lang.Object[] v;
org.crac.Core$ResourceWrapper v;
java.lang.String v, v, v, v, v;
java.lang.reflect.Method v;
boolean v, v, v;
java.lang.reflect.InvocationTargetException v;
java.lang.Object v, v, v;
v := @this: org.crac.Core$ResourceWrapper;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.reflect.Method;
v := @parameter: java.lang.Object[];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v = "beforeCheckpoint";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
specialinvoke v.<org.crac.Core$ResourceWrapper: void beforeCheckpoint()>();
return null;
label:
v = "afterRestore";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
specialinvoke v.<org.crac.Core$ResourceWrapper: void afterRestore()>();
return null;
label:
v = "toString";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.crac.Core$ResourceWrapper: java.lang.String toString()>();
return v;
label:
v = virtualinvoke v.<org.crac.Core$ResourceWrapper: java.lang.Object get()>();
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
label:
return v;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.reflect.InvocationTargetException: java.lang.Throwable getCause()>();
throw v;
catch java.lang.reflect.InvocationTargetException from label to label with label;
}
private void beforeCheckpoint() throws java.lang.Exception
{
java.lang.Object v;
org.crac.Context v;
org.crac.Core$ResourceWrapper v;
v := @this: org.crac.Core$ResourceWrapper;
v = virtualinvoke v.<org.crac.Core$ResourceWrapper: java.lang.Object get()>();
v.<org.crac.Core$ResourceWrapper: org.crac.Resource strongRef> = v;
if v == null goto label;
v = <org.crac.Core: org.crac.Context globalContextWrapper>;
interfaceinvoke v.<org.crac.Resource: void beforeCheckpoint(org.crac.Context)>(v);
label:
return;
}
private void afterRestore() throws java.lang.Exception
{
java.lang.Object v;
org.crac.Context v;
org.crac.Core$ResourceWrapper v;
v := @this: org.crac.Core$ResourceWrapper;
v = virtualinvoke v.<org.crac.Core$ResourceWrapper: java.lang.Object get()>();
v.<org.crac.Core$ResourceWrapper: org.crac.Resource strongRef> = null;
if v == null goto label;
v = <org.crac.Core: org.crac.Context globalContextWrapper>;
interfaceinvoke v.<org.crac.Resource: void afterRestore(org.crac.Context)>(v);
label:
return;
}
public java.lang.String toString()
{
org.crac.Core$ResourceWrapper v;
java.lang.Object v;
java.lang.String v, v;
v := @this: org.crac.Core$ResourceWrapper;
v = virtualinvoke v.<org.crac.Core$ResourceWrapper: java.lang.Object get()>();
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("org.crac.ResourceWrapper[\u]");
return v;
}
static void <clinit>()
{
java.util.WeakHashMap v;
v = new java.util.WeakHashMap;
specialinvoke v.<java.util.WeakHashMap: void <init>()>();
<org.crac.Core$ResourceWrapper: java.util.WeakHashMap weakMap> = v;
return;
}
}