jimu-decompiled/sources/okhttp3/internal/platform/OptionalMethod.java
2025-05-13 19:24:51 +02:00

104 lines
3.5 KiB
Java

package okhttp3.internal.platform;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/* loaded from: classes2.dex */
class OptionalMethod<T> {
private final String methodName;
private final Class[] methodParams;
private final Class<?> returnType;
OptionalMethod(Class<?> cls, String str, Class... clsArr) {
this.returnType = cls;
this.methodName = str;
this.methodParams = clsArr;
}
private Method getMethod(Class<?> cls) {
Class<?> cls2;
String str = this.methodName;
if (str == null) {
return null;
}
Method publicMethod = getPublicMethod(cls, str, this.methodParams);
if (publicMethod == null || (cls2 = this.returnType) == null || cls2.isAssignableFrom(publicMethod.getReturnType())) {
return publicMethod;
}
return null;
}
private static Method getPublicMethod(Class<?> cls, String str, Class[] clsArr) {
try {
Method method = cls.getMethod(str, clsArr);
try {
if ((method.getModifiers() & 1) != 0) {
return method;
}
} catch (NoSuchMethodException unused) {
return method;
}
} catch (NoSuchMethodException unused2) {
}
return null;
}
public Object invoke(T t, Object... objArr) throws InvocationTargetException {
Method method = getMethod(t.getClass());
if (method == null) {
throw new AssertionError("Method " + this.methodName + " not supported for object " + t);
}
try {
return method.invoke(t, objArr);
} catch (IllegalAccessException e) {
AssertionError assertionError = new AssertionError("Unexpectedly could not call: " + method);
assertionError.initCause(e);
throw assertionError;
}
}
public Object invokeOptional(T t, Object... objArr) throws InvocationTargetException {
Method method = getMethod(t.getClass());
if (method == null) {
return null;
}
try {
return method.invoke(t, objArr);
} catch (IllegalAccessException unused) {
return null;
}
}
public Object invokeOptionalWithoutCheckedException(T t, Object... objArr) {
try {
return invokeOptional(t, objArr);
} catch (InvocationTargetException e) {
Throwable targetException = e.getTargetException();
if (targetException instanceof RuntimeException) {
throw ((RuntimeException) targetException);
}
AssertionError assertionError = new AssertionError("Unexpected exception");
assertionError.initCause(targetException);
throw assertionError;
}
}
public Object invokeWithoutCheckedException(T t, Object... objArr) {
try {
return invoke(t, objArr);
} catch (InvocationTargetException e) {
Throwable targetException = e.getTargetException();
if (targetException instanceof RuntimeException) {
throw ((RuntimeException) targetException);
}
AssertionError assertionError = new AssertionError("Unexpected exception");
assertionError.initCause(targetException);
throw assertionError;
}
}
public boolean isSupported(T t) {
return getMethod(t.getClass()) != null;
}
}