public interface  org.junit.jupiter.api.extension.TestInstancePreDestroyCallback extends java.lang.Object implements org.junit.jupiter.api.extension.Extension
{
public abstract void preDestroyTestInstance(org.junit.jupiter.api.extension.ExtensionContext) throws java.lang.Exception;
public static void preDestroyTestInstances(org.junit.jupiter.api.extension.ExtensionContext, java.util.function.Consumer)
{
org.junit.jupiter.api.extension.ExtensionContext v;
java.util.function.Function v;
org.junit.jupiter.api.extension.TestInstances v;
java.util.ArrayList v;
java.util.function.Consumer v, v;
java.util.List v;
java.util.Optional v, v, v;
java.lang.Object v, v;
boolean v;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v := @parameter: java.util.function.Consumer;
v = new java.util.ArrayList;
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: org.junit.jupiter.api.extension.TestInstances getRequiredTestInstances()>();
v = interfaceinvoke v.<org.junit.jupiter.api.extension.TestInstances: java.util.List getAllInstances()>();
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: java.util.Optional getParent()>();
label:
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: java.util.Optional getTestInstances()>();
v = staticinvoke <org.junit.jupiter.api.extension.TestInstancePreDestroyCallback$getAllInstances__94: java.util.function.Function bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.junit.jupiter.api.extension.TestInstancePreDestroyCallback$removeAll__95: java.util.function.Consumer bootstrap$(java.util.List)>(v);
virtualinvoke v.<java.util.Optional: void ifPresent(java.util.function.Consumer)>(v);
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: java.util.Optional getParent()>();
goto label;
label:
staticinvoke <java.util.Collections: void reverse(java.util.List)>(v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
return;
}
}