public final class com.google.common.reflect.TypeResolver
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.common.reflect.TypeResolver
super_class: java.lang.Object
{
private final com.google.common.reflect.TypeResolver$TypeTable typeTable;
descriptor: Lcom/google/common/reflect/TypeResolver$TypeTable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new com.google.common.reflect.TypeResolver$TypeTable
dup
invokespecial com.google.common.reflect.TypeResolver$TypeTable.<init>:()V
putfield com.google.common.reflect.TypeResolver.typeTable:Lcom/google/common/reflect/TypeResolver$TypeTable;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/reflect/TypeResolver;
private void <init>(com.google.common.reflect.TypeResolver$TypeTable);
descriptor: (Lcom/google/common/reflect/TypeResolver$TypeTable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.google.common.reflect.TypeResolver.typeTable:Lcom/google/common/reflect/TypeResolver$TypeTable;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/reflect/TypeResolver;
0 3 1 typeTable Lcom/google/common/reflect/TypeResolver$TypeTable;
MethodParameters:
Name Flags
typeTable
static com.google.common.reflect.TypeResolver covariantly(java.lang.reflect.Type);
descriptor: (Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeResolver;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new com.google.common.reflect.TypeResolver
dup
invokespecial com.google.common.reflect.TypeResolver.<init>:()V
aload 0
invokestatic com.google.common.reflect.TypeResolver$TypeMappingIntrospector.getTypeMappings:(Ljava/lang/reflect/Type;)Lcom/google/common/collect/ImmutableMap;
invokevirtual com.google.common.reflect.TypeResolver.where:(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 contextType Ljava/lang/reflect/Type;
MethodParameters:
Name Flags
contextType
static com.google.common.reflect.TypeResolver invariantly(java.lang.reflect.Type);
descriptor: (Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeResolver;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic com.google.common.reflect.TypeResolver$WildcardCapturer.INSTANCE:Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
aload 0
invokevirtual com.google.common.reflect.TypeResolver$WildcardCapturer.capture:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
astore 1
start local 1 1: new com.google.common.reflect.TypeResolver
dup
invokespecial com.google.common.reflect.TypeResolver.<init>:()V
aload 1
invokestatic com.google.common.reflect.TypeResolver$TypeMappingIntrospector.getTypeMappings:(Ljava/lang/reflect/Type;)Lcom/google/common/collect/ImmutableMap;
invokevirtual com.google.common.reflect.TypeResolver.where:(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 contextType Ljava/lang/reflect/Type;
1 2 1 invariantContext Ljava/lang/reflect/Type;
MethodParameters:
Name Flags
contextType
public com.google.common.reflect.TypeResolver where(java.lang.reflect.Type, java.lang.reflect.Type);
descriptor: (Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeResolver;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.google.common.collect.Maps.newHashMap:()Ljava/util/HashMap;
astore 3
start local 3 1: aload 3
aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.reflect.Type
aload 2
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.reflect.Type
invokestatic com.google.common.reflect.TypeResolver.populateTypeMappings:(Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
2: aload 0
aload 3
invokevirtual com.google.common.reflect.TypeResolver.where:(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/reflect/TypeResolver;
0 3 1 formal Ljava/lang/reflect/Type;
0 3 2 actual Ljava/lang/reflect/Type;
1 3 3 mappings Ljava/util/Map<Lcom/google/common/reflect/TypeResolver$TypeVariableKey;Ljava/lang/reflect/Type;>;
MethodParameters:
Name Flags
formal
actual
com.google.common.reflect.TypeResolver where(java.util.Map<com.google.common.reflect.TypeResolver$TypeVariableKey, ? extends java.lang.reflect.Type>);
descriptor: (Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new com.google.common.reflect.TypeResolver
dup
aload 0
getfield com.google.common.reflect.TypeResolver.typeTable:Lcom/google/common/reflect/TypeResolver$TypeTable;
aload 1
invokevirtual com.google.common.reflect.TypeResolver$TypeTable.where:(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver$TypeTable;
invokespecial com.google.common.reflect.TypeResolver.<init>:(Lcom/google/common/reflect/TypeResolver$TypeTable;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/reflect/TypeResolver;
0 1 1 mappings Ljava/util/Map<Lcom/google/common/reflect/TypeResolver$TypeVariableKey;+Ljava/lang/reflect/Type;>;
Signature: (Ljava/util/Map<Lcom/google/common/reflect/TypeResolver$TypeVariableKey;+Ljava/lang/reflect/Type;>;)Lcom/google/common/reflect/TypeResolver;
MethodParameters:
Name Flags
mappings
private static void populateTypeMappings(java.util.Map<com.google.common.reflect.TypeResolver$TypeVariableKey, java.lang.reflect.Type>, java.lang.reflect.Type, java.lang.reflect.Type);
descriptor: (Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
new com.google.common.reflect.TypeResolver$1
dup
aload 0
aload 2
invokespecial com.google.common.reflect.TypeResolver$1.<init>:(Ljava/util/Map;Ljava/lang/reflect/Type;)V
iconst_1
anewarray java.lang.reflect.Type
dup
iconst_0
3: aload 1
aastore
invokevirtual com.google.common.reflect.TypeResolver$1.visit:([Ljava/lang/reflect/Type;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 mappings Ljava/util/Map<Lcom/google/common/reflect/TypeResolver$TypeVariableKey;Ljava/lang/reflect/Type;>;
0 5 1 from Ljava/lang/reflect/Type;
0 5 2 to Ljava/lang/reflect/Type;
Signature: (Ljava/util/Map<Lcom/google/common/reflect/TypeResolver$TypeVariableKey;Ljava/lang/reflect/Type;>;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
MethodParameters:
Name Flags
mappings final
from final
to final
public java.lang.reflect.Type resolveType(java.lang.reflect.Type);
descriptor: (Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
instanceof java.lang.reflect.TypeVariable
ifeq 3
2: aload 0
getfield com.google.common.reflect.TypeResolver.typeTable:Lcom/google/common/reflect/TypeResolver$TypeTable;
aload 1
checkcast java.lang.reflect.TypeVariable
invokevirtual com.google.common.reflect.TypeResolver$TypeTable.resolve:(Ljava/lang/reflect/TypeVariable;)Ljava/lang/reflect/Type;
areturn
3: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.reflect.ParameterizedType
ifeq 5
4: aload 0
aload 1
checkcast java.lang.reflect.ParameterizedType
invokevirtual com.google.common.reflect.TypeResolver.resolveParameterizedType:(Ljava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/ParameterizedType;
areturn
5: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.reflect.GenericArrayType
ifeq 7
6: aload 0
aload 1
checkcast java.lang.reflect.GenericArrayType
invokevirtual com.google.common.reflect.TypeResolver.resolveGenericArrayType:(Ljava/lang/reflect/GenericArrayType;)Ljava/lang/reflect/Type;
areturn
7: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.reflect.WildcardType
ifeq 9
8: aload 0
aload 1
checkcast java.lang.reflect.WildcardType
invokevirtual com.google.common.reflect.TypeResolver.resolveWildcardType:(Ljava/lang/reflect/WildcardType;)Ljava/lang/reflect/WildcardType;
areturn
9: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/google/common/reflect/TypeResolver;
0 10 1 type Ljava/lang/reflect/Type;
MethodParameters:
Name Flags
type
java.lang.reflect.Type[] resolveTypesInPlace(java.lang.reflect.Type[]);
descriptor: ([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 1
iload 2
aload 0
aload 1
iload 2
aaload
invokevirtual com.google.common.reflect.TypeResolver.resolveType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
aastore
3: iinc 2 1
StackMap locals:
StackMap stack:
4: iload 2
aload 1
arraylength
if_icmplt 2
end local 2 5: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/reflect/TypeResolver;
0 6 1 types [Ljava/lang/reflect/Type;
1 5 2 i I
MethodParameters:
Name Flags
types
private java.lang.reflect.Type[] resolveTypes(java.lang.reflect.Type[]);
descriptor: ([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
arraylength
anewarray java.lang.reflect.Type
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 5
3: StackMap locals: java.lang.reflect.Type[] int
StackMap stack:
aload 2
iload 3
aload 0
aload 1
iload 3
aaload
invokevirtual com.google.common.reflect.TypeResolver.resolveType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
aastore
4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
aload 1
arraylength
if_icmplt 3
end local 3 6: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/reflect/TypeResolver;
0 7 1 types [Ljava/lang/reflect/Type;
1 7 2 result [Ljava/lang/reflect/Type;
2 6 3 i I
MethodParameters:
Name Flags
types
private java.lang.reflect.WildcardType resolveWildcardType(java.lang.reflect.WildcardType);
descriptor: (Ljava/lang/reflect/WildcardType;)Ljava/lang/reflect/WildcardType;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.lang.reflect.WildcardType.getLowerBounds:()[Ljava/lang/reflect/Type;
astore 2
start local 2 1: aload 1
invokeinterface java.lang.reflect.WildcardType.getUpperBounds:()[Ljava/lang/reflect/Type;
astore 3
start local 3 2: new com.google.common.reflect.Types$WildcardTypeImpl
dup
aload 0
aload 2
invokevirtual com.google.common.reflect.TypeResolver.resolveTypes:([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
aload 0
aload 3
invokevirtual com.google.common.reflect.TypeResolver.resolveTypes:([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
invokespecial com.google.common.reflect.Types$WildcardTypeImpl.<init>:([Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/reflect/TypeResolver;
0 3 1 type Ljava/lang/reflect/WildcardType;
1 3 2 lowerBounds [Ljava/lang/reflect/Type;
2 3 3 upperBounds [Ljava/lang/reflect/Type;
MethodParameters:
Name Flags
type
private java.lang.reflect.Type resolveGenericArrayType(java.lang.reflect.GenericArrayType);
descriptor: (Ljava/lang/reflect/GenericArrayType;)Ljava/lang/reflect/Type;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
astore 2
start local 2 1: aload 0
aload 2
invokevirtual com.google.common.reflect.TypeResolver.resolveType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
astore 3
start local 3 2: aload 3
invokestatic com.google.common.reflect.Types.newArrayType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/reflect/TypeResolver;
0 3 1 type Ljava/lang/reflect/GenericArrayType;
1 3 2 componentType Ljava/lang/reflect/Type;
2 3 3 resolvedComponentType Ljava/lang/reflect/Type;
MethodParameters:
Name Flags
type
private java.lang.reflect.ParameterizedType resolveParameterizedType(java.lang.reflect.ParameterizedType);
descriptor: (Ljava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/ParameterizedType;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.lang.reflect.ParameterizedType.getOwnerType:()Ljava/lang/reflect/Type;
astore 2
start local 2 1: aload 2
ifnonnull 2
aconst_null
goto 3
StackMap locals: java.lang.reflect.Type
StackMap stack:
2: aload 0
aload 2
invokevirtual com.google.common.reflect.TypeResolver.resolveType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
StackMap locals:
StackMap stack: java.lang.reflect.Type
3: astore 3
start local 3 4: aload 0
aload 1
invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
invokevirtual com.google.common.reflect.TypeResolver.resolveType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
astore 4
start local 4 5: aload 1
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
astore 5
start local 5 6: aload 0
aload 5
invokevirtual com.google.common.reflect.TypeResolver.resolveTypes:([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
astore 6
start local 6 7: aload 3
aload 4
checkcast java.lang.Class
aload 6
8: invokestatic com.google.common.reflect.Types.newParameterizedTypeWithOwner:(Ljava/lang/reflect/Type;Ljava/lang/Class;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType;
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/reflect/TypeResolver;
0 9 1 type Ljava/lang/reflect/ParameterizedType;
1 9 2 owner Ljava/lang/reflect/Type;
4 9 3 resolvedOwner Ljava/lang/reflect/Type;
5 9 4 resolvedRawType Ljava/lang/reflect/Type;
6 9 5 args [Ljava/lang/reflect/Type;
7 9 6 resolvedArgs [Ljava/lang/reflect/Type;
MethodParameters:
Name Flags
type
private static <T> T expectArgument(java.lang.Class<T>, );
descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.ClassCastException
pop
3: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is not a "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 type Ljava/lang/Class<TT;>;
0 4 1 arg Ljava/lang/Object;
Exception table:
from to target type
0 1 2 Class java.lang.ClassCastException
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/lang/Object;)TT;
MethodParameters:
Name Flags
type
arg
}
SourceFile: "TypeResolver.java"
NestMembers:
com.google.common.reflect.TypeResolver$1 com.google.common.reflect.TypeResolver$TypeMappingIntrospector com.google.common.reflect.TypeResolver$TypeTable com.google.common.reflect.TypeResolver$TypeTable$1 com.google.common.reflect.TypeResolver$TypeVariableKey com.google.common.reflect.TypeResolver$WildcardCapturer com.google.common.reflect.TypeResolver$WildcardCapturer$1
InnerClasses:
com.google.common.reflect.TypeResolver$1
private final TypeMappingIntrospector = com.google.common.reflect.TypeResolver$TypeMappingIntrospector of com.google.common.reflect.TypeResolver
private TypeTable = com.google.common.reflect.TypeResolver$TypeTable of com.google.common.reflect.TypeResolver
final TypeVariableKey = com.google.common.reflect.TypeResolver$TypeVariableKey of com.google.common.reflect.TypeResolver
private WildcardCapturer = com.google.common.reflect.TypeResolver$WildcardCapturer of com.google.common.reflect.TypeResolver
final WildcardTypeImpl = com.google.common.reflect.Types$WildcardTypeImpl of com.google.common.reflect.Types
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()