1 package org.robolectric.internal; 2 3 import org.robolectric.util.ReflectionHelpers; 4 5 @SuppressWarnings("TypeParameterUnusedInFormals") 6 public interface IShadow { extract(Object instance)7 <T> T extract(Object instance); 8 newInstanceOf(Class<T> clazz)9 <T> T newInstanceOf(Class<T> clazz); 10 newInstance(Class<T> clazz, Class<?>[] parameterTypes, Object[] params)11 <T> T newInstance(Class<T> clazz, Class<?>[] parameterTypes, Object[] params); 12 13 /** 14 * Returns a proxy object that invokes the original $$robo$$-prefixed methods for {@code 15 * shadowedObject}. 16 * 17 * @deprecated This is incompatible with JDK17+. Use a {@link 18 * org.robolectric.util.reflector.Reflector} interface with {@link 19 * org.robolectric.util.reflector.Direct}. 20 */ 21 @Deprecated directlyOn(T shadowedObject, Class<T> clazz)22 <T> T directlyOn(T shadowedObject, Class<T> clazz); 23 directlyOn( Object shadowedObject, String clazzName, String methodName, ReflectionHelpers.ClassParameter<?>... paramValues)24 <R> R directlyOn( 25 Object shadowedObject, 26 String clazzName, 27 String methodName, 28 ReflectionHelpers.ClassParameter<?>... paramValues); 29 directlyOn( T shadowedObject, Class<T> clazz, String methodName, ReflectionHelpers.ClassParameter<?>... paramValues)30 <R, T> R directlyOn( 31 T shadowedObject, 32 Class<T> clazz, 33 String methodName, 34 ReflectionHelpers.ClassParameter<?>... paramValues); 35 directlyOn( Class<T> clazz, String methodName, ReflectionHelpers.ClassParameter<?>... paramValues)36 <R, T> R directlyOn( 37 Class<T> clazz, String methodName, ReflectionHelpers.ClassParameter<?>... paramValues); 38 invokeConstructor( Class<? extends R> clazz, R instance, ReflectionHelpers.ClassParameter<?>... paramValues)39 <R> R invokeConstructor( 40 Class<? extends R> clazz, R instance, ReflectionHelpers.ClassParameter<?>... paramValues); 41 directMethodName(String className, String methodName)42 String directMethodName(String className, String methodName); 43 directNativeMethodName(String className, String methodName)44 String directNativeMethodName(String className, String methodName); 45 directInitialize(Class<?> clazz)46 void directInitialize(Class<?> clazz); 47 } 48