package com.google.common.reflect; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import java.lang.annotation.Annotation; import java.lang.reflect.AccessibleObject; import java.lang.reflect.Constructor; import java.lang.reflect.GenericDeclaration; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Member; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; import java.util.Arrays; /* loaded from: classes2.dex */ public abstract class Invokable extends Element implements GenericDeclaration { abstract Type[] getGenericExceptionTypes(); abstract Type[] getGenericParameterTypes(); abstract Type getGenericReturnType(); abstract Annotation[][] getParameterAnnotations(); abstract Object invokeInternal(Object obj, Object[] objArr) throws InvocationTargetException, IllegalAccessException; public abstract boolean isOverridable(); public abstract boolean isVarArgs(); @Override // com.google.common.reflect.Element public /* bridge */ /* synthetic */ boolean equals(Object obj) { return super.equals(obj); } @Override // com.google.common.reflect.Element public /* bridge */ /* synthetic */ int hashCode() { return super.hashCode(); } @Override // com.google.common.reflect.Element public /* bridge */ /* synthetic */ String toString() { return super.toString(); } Invokable(M m) { super(m); } public static Invokable from(Method method) { return new MethodInvokable(method); } public static Invokable from(Constructor constructor) { return new ConstructorInvokable(constructor); } public final R invoke(T t, Object... objArr) throws InvocationTargetException, IllegalAccessException { return (R) invokeInternal(t, (Object[]) Preconditions.checkNotNull(objArr)); } public final TypeToken getReturnType() { return (TypeToken) TypeToken.of(getGenericReturnType()); } public final ImmutableList getParameters() { Type[] genericParameterTypes = getGenericParameterTypes(); Annotation[][] parameterAnnotations = getParameterAnnotations(); ImmutableList.Builder builder = ImmutableList.builder(); for (int i = 0; i < genericParameterTypes.length; i++) { builder.add((ImmutableList.Builder) new Parameter(this, i, TypeToken.of(genericParameterTypes[i]), parameterAnnotations[i])); } return builder.build(); } public final ImmutableList> getExceptionTypes() { ImmutableList.Builder builder = ImmutableList.builder(); for (Type type : getGenericExceptionTypes()) { builder.add((ImmutableList.Builder) TypeToken.of(type)); } return builder.build(); } public final Invokable returning(Class cls) { return returning(TypeToken.of((Class) cls)); } /* JADX WARN: Multi-variable type inference failed */ public final Invokable returning(TypeToken typeToken) { if (typeToken.isSupertypeOf(getReturnType())) { return this; } String valueOf = String.valueOf(getReturnType()); String valueOf2 = String.valueOf(typeToken); StringBuilder sb = new StringBuilder(String.valueOf(valueOf).length() + 35 + String.valueOf(valueOf2).length()); sb.append("Invokable is known to return "); sb.append(valueOf); sb.append(", not "); sb.append(valueOf2); throw new IllegalArgumentException(sb.toString()); } @Override // com.google.common.reflect.Element, java.lang.reflect.Member public final Class getDeclaringClass() { return (Class) super.getDeclaringClass(); } @Override // com.google.common.reflect.Element public TypeToken getOwnerType() { return TypeToken.of((Class) getDeclaringClass()); } /* loaded from: classes2.dex */ static class MethodInvokable extends Invokable { final Method method; /* JADX INFO: Access modifiers changed from: package-private */ public MethodInvokable(Method method) { super(method); this.method = method; } @Override // com.google.common.reflect.Invokable final Object invokeInternal(Object obj, Object[] objArr) throws InvocationTargetException, IllegalAccessException { return this.method.invoke(obj, objArr); } /* JADX INFO: Access modifiers changed from: package-private */ @Override // com.google.common.reflect.Invokable public Type getGenericReturnType() { return this.method.getGenericReturnType(); } /* JADX INFO: Access modifiers changed from: package-private */ @Override // com.google.common.reflect.Invokable public Type[] getGenericParameterTypes() { return this.method.getGenericParameterTypes(); } /* JADX INFO: Access modifiers changed from: package-private */ @Override // com.google.common.reflect.Invokable public Type[] getGenericExceptionTypes() { return this.method.getGenericExceptionTypes(); } @Override // com.google.common.reflect.Invokable final Annotation[][] getParameterAnnotations() { return this.method.getParameterAnnotations(); } @Override // java.lang.reflect.GenericDeclaration public final TypeVariable[] getTypeParameters() { return this.method.getTypeParameters(); } @Override // com.google.common.reflect.Invokable public final boolean isOverridable() { return (isFinal() || isPrivate() || isStatic() || Modifier.isFinal(getDeclaringClass().getModifiers())) ? false : true; } @Override // com.google.common.reflect.Invokable public final boolean isVarArgs() { return this.method.isVarArgs(); } } /* loaded from: classes2.dex */ static class ConstructorInvokable extends Invokable { final Constructor constructor; @Override // com.google.common.reflect.Invokable public final boolean isOverridable() { return false; } /* JADX INFO: Access modifiers changed from: package-private */ public ConstructorInvokable(Constructor constructor) { super(constructor); this.constructor = constructor; } @Override // com.google.common.reflect.Invokable final Object invokeInternal(Object obj, Object[] objArr) throws InvocationTargetException, IllegalAccessException { try { return this.constructor.newInstance(objArr); } catch (InstantiationException e) { String valueOf = String.valueOf(this.constructor); StringBuilder sb = new StringBuilder(String.valueOf(valueOf).length() + 8); sb.append(valueOf); sb.append(" failed."); throw new RuntimeException(sb.toString(), e); } } /* JADX INFO: Access modifiers changed from: package-private */ @Override // com.google.common.reflect.Invokable public Type getGenericReturnType() { Class declaringClass = getDeclaringClass(); TypeVariable>[] typeParameters = declaringClass.getTypeParameters(); return typeParameters.length > 0 ? Types.newParameterizedType(declaringClass, typeParameters) : declaringClass; } /* JADX INFO: Access modifiers changed from: package-private */ @Override // com.google.common.reflect.Invokable public Type[] getGenericParameterTypes() { Type[] genericParameterTypes = this.constructor.getGenericParameterTypes(); if (genericParameterTypes.length <= 0 || !mayNeedHiddenThis()) { return genericParameterTypes; } Class[] parameterTypes = this.constructor.getParameterTypes(); return (genericParameterTypes.length == parameterTypes.length && parameterTypes[0] == getDeclaringClass().getEnclosingClass()) ? (Type[]) Arrays.copyOfRange(genericParameterTypes, 1, genericParameterTypes.length) : genericParameterTypes; } /* JADX INFO: Access modifiers changed from: package-private */ @Override // com.google.common.reflect.Invokable public Type[] getGenericExceptionTypes() { return this.constructor.getGenericExceptionTypes(); } @Override // com.google.common.reflect.Invokable final Annotation[][] getParameterAnnotations() { return this.constructor.getParameterAnnotations(); } @Override // java.lang.reflect.GenericDeclaration public final TypeVariable[] getTypeParameters() { TypeVariable>[] typeParameters = getDeclaringClass().getTypeParameters(); TypeVariable>[] typeParameters2 = this.constructor.getTypeParameters(); TypeVariable[] typeVariableArr = new TypeVariable[typeParameters.length + typeParameters2.length]; System.arraycopy(typeParameters, 0, typeVariableArr, 0, typeParameters.length); System.arraycopy(typeParameters2, 0, typeVariableArr, typeParameters.length, typeParameters2.length); return typeVariableArr; } @Override // com.google.common.reflect.Invokable public final boolean isVarArgs() { return this.constructor.isVarArgs(); } private boolean mayNeedHiddenThis() { Class declaringClass = this.constructor.getDeclaringClass(); if (declaringClass.getEnclosingConstructor() != null) { return true; } if (declaringClass.getEnclosingMethod() != null) { return !Modifier.isStatic(r1.getModifiers()); } return (declaringClass.getEnclosingClass() == null || Modifier.isStatic(declaringClass.getModifiers())) ? false : true; } } }