package org.robolectric.internal.bytecode;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodType;
public interface ClassHandler {
void classInitializing(Class clazz);
Object initializing(Object instance);
Plan methodInvoked(String signature, boolean isStatic, Class<?> theClass);
MethodHandle getShadowCreator(Class<?> caller);
MethodHandle findShadowMethod(Class<?> theClass, String name, MethodType type,
boolean isStatic)
throws IllegalAccessException;
Object intercept(String signature, Object instance, Object[] params, Class theClass) throws Throwable;
<T extends Throwable> T stripStackTrace(T throwable);
public interface Plan {
Object run(Object instance, Object roboData, Object[] params) throws Throwable;
String describe();
}
}