This commit is contained in:
2022-06-10 21:38:30 +09:00
commit 27f5152838
51323 changed files with 12934539 additions and 0 deletions
@@ -0,0 +1,326 @@
.class public abstract Lcom/google/common/reflect/AbstractInvocationHandler;
.super Ljava/lang/Object;
.source "AbstractInvocationHandler.java"
# interfaces
.implements Ljava/lang/reflect/InvocationHandler;
# annotations
.annotation build Lcom/google/common/annotations/Beta;
.end annotation
.annotation runtime Lcom/google/common/reflect/ElementTypesAreNonnullByDefault;
.end annotation
# static fields
.field private static final NO_ARGS:[Ljava/lang/Object;
# direct methods
.method public static constructor <clinit>()V
.locals 1
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/Object;
.line 1
sput-object v0, Lcom/google/common/reflect/AbstractInvocationHandler;->NO_ARGS:[Ljava/lang/Object;
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static isProxyOfSameInterfaces(Ljava/lang/Object;Ljava/lang/Class;)Z
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Object;",
"Ljava/lang/Class<",
"*>;)Z"
}
.end annotation
.line 1
invoke-virtual {p1, p0}, Ljava/lang/Class;->isInstance(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
.line 2
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-static {v0}, Ljava/lang/reflect/Proxy;->isProxyClass(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_0
.line 3
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class;
move-result-object p0
invoke-virtual {p1}, Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class;
move-result-object p1
invoke-static {p0, p1}, Ljava/util/Arrays;->equals([Ljava/lang/Object;[Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_0
goto :goto_0
:cond_0
const/4 p0, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 p0, 0x1
:goto_1
return p0
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 0
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.line 1
invoke-super {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p1
return p1
.end method
.method public abstract handleInvocation(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end method
.method public hashCode()I
.locals 1
.line 1
invoke-super {p0}, Ljava/lang/Object;->hashCode()I
move-result v0
return v0
.end method
.method public final invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
.locals 4
.param p3 # [Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
if-nez p3, :cond_0
.line 1
sget-object p3, Lcom/google/common/reflect/AbstractInvocationHandler;->NO_ARGS:[Ljava/lang/Object;
.line 2
:cond_0
array-length v0, p3
if-nez v0, :cond_1
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v0
const-string v1, "hashCode"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1
.line 3
invoke-virtual {p0}, Lcom/google/common/reflect/AbstractInvocationHandler;->hashCode()I
move-result p1
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
return-object p1
.line 4
:cond_1
array-length v0, p3
const/4 v1, 0x1
if-ne v0, v1, :cond_5
.line 5
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v0
const-string v2, "equals"
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_5
.line 6
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
move-result-object v0
const/4 v2, 0x0
aget-object v0, v0, v2
const-class v3, Ljava/lang/Object;
if-ne v0, v3, :cond_5
.line 7
aget-object p2, p3, v2
if-nez p2, :cond_2
.line 8
sget-object p1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
return-object p1
:cond_2
if-ne p1, p2, :cond_3
.line 9
sget-object p1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
return-object p1
.line 10
:cond_3
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p1
invoke-static {p2, p1}, Lcom/google/common/reflect/AbstractInvocationHandler;->isProxyOfSameInterfaces(Ljava/lang/Object;Ljava/lang/Class;)Z
move-result p1
if-eqz p1, :cond_4
.line 11
invoke-static {p2}, Ljava/lang/reflect/Proxy;->getInvocationHandler(Ljava/lang/Object;)Ljava/lang/reflect/InvocationHandler;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/AbstractInvocationHandler;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_4
goto :goto_0
:cond_4
move v1, v2
.line 12
:goto_0
invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object p1
return-object p1
.line 13
:cond_5
array-length v0, p3
if-nez v0, :cond_6
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v0
const-string v1, "toString"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_6
.line 14
invoke-virtual {p0}, Lcom/google/common/reflect/AbstractInvocationHandler;->toString()Ljava/lang/String;
move-result-object p1
return-object p1
.line 15
:cond_6
invoke-virtual {p0, p1, p2, p3}, Lcom/google/common/reflect/AbstractInvocationHandler;->handleInvocation(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public toString()Ljava/lang/String;
.locals 1
.line 1
invoke-super {p0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,63 @@
.class Lcom/google/common/reflect/ClassPath$1;
.super Ljava/lang/Object;
.source "ClassPath.java"
# interfaces
.implements Lcom/google/common/base/Predicate;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/ClassPath;->getTopLevelClasses()Lcom/google/common/collect/ImmutableSet;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lcom/google/common/base/Predicate<",
"Lcom/google/common/reflect/ClassPath$ClassInfo;",
">;"
}
.end annotation
# direct methods
.method public constructor <init>(Lcom/google/common/reflect/ClassPath;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public apply(Lcom/google/common/reflect/ClassPath$ClassInfo;)Z
.locals 0
.line 2
invoke-virtual {p1}, Lcom/google/common/reflect/ClassPath$ClassInfo;->isTopLevel()Z
move-result p1
return p1
.end method
.method public bridge synthetic apply(Ljava/lang/Object;)Z
.locals 0
.line 1
check-cast p1, Lcom/google/common/reflect/ClassPath$ClassInfo;
invoke-virtual {p0, p1}, Lcom/google/common/reflect/ClassPath$1;->apply(Lcom/google/common/reflect/ClassPath$ClassInfo;)Z
move-result p1
return p1
.end method
@@ -0,0 +1,209 @@
.class public final Lcom/google/common/reflect/ClassPath$ClassInfo;
.super Lcom/google/common/reflect/ClassPath$ResourceInfo;
.source "ClassPath.java"
# annotations
.annotation build Lcom/google/common/annotations/Beta;
.end annotation
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/ClassPath;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "ClassInfo"
.end annotation
# instance fields
.field private final className:Ljava/lang/String;
# direct methods
.method public constructor <init>(Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)V
.locals 0
.line 1
invoke-direct {p0, p1, p2, p3}, Lcom/google/common/reflect/ClassPath$ResourceInfo;-><init>(Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)V
.line 2
invoke-static {p2}, Lcom/google/common/reflect/ClassPath;->getClassName(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
iput-object p1, p0, Lcom/google/common/reflect/ClassPath$ClassInfo;->className:Ljava/lang/String;
return-void
.end method
# virtual methods
.method public getName()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ClassInfo;->className:Ljava/lang/String;
return-object v0
.end method
.method public getPackageName()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ClassInfo;->className:Ljava/lang/String;
invoke-static {v0}, Lcom/google/common/reflect/Reflection;->getPackageName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getSimpleName()Ljava/lang/String;
.locals 3
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ClassInfo;->className:Ljava/lang/String;
const/16 v1, 0x24
invoke-virtual {v0, v1}, Ljava/lang/String;->lastIndexOf(I)I
move-result v0
const/4 v1, -0x1
if-eq v0, v1, :cond_0
.line 2
iget-object v1, p0, Lcom/google/common/reflect/ClassPath$ClassInfo;->className:Ljava/lang/String;
add-int/lit8 v0, v0, 0x1
invoke-virtual {v1, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
const/16 v1, 0x30
const/16 v2, 0x39
.line 3
invoke-static {v1, v2}, Lcom/google/common/base/CharMatcher;->inRange(CC)Lcom/google/common/base/CharMatcher;
move-result-object v1
invoke-virtual {v1, v0}, Lcom/google/common/base/CharMatcher;->trimLeadingFrom(Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v0
return-object v0
.line 4
:cond_0
invoke-virtual {p0}, Lcom/google/common/reflect/ClassPath$ClassInfo;->getPackageName()Ljava/lang/String;
move-result-object v0
.line 5
invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
move-result v1
if-eqz v1, :cond_1
.line 6
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ClassInfo;->className:Ljava/lang/String;
return-object v0
.line 7
:cond_1
iget-object v1, p0, Lcom/google/common/reflect/ClassPath$ClassInfo;->className:Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v0
add-int/lit8 v0, v0, 0x1
invoke-virtual {v1, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public isTopLevel()Z
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ClassInfo;->className:Ljava/lang/String;
const/16 v1, 0x24
invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(I)I
move-result v0
const/4 v1, -0x1
if-ne v0, v1, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public load()Ljava/lang/Class;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.line 1
:try_start_0
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ResourceInfo;->loader:Ljava/lang/ClassLoader;
iget-object v1, p0, Lcom/google/common/reflect/ClassPath$ClassInfo;->className:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
:try_end_0
.catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_0
return-object v0
:catch_0
move-exception v0
.line 2
new-instance v1, Ljava/lang/IllegalStateException;
invoke-direct {v1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/Throwable;)V
throw v1
.end method
.method public toString()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ClassInfo;->className:Ljava/lang/String;
return-object v0
.end method
@@ -0,0 +1,697 @@
.class final Lcom/google/common/reflect/ClassPath$LocationInfo;
.super Ljava/lang/Object;
.source "ClassPath.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/ClassPath;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "LocationInfo"
.end annotation
# instance fields
.field private final classloader:Ljava/lang/ClassLoader;
.field public final home:Ljava/io/File;
# direct methods
.method public constructor <init>(Ljava/io/File;Ljava/lang/ClassLoader;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/io/File;
iput-object p1, p0, Lcom/google/common/reflect/ClassPath$LocationInfo;->home:Ljava/io/File;
.line 3
invoke-static {p2}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/ClassLoader;
iput-object p1, p0, Lcom/google/common/reflect/ClassPath$LocationInfo;->classloader:Ljava/lang/ClassLoader;
return-void
.end method
.method private scan(Ljava/io/File;Ljava/util/Set;Lcom/google/common/collect/ImmutableSet$Builder;)V
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Ljava/util/Set<",
"Ljava/io/File;",
">;",
"Lcom/google/common/collect/ImmutableSet$Builder<",
"Lcom/google/common/reflect/ClassPath$ResourceInfo;",
">;)V"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
:try_start_0
invoke-virtual {p1}, Ljava/io/File;->exists()Z
move-result v0
:try_end_0
.catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_0} :catch_0
if-nez v0, :cond_0
return-void
.line 2
:cond_0
invoke-virtual {p1}, Ljava/io/File;->isDirectory()Z
move-result v0
if-eqz v0, :cond_1
.line 3
invoke-direct {p0, p1, p3}, Lcom/google/common/reflect/ClassPath$LocationInfo;->scanDirectory(Ljava/io/File;Lcom/google/common/collect/ImmutableSet$Builder;)V
goto :goto_0
.line 4
:cond_1
invoke-direct {p0, p1, p2, p3}, Lcom/google/common/reflect/ClassPath$LocationInfo;->scanJar(Ljava/io/File;Ljava/util/Set;Lcom/google/common/collect/ImmutableSet$Builder;)V
:goto_0
return-void
:catch_0
move-exception p2
.line 5
invoke-static {}, Lcom/google/common/reflect/ClassPath;->access$000()Ljava/util/logging/Logger;
move-result-object p3
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p2
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
add-int/lit8 v0, v0, 0x10
invoke-virtual {p2}, Ljava/lang/String;->length()I
move-result v1
add-int/2addr v1, v0
const-string v0, "Cannot access "
const-string v2, ": "
invoke-static {v1, v0, p1, v2, p2}, Lcom/android/billingclient/api/f;->a(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-virtual {p3, p1}, Ljava/util/logging/Logger;->warning(Ljava/lang/String;)V
return-void
.end method
.method private scanDirectory(Ljava/io/File;Lcom/google/common/collect/ImmutableSet$Builder;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Lcom/google/common/collect/ImmutableSet$Builder<",
"Lcom/google/common/reflect/ClassPath$ResourceInfo;",
">;)V"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
new-instance v0, Ljava/util/HashSet;
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
.line 2
invoke-virtual {p1}, Ljava/io/File;->getCanonicalFile()Ljava/io/File;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
const-string v1, ""
.line 3
invoke-direct {p0, p1, v1, v0, p2}, Lcom/google/common/reflect/ClassPath$LocationInfo;->scanDirectory(Ljava/io/File;Ljava/lang/String;Ljava/util/Set;Lcom/google/common/collect/ImmutableSet$Builder;)V
return-void
.end method
.method private scanDirectory(Ljava/io/File;Ljava/lang/String;Ljava/util/Set;Lcom/google/common/collect/ImmutableSet$Builder;)V
.locals 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Ljava/lang/String;",
"Ljava/util/Set<",
"Ljava/io/File;",
">;",
"Lcom/google/common/collect/ImmutableSet$Builder<",
"Lcom/google/common/reflect/ClassPath$ResourceInfo;",
">;)V"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 4
invoke-virtual {p1}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v0
if-nez v0, :cond_0
.line 5
invoke-static {}, Lcom/google/common/reflect/ClassPath;->access$000()Ljava/util/logging/Logger;
move-result-object p2
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p3
add-int/lit8 p3, p3, 0x16
new-instance p4, Ljava/lang/StringBuilder;
invoke-direct {p4, p3}, Ljava/lang/StringBuilder;-><init>(I)V
const-string p3, "Cannot read directory "
invoke-virtual {p4, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-virtual {p2, p1}, Ljava/util/logging/Logger;->warning(Ljava/lang/String;)V
return-void
.line 6
:cond_0
array-length p1, v0
const/4 v1, 0x0
:goto_0
if-ge v1, p1, :cond_4
aget-object v2, v0, v1
.line 7
invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v3
.line 8
invoke-virtual {v2}, Ljava/io/File;->isDirectory()Z
move-result v4
if-eqz v4, :cond_1
.line 9
invoke-virtual {v2}, Ljava/io/File;->getCanonicalFile()Ljava/io/File;
move-result-object v2
.line 10
invoke-interface {p3, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_3
const/4 v4, 0x1
.line 11
invoke-static {p2, v4}, Lcom/android/billingclient/api/d;->a(Ljava/lang/String;I)I
move-result v4
invoke-static {v3, v4}, Lcom/android/billingclient/api/d;->a(Ljava/lang/String;I)I
move-result v4
const-string v5, "/"
invoke-static {v4, p2, v3, v5}, Lcom/google/android/gms/ads/internal/a;->a(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-direct {p0, v2, v3, p3, p4}, Lcom/google/common/reflect/ClassPath$LocationInfo;->scanDirectory(Ljava/io/File;Ljava/lang/String;Ljava/util/Set;Lcom/google/common/collect/ImmutableSet$Builder;)V
.line 12
invoke-interface {p3, v2}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
goto :goto_2
.line 13
:cond_1
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v5
if-eqz v5, :cond_2
invoke-virtual {v4, v3}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
goto :goto_1
:cond_2
new-instance v3, Ljava/lang/String;
invoke-direct {v3, v4}, Ljava/lang/String;-><init>(Ljava/lang/String;)V
:goto_1
const-string v4, "META-INF/MANIFEST.MF"
.line 14
invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_3
.line 15
iget-object v4, p0, Lcom/google/common/reflect/ClassPath$LocationInfo;->classloader:Ljava/lang/ClassLoader;
invoke-static {v2, v3, v4}, Lcom/google/common/reflect/ClassPath$ResourceInfo;->of(Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)Lcom/google/common/reflect/ClassPath$ResourceInfo;
move-result-object v2
invoke-virtual {p4, v2}, Lcom/google/common/collect/ImmutableSet$Builder;->add(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet$Builder;
:cond_3
:goto_2
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_4
return-void
.end method
.method private scanJar(Ljava/io/File;Ljava/util/Set;Lcom/google/common/collect/ImmutableSet$Builder;)V
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Ljava/util/Set<",
"Ljava/io/File;",
">;",
"Lcom/google/common/collect/ImmutableSet$Builder<",
"Lcom/google/common/reflect/ClassPath$ResourceInfo;",
">;)V"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
:try_start_0
new-instance v0, Ljava/util/jar/JarFile;
invoke-direct {v0, p1}, Ljava/util/jar/JarFile;-><init>(Ljava/io/File;)V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_2
.line 2
:try_start_1
invoke-virtual {v0}, Ljava/util/jar/JarFile;->getManifest()Ljava/util/jar/Manifest;
move-result-object v1
invoke-static {p1, v1}, Lcom/google/common/reflect/ClassPath;->getClassPathFromManifest(Ljava/io/File;Ljava/util/jar/Manifest;)Lcom/google/common/collect/ImmutableSet;
move-result-object p1
invoke-virtual {p1}, Lcom/google/common/collect/ImmutableSet;->iterator()Lcom/google/common/collect/UnmodifiableIterator;
move-result-object p1
:cond_0
:goto_0
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_1
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/io/File;
.line 3
invoke-virtual {v1}, Ljava/io/File;->getCanonicalFile()Ljava/io/File;
move-result-object v2
invoke-interface {p2, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_0
.line 4
invoke-direct {p0, v1, p2, p3}, Lcom/google/common/reflect/ClassPath$LocationInfo;->scan(Ljava/io/File;Ljava/util/Set;Lcom/google/common/collect/ImmutableSet$Builder;)V
goto :goto_0
.line 5
:cond_1
invoke-direct {p0, v0, p3}, Lcom/google/common/reflect/ClassPath$LocationInfo;->scanJarFile(Ljava/util/jar/JarFile;Lcom/google/common/collect/ImmutableSet$Builder;)V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
.line 6
:try_start_2
invoke-virtual {v0}, Ljava/util/jar/JarFile;->close()V
:try_end_2
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_0
:catch_0
return-void
:catchall_0
move-exception p1
:try_start_3
invoke-virtual {v0}, Ljava/util/jar/JarFile;->close()V
:try_end_3
.catch Ljava/io/IOException; {:try_start_3 .. :try_end_3} :catch_1
.line 7
:catch_1
throw p1
:catch_2
return-void
.end method
.method private scanJarFile(Ljava/util/jar/JarFile;Lcom/google/common/collect/ImmutableSet$Builder;)V
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/jar/JarFile;",
"Lcom/google/common/collect/ImmutableSet$Builder<",
"Lcom/google/common/reflect/ClassPath$ResourceInfo;",
">;)V"
}
.end annotation
.line 1
invoke-virtual {p1}, Ljava/util/jar/JarFile;->entries()Ljava/util/Enumeration;
move-result-object v0
.line 2
:cond_0
:goto_0
invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v1
if-eqz v1, :cond_2
.line 3
invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/util/jar/JarEntry;
.line 4
invoke-virtual {v1}, Ljava/util/jar/JarEntry;->isDirectory()Z
move-result v2
if-nez v2, :cond_0
invoke-virtual {v1}, Ljava/util/jar/JarEntry;->getName()Ljava/lang/String;
move-result-object v2
const-string v3, "META-INF/MANIFEST.MF"
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_1
goto :goto_0
.line 5
:cond_1
new-instance v2, Ljava/io/File;
invoke-virtual {p1}, Ljava/util/jar/JarFile;->getName()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v1}, Ljava/util/jar/JarEntry;->getName()Ljava/lang/String;
move-result-object v1
iget-object v3, p0, Lcom/google/common/reflect/ClassPath$LocationInfo;->classloader:Ljava/lang/ClassLoader;
invoke-static {v2, v1, v3}, Lcom/google/common/reflect/ClassPath$ResourceInfo;->of(Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)Lcom/google/common/reflect/ClassPath$ResourceInfo;
move-result-object v1
invoke-virtual {p2, v1}, Lcom/google/common/collect/ImmutableSet$Builder;->add(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet$Builder;
goto :goto_0
:cond_2
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 3
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.line 1
instance-of v0, p1, Lcom/google/common/reflect/ClassPath$LocationInfo;
const/4 v1, 0x0
if-eqz v0, :cond_0
.line 2
check-cast p1, Lcom/google/common/reflect/ClassPath$LocationInfo;
.line 3
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$LocationInfo;->home:Ljava/io/File;
iget-object v2, p1, Lcom/google/common/reflect/ClassPath$LocationInfo;->home:Ljava/io/File;
invoke-virtual {v0, v2}, Ljava/io/File;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$LocationInfo;->classloader:Ljava/lang/ClassLoader;
iget-object p1, p1, Lcom/google/common/reflect/ClassPath$LocationInfo;->classloader:Ljava/lang/ClassLoader;
invoke-virtual {v0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_0
const/4 v1, 0x1
:cond_0
return v1
.end method
.method public final file()Ljava/io/File;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$LocationInfo;->home:Ljava/io/File;
return-object v0
.end method
.method public hashCode()I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$LocationInfo;->home:Ljava/io/File;
invoke-virtual {v0}, Ljava/io/File;->hashCode()I
move-result v0
return v0
.end method
.method public scanResources()Lcom/google/common/collect/ImmutableSet;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/collect/ImmutableSet<",
"Lcom/google/common/reflect/ClassPath$ResourceInfo;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
new-instance v0, Ljava/util/HashSet;
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
invoke-virtual {p0, v0}, Lcom/google/common/reflect/ClassPath$LocationInfo;->scanResources(Ljava/util/Set;)Lcom/google/common/collect/ImmutableSet;
move-result-object v0
return-object v0
.end method
.method public scanResources(Ljava/util/Set;)Lcom/google/common/collect/ImmutableSet;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Set<",
"Ljava/io/File;",
">;)",
"Lcom/google/common/collect/ImmutableSet<",
"Lcom/google/common/reflect/ClassPath$ResourceInfo;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 2
invoke-static {}, Lcom/google/common/collect/ImmutableSet;->builder()Lcom/google/common/collect/ImmutableSet$Builder;
move-result-object v0
.line 3
iget-object v1, p0, Lcom/google/common/reflect/ClassPath$LocationInfo;->home:Ljava/io/File;
invoke-interface {p1, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 4
iget-object v1, p0, Lcom/google/common/reflect/ClassPath$LocationInfo;->home:Ljava/io/File;
invoke-direct {p0, v1, p1, v0}, Lcom/google/common/reflect/ClassPath$LocationInfo;->scan(Ljava/io/File;Ljava/util/Set;Lcom/google/common/collect/ImmutableSet$Builder;)V
.line 5
invoke-virtual {v0}, Lcom/google/common/collect/ImmutableSet$Builder;->build()Lcom/google/common/collect/ImmutableSet;
move-result-object p1
return-object p1
.end method
.method public toString()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$LocationInfo;->home:Ljava/io/File;
invoke-virtual {v0}, Ljava/io/File;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,230 @@
.class public Lcom/google/common/reflect/ClassPath$ResourceInfo;
.super Ljava/lang/Object;
.source "ClassPath.java"
# annotations
.annotation build Lcom/google/common/annotations/Beta;
.end annotation
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/ClassPath;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "ResourceInfo"
.end annotation
# instance fields
.field private final file:Ljava/io/File;
.field public final loader:Ljava/lang/ClassLoader;
.field private final resourceName:Ljava/lang/String;
# direct methods
.method public constructor <init>(Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/io/File;
iput-object p1, p0, Lcom/google/common/reflect/ClassPath$ResourceInfo;->file:Ljava/io/File;
.line 3
invoke-static {p2}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/String;
iput-object p1, p0, Lcom/google/common/reflect/ClassPath$ResourceInfo;->resourceName:Ljava/lang/String;
.line 4
invoke-static {p3}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/ClassLoader;
iput-object p1, p0, Lcom/google/common/reflect/ClassPath$ResourceInfo;->loader:Ljava/lang/ClassLoader;
return-void
.end method
.method public static of(Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)Lcom/google/common/reflect/ClassPath$ResourceInfo;
.locals 1
const-string v0, ".class"
.line 1
invoke-virtual {p1, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_0
.line 2
new-instance v0, Lcom/google/common/reflect/ClassPath$ClassInfo;
invoke-direct {v0, p0, p1, p2}, Lcom/google/common/reflect/ClassPath$ClassInfo;-><init>(Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)V
return-object v0
.line 3
:cond_0
new-instance v0, Lcom/google/common/reflect/ClassPath$ResourceInfo;
invoke-direct {v0, p0, p1, p2}, Lcom/google/common/reflect/ClassPath$ResourceInfo;-><init>(Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)V
return-object v0
.end method
# virtual methods
.method public final asByteSource()Lcom/google/common/io/ByteSource;
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/ClassPath$ResourceInfo;->url()Ljava/net/URL;
move-result-object v0
invoke-static {v0}, Lcom/google/common/io/Resources;->asByteSource(Ljava/net/URL;)Lcom/google/common/io/ByteSource;
move-result-object v0
return-object v0
.end method
.method public final asCharSource(Ljava/nio/charset/Charset;)Lcom/google/common/io/CharSource;
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/ClassPath$ResourceInfo;->url()Ljava/net/URL;
move-result-object v0
invoke-static {v0, p1}, Lcom/google/common/io/Resources;->asCharSource(Ljava/net/URL;Ljava/nio/charset/Charset;)Lcom/google/common/io/CharSource;
move-result-object p1
return-object p1
.end method
.method public equals(Ljava/lang/Object;)Z
.locals 3
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.line 1
instance-of v0, p1, Lcom/google/common/reflect/ClassPath$ResourceInfo;
const/4 v1, 0x0
if-eqz v0, :cond_0
.line 2
check-cast p1, Lcom/google/common/reflect/ClassPath$ResourceInfo;
.line 3
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ResourceInfo;->resourceName:Ljava/lang/String;
iget-object v2, p1, Lcom/google/common/reflect/ClassPath$ResourceInfo;->resourceName:Ljava/lang/String;
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ResourceInfo;->loader:Ljava/lang/ClassLoader;
iget-object p1, p1, Lcom/google/common/reflect/ClassPath$ResourceInfo;->loader:Ljava/lang/ClassLoader;
if-ne v0, p1, :cond_0
const/4 v1, 0x1
:cond_0
return v1
.end method
.method public final getFile()Ljava/io/File;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ResourceInfo;->file:Ljava/io/File;
return-object v0
.end method
.method public final getResourceName()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ResourceInfo;->resourceName:Ljava/lang/String;
return-object v0
.end method
.method public hashCode()I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ResourceInfo;->resourceName:Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->hashCode()I
move-result v0
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ResourceInfo;->resourceName:Ljava/lang/String;
return-object v0
.end method
.method public final url()Ljava/net/URL;
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ClassPath$ResourceInfo;->loader:Ljava/lang/ClassLoader;
iget-object v1, p0, Lcom/google/common/reflect/ClassPath$ResourceInfo;->resourceName:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/ClassLoader;->getResource(Ljava/lang/String;)Ljava/net/URL;
move-result-object v0
if-eqz v0, :cond_0
return-object v0
.line 2
:cond_0
new-instance v0, Ljava/util/NoSuchElementException;
iget-object v1, p0, Lcom/google/common/reflect/ClassPath$ResourceInfo;->resourceName:Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/util/NoSuchElementException;-><init>(Ljava/lang/String;)V
throw v0
.end method
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,32 @@
.class interface abstract annotation Lcom/google/common/reflect/ElementTypesAreNonnullByDefault;
.super Ljava/lang/Object;
.source "ElementTypesAreNonnullByDefault.java"
# interfaces
.implements Ljava/lang/annotation/Annotation;
# annotations
.annotation build Lcom/google/common/annotations/GwtCompatible;
.end annotation
.annotation runtime Ljava/lang/annotation/Retention;
value = .enum Ljava/lang/annotation/RetentionPolicy;->RUNTIME:Ljava/lang/annotation/RetentionPolicy;
.end annotation
.annotation runtime Ljava/lang/annotation/Target;
value = {
.enum Ljava/lang/annotation/ElementType;->TYPE:Ljava/lang/annotation/ElementType;
}
.end annotation
.annotation runtime Ljavax/annotation/Nonnull;
.end annotation
.annotation runtime Ljavax/annotation/meta/TypeQualifierDefault;
value = {
.enum Ljava/lang/annotation/ElementType;->FIELD:Ljava/lang/annotation/ElementType;,
.enum Ljava/lang/annotation/ElementType;->METHOD:Ljava/lang/annotation/ElementType;,
.enum Ljava/lang/annotation/ElementType;->PARAMETER:Ljava/lang/annotation/ElementType;
}
.end annotation
@@ -0,0 +1,14 @@
.class synthetic Lcom/google/common/reflect/ImmutableTypeToInstanceMap$1;
.super Ljava/lang/Object;
.source "ImmutableTypeToInstanceMap.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/ImmutableTypeToInstanceMap;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1009
name = null
.end annotation
@@ -0,0 +1,147 @@
.class public final Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder;
.super Ljava/lang/Object;
.source "ImmutableTypeToInstanceMap.java"
# annotations
.annotation build Lcom/google/common/annotations/Beta;
.end annotation
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/ImmutableTypeToInstanceMap;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Builder"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<B:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# instance fields
.field private final mapBuilder:Lcom/google/common/collect/ImmutableMap$Builder;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ImmutableMap$Builder<",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;TB;>;"
}
.end annotation
.end field
# direct methods
.method private constructor <init>()V
.locals 1
.line 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 3
invoke-static {}, Lcom/google/common/collect/ImmutableMap;->builder()Lcom/google/common/collect/ImmutableMap$Builder;
move-result-object v0
iput-object v0, p0, Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder;->mapBuilder:Lcom/google/common/collect/ImmutableMap$Builder;
return-void
.end method
.method public synthetic constructor <init>(Lcom/google/common/reflect/ImmutableTypeToInstanceMap$1;)V
.locals 0
.line 1
invoke-direct {p0}, Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder;-><init>()V
return-void
.end method
# virtual methods
.method public build()Lcom/google/common/reflect/ImmutableTypeToInstanceMap;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/ImmutableTypeToInstanceMap<",
"TB;>;"
}
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/ImmutableTypeToInstanceMap;
iget-object v1, p0, Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder;->mapBuilder:Lcom/google/common/collect/ImmutableMap$Builder;
invoke-virtual {v1}, Lcom/google/common/collect/ImmutableMap$Builder;->build()Lcom/google/common/collect/ImmutableMap;
move-result-object v1
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lcom/google/common/reflect/ImmutableTypeToInstanceMap;-><init>(Lcom/google/common/collect/ImmutableMap;Lcom/google/common/reflect/ImmutableTypeToInstanceMap$1;)V
return-object v0
.end method
.method public put(Lcom/google/common/reflect/TypeToken;Ljava/lang/Object;)Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder;
.locals 1
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;TT;)",
"Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder<",
"TB;>;"
}
.end annotation
.line 2
iget-object v0, p0, Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder;->mapBuilder:Lcom/google/common/collect/ImmutableMap$Builder;
invoke-virtual {p1}, Lcom/google/common/reflect/TypeToken;->rejectTypeVariables()Lcom/google/common/reflect/TypeToken;
move-result-object p1
invoke-virtual {v0, p1, p2}, Lcom/google/common/collect/ImmutableMap$Builder;->put(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
return-object p0
.end method
.method public put(Ljava/lang/Class;Ljava/lang/Object;)Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder;
.locals 1
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Ljava/lang/Class<",
"TT;>;TT;)",
"Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder<",
"TB;>;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder;->mapBuilder:Lcom/google/common/collect/ImmutableMap$Builder;
invoke-static {p1}, Lcom/google/common/reflect/TypeToken;->of(Ljava/lang/Class;)Lcom/google/common/reflect/TypeToken;
move-result-object p1
invoke-virtual {v0, p1, p2}, Lcom/google/common/collect/ImmutableMap$Builder;->put(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
return-object p0
.end method
@@ -0,0 +1,346 @@
.class public final Lcom/google/common/reflect/ImmutableTypeToInstanceMap;
.super Lcom/google/common/collect/ForwardingMap;
.source "ImmutableTypeToInstanceMap.java"
# interfaces
.implements Lcom/google/common/reflect/TypeToInstanceMap;
# annotations
.annotation build Lcom/google/common/annotations/Beta;
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<B:",
"Ljava/lang/Object;",
">",
"Lcom/google/common/collect/ForwardingMap<",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;TB;>;",
"Lcom/google/common/reflect/TypeToInstanceMap<",
"TB;>;"
}
.end annotation
# instance fields
.field private final delegate:Lcom/google/common/collect/ImmutableMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ImmutableMap<",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;TB;>;"
}
.end annotation
.end field
# direct methods
.method private constructor <init>(Lcom/google/common/collect/ImmutableMap;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/collect/ImmutableMap<",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;TB;>;)V"
}
.end annotation
.line 2
invoke-direct {p0}, Lcom/google/common/collect/ForwardingMap;-><init>()V
.line 3
iput-object p1, p0, Lcom/google/common/reflect/ImmutableTypeToInstanceMap;->delegate:Lcom/google/common/collect/ImmutableMap;
return-void
.end method
.method public synthetic constructor <init>(Lcom/google/common/collect/ImmutableMap;Lcom/google/common/reflect/ImmutableTypeToInstanceMap$1;)V
.locals 0
.line 1
invoke-direct {p0, p1}, Lcom/google/common/reflect/ImmutableTypeToInstanceMap;-><init>(Lcom/google/common/collect/ImmutableMap;)V
return-void
.end method
.method public static builder()Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<B:",
"Ljava/lang/Object;",
">()",
"Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder<",
"TB;>;"
}
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lcom/google/common/reflect/ImmutableTypeToInstanceMap$Builder;-><init>(Lcom/google/common/reflect/ImmutableTypeToInstanceMap$1;)V
return-object v0
.end method
.method public static of()Lcom/google/common/reflect/ImmutableTypeToInstanceMap;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<B:",
"Ljava/lang/Object;",
">()",
"Lcom/google/common/reflect/ImmutableTypeToInstanceMap<",
"TB;>;"
}
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/ImmutableTypeToInstanceMap;
invoke-static {}, Lcom/google/common/collect/ImmutableMap;->of()Lcom/google/common/collect/ImmutableMap;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/common/reflect/ImmutableTypeToInstanceMap;-><init>(Lcom/google/common/collect/ImmutableMap;)V
return-object v0
.end method
.method private trustedGet(Lcom/google/common/reflect/TypeToken;)Ljava/lang/Object;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;)TT;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/ImmutableTypeToInstanceMap;->delegate:Lcom/google/common/collect/ImmutableMap;
invoke-virtual {v0, p1}, Lcom/google/common/collect/ImmutableMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
# virtual methods
.method public bridge synthetic delegate()Ljava/lang/Object;
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/ImmutableTypeToInstanceMap;->delegate()Ljava/util/Map;
move-result-object v0
return-object v0
.end method
.method public delegate()Ljava/util/Map;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Map<",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;TB;>;"
}
.end annotation
.line 2
iget-object v0, p0, Lcom/google/common/reflect/ImmutableTypeToInstanceMap;->delegate:Lcom/google/common/collect/ImmutableMap;
return-object v0
.end method
.method public getInstance(Lcom/google/common/reflect/TypeToken;)Ljava/lang/Object;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;)TT;"
}
.end annotation
.line 1
invoke-virtual {p1}, Lcom/google/common/reflect/TypeToken;->rejectTypeVariables()Lcom/google/common/reflect/TypeToken;
move-result-object p1
invoke-direct {p0, p1}, Lcom/google/common/reflect/ImmutableTypeToInstanceMap;->trustedGet(Lcom/google/common/reflect/TypeToken;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public getInstance(Ljava/lang/Class;)Ljava/lang/Object;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.line 2
invoke-static {p1}, Lcom/google/common/reflect/TypeToken;->of(Ljava/lang/Class;)Lcom/google/common/reflect/TypeToken;
move-result-object p1
invoke-direct {p0, p1}, Lcom/google/common/reflect/ImmutableTypeToInstanceMap;->trustedGet(Lcom/google/common/reflect/TypeToken;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public put(Lcom/google/common/reflect/TypeToken;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation build Lcom/google/errorprone/annotations/DoNotCall;
value = "Always throws UnsupportedOperationException"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;TB;)TB;"
}
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 2
new-instance p1, Ljava/lang/UnsupportedOperationException;
invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw p1
.end method
.method public bridge synthetic put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation build Lcom/google/errorprone/annotations/DoNotCall;
value = "Always throws UnsupportedOperationException"
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 1
check-cast p1, Lcom/google/common/reflect/TypeToken;
invoke-virtual {p0, p1, p2}, Lcom/google/common/reflect/ImmutableTypeToInstanceMap;->put(Lcom/google/common/reflect/TypeToken;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public putAll(Ljava/util/Map;)V
.locals 0
.annotation build Lcom/google/errorprone/annotations/DoNotCall;
value = "Always throws UnsupportedOperationException"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map<",
"+",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;+TB;>;)V"
}
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 1
new-instance p1, Ljava/lang/UnsupportedOperationException;
invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw p1
.end method
.method public putInstance(Lcom/google/common/reflect/TypeToken;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation build Lcom/google/errorprone/annotations/DoNotCall;
value = "Always throws UnsupportedOperationException"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;TT;)TT;"
}
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 1
new-instance p1, Ljava/lang/UnsupportedOperationException;
invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw p1
.end method
.method public putInstance(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation build Lcom/google/errorprone/annotations/DoNotCall;
value = "Always throws UnsupportedOperationException"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Ljava/lang/Class<",
"TT;>;TT;)TT;"
}
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 2
new-instance p1, Ljava/lang/UnsupportedOperationException;
invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw p1
.end method
@@ -0,0 +1,373 @@
.class Lcom/google/common/reflect/Invokable$ConstructorInvokable;
.super Lcom/google/common/reflect/Invokable;
.source "Invokable.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Invokable;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "ConstructorInvokable"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Lcom/google/common/reflect/Invokable<",
"TT;TT;>;"
}
.end annotation
# instance fields
.field public final constructor:Ljava/lang/reflect/Constructor;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/reflect/Constructor<",
"*>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Ljava/lang/reflect/Constructor;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Constructor<",
"*>;)V"
}
.end annotation
.line 1
invoke-direct {p0, p1}, Lcom/google/common/reflect/Invokable;-><init>(Ljava/lang/reflect/AccessibleObject;)V
.line 2
iput-object p1, p0, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->constructor:Ljava/lang/reflect/Constructor;
return-void
.end method
.method private mayNeedHiddenThis()Z
.locals 3
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->constructor:Ljava/lang/reflect/Constructor;
invoke-virtual {v0}, Ljava/lang/reflect/Constructor;->getDeclaringClass()Ljava/lang/Class;
move-result-object v0
.line 2
invoke-virtual {v0}, Ljava/lang/Class;->getEnclosingConstructor()Ljava/lang/reflect/Constructor;
move-result-object v1
const/4 v2, 0x1
if-eqz v1, :cond_0
return v2
.line 3
:cond_0
invoke-virtual {v0}, Ljava/lang/Class;->getEnclosingMethod()Ljava/lang/reflect/Method;
move-result-object v1
if-eqz v1, :cond_1
.line 4
invoke-virtual {v1}, Ljava/lang/reflect/Method;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isStatic(I)Z
move-result v0
xor-int/2addr v0, v2
return v0
.line 5
:cond_1
invoke-virtual {v0}, Ljava/lang/Class;->getEnclosingClass()Ljava/lang/Class;
move-result-object v1
if-eqz v1, :cond_2
.line 6
invoke-virtual {v0}, Ljava/lang/Class;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isStatic(I)Z
move-result v0
if-nez v0, :cond_2
goto :goto_0
:cond_2
const/4 v2, 0x0
:goto_0
return v2
.end method
# virtual methods
.method public getGenericExceptionTypes()[Ljava/lang/reflect/Type;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->constructor:Ljava/lang/reflect/Constructor;
invoke-virtual {v0}, Ljava/lang/reflect/Constructor;->getGenericExceptionTypes()[Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public getGenericParameterTypes()[Ljava/lang/reflect/Type;
.locals 4
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->constructor:Ljava/lang/reflect/Constructor;
invoke-virtual {v0}, Ljava/lang/reflect/Constructor;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
move-result-object v0
.line 2
array-length v1, v0
if-lez v1, :cond_0
invoke-direct {p0}, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->mayNeedHiddenThis()Z
move-result v1
if-eqz v1, :cond_0
.line 3
iget-object v1, p0, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->constructor:Ljava/lang/reflect/Constructor;
invoke-virtual {v1}, Ljava/lang/reflect/Constructor;->getParameterTypes()[Ljava/lang/Class;
move-result-object v1
.line 4
array-length v2, v0
array-length v3, v1
if-ne v2, v3, :cond_0
const/4 v2, 0x0
aget-object v1, v1, v2
.line 5
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getDeclaringClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->getEnclosingClass()Ljava/lang/Class;
move-result-object v2
if-ne v1, v2, :cond_0
const/4 v1, 0x1
.line 6
array-length v2, v0
invoke-static {v0, v1, v2}, Ljava/util/Arrays;->copyOfRange([Ljava/lang/Object;II)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/reflect/Type;
:cond_0
return-object v0
.end method
.method public getGenericReturnType()Ljava/lang/reflect/Type;
.locals 3
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getDeclaringClass()Ljava/lang/Class;
move-result-object v0
.line 2
invoke-virtual {v0}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v1
.line 3
array-length v2, v1
if-lez v2, :cond_0
.line 4
invoke-static {v0, v1}, Lcom/google/common/reflect/Types;->newParameterizedType(Ljava/lang/Class;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType;
move-result-object v0
:cond_0
return-object v0
.end method
.method public final getParameterAnnotations()[[Ljava/lang/annotation/Annotation;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->constructor:Ljava/lang/reflect/Constructor;
invoke-virtual {v0}, Ljava/lang/reflect/Constructor;->getParameterAnnotations()[[Ljava/lang/annotation/Annotation;
move-result-object v0
return-object v0
.end method
.method public final getTypeParameters()[Ljava/lang/reflect/TypeVariable;
.locals 5
.annotation system Ldalvik/annotation/Signature;
value = {
"()[",
"Ljava/lang/reflect/TypeVariable<",
"*>;"
}
.end annotation
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getDeclaringClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v0
.line 2
iget-object v1, p0, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->constructor:Ljava/lang/reflect/Constructor;
invoke-virtual {v1}, Ljava/lang/reflect/Constructor;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v1
.line 3
array-length v2, v0
array-length v3, v1
add-int/2addr v2, v3
new-array v2, v2, [Ljava/lang/reflect/TypeVariable;
.line 4
array-length v3, v0
const/4 v4, 0x0
invoke-static {v0, v4, v2, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 5
array-length v0, v0
array-length v3, v1
invoke-static {v1, v4, v2, v0, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
return-object v2
.end method
.method public final invokeInternal(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
.locals 3
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/reflect/InvocationTargetException;,
Ljava/lang/IllegalAccessException;
}
.end annotation
.line 1
:try_start_0
iget-object p1, p0, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->constructor:Ljava/lang/reflect/Constructor;
invoke-virtual {p1, p2}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
:try_end_0
.catch Ljava/lang/InstantiationException; {:try_start_0 .. :try_end_0} :catch_0
return-object p1
:catch_0
move-exception p1
.line 2
new-instance p2, Ljava/lang/RuntimeException;
iget-object v0, p0, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->constructor:Ljava/lang/reflect/Constructor;
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v1
add-int/lit8 v1, v1, 0x8
const-string v2, " failed."
invoke-static {v1, v0, v2}, Lcom/android/billingclient/api/e;->a(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-direct {p2, v0, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw p2
.end method
.method public final isOverridable()Z
.locals 1
const/4 v0, 0x0
return v0
.end method
.method public final isVarArgs()Z
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->constructor:Ljava/lang/reflect/Constructor;
invoke-virtual {v0}, Ljava/lang/reflect/Constructor;->isVarArgs()Z
move-result v0
return v0
.end method
@@ -0,0 +1,207 @@
.class Lcom/google/common/reflect/Invokable$MethodInvokable;
.super Lcom/google/common/reflect/Invokable;
.source "Invokable.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Invokable;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "MethodInvokable"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Lcom/google/common/reflect/Invokable<",
"TT;",
"Ljava/lang/Object;",
">;"
}
.end annotation
# instance fields
.field public final method:Ljava/lang/reflect/Method;
# direct methods
.method public constructor <init>(Ljava/lang/reflect/Method;)V
.locals 0
.line 1
invoke-direct {p0, p1}, Lcom/google/common/reflect/Invokable;-><init>(Ljava/lang/reflect/AccessibleObject;)V
.line 2
iput-object p1, p0, Lcom/google/common/reflect/Invokable$MethodInvokable;->method:Ljava/lang/reflect/Method;
return-void
.end method
# virtual methods
.method public getGenericExceptionTypes()[Ljava/lang/reflect/Type;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable$MethodInvokable;->method:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getGenericExceptionTypes()[Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public getGenericParameterTypes()[Ljava/lang/reflect/Type;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable$MethodInvokable;->method:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public getGenericReturnType()Ljava/lang/reflect/Type;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable$MethodInvokable;->method:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getGenericReturnType()Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public final getParameterAnnotations()[[Ljava/lang/annotation/Annotation;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable$MethodInvokable;->method:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getParameterAnnotations()[[Ljava/lang/annotation/Annotation;
move-result-object v0
return-object v0
.end method
.method public final getTypeParameters()[Ljava/lang/reflect/TypeVariable;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()[",
"Ljava/lang/reflect/TypeVariable<",
"*>;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable$MethodInvokable;->method:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v0
return-object v0
.end method
.method public final invokeInternal(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
.locals 1
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/reflect/InvocationTargetException;,
Ljava/lang/IllegalAccessException;
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable$MethodInvokable;->method:Ljava/lang/reflect/Method;
invoke-virtual {v0, p1, p2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public final isOverridable()Z
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->isFinal()Z
move-result v0
if-nez v0, :cond_0
.line 2
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->isPrivate()Z
move-result v0
if-nez v0, :cond_0
.line 3
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->isStatic()Z
move-result v0
if-nez v0, :cond_0
.line 4
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getDeclaringClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isFinal(I)Z
move-result v0
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public final isVarArgs()Z
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable$MethodInvokable;->method:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->isVarArgs()Z
move-result v0
return v0
.end method
@@ -0,0 +1,887 @@
.class public abstract Lcom/google/common/reflect/Invokable;
.super Ljava/lang/Object;
.source "Invokable.java"
# interfaces
.implements Ljava/lang/reflect/AnnotatedElement;
.implements Ljava/lang/reflect/Member;
# annotations
.annotation build Lcom/google/common/annotations/Beta;
.end annotation
.annotation runtime Lcom/google/common/reflect/ElementTypesAreNonnullByDefault;
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/common/reflect/Invokable$ConstructorInvokable;,
Lcom/google/common/reflect/Invokable$MethodInvokable;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
"R:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;",
"Ljava/lang/reflect/AnnotatedElement;",
"Ljava/lang/reflect/Member;"
}
.end annotation
# instance fields
.field private final accessibleObject:Ljava/lang/reflect/AccessibleObject;
.field private final member:Ljava/lang/reflect/Member;
# direct methods
.method public constructor <init>(Ljava/lang/reflect/AccessibleObject;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"<M:",
"Ljava/lang/reflect/AccessibleObject;",
":",
"Ljava/lang/reflect/Member;",
">(TM;)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 3
iput-object p1, p0, Lcom/google/common/reflect/Invokable;->accessibleObject:Ljava/lang/reflect/AccessibleObject;
.line 4
check-cast p1, Ljava/lang/reflect/Member;
iput-object p1, p0, Lcom/google/common/reflect/Invokable;->member:Ljava/lang/reflect/Member;
return-void
.end method
.method public static from(Ljava/lang/reflect/Constructor;)Lcom/google/common/reflect/Invokable;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/reflect/Constructor<",
"TT;>;)",
"Lcom/google/common/reflect/Invokable<",
"TT;TT;>;"
}
.end annotation
.line 2
new-instance v0, Lcom/google/common/reflect/Invokable$ConstructorInvokable;
invoke-direct {v0, p0}, Lcom/google/common/reflect/Invokable$ConstructorInvokable;-><init>(Ljava/lang/reflect/Constructor;)V
return-object v0
.end method
.method public static from(Ljava/lang/reflect/Method;)Lcom/google/common/reflect/Invokable;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Method;",
")",
"Lcom/google/common/reflect/Invokable<",
"*",
"Ljava/lang/Object;",
">;"
}
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/Invokable$MethodInvokable;
invoke-direct {v0, p0}, Lcom/google/common/reflect/Invokable$MethodInvokable;-><init>(Ljava/lang/reflect/Method;)V
return-object v0
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 3
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.line 1
instance-of v0, p1, Lcom/google/common/reflect/Invokable;
const/4 v1, 0x0
if-eqz v0, :cond_0
.line 2
check-cast p1, Lcom/google/common/reflect/Invokable;
.line 3
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getOwnerType()Lcom/google/common/reflect/TypeToken;
move-result-object v0
invoke-virtual {p1}, Lcom/google/common/reflect/Invokable;->getOwnerType()Lcom/google/common/reflect/TypeToken;
move-result-object v2
invoke-virtual {v0, v2}, Lcom/google/common/reflect/TypeToken;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->member:Ljava/lang/reflect/Member;
iget-object p1, p1, Lcom/google/common/reflect/Invokable;->member:Ljava/lang/reflect/Member;
invoke-virtual {v0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_0
const/4 v1, 0x1
:cond_0
return v1
.end method
.method public final getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<A::",
"Ljava/lang/annotation/Annotation;",
">(",
"Ljava/lang/Class<",
"TA;>;)TA;"
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->accessibleObject:Ljava/lang/reflect/AccessibleObject;
invoke-virtual {v0, p1}, Ljava/lang/reflect/AccessibleObject;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object p1
return-object p1
.end method
.method public final getAnnotations()[Ljava/lang/annotation/Annotation;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->accessibleObject:Ljava/lang/reflect/AccessibleObject;
invoke-virtual {v0}, Ljava/lang/reflect/AccessibleObject;->getAnnotations()[Ljava/lang/annotation/Annotation;
move-result-object v0
return-object v0
.end method
.method public final getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->accessibleObject:Ljava/lang/reflect/AccessibleObject;
invoke-virtual {v0}, Ljava/lang/reflect/AccessibleObject;->getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;
move-result-object v0
return-object v0
.end method
.method public final getDeclaringClass()Ljava/lang/Class;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/lang/Class<",
"-TT;>;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->member:Ljava/lang/reflect/Member;
invoke-interface {v0}, Ljava/lang/reflect/Member;->getDeclaringClass()Ljava/lang/Class;
move-result-object v0
return-object v0
.end method
.method public final getExceptionTypes()Lcom/google/common/collect/ImmutableList;
.locals 5
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/collect/ImmutableList<",
"Lcom/google/common/reflect/TypeToken<",
"+",
"Ljava/lang/Throwable;",
">;>;"
}
.end annotation
.line 1
invoke-static {}, Lcom/google/common/collect/ImmutableList;->builder()Lcom/google/common/collect/ImmutableList$Builder;
move-result-object v0
.line 2
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getGenericExceptionTypes()[Ljava/lang/reflect/Type;
move-result-object v1
array-length v2, v1
const/4 v3, 0x0
:goto_0
if-ge v3, v2, :cond_0
aget-object v4, v1, v3
.line 3
invoke-static {v4}, Lcom/google/common/reflect/TypeToken;->of(Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeToken;
move-result-object v4
.line 4
invoke-virtual {v0, v4}, Lcom/google/common/collect/ImmutableList$Builder;->add(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList$Builder;
add-int/lit8 v3, v3, 0x1
goto :goto_0
.line 5
:cond_0
invoke-virtual {v0}, Lcom/google/common/collect/ImmutableList$Builder;->build()Lcom/google/common/collect/ImmutableList;
move-result-object v0
return-object v0
.end method
.method public abstract getGenericExceptionTypes()[Ljava/lang/reflect/Type;
.end method
.method public abstract getGenericParameterTypes()[Ljava/lang/reflect/Type;
.end method
.method public abstract getGenericReturnType()Ljava/lang/reflect/Type;
.end method
.method public final getModifiers()I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->member:Ljava/lang/reflect/Member;
invoke-interface {v0}, Ljava/lang/reflect/Member;->getModifiers()I
move-result v0
return v0
.end method
.method public final getName()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->member:Ljava/lang/reflect/Member;
invoke-interface {v0}, Ljava/lang/reflect/Member;->getName()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getOwnerType()Lcom/google/common/reflect/TypeToken;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;"
}
.end annotation
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getDeclaringClass()Ljava/lang/Class;
move-result-object v0
invoke-static {v0}, Lcom/google/common/reflect/TypeToken;->of(Ljava/lang/Class;)Lcom/google/common/reflect/TypeToken;
move-result-object v0
return-object v0
.end method
.method public abstract getParameterAnnotations()[[Ljava/lang/annotation/Annotation;
.end method
.method public final getParameters()Lcom/google/common/collect/ImmutableList;
.locals 7
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/collect/ImmutableList<",
"Lcom/google/common/reflect/Parameter;",
">;"
}
.end annotation
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
move-result-object v0
.line 2
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getParameterAnnotations()[[Ljava/lang/annotation/Annotation;
move-result-object v1
.line 3
invoke-static {}, Lcom/google/common/collect/ImmutableList;->builder()Lcom/google/common/collect/ImmutableList$Builder;
move-result-object v2
const/4 v3, 0x0
.line 4
:goto_0
array-length v4, v0
if-ge v3, v4, :cond_0
.line 5
new-instance v4, Lcom/google/common/reflect/Parameter;
aget-object v5, v0, v3
invoke-static {v5}, Lcom/google/common/reflect/TypeToken;->of(Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeToken;
move-result-object v5
aget-object v6, v1, v3
invoke-direct {v4, p0, v3, v5, v6}, Lcom/google/common/reflect/Parameter;-><init>(Lcom/google/common/reflect/Invokable;ILcom/google/common/reflect/TypeToken;[Ljava/lang/annotation/Annotation;)V
invoke-virtual {v2, v4}, Lcom/google/common/collect/ImmutableList$Builder;->add(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList$Builder;
add-int/lit8 v3, v3, 0x1
goto :goto_0
.line 6
:cond_0
invoke-virtual {v2}, Lcom/google/common/collect/ImmutableList$Builder;->build()Lcom/google/common/collect/ImmutableList;
move-result-object v0
return-object v0
.end method
.method public final getReturnType()Lcom/google/common/reflect/TypeToken;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/TypeToken<",
"+TR;>;"
}
.end annotation
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getGenericReturnType()Ljava/lang/reflect/Type;
move-result-object v0
invoke-static {v0}, Lcom/google/common/reflect/TypeToken;->of(Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeToken;
move-result-object v0
return-object v0
.end method
.method public abstract getTypeParameters()[Ljava/lang/reflect/TypeVariable;
.annotation system Ldalvik/annotation/Signature;
value = {
"()[",
"Ljava/lang/reflect/TypeVariable<",
"*>;"
}
.end annotation
.end method
.method public hashCode()I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->member:Ljava/lang/reflect/Member;
invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I
move-result v0
return v0
.end method
.method public final varargs invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;[",
"Ljava/lang/Object;",
")TR;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/reflect/InvocationTargetException;,
Ljava/lang/IllegalAccessException;
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
invoke-static {p2}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p2
check-cast p2, [Ljava/lang/Object;
invoke-virtual {p0, p1, p2}, Lcom/google/common/reflect/Invokable;->invokeInternal(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public abstract invokeInternal(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/reflect/InvocationTargetException;,
Ljava/lang/IllegalAccessException;
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end method
.method public final isAbstract()Z
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isAbstract(I)Z
move-result v0
return v0
.end method
.method public final isAccessible()Z
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->accessibleObject:Ljava/lang/reflect/AccessibleObject;
invoke-virtual {v0}, Ljava/lang/reflect/AccessibleObject;->isAccessible()Z
move-result v0
return v0
.end method
.method public final isAnnotationPresent(Ljava/lang/Class;)Z
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"+",
"Ljava/lang/annotation/Annotation;",
">;)Z"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->accessibleObject:Ljava/lang/reflect/AccessibleObject;
invoke-virtual {v0, p1}, Ljava/lang/reflect/AccessibleObject;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result p1
return p1
.end method
.method public final isFinal()Z
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isFinal(I)Z
move-result v0
return v0
.end method
.method public final isNative()Z
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isNative(I)Z
move-result v0
return v0
.end method
.method public abstract isOverridable()Z
.end method
.method public final isPackagePrivate()Z
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->isPrivate()Z
move-result v0
if-nez v0, :cond_0
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->isPublic()Z
move-result v0
if-nez v0, :cond_0
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->isProtected()Z
move-result v0
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public final isPrivate()Z
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isPrivate(I)Z
move-result v0
return v0
.end method
.method public final isProtected()Z
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isProtected(I)Z
move-result v0
return v0
.end method
.method public final isPublic()Z
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isPublic(I)Z
move-result v0
return v0
.end method
.method public final isStatic()Z
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isStatic(I)Z
move-result v0
return v0
.end method
.method public final isSynchronized()Z
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isSynchronized(I)Z
move-result v0
return v0
.end method
.method public final isSynthetic()Z
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->member:Ljava/lang/reflect/Member;
invoke-interface {v0}, Ljava/lang/reflect/Member;->isSynthetic()Z
move-result v0
return v0
.end method
.method public final isTransient()Z
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isTransient(I)Z
move-result v0
return v0
.end method
.method public abstract isVarArgs()Z
.end method
.method public final isVolatile()Z
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isVolatile(I)Z
move-result v0
return v0
.end method
.method public final returning(Lcom/google/common/reflect/TypeToken;)Lcom/google/common/reflect/Invokable;
.locals 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<R1:TR;>(",
"Lcom/google/common/reflect/TypeToken<",
"TR1;>;)",
"Lcom/google/common/reflect/Invokable<",
"TT;TR1;>;"
}
.end annotation
.line 2
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getReturnType()Lcom/google/common/reflect/TypeToken;
move-result-object v0
invoke-virtual {p1, v0}, Lcom/google/common/reflect/TypeToken;->isSupertypeOf(Lcom/google/common/reflect/TypeToken;)Z
move-result v0
if-eqz v0, :cond_0
return-object p0
.line 3
:cond_0
new-instance v0, Ljava/lang/IllegalArgumentException;
.line 4
invoke-virtual {p0}, Lcom/google/common/reflect/Invokable;->getReturnType()Lcom/google/common/reflect/TypeToken;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x23
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v3
add-int/2addr v3, v2
const-string v2, "Invokable is known to return "
const-string v4, ", not "
invoke-static {v3, v2, v1, v4, p1}, Lcom/android/billingclient/api/f;->a(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public final returning(Ljava/lang/Class;)Lcom/google/common/reflect/Invokable;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"<R1:TR;>(",
"Ljava/lang/Class<",
"TR1;>;)",
"Lcom/google/common/reflect/Invokable<",
"TT;TR1;>;"
}
.end annotation
.line 1
invoke-static {p1}, Lcom/google/common/reflect/TypeToken;->of(Ljava/lang/Class;)Lcom/google/common/reflect/TypeToken;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/Invokable;->returning(Lcom/google/common/reflect/TypeToken;)Lcom/google/common/reflect/Invokable;
move-result-object p1
return-object p1
.end method
.method public final setAccessible(Z)V
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->accessibleObject:Ljava/lang/reflect/AccessibleObject;
invoke-virtual {v0, p1}, Ljava/lang/reflect/AccessibleObject;->setAccessible(Z)V
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->member:Ljava/lang/reflect/Member;
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public final trySetAccessible()Z
.locals 2
.line 1
:try_start_0
iget-object v0, p0, Lcom/google/common/reflect/Invokable;->accessibleObject:Ljava/lang/reflect/AccessibleObject;
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/reflect/AccessibleObject;->setAccessible(Z)V
:try_end_0
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
return v1
:catch_0
const/4 v0, 0x0
return v0
.end method
@@ -0,0 +1,14 @@
.class synthetic Lcom/google/common/reflect/MutableTypeToInstanceMap$1;
.super Ljava/lang/Object;
.source "MutableTypeToInstanceMap.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/MutableTypeToInstanceMap;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1009
name = null
.end annotation
@@ -0,0 +1,132 @@
.class Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry$1;
.super Lcom/google/common/collect/ForwardingSet;
.source "MutableTypeToInstanceMap.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry;->transformEntries(Ljava/util/Set;)Ljava/util/Set;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ForwardingSet<",
"Ljava/util/Map$Entry<",
"TK;TV;>;>;"
}
.end annotation
# instance fields
.field public final synthetic val$entries:Ljava/util/Set;
# direct methods
.method public constructor <init>(Ljava/util/Set;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry$1;->val$entries:Ljava/util/Set;
invoke-direct {p0}, Lcom/google/common/collect/ForwardingSet;-><init>()V
return-void
.end method
# virtual methods
.method public bridge synthetic delegate()Ljava/lang/Object;
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry$1;->delegate()Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public bridge synthetic delegate()Ljava/util/Collection;
.locals 1
.line 2
invoke-virtual {p0}, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry$1;->delegate()Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public delegate()Ljava/util/Set;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set<",
"Ljava/util/Map$Entry<",
"TK;TV;>;>;"
}
.end annotation
.line 3
iget-object v0, p0, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry$1;->val$entries:Ljava/util/Set;
return-object v0
.end method
.method public iterator()Ljava/util/Iterator;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Iterator<",
"Ljava/util/Map$Entry<",
"TK;TV;>;>;"
}
.end annotation
.line 1
invoke-super {p0}, Lcom/google/common/collect/ForwardingCollection;->iterator()Ljava/util/Iterator;
move-result-object v0
invoke-static {v0}, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry;->access$000(Ljava/util/Iterator;)Ljava/util/Iterator;
move-result-object v0
return-object v0
.end method
.method public toArray()[Ljava/lang/Object;
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/collect/ForwardingCollection;->standardToArray()[Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">([TT;)[TT;"
}
.end annotation
.line 2
invoke-virtual {p0, p1}, Lcom/google/common/collect/ForwardingCollection;->standardToArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,76 @@
.class Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry$2;
.super Ljava/lang/Object;
.source "MutableTypeToInstanceMap.java"
# interfaces
.implements Lcom/google/common/base/Function;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry;->transformEntries(Ljava/util/Iterator;)Ljava/util/Iterator;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lcom/google/common/base/Function<",
"Ljava/util/Map$Entry<",
"TK;TV;>;",
"Ljava/util/Map$Entry<",
"TK;TV;>;>;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public bridge synthetic apply(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 1
check-cast p1, Ljava/util/Map$Entry;
invoke-virtual {p0, p1}, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry$2;->apply(Ljava/util/Map$Entry;)Ljava/util/Map$Entry;
move-result-object p1
return-object p1
.end method
.method public apply(Ljava/util/Map$Entry;)Ljava/util/Map$Entry;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map$Entry<",
"TK;TV;>;)",
"Ljava/util/Map$Entry<",
"TK;TV;>;"
}
.end annotation
.line 2
new-instance v0, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry;
const/4 v1, 0x0
invoke-direct {v0, p1, v1}, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry;-><init>(Ljava/util/Map$Entry;Lcom/google/common/reflect/MutableTypeToInstanceMap$1;)V
return-object v0
.end method
@@ -0,0 +1,185 @@
.class final Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry;
.super Lcom/google/common/collect/ForwardingMapEntry;
.source "MutableTypeToInstanceMap.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/MutableTypeToInstanceMap;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "UnmodifiableEntry"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">",
"Lcom/google/common/collect/ForwardingMapEntry<",
"TK;TV;>;"
}
.end annotation
# instance fields
.field private final delegate:Ljava/util/Map$Entry;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map$Entry<",
"TK;TV;>;"
}
.end annotation
.end field
# direct methods
.method private constructor <init>(Ljava/util/Map$Entry;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map$Entry<",
"TK;TV;>;)V"
}
.end annotation
.line 2
invoke-direct {p0}, Lcom/google/common/collect/ForwardingMapEntry;-><init>()V
.line 3
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/util/Map$Entry;
iput-object p1, p0, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry;->delegate:Ljava/util/Map$Entry;
return-void
.end method
.method public synthetic constructor <init>(Ljava/util/Map$Entry;Lcom/google/common/reflect/MutableTypeToInstanceMap$1;)V
.locals 0
.line 1
invoke-direct {p0, p1}, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry;-><init>(Ljava/util/Map$Entry;)V
return-void
.end method
.method public static synthetic access$000(Ljava/util/Iterator;)Ljava/util/Iterator;
.locals 0
.line 1
invoke-static {p0}, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry;->transformEntries(Ljava/util/Iterator;)Ljava/util/Iterator;
move-result-object p0
return-object p0
.end method
.method private static transformEntries(Ljava/util/Iterator;)Ljava/util/Iterator;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">(",
"Ljava/util/Iterator<",
"Ljava/util/Map$Entry<",
"TK;TV;>;>;)",
"Ljava/util/Iterator<",
"Ljava/util/Map$Entry<",
"TK;TV;>;>;"
}
.end annotation
.line 2
new-instance v0, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry$2;
invoke-direct {v0}, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry$2;-><init>()V
invoke-static {p0, v0}, Lcom/google/common/collect/Iterators;->transform(Ljava/util/Iterator;Lcom/google/common/base/Function;)Ljava/util/Iterator;
move-result-object p0
return-object p0
.end method
.method public static transformEntries(Ljava/util/Set;)Ljava/util/Set;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">(",
"Ljava/util/Set<",
"Ljava/util/Map$Entry<",
"TK;TV;>;>;)",
"Ljava/util/Set<",
"Ljava/util/Map$Entry<",
"TK;TV;>;>;"
}
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry$1;
invoke-direct {v0, p0}, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry$1;-><init>(Ljava/util/Set;)V
return-object v0
.end method
# virtual methods
.method public bridge synthetic delegate()Ljava/lang/Object;
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry;->delegate()Ljava/util/Map$Entry;
move-result-object v0
return-object v0
.end method
.method public delegate()Ljava/util/Map$Entry;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Map$Entry<",
"TK;TV;>;"
}
.end annotation
.line 2
iget-object v0, p0, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry;->delegate:Ljava/util/Map$Entry;
return-object v0
.end method
.method public setValue(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(TV;)TV;"
}
.end annotation
.line 1
new-instance p1, Ljava/lang/UnsupportedOperationException;
invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw p1
.end method
@@ -0,0 +1,359 @@
.class public final Lcom/google/common/reflect/MutableTypeToInstanceMap;
.super Lcom/google/common/collect/ForwardingMap;
.source "MutableTypeToInstanceMap.java"
# interfaces
.implements Lcom/google/common/reflect/TypeToInstanceMap;
# annotations
.annotation build Lcom/google/common/annotations/Beta;
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<B:",
"Ljava/lang/Object;",
">",
"Lcom/google/common/collect/ForwardingMap<",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;TB;>;",
"Lcom/google/common/reflect/TypeToInstanceMap<",
"TB;>;"
}
.end annotation
# instance fields
.field private final backingMap:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;TB;>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.locals 1
.line 1
invoke-direct {p0}, Lcom/google/common/collect/ForwardingMap;-><init>()V
.line 2
invoke-static {}, Lcom/google/common/collect/Maps;->newHashMap()Ljava/util/HashMap;
move-result-object v0
iput-object v0, p0, Lcom/google/common/reflect/MutableTypeToInstanceMap;->backingMap:Ljava/util/Map;
return-void
.end method
.method private trustedGet(Lcom/google/common/reflect/TypeToken;)Ljava/lang/Object;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;)TT;"
}
.end annotation
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/MutableTypeToInstanceMap;->backingMap:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method private trustedPut(Lcom/google/common/reflect/TypeToken;Ljava/lang/Object;)Ljava/lang/Object;
.locals 1
.param p2 # Ljava/lang/Object;
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;TT;)TT;"
}
.end annotation
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/MutableTypeToInstanceMap;->backingMap:Ljava/util/Map;
invoke-interface {v0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
# virtual methods
.method public bridge synthetic delegate()Ljava/lang/Object;
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/MutableTypeToInstanceMap;->delegate()Ljava/util/Map;
move-result-object v0
return-object v0
.end method
.method public delegate()Ljava/util/Map;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Map<",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;TB;>;"
}
.end annotation
.line 2
iget-object v0, p0, Lcom/google/common/reflect/MutableTypeToInstanceMap;->backingMap:Ljava/util/Map;
return-object v0
.end method
.method public entrySet()Ljava/util/Set;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set<",
"Ljava/util/Map$Entry<",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;TB;>;>;"
}
.end annotation
.line 1
invoke-super {p0}, Lcom/google/common/collect/ForwardingMap;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-static {v0}, Lcom/google/common/reflect/MutableTypeToInstanceMap$UnmodifiableEntry;->transformEntries(Ljava/util/Set;)Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public getInstance(Lcom/google/common/reflect/TypeToken;)Ljava/lang/Object;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;)TT;"
}
.end annotation
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.line 2
invoke-virtual {p1}, Lcom/google/common/reflect/TypeToken;->rejectTypeVariables()Lcom/google/common/reflect/TypeToken;
move-result-object p1
invoke-direct {p0, p1}, Lcom/google/common/reflect/MutableTypeToInstanceMap;->trustedGet(Lcom/google/common/reflect/TypeToken;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public getInstance(Ljava/lang/Class;)Ljava/lang/Object;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.line 1
invoke-static {p1}, Lcom/google/common/reflect/TypeToken;->of(Ljava/lang/Class;)Lcom/google/common/reflect/TypeToken;
move-result-object p1
invoke-direct {p0, p1}, Lcom/google/common/reflect/MutableTypeToInstanceMap;->trustedGet(Lcom/google/common/reflect/TypeToken;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public put(Lcom/google/common/reflect/TypeToken;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation build Lcom/google/errorprone/annotations/DoNotCall;
value = "Always throws UnsupportedOperationException"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;TB;)TB;"
}
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 2
new-instance p1, Ljava/lang/UnsupportedOperationException;
const-string p2, "Please use putInstance() instead."
invoke-direct {p1, p2}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public bridge synthetic put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation build Lcom/google/errorprone/annotations/DoNotCall;
value = "Always throws UnsupportedOperationException"
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 1
check-cast p1, Lcom/google/common/reflect/TypeToken;
invoke-virtual {p0, p1, p2}, Lcom/google/common/reflect/MutableTypeToInstanceMap;->put(Lcom/google/common/reflect/TypeToken;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public putAll(Ljava/util/Map;)V
.locals 1
.annotation build Lcom/google/errorprone/annotations/DoNotCall;
value = "Always throws UnsupportedOperationException"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map<",
"+",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;+TB;>;)V"
}
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 1
new-instance p1, Ljava/lang/UnsupportedOperationException;
const-string v0, "Please use putInstance() instead."
invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public putInstance(Lcom/google/common/reflect/TypeToken;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.param p2 # Ljava/lang/Object;
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.end param
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;TT;)TT;"
}
.end annotation
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.line 2
invoke-virtual {p1}, Lcom/google/common/reflect/TypeToken;->rejectTypeVariables()Lcom/google/common/reflect/TypeToken;
move-result-object p1
invoke-direct {p0, p1, p2}, Lcom/google/common/reflect/MutableTypeToInstanceMap;->trustedPut(Lcom/google/common/reflect/TypeToken;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public putInstance(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.param p2 # Ljava/lang/Object;
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.end param
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Ljava/lang/Class<",
"TT;>;TT;)TT;"
}
.end annotation
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.line 1
invoke-static {p1}, Lcom/google/common/reflect/TypeToken;->of(Ljava/lang/Class;)Lcom/google/common/reflect/TypeToken;
move-result-object p1
invoke-direct {p0, p1, p2}, Lcom/google/common/reflect/MutableTypeToInstanceMap;->trustedPut(Lcom/google/common/reflect/TypeToken;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,418 @@
.class public final Lcom/google/common/reflect/Parameter;
.super Ljava/lang/Object;
.source "Parameter.java"
# interfaces
.implements Ljava/lang/reflect/AnnotatedElement;
# annotations
.annotation build Lcom/google/common/annotations/Beta;
.end annotation
.annotation runtime Lcom/google/common/reflect/ElementTypesAreNonnullByDefault;
.end annotation
# instance fields
.field private final annotations:Lcom/google/common/collect/ImmutableList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ImmutableList<",
"Ljava/lang/annotation/Annotation;",
">;"
}
.end annotation
.end field
.field private final declaration:Lcom/google/common/reflect/Invokable;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/Invokable<",
"**>;"
}
.end annotation
.end field
.field private final position:I
.field private final type:Lcom/google/common/reflect/TypeToken;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/TypeToken<",
"*>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Lcom/google/common/reflect/Invokable;ILcom/google/common/reflect/TypeToken;[Ljava/lang/annotation/Annotation;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/reflect/Invokable<",
"**>;I",
"Lcom/google/common/reflect/TypeToken<",
"*>;[",
"Ljava/lang/annotation/Annotation;",
")V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/google/common/reflect/Parameter;->declaration:Lcom/google/common/reflect/Invokable;
.line 3
iput p2, p0, Lcom/google/common/reflect/Parameter;->position:I
.line 4
iput-object p3, p0, Lcom/google/common/reflect/Parameter;->type:Lcom/google/common/reflect/TypeToken;
.line 5
invoke-static {p4}, Lcom/google/common/collect/ImmutableList;->copyOf([Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList;
move-result-object p1
iput-object p1, p0, Lcom/google/common/reflect/Parameter;->annotations:Lcom/google/common/collect/ImmutableList;
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 3
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.line 1
instance-of v0, p1, Lcom/google/common/reflect/Parameter;
const/4 v1, 0x0
if-eqz v0, :cond_0
.line 2
check-cast p1, Lcom/google/common/reflect/Parameter;
.line 3
iget v0, p0, Lcom/google/common/reflect/Parameter;->position:I
iget v2, p1, Lcom/google/common/reflect/Parameter;->position:I
if-ne v0, v2, :cond_0
iget-object v0, p0, Lcom/google/common/reflect/Parameter;->declaration:Lcom/google/common/reflect/Invokable;
iget-object p1, p1, Lcom/google/common/reflect/Parameter;->declaration:Lcom/google/common/reflect/Invokable;
invoke-virtual {v0, p1}, Lcom/google/common/reflect/Invokable;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_0
const/4 v1, 0x1
:cond_0
return v1
.end method
.method public getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<A::",
"Ljava/lang/annotation/Annotation;",
">(",
"Ljava/lang/Class<",
"TA;>;)TA;"
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 2
iget-object v0, p0, Lcom/google/common/reflect/Parameter;->annotations:Lcom/google/common/collect/ImmutableList;
invoke-virtual {v0}, Lcom/google/common/collect/ImmutableList;->iterator()Lcom/google/common/collect/UnmodifiableIterator;
move-result-object v0
:cond_0
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_1
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/annotation/Annotation;
.line 3
invoke-virtual {p1, v1}, Ljava/lang/Class;->isInstance(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_0
.line 4
invoke-virtual {p1, v1}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/annotation/Annotation;
return-object p1
:cond_1
const/4 p1, 0x0
return-object p1
.end method
.method public getAnnotations()[Ljava/lang/annotation/Annotation;
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/Parameter;->getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;
move-result-object v0
return-object v0
.end method
.method public getAnnotationsByType(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"<A::",
"Ljava/lang/annotation/Annotation;",
">(",
"Ljava/lang/Class<",
"TA;>;)[TA;"
}
.end annotation
.line 1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/Parameter;->getDeclaredAnnotationsByType(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
move-result-object p1
return-object p1
.end method
.method public getDeclaredAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<A::",
"Ljava/lang/annotation/Annotation;",
">(",
"Ljava/lang/Class<",
"TA;>;)TA;"
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 2
iget-object v0, p0, Lcom/google/common/reflect/Parameter;->annotations:Lcom/google/common/collect/ImmutableList;
invoke-static {v0}, Lcom/google/common/collect/FluentIterable;->from(Ljava/lang/Iterable;)Lcom/google/common/collect/FluentIterable;
move-result-object v0
invoke-virtual {v0, p1}, Lcom/google/common/collect/FluentIterable;->filter(Ljava/lang/Class;)Lcom/google/common/collect/FluentIterable;
move-result-object p1
invoke-virtual {p1}, Lcom/google/common/collect/FluentIterable;->first()Lcom/google/common/base/Optional;
move-result-object p1
invoke-virtual {p1}, Lcom/google/common/base/Optional;->orNull()Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/annotation/Annotation;
return-object p1
.end method
.method public getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Parameter;->annotations:Lcom/google/common/collect/ImmutableList;
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/annotation/Annotation;
invoke-virtual {v0, v1}, Lcom/google/common/collect/ImmutableCollection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/annotation/Annotation;
return-object v0
.end method
.method public getDeclaredAnnotationsByType(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<A::",
"Ljava/lang/annotation/Annotation;",
">(",
"Ljava/lang/Class<",
"TA;>;)[TA;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Parameter;->annotations:Lcom/google/common/collect/ImmutableList;
invoke-static {v0}, Lcom/google/common/collect/FluentIterable;->from(Ljava/lang/Iterable;)Lcom/google/common/collect/FluentIterable;
move-result-object v0
invoke-virtual {v0, p1}, Lcom/google/common/collect/FluentIterable;->filter(Ljava/lang/Class;)Lcom/google/common/collect/FluentIterable;
move-result-object v0
invoke-virtual {v0, p1}, Lcom/google/common/collect/FluentIterable;->toArray(Ljava/lang/Class;)[Ljava/lang/Object;
move-result-object p1
check-cast p1, [Ljava/lang/annotation/Annotation;
return-object p1
.end method
.method public getDeclaringInvokable()Lcom/google/common/reflect/Invokable;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/Invokable<",
"**>;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Parameter;->declaration:Lcom/google/common/reflect/Invokable;
return-object v0
.end method
.method public getType()Lcom/google/common/reflect/TypeToken;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/TypeToken<",
"*>;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Parameter;->type:Lcom/google/common/reflect/TypeToken;
return-object v0
.end method
.method public hashCode()I
.locals 1
.line 1
iget v0, p0, Lcom/google/common/reflect/Parameter;->position:I
return v0
.end method
.method public isAnnotationPresent(Ljava/lang/Class;)Z
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"+",
"Ljava/lang/annotation/Annotation;",
">;)Z"
}
.end annotation
.line 1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/Parameter;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object p1
if-eqz p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public toString()Ljava/lang/String;
.locals 4
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Parameter;->type:Lcom/google/common/reflect/TypeToken;
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
iget v1, p0, Lcom/google/common/reflect/Parameter;->position:I
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0xf
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v0, " arg"
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,30 @@
.class interface abstract annotation Lcom/google/common/reflect/ParametricNullness;
.super Ljava/lang/Object;
.source "ParametricNullness.java"
# interfaces
.implements Ljava/lang/annotation/Annotation;
# annotations
.annotation build Lcom/google/common/annotations/GwtCompatible;
.end annotation
.annotation runtime Ljava/lang/annotation/Retention;
value = .enum Ljava/lang/annotation/RetentionPolicy;->RUNTIME:Ljava/lang/annotation/RetentionPolicy;
.end annotation
.annotation runtime Ljava/lang/annotation/Target;
value = {
.enum Ljava/lang/annotation/ElementType;->FIELD:Ljava/lang/annotation/ElementType;,
.enum Ljava/lang/annotation/ElementType;->METHOD:Ljava/lang/annotation/ElementType;,
.enum Ljava/lang/annotation/ElementType;->PARAMETER:Ljava/lang/annotation/ElementType;
}
.end annotation
.annotation runtime Ljavax/annotation/Nonnull;
when = .enum Ljavax/annotation/meta/When;->UNKNOWN:Ljavax/annotation/meta/When;
.end annotation
.annotation build Ljavax/annotation/meta/TypeQualifierNickname;
.end annotation
@@ -0,0 +1,179 @@
.class public final Lcom/google/common/reflect/Reflection;
.super Ljava/lang/Object;
.source "Reflection.java"
# annotations
.annotation build Lcom/google/common/annotations/Beta;
.end annotation
.annotation runtime Lcom/google/common/reflect/ElementTypesAreNonnullByDefault;
.end annotation
# direct methods
.method private constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getPackageName(Ljava/lang/Class;)Ljava/lang/String;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/String;"
}
.end annotation
.line 1
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Lcom/google/common/reflect/Reflection;->getPackageName(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getPackageName(Ljava/lang/String;)Ljava/lang/String;
.locals 2
const/16 v0, 0x2e
.line 2
invoke-virtual {p0, v0}, Ljava/lang/String;->lastIndexOf(I)I
move-result v0
if-gez v0, :cond_0
const-string p0, ""
goto :goto_0
:cond_0
const/4 v1, 0x0
.line 3
invoke-virtual {p0, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
:goto_0
return-object p0
.end method
.method public static varargs initialize([Ljava/lang/Class;)V
.locals 5
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Ljava/lang/Class<",
"*>;)V"
}
.end annotation
.line 1
array-length v0, p0
const/4 v1, 0x0
:goto_0
if-ge v1, v0, :cond_0
aget-object v2, p0, v1
.line 2
:try_start_0
invoke-virtual {v2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v2
const/4 v4, 0x1
invoke-static {v3, v4, v2}, Ljava/lang/Class;->forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
:try_end_0
.catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_0
add-int/lit8 v1, v1, 0x1
goto :goto_0
:catch_0
move-exception p0
.line 3
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0, p0}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
throw v0
:cond_0
return-void
.end method
.method public static newProxy(Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TT;>;",
"Ljava/lang/reflect/InvocationHandler;",
")TT;"
}
.end annotation
.line 1
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 2
invoke-virtual {p0}, Ljava/lang/Class;->isInterface()Z
move-result v0
const-string v1, "%s is not an interface"
invoke-static {v0, v1, p0}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
.line 3
invoke-virtual {p0}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v0
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/Class;
const/4 v2, 0x0
aput-object p0, v1, v2
.line 4
invoke-static {v0, v1, p1}, Ljava/lang/reflect/Proxy;->newProxyInstance(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
move-result-object p1
.line 5
invoke-virtual {p0, p1}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
@@ -0,0 +1,63 @@
.class abstract Lcom/google/common/reflect/TypeCapture;
.super Ljava/lang/Object;
.source "TypeCapture.java"
# annotations
.annotation runtime Lcom/google/common/reflect/ElementTypesAreNonnullByDefault;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public final capture()Ljava/lang/reflect/Type;
.locals 3
.line 1
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
move-result-object v0
.line 2
instance-of v1, v0, Ljava/lang/reflect/ParameterizedType;
const-string v2, "%s isn\'t parameterized"
invoke-static {v1, v2, v0}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
.line 3
check-cast v0, Ljava/lang/reflect/ParameterizedType;
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v0
const/4 v1, 0x0
aget-object v0, v0, v1
return-object v0
.end method
@@ -0,0 +1,120 @@
.class public abstract Lcom/google/common/reflect/TypeParameter;
.super Lcom/google/common/reflect/TypeCapture;
.source "TypeParameter.java"
# annotations
.annotation build Lcom/google/common/annotations/Beta;
.end annotation
.annotation runtime Lcom/google/common/reflect/ElementTypesAreNonnullByDefault;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Lcom/google/common/reflect/TypeCapture<",
"TT;>;"
}
.end annotation
# instance fields
.field public final typeVariable:Ljava/lang/reflect/TypeVariable;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/reflect/TypeVariable<",
"*>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.locals 3
.line 1
invoke-direct {p0}, Lcom/google/common/reflect/TypeCapture;-><init>()V
.line 2
invoke-virtual {p0}, Lcom/google/common/reflect/TypeCapture;->capture()Ljava/lang/reflect/Type;
move-result-object v0
.line 3
instance-of v1, v0, Ljava/lang/reflect/TypeVariable;
const-string v2, "%s should be a type variable."
invoke-static {v1, v2, v0}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
.line 4
check-cast v0, Ljava/lang/reflect/TypeVariable;
iput-object v0, p0, Lcom/google/common/reflect/TypeParameter;->typeVariable:Ljava/lang/reflect/TypeVariable;
return-void
.end method
# virtual methods
.method public final equals(Ljava/lang/Object;)Z
.locals 1
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.line 1
instance-of v0, p1, Lcom/google/common/reflect/TypeParameter;
if-eqz v0, :cond_0
.line 2
check-cast p1, Lcom/google/common/reflect/TypeParameter;
.line 3
iget-object v0, p0, Lcom/google/common/reflect/TypeParameter;->typeVariable:Ljava/lang/reflect/TypeVariable;
iget-object p1, p1, Lcom/google/common/reflect/TypeParameter;->typeVariable:Ljava/lang/reflect/TypeVariable;
invoke-virtual {v0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p1
return p1
:cond_0
const/4 p1, 0x0
return p1
.end method
.method public final hashCode()I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeParameter;->typeVariable:Ljava/lang/reflect/TypeVariable;
invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I
move-result v0
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeParameter;->typeVariable:Ljava/lang/reflect/TypeVariable;
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,402 @@
.class Lcom/google/common/reflect/TypeResolver$1;
.super Lcom/google/common/reflect/TypeVisitor;
.source "TypeResolver.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/TypeResolver;->populateTypeMappings(Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic val$mappings:Ljava/util/Map;
.field public final synthetic val$to:Ljava/lang/reflect/Type;
# direct methods
.method public constructor <init>(Ljava/util/Map;Ljava/lang/reflect/Type;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/common/reflect/TypeResolver$1;->val$mappings:Ljava/util/Map;
iput-object p2, p0, Lcom/google/common/reflect/TypeResolver$1;->val$to:Ljava/lang/reflect/Type;
invoke-direct {p0}, Lcom/google/common/reflect/TypeVisitor;-><init>()V
return-void
.end method
# virtual methods
.method public visitClass(Ljava/lang/Class;)V
.locals 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)V"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver$1;->val$to:Ljava/lang/reflect/Type;
instance-of v0, v0, Ljava/lang/reflect/WildcardType;
if-eqz v0, :cond_0
return-void
.line 2
:cond_0
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
iget-object v1, p0, Lcom/google/common/reflect/TypeResolver$1;->val$to:Ljava/lang/reflect/Type;
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x19
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v3
add-int/2addr v3, v2
const-string v2, "No type mapping from "
const-string v4, " to "
invoke-static {v3, v2, p1, v4, v1}, Lcom/android/billingclient/api/f;->a(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public visitGenericArrayType(Ljava/lang/reflect/GenericArrayType;)V
.locals 4
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver$1;->val$to:Ljava/lang/reflect/Type;
instance-of v1, v0, Ljava/lang/reflect/WildcardType;
if-eqz v1, :cond_0
return-void
.line 2
:cond_0
invoke-static {v0}, Lcom/google/common/reflect/Types;->getComponentType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v0
if-eqz v0, :cond_1
const/4 v1, 0x1
goto :goto_0
:cond_1
const/4 v1, 0x0
.line 3
:goto_0
iget-object v2, p0, Lcom/google/common/reflect/TypeResolver$1;->val$to:Ljava/lang/reflect/Type;
const-string v3, "%s is not an array type."
invoke-static {v1, v3, v2}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
.line 4
iget-object v1, p0, Lcom/google/common/reflect/TypeResolver$1;->val$mappings:Ljava/util/Map;
invoke-interface {p1}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object p1
invoke-static {v1, p1, v0}, Lcom/google/common/reflect/TypeResolver;->access$000(Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
return-void
.end method
.method public visitParameterizedType(Ljava/lang/reflect/ParameterizedType;)V
.locals 6
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver$1;->val$to:Ljava/lang/reflect/Type;
instance-of v1, v0, Ljava/lang/reflect/WildcardType;
if-eqz v1, :cond_0
return-void
.line 2
:cond_0
const-class v1, Ljava/lang/reflect/ParameterizedType;
invoke-static {v1, v0}, Lcom/google/common/reflect/TypeResolver;->access$100(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/reflect/ParameterizedType;
.line 3
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object v1
if-eqz v1, :cond_1
.line 4
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object v1
if-eqz v1, :cond_1
.line 5
iget-object v1, p0, Lcom/google/common/reflect/TypeResolver$1;->val$mappings:Ljava/util/Map;
.line 6
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object v2
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object v3
.line 7
invoke-static {v1, v2, v3}, Lcom/google/common/reflect/TypeResolver;->access$000(Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
.line 8
:cond_1
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v1
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v1
iget-object v2, p0, Lcom/google/common/reflect/TypeResolver$1;->val$to:Ljava/lang/reflect/Type;
const-string v3, "Inconsistent raw type: %s vs. %s"
.line 9
invoke-static {v1, v3, p1, v2}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
.line 10
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v1
.line 11
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v2
.line 12
array-length v3, v1
array-length v4, v2
const/4 v5, 0x0
if-ne v3, v4, :cond_2
const/4 v3, 0x1
goto :goto_0
:cond_2
move v3, v5
:goto_0
const-string v4, "%s not compatible with %s"
invoke-static {v3, v4, p1, v0}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
.line 13
:goto_1
array-length p1, v1
if-ge v5, p1, :cond_3
.line 14
iget-object p1, p0, Lcom/google/common/reflect/TypeResolver$1;->val$mappings:Ljava/util/Map;
aget-object v0, v1, v5
aget-object v3, v2, v5
invoke-static {p1, v0, v3}, Lcom/google/common/reflect/TypeResolver;->access$000(Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
add-int/lit8 v5, v5, 0x1
goto :goto_1
:cond_3
return-void
.end method
.method public visitTypeVariable(Ljava/lang/reflect/TypeVariable;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/TypeVariable<",
"*>;)V"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver$1;->val$mappings:Ljava/util/Map;
new-instance v1, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;
invoke-direct {v1, p1}, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;-><init>(Ljava/lang/reflect/TypeVariable;)V
iget-object p1, p0, Lcom/google/common/reflect/TypeResolver$1;->val$to:Ljava/lang/reflect/Type;
invoke-interface {v0, v1, p1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return-void
.end method
.method public visitWildcardType(Ljava/lang/reflect/WildcardType;)V
.locals 8
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver$1;->val$to:Ljava/lang/reflect/Type;
instance-of v1, v0, Ljava/lang/reflect/WildcardType;
if-nez v1, :cond_0
return-void
.line 2
:cond_0
check-cast v0, Ljava/lang/reflect/WildcardType;
.line 3
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object v1
.line 4
invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object v2
.line 5
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v3
.line 6
invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v0
.line 7
array-length v4, v1
array-length v5, v2
const/4 v6, 0x0
if-ne v4, v5, :cond_1
array-length v4, v3
array-length v5, v0
if-ne v4, v5, :cond_1
const/4 v4, 0x1
goto :goto_0
:cond_1
move v4, v6
:goto_0
iget-object v5, p0, Lcom/google/common/reflect/TypeResolver$1;->val$to:Ljava/lang/reflect/Type;
const-string v7, "Incompatible type: %s vs. %s"
invoke-static {v4, v7, p1, v5}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
move p1, v6
.line 8
:goto_1
array-length v4, v1
if-ge p1, v4, :cond_2
.line 9
iget-object v4, p0, Lcom/google/common/reflect/TypeResolver$1;->val$mappings:Ljava/util/Map;
aget-object v5, v1, p1
aget-object v7, v2, p1
invoke-static {v4, v5, v7}, Lcom/google/common/reflect/TypeResolver;->access$000(Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
add-int/lit8 p1, p1, 0x1
goto :goto_1
.line 10
:cond_2
:goto_2
array-length p1, v3
if-ge v6, p1, :cond_3
.line 11
iget-object p1, p0, Lcom/google/common/reflect/TypeResolver$1;->val$mappings:Ljava/util/Map;
aget-object v1, v3, v6
aget-object v2, v0, v6
invoke-static {p1, v1, v2}, Lcom/google/common/reflect/TypeResolver;->access$000(Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
add-int/lit8 v6, v6, 0x1
goto :goto_2
:cond_3
return-void
.end method
@@ -0,0 +1,319 @@
.class final Lcom/google/common/reflect/TypeResolver$TypeMappingIntrospector;
.super Lcom/google/common/reflect/TypeVisitor;
.source "TypeResolver.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeResolver;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "TypeMappingIntrospector"
.end annotation
# instance fields
.field private final mappings:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Lcom/google/common/reflect/TypeResolver$TypeVariableKey;",
"Ljava/lang/reflect/Type;",
">;"
}
.end annotation
.end field
# direct methods
.method private constructor <init>()V
.locals 1
.line 1
invoke-direct {p0}, Lcom/google/common/reflect/TypeVisitor;-><init>()V
.line 2
invoke-static {}, Lcom/google/common/collect/Maps;->newHashMap()Ljava/util/HashMap;
move-result-object v0
iput-object v0, p0, Lcom/google/common/reflect/TypeResolver$TypeMappingIntrospector;->mappings:Ljava/util/Map;
return-void
.end method
.method public static getTypeMappings(Ljava/lang/reflect/Type;)Lcom/google/common/collect/ImmutableMap;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Type;",
")",
"Lcom/google/common/collect/ImmutableMap<",
"Lcom/google/common/reflect/TypeResolver$TypeVariableKey;",
"Ljava/lang/reflect/Type;",
">;"
}
.end annotation
.line 1
invoke-static {p0}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 2
new-instance v0, Lcom/google/common/reflect/TypeResolver$TypeMappingIntrospector;
invoke-direct {v0}, Lcom/google/common/reflect/TypeResolver$TypeMappingIntrospector;-><init>()V
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/reflect/Type;
const/4 v2, 0x0
aput-object p0, v1, v2
.line 3
invoke-virtual {v0, v1}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
.line 4
iget-object p0, v0, Lcom/google/common/reflect/TypeResolver$TypeMappingIntrospector;->mappings:Ljava/util/Map;
invoke-static {p0}, Lcom/google/common/collect/ImmutableMap;->copyOf(Ljava/util/Map;)Lcom/google/common/collect/ImmutableMap;
move-result-object p0
return-object p0
.end method
.method private map(Lcom/google/common/reflect/TypeResolver$TypeVariableKey;Ljava/lang/reflect/Type;)V
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver$TypeMappingIntrospector;->mappings:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
return-void
:cond_0
move-object v0, p2
:goto_0
if-eqz v0, :cond_3
.line 2
invoke-virtual {p1, v0}, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;->equalsType(Ljava/lang/reflect/Type;)Z
move-result v1
if-eqz v1, :cond_2
:goto_1
if-eqz p2, :cond_1
.line 3
iget-object p1, p0, Lcom/google/common/reflect/TypeResolver$TypeMappingIntrospector;->mappings:Ljava/util/Map;
invoke-static {p2}, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;->forLookup(Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeResolver$TypeVariableKey;
move-result-object p2
invoke-interface {p1, p2}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
move-object p2, p1
check-cast p2, Ljava/lang/reflect/Type;
goto :goto_1
:cond_1
return-void
.line 4
:cond_2
iget-object v1, p0, Lcom/google/common/reflect/TypeResolver$TypeMappingIntrospector;->mappings:Ljava/util/Map;
invoke-static {v0}, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;->forLookup(Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeResolver$TypeVariableKey;
move-result-object v0
invoke-interface {v1, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/reflect/Type;
goto :goto_0
.line 5
:cond_3
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver$TypeMappingIntrospector;->mappings:Ljava/util/Map;
invoke-interface {v0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return-void
.end method
# virtual methods
.method public visitClass(Ljava/lang/Class;)V
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)V"
}
.end annotation
const/4 v0, 0x1
new-array v0, v0, [Ljava/lang/reflect/Type;
.line 1
invoke-virtual {p1}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
move-result-object v1
const/4 v2, 0x0
aput-object v1, v0, v2
invoke-virtual {p0, v0}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
.line 2
invoke-virtual {p1}, Ljava/lang/Class;->getGenericInterfaces()[Ljava/lang/reflect/Type;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
return-void
.end method
.method public visitParameterizedType(Ljava/lang/reflect/ParameterizedType;)V
.locals 8
.line 1
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v0
check-cast v0, Ljava/lang/Class;
.line 2
invoke-virtual {v0}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v1
.line 3
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v2
.line 4
array-length v3, v1
array-length v4, v2
const/4 v5, 0x1
const/4 v6, 0x0
if-ne v3, v4, :cond_0
move v3, v5
goto :goto_0
:cond_0
move v3, v6
:goto_0
invoke-static {v3}, Lcom/google/common/base/Preconditions;->checkState(Z)V
move v3, v6
.line 5
:goto_1
array-length v4, v1
if-ge v3, v4, :cond_1
.line 6
new-instance v4, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;
aget-object v7, v1, v3
invoke-direct {v4, v7}, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;-><init>(Ljava/lang/reflect/TypeVariable;)V
aget-object v7, v2, v3
invoke-direct {p0, v4, v7}, Lcom/google/common/reflect/TypeResolver$TypeMappingIntrospector;->map(Lcom/google/common/reflect/TypeResolver$TypeVariableKey;Ljava/lang/reflect/Type;)V
add-int/lit8 v3, v3, 0x1
goto :goto_1
:cond_1
new-array v1, v5, [Ljava/lang/reflect/Type;
aput-object v0, v1, v6
.line 7
invoke-virtual {p0, v1}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
new-array v0, v5, [Ljava/lang/reflect/Type;
.line 8
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object p1
aput-object p1, v0, v6
invoke-virtual {p0, v0}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
return-void
.end method
.method public visitTypeVariable(Ljava/lang/reflect/TypeVariable;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/TypeVariable<",
"*>;)V"
}
.end annotation
.line 1
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getBounds()[Ljava/lang/reflect/Type;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
return-void
.end method
.method public visitWildcardType(Ljava/lang/reflect/WildcardType;)V
.locals 0
.line 1
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
return-void
.end method
@@ -0,0 +1,80 @@
.class Lcom/google/common/reflect/TypeResolver$TypeTable$1;
.super Lcom/google/common/reflect/TypeResolver$TypeTable;
.source "TypeResolver.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/TypeResolver$TypeTable;->resolve(Ljava/lang/reflect/TypeVariable;)Ljava/lang/reflect/Type;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic val$unguarded:Lcom/google/common/reflect/TypeResolver$TypeTable;
.field public final synthetic val$var:Ljava/lang/reflect/TypeVariable;
# direct methods
.method public constructor <init>(Lcom/google/common/reflect/TypeResolver$TypeTable;Ljava/lang/reflect/TypeVariable;Lcom/google/common/reflect/TypeResolver$TypeTable;)V
.locals 0
.line 1
iput-object p2, p0, Lcom/google/common/reflect/TypeResolver$TypeTable$1;->val$var:Ljava/lang/reflect/TypeVariable;
iput-object p3, p0, Lcom/google/common/reflect/TypeResolver$TypeTable$1;->val$unguarded:Lcom/google/common/reflect/TypeResolver$TypeTable;
invoke-direct {p0}, Lcom/google/common/reflect/TypeResolver$TypeTable;-><init>()V
return-void
.end method
# virtual methods
.method public resolveInternal(Ljava/lang/reflect/TypeVariable;Lcom/google/common/reflect/TypeResolver$TypeTable;)Ljava/lang/reflect/Type;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/TypeVariable<",
"*>;",
"Lcom/google/common/reflect/TypeResolver$TypeTable;",
")",
"Ljava/lang/reflect/Type;"
}
.end annotation
.line 1
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
move-result-object v0
iget-object v1, p0, Lcom/google/common/reflect/TypeResolver$TypeTable$1;->val$var:Ljava/lang/reflect/TypeVariable;
invoke-interface {v1}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
return-object p1
.line 2
:cond_0
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver$TypeTable$1;->val$unguarded:Lcom/google/common/reflect/TypeResolver$TypeTable;
invoke-virtual {v0, p1, p2}, Lcom/google/common/reflect/TypeResolver$TypeTable;->resolveInternal(Ljava/lang/reflect/TypeVariable;Lcom/google/common/reflect/TypeResolver$TypeTable;)Ljava/lang/reflect/Type;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,277 @@
.class Lcom/google/common/reflect/TypeResolver$TypeTable;
.super Ljava/lang/Object;
.source "TypeResolver.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeResolver;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "TypeTable"
.end annotation
# instance fields
.field private final map:Lcom/google/common/collect/ImmutableMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ImmutableMap<",
"Lcom/google/common/reflect/TypeResolver$TypeVariableKey;",
"Ljava/lang/reflect/Type;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-static {}, Lcom/google/common/collect/ImmutableMap;->of()Lcom/google/common/collect/ImmutableMap;
move-result-object v0
iput-object v0, p0, Lcom/google/common/reflect/TypeResolver$TypeTable;->map:Lcom/google/common/collect/ImmutableMap;
return-void
.end method
.method private constructor <init>(Lcom/google/common/collect/ImmutableMap;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/collect/ImmutableMap<",
"Lcom/google/common/reflect/TypeResolver$TypeVariableKey;",
"Ljava/lang/reflect/Type;",
">;)V"
}
.end annotation
.line 3
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 4
iput-object p1, p0, Lcom/google/common/reflect/TypeResolver$TypeTable;->map:Lcom/google/common/collect/ImmutableMap;
return-void
.end method
# virtual methods
.method public final resolve(Ljava/lang/reflect/TypeVariable;)Ljava/lang/reflect/Type;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/TypeVariable<",
"*>;)",
"Ljava/lang/reflect/Type;"
}
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/TypeResolver$TypeTable$1;
invoke-direct {v0, p0, p1, p0}, Lcom/google/common/reflect/TypeResolver$TypeTable$1;-><init>(Lcom/google/common/reflect/TypeResolver$TypeTable;Ljava/lang/reflect/TypeVariable;Lcom/google/common/reflect/TypeResolver$TypeTable;)V
.line 2
invoke-virtual {p0, p1, v0}, Lcom/google/common/reflect/TypeResolver$TypeTable;->resolveInternal(Ljava/lang/reflect/TypeVariable;Lcom/google/common/reflect/TypeResolver$TypeTable;)Ljava/lang/reflect/Type;
move-result-object p1
return-object p1
.end method
.method public resolveInternal(Ljava/lang/reflect/TypeVariable;Lcom/google/common/reflect/TypeResolver$TypeTable;)Ljava/lang/reflect/Type;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/TypeVariable<",
"*>;",
"Lcom/google/common/reflect/TypeResolver$TypeTable;",
")",
"Ljava/lang/reflect/Type;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver$TypeTable;->map:Lcom/google/common/collect/ImmutableMap;
new-instance v1, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;
invoke-direct {v1, p1}, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;-><init>(Ljava/lang/reflect/TypeVariable;)V
invoke-virtual {v0, v1}, Lcom/google/common/collect/ImmutableMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/reflect/Type;
const/4 v1, 0x0
if-nez v0, :cond_2
.line 2
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getBounds()[Ljava/lang/reflect/Type;
move-result-object v0
.line 3
array-length v2, v0
if-nez v2, :cond_0
return-object p1
.line 4
:cond_0
new-instance v2, Lcom/google/common/reflect/TypeResolver;
invoke-direct {v2, p2, v1}, Lcom/google/common/reflect/TypeResolver;-><init>(Lcom/google/common/reflect/TypeResolver$TypeTable;Lcom/google/common/reflect/TypeResolver$1;)V
invoke-static {v2, v0}, Lcom/google/common/reflect/TypeResolver;->access$300(Lcom/google/common/reflect/TypeResolver;[Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
move-result-object p2
.line 5
sget-boolean v1, Lcom/google/common/reflect/Types$NativeTypeVariableEquals;->NATIVE_TYPE_VARIABLE_ONLY:Z
if-eqz v1, :cond_1
.line 6
invoke-static {v0, p2}, Ljava/util/Arrays;->equals([Ljava/lang/Object;[Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1
return-object p1
.line 7
:cond_1
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
move-result-object v0
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object p1
.line 8
invoke-static {v0, p1, p2}, Lcom/google/common/reflect/Types;->newArtificialTypeVariable(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/TypeVariable;
move-result-object p1
return-object p1
.line 9
:cond_2
new-instance p1, Lcom/google/common/reflect/TypeResolver;
invoke-direct {p1, p2, v1}, Lcom/google/common/reflect/TypeResolver;-><init>(Lcom/google/common/reflect/TypeResolver$TypeTable;Lcom/google/common/reflect/TypeResolver$1;)V
invoke-virtual {p1, v0}, Lcom/google/common/reflect/TypeResolver;->resolveType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
return-object p1
.end method
.method public final where(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver$TypeTable;
.locals 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map<",
"Lcom/google/common/reflect/TypeResolver$TypeVariableKey;",
"+",
"Ljava/lang/reflect/Type;",
">;)",
"Lcom/google/common/reflect/TypeResolver$TypeTable;"
}
.end annotation
.line 1
invoke-static {}, Lcom/google/common/collect/ImmutableMap;->builder()Lcom/google/common/collect/ImmutableMap$Builder;
move-result-object v0
.line 2
iget-object v1, p0, Lcom/google/common/reflect/TypeResolver$TypeTable;->map:Lcom/google/common/collect/ImmutableMap;
invoke-virtual {v0, v1}, Lcom/google/common/collect/ImmutableMap$Builder;->putAll(Ljava/util/Map;)Lcom/google/common/collect/ImmutableMap$Builder;
.line 3
invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object p1
invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object p1
:goto_0
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_0
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/util/Map$Entry;
.line 4
invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;
.line 5
invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/reflect/Type;
.line 6
invoke-virtual {v2, v1}, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;->equalsType(Ljava/lang/reflect/Type;)Z
move-result v3
xor-int/lit8 v3, v3, 0x1
const-string v4, "Type variable %s bound to itself"
invoke-static {v3, v4, v2}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
.line 7
invoke-virtual {v0, v2, v1}, Lcom/google/common/collect/ImmutableMap$Builder;->put(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
goto :goto_0
.line 8
:cond_0
new-instance p1, Lcom/google/common/reflect/TypeResolver$TypeTable;
invoke-virtual {v0}, Lcom/google/common/collect/ImmutableMap$Builder;->build()Lcom/google/common/collect/ImmutableMap;
move-result-object v0
invoke-direct {p1, v0}, Lcom/google/common/reflect/TypeResolver$TypeTable;-><init>(Lcom/google/common/collect/ImmutableMap;)V
return-object p1
.end method
@@ -0,0 +1,235 @@
.class final Lcom/google/common/reflect/TypeResolver$TypeVariableKey;
.super Ljava/lang/Object;
.source "TypeResolver.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeResolver;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "TypeVariableKey"
.end annotation
# instance fields
.field private final var:Ljava/lang/reflect/TypeVariable;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/reflect/TypeVariable<",
"*>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Ljava/lang/reflect/TypeVariable;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/TypeVariable<",
"*>;)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/reflect/TypeVariable;
iput-object p1, p0, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;->var:Ljava/lang/reflect/TypeVariable;
return-void
.end method
.method private equalsTypeVariable(Ljava/lang/reflect/TypeVariable;)Z
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/TypeVariable<",
"*>;)Z"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;->var:Ljava/lang/reflect/TypeVariable;
invoke-interface {v0}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
move-result-object v0
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;->var:Ljava/lang/reflect/TypeVariable;
.line 2
invoke-interface {v0}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object v0
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public static forLookup(Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeResolver$TypeVariableKey;
.locals 1
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
instance-of v0, p0, Ljava/lang/reflect/TypeVariable;
if-eqz v0, :cond_0
.line 2
new-instance v0, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;
check-cast p0, Ljava/lang/reflect/TypeVariable;
invoke-direct {v0, p0}, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;-><init>(Ljava/lang/reflect/TypeVariable;)V
return-object v0
:cond_0
const/4 p0, 0x0
return-object p0
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 1
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.line 1
instance-of v0, p1, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;
if-eqz v0, :cond_0
.line 2
check-cast p1, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;
.line 3
iget-object p1, p1, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;->var:Ljava/lang/reflect/TypeVariable;
invoke-direct {p0, p1}, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;->equalsTypeVariable(Ljava/lang/reflect/TypeVariable;)Z
move-result p1
return p1
:cond_0
const/4 p1, 0x0
return p1
.end method
.method public equalsType(Ljava/lang/reflect/Type;)Z
.locals 1
.line 1
instance-of v0, p1, Ljava/lang/reflect/TypeVariable;
if-eqz v0, :cond_0
.line 2
check-cast p1, Ljava/lang/reflect/TypeVariable;
invoke-direct {p0, p1}, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;->equalsTypeVariable(Ljava/lang/reflect/TypeVariable;)Z
move-result p1
return p1
:cond_0
const/4 p1, 0x0
return p1
.end method
.method public hashCode()I
.locals 3
const/4 v0, 0x2
new-array v0, v0, [Ljava/lang/Object;
.line 1
iget-object v1, p0, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;->var:Ljava/lang/reflect/TypeVariable;
invoke-interface {v1}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
move-result-object v1
const/4 v2, 0x0
aput-object v1, v0, v2
iget-object v1, p0, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;->var:Ljava/lang/reflect/TypeVariable;
invoke-interface {v1}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object v1
const/4 v2, 0x1
aput-object v1, v0, v2
invoke-static {v0}, Lcom/google/common/base/Objects;->hashCode([Ljava/lang/Object;)I
move-result v0
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver$TypeVariableKey;->var:Ljava/lang/reflect/TypeVariable;
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,102 @@
.class Lcom/google/common/reflect/TypeResolver$WildcardCapturer$1;
.super Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
.source "TypeResolver.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->forTypeVariable(Ljava/lang/reflect/TypeVariable;)Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic val$typeParam:Ljava/lang/reflect/TypeVariable;
# direct methods
.method public constructor <init>(Lcom/google/common/reflect/TypeResolver$WildcardCapturer;Ljava/util/concurrent/atomic/AtomicInteger;Ljava/lang/reflect/TypeVariable;)V
.locals 0
.line 1
iput-object p3, p0, Lcom/google/common/reflect/TypeResolver$WildcardCapturer$1;->val$typeParam:Ljava/lang/reflect/TypeVariable;
const/4 p1, 0x0
invoke-direct {p0, p2, p1}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;-><init>(Ljava/util/concurrent/atomic/AtomicInteger;Lcom/google/common/reflect/TypeResolver$1;)V
return-void
.end method
# virtual methods
.method public captureAsTypeVariable([Ljava/lang/reflect/Type;)Ljava/lang/reflect/TypeVariable;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Ljava/lang/reflect/Type;",
")",
"Ljava/lang/reflect/TypeVariable<",
"*>;"
}
.end annotation
.line 1
new-instance v0, Ljava/util/LinkedHashSet;
invoke-static {p1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object p1
invoke-direct {v0, p1}, Ljava/util/LinkedHashSet;-><init>(Ljava/util/Collection;)V
.line 2
iget-object p1, p0, Lcom/google/common/reflect/TypeResolver$WildcardCapturer$1;->val$typeParam:Ljava/lang/reflect/TypeVariable;
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getBounds()[Ljava/lang/reflect/Type;
move-result-object p1
invoke-static {p1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object p1
invoke-interface {v0, p1}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 3
invoke-interface {v0}, Ljava/util/Set;->size()I
move-result p1
const/4 v1, 0x1
if-le p1, v1, :cond_0
.line 4
const-class p1, Ljava/lang/Object;
invoke-interface {v0, p1}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
:cond_0
const/4 p1, 0x0
new-array p1, p1, [Ljava/lang/reflect/Type;
.line 5
invoke-interface {v0, p1}, Ljava/util/Set;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object p1
check-cast p1, [Ljava/lang/reflect/Type;
invoke-super {p0, p1}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->captureAsTypeVariable([Ljava/lang/reflect/Type;)Ljava/lang/reflect/TypeVariable;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,365 @@
.class Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
.super Ljava/lang/Object;
.source "TypeResolver.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeResolver;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "WildcardCapturer"
.end annotation
# static fields
.field public static final INSTANCE:Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
# instance fields
.field private final id:Ljava/util/concurrent/atomic/AtomicInteger;
# direct methods
.method public static constructor <clinit>()V
.locals 1
.line 1
new-instance v0, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
invoke-direct {v0}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;-><init>()V
sput-object v0, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->INSTANCE:Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
return-void
.end method
.method private constructor <init>()V
.locals 1
.line 2
new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>()V
invoke-direct {p0, v0}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;-><init>(Ljava/util/concurrent/atomic/AtomicInteger;)V
return-void
.end method
.method private constructor <init>(Ljava/util/concurrent/atomic/AtomicInteger;)V
.locals 0
.line 3
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 4
iput-object p1, p0, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->id:Ljava/util/concurrent/atomic/AtomicInteger;
return-void
.end method
.method public synthetic constructor <init>(Ljava/util/concurrent/atomic/AtomicInteger;Lcom/google/common/reflect/TypeResolver$1;)V
.locals 0
.line 1
invoke-direct {p0, p1}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;-><init>(Ljava/util/concurrent/atomic/AtomicInteger;)V
return-void
.end method
.method private captureNullable(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 0
.param p1 # Ljava/lang/reflect/Type;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
if-nez p1, :cond_0
const/4 p1, 0x0
return-object p1
.line 1
:cond_0
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->capture(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
return-object p1
.end method
.method private forTypeVariable(Ljava/lang/reflect/TypeVariable;)Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/TypeVariable<",
"*>;)",
"Lcom/google/common/reflect/TypeResolver$WildcardCapturer;"
}
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/TypeResolver$WildcardCapturer$1;
iget-object v1, p0, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->id:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-direct {v0, p0, v1, p1}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer$1;-><init>(Lcom/google/common/reflect/TypeResolver$WildcardCapturer;Ljava/util/concurrent/atomic/AtomicInteger;Ljava/lang/reflect/TypeVariable;)V
return-object v0
.end method
.method private notForTypeVariable()Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
.locals 2
.line 1
new-instance v0, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
iget-object v1, p0, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->id:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-direct {v0, v1}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;-><init>(Ljava/util/concurrent/atomic/AtomicInteger;)V
return-object v0
.end method
# virtual methods
.method public final capture(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 6
.line 1
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 2
instance-of v0, p1, Ljava/lang/Class;
if-eqz v0, :cond_0
return-object p1
.line 3
:cond_0
instance-of v0, p1, Ljava/lang/reflect/TypeVariable;
if-eqz v0, :cond_1
return-object p1
.line 4
:cond_1
instance-of v0, p1, Ljava/lang/reflect/GenericArrayType;
if-eqz v0, :cond_2
.line 5
check-cast p1, Ljava/lang/reflect/GenericArrayType;
.line 6
invoke-direct {p0}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->notForTypeVariable()Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
move-result-object v0
invoke-interface {p1}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object p1
invoke-virtual {v0, p1}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->capture(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
.line 7
invoke-static {p1}, Lcom/google/common/reflect/Types;->newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
return-object p1
.line 8
:cond_2
instance-of v0, p1, Ljava/lang/reflect/ParameterizedType;
if-eqz v0, :cond_4
.line 9
check-cast p1, Ljava/lang/reflect/ParameterizedType;
.line 10
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v0
check-cast v0, Ljava/lang/Class;
.line 11
invoke-virtual {v0}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v1
.line 12
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v2
const/4 v3, 0x0
.line 13
:goto_0
array-length v4, v2
if-ge v3, v4, :cond_3
.line 14
aget-object v4, v1, v3
invoke-direct {p0, v4}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->forTypeVariable(Ljava/lang/reflect/TypeVariable;)Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
move-result-object v4
aget-object v5, v2, v3
invoke-virtual {v4, v5}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->capture(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v4
aput-object v4, v2, v3
add-int/lit8 v3, v3, 0x1
goto :goto_0
.line 15
:cond_3
invoke-direct {p0}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->notForTypeVariable()Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
move-result-object v1
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object p1
invoke-direct {v1, p1}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->captureNullable(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
.line 16
invoke-static {p1, v0, v2}, Lcom/google/common/reflect/Types;->newParameterizedTypeWithOwner(Ljava/lang/reflect/Type;Ljava/lang/Class;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType;
move-result-object p1
return-object p1
.line 17
:cond_4
instance-of v0, p1, Ljava/lang/reflect/WildcardType;
if-eqz v0, :cond_6
.line 18
move-object v0, p1
check-cast v0, Ljava/lang/reflect/WildcardType;
.line 19
invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v1
.line 20
array-length v1, v1
if-nez v1, :cond_5
.line 21
invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->captureAsTypeVariable([Ljava/lang/reflect/Type;)Ljava/lang/reflect/TypeVariable;
move-result-object p1
:cond_5
return-object p1
.line 22
:cond_6
new-instance p1, Ljava/lang/AssertionError;
const-string v0, "must have been one of the known types"
invoke-direct {p1, v0}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
throw p1
.end method
.method public captureAsTypeVariable([Ljava/lang/reflect/Type;)Ljava/lang/reflect/TypeVariable;
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Ljava/lang/reflect/Type;",
")",
"Ljava/lang/reflect/TypeVariable<",
"*>;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->id:Ljava/util/concurrent/atomic/AtomicInteger;
.line 2
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->incrementAndGet()I
move-result v0
const/16 v1, 0x26
invoke-static {v1}, Lcom/google/common/base/Joiner;->on(C)Lcom/google/common/base/Joiner;
move-result-object v1
invoke-virtual {v1, p1}, Lcom/google/common/base/Joiner;->join([Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
const/16 v2, 0x21
invoke-static {v1, v2}, Lcom/android/billingclient/api/d;->a(Ljava/lang/String;I)I
move-result v2
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "capture#"
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v0, "-of ? extends "
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 3
const-class v1, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
invoke-static {v1, v0, p1}, Lcom/google/common/reflect/Types;->newArtificialTypeVariable(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/TypeVariable;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,533 @@
.class public final Lcom/google/common/reflect/TypeResolver;
.super Ljava/lang/Object;
.source "TypeResolver.java"
# annotations
.annotation build Lcom/google/common/annotations/Beta;
.end annotation
.annotation runtime Lcom/google/common/reflect/ElementTypesAreNonnullByDefault;
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/common/reflect/TypeResolver$TypeVariableKey;,
Lcom/google/common/reflect/TypeResolver$WildcardCapturer;,
Lcom/google/common/reflect/TypeResolver$TypeMappingIntrospector;,
Lcom/google/common/reflect/TypeResolver$TypeTable;
}
.end annotation
# instance fields
.field private final typeTable:Lcom/google/common/reflect/TypeResolver$TypeTable;
# direct methods
.method public constructor <init>()V
.locals 1
.line 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 3
new-instance v0, Lcom/google/common/reflect/TypeResolver$TypeTable;
invoke-direct {v0}, Lcom/google/common/reflect/TypeResolver$TypeTable;-><init>()V
iput-object v0, p0, Lcom/google/common/reflect/TypeResolver;->typeTable:Lcom/google/common/reflect/TypeResolver$TypeTable;
return-void
.end method
.method private constructor <init>(Lcom/google/common/reflect/TypeResolver$TypeTable;)V
.locals 0
.line 4
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 5
iput-object p1, p0, Lcom/google/common/reflect/TypeResolver;->typeTable:Lcom/google/common/reflect/TypeResolver$TypeTable;
return-void
.end method
.method public synthetic constructor <init>(Lcom/google/common/reflect/TypeResolver$TypeTable;Lcom/google/common/reflect/TypeResolver$1;)V
.locals 0
.line 1
invoke-direct {p0, p1}, Lcom/google/common/reflect/TypeResolver;-><init>(Lcom/google/common/reflect/TypeResolver$TypeTable;)V
return-void
.end method
.method public static synthetic access$000(Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
.locals 0
.line 1
invoke-static {p0, p1, p2}, Lcom/google/common/reflect/TypeResolver;->populateTypeMappings(Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
return-void
.end method
.method public static synthetic access$100(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 1
invoke-static {p0, p1}, Lcom/google/common/reflect/TypeResolver;->expectArgument(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method public static synthetic access$300(Lcom/google/common/reflect/TypeResolver;[Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
.locals 0
.line 1
invoke-direct {p0, p1}, Lcom/google/common/reflect/TypeResolver;->resolveTypes([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
move-result-object p0
return-object p0
.end method
.method public static covariantly(Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeResolver;
.locals 1
.line 1
new-instance v0, Lcom/google/common/reflect/TypeResolver;
invoke-direct {v0}, Lcom/google/common/reflect/TypeResolver;-><init>()V
invoke-static {p0}, Lcom/google/common/reflect/TypeResolver$TypeMappingIntrospector;->getTypeMappings(Ljava/lang/reflect/Type;)Lcom/google/common/collect/ImmutableMap;
move-result-object p0
invoke-virtual {v0, p0}, Lcom/google/common/reflect/TypeResolver;->where(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver;
move-result-object p0
return-object p0
.end method
.method private static expectArgument(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TT;>;",
"Ljava/lang/Object;",
")TT;"
}
.end annotation
.line 1
:try_start_0
invoke-virtual {p0, p1}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
:try_end_0
.catch Ljava/lang/ClassCastException; {:try_start_0 .. :try_end_0} :catch_0
return-object p0
.line 2
:catch_0
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
invoke-virtual {p0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object p0
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v1
add-int/lit8 v1, v1, 0xa
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v2
add-int/2addr v2, v1
const-string v1, " is not a "
invoke-static {v2, p1, v1, p0}, Lcom/google/android/gms/ads/internal/a;->a(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static invariantly(Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeResolver;
.locals 1
.line 1
sget-object v0, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->INSTANCE:Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
invoke-virtual {v0, p0}, Lcom/google/common/reflect/TypeResolver$WildcardCapturer;->capture(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p0
.line 2
new-instance v0, Lcom/google/common/reflect/TypeResolver;
invoke-direct {v0}, Lcom/google/common/reflect/TypeResolver;-><init>()V
invoke-static {p0}, Lcom/google/common/reflect/TypeResolver$TypeMappingIntrospector;->getTypeMappings(Ljava/lang/reflect/Type;)Lcom/google/common/collect/ImmutableMap;
move-result-object p0
invoke-virtual {v0, p0}, Lcom/google/common/reflect/TypeResolver;->where(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver;
move-result-object p0
return-object p0
.end method
.method private static populateTypeMappings(Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map<",
"Lcom/google/common/reflect/TypeResolver$TypeVariableKey;",
"Ljava/lang/reflect/Type;",
">;",
"Ljava/lang/reflect/Type;",
"Ljava/lang/reflect/Type;",
")V"
}
.end annotation
.line 1
invoke-virtual {p1, p2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
return-void
.line 2
:cond_0
new-instance v0, Lcom/google/common/reflect/TypeResolver$1;
invoke-direct {v0, p0, p2}, Lcom/google/common/reflect/TypeResolver$1;-><init>(Ljava/util/Map;Ljava/lang/reflect/Type;)V
const/4 p0, 0x1
new-array p0, p0, [Ljava/lang/reflect/Type;
const/4 p2, 0x0
aput-object p1, p0, p2
.line 3
invoke-virtual {v0, p0}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
return-void
.end method
.method private resolveGenericArrayType(Ljava/lang/reflect/GenericArrayType;)Ljava/lang/reflect/Type;
.locals 0
.line 1
invoke-interface {p1}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object p1
.line 2
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeResolver;->resolveType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
.line 3
invoke-static {p1}, Lcom/google/common/reflect/Types;->newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
return-object p1
.end method
.method private resolveParameterizedType(Ljava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/ParameterizedType;
.locals 2
.line 1
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object v0
if-nez v0, :cond_0
const/4 v0, 0x0
goto :goto_0
.line 2
:cond_0
invoke-virtual {p0, v0}, Lcom/google/common/reflect/TypeResolver;->resolveType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v0
.line 3
:goto_0
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v1
invoke-virtual {p0, v1}, Lcom/google/common/reflect/TypeResolver;->resolveType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v1
.line 4
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object p1
.line 5
invoke-direct {p0, p1}, Lcom/google/common/reflect/TypeResolver;->resolveTypes([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
move-result-object p1
.line 6
check-cast v1, Ljava/lang/Class;
invoke-static {v0, v1, p1}, Lcom/google/common/reflect/Types;->newParameterizedTypeWithOwner(Ljava/lang/reflect/Type;Ljava/lang/Class;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType;
move-result-object p1
return-object p1
.end method
.method private resolveTypes([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
.locals 3
.line 1
array-length v0, p1
new-array v0, v0, [Ljava/lang/reflect/Type;
const/4 v1, 0x0
.line 2
:goto_0
array-length v2, p1
if-ge v1, v2, :cond_0
.line 3
aget-object v2, p1, v1
invoke-virtual {p0, v2}, Lcom/google/common/reflect/TypeResolver;->resolveType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v2
aput-object v2, v0, v1
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_0
return-object v0
.end method
.method private resolveWildcardType(Ljava/lang/reflect/WildcardType;)Ljava/lang/reflect/WildcardType;
.locals 2
.line 1
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v0
.line 2
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object p1
.line 3
new-instance v1, Lcom/google/common/reflect/Types$WildcardTypeImpl;
invoke-direct {p0, v0}, Lcom/google/common/reflect/TypeResolver;->resolveTypes([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
move-result-object v0
invoke-direct {p0, p1}, Lcom/google/common/reflect/TypeResolver;->resolveTypes([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
move-result-object p1
invoke-direct {v1, v0, p1}, Lcom/google/common/reflect/Types$WildcardTypeImpl;-><init>([Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)V
return-object v1
.end method
# virtual methods
.method public resolveType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 1
.line 1
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 2
instance-of v0, p1, Ljava/lang/reflect/TypeVariable;
if-eqz v0, :cond_0
.line 3
iget-object v0, p0, Lcom/google/common/reflect/TypeResolver;->typeTable:Lcom/google/common/reflect/TypeResolver$TypeTable;
check-cast p1, Ljava/lang/reflect/TypeVariable;
invoke-virtual {v0, p1}, Lcom/google/common/reflect/TypeResolver$TypeTable;->resolve(Ljava/lang/reflect/TypeVariable;)Ljava/lang/reflect/Type;
move-result-object p1
return-object p1
.line 4
:cond_0
instance-of v0, p1, Ljava/lang/reflect/ParameterizedType;
if-eqz v0, :cond_1
.line 5
check-cast p1, Ljava/lang/reflect/ParameterizedType;
invoke-direct {p0, p1}, Lcom/google/common/reflect/TypeResolver;->resolveParameterizedType(Ljava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/ParameterizedType;
move-result-object p1
return-object p1
.line 6
:cond_1
instance-of v0, p1, Ljava/lang/reflect/GenericArrayType;
if-eqz v0, :cond_2
.line 7
check-cast p1, Ljava/lang/reflect/GenericArrayType;
invoke-direct {p0, p1}, Lcom/google/common/reflect/TypeResolver;->resolveGenericArrayType(Ljava/lang/reflect/GenericArrayType;)Ljava/lang/reflect/Type;
move-result-object p1
return-object p1
.line 8
:cond_2
instance-of v0, p1, Ljava/lang/reflect/WildcardType;
if-eqz v0, :cond_3
.line 9
check-cast p1, Ljava/lang/reflect/WildcardType;
invoke-direct {p0, p1}, Lcom/google/common/reflect/TypeResolver;->resolveWildcardType(Ljava/lang/reflect/WildcardType;)Ljava/lang/reflect/WildcardType;
move-result-object p1
:cond_3
return-object p1
.end method
.method public resolveTypesInPlace([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
.locals 2
const/4 v0, 0x0
.line 1
:goto_0
array-length v1, p1
if-ge v0, v1, :cond_0
.line 2
aget-object v1, p1, v0
invoke-virtual {p0, v1}, Lcom/google/common/reflect/TypeResolver;->resolveType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v1
aput-object v1, p1, v0
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_0
return-object p1
.end method
.method public where(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeResolver;
.locals 1
.line 1
invoke-static {}, Lcom/google/common/collect/Maps;->newHashMap()Ljava/util/HashMap;
move-result-object v0
.line 2
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/reflect/Type;
invoke-static {p2}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p2
check-cast p2, Ljava/lang/reflect/Type;
invoke-static {v0, p1, p2}, Lcom/google/common/reflect/TypeResolver;->populateTypeMappings(Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
.line 3
invoke-virtual {p0, v0}, Lcom/google/common/reflect/TypeResolver;->where(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver;
move-result-object p1
return-object p1
.end method
.method public where(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map<",
"Lcom/google/common/reflect/TypeResolver$TypeVariableKey;",
"+",
"Ljava/lang/reflect/Type;",
">;)",
"Lcom/google/common/reflect/TypeResolver;"
}
.end annotation
.line 4
new-instance v0, Lcom/google/common/reflect/TypeResolver;
iget-object v1, p0, Lcom/google/common/reflect/TypeResolver;->typeTable:Lcom/google/common/reflect/TypeResolver$TypeTable;
invoke-virtual {v1, p1}, Lcom/google/common/reflect/TypeResolver$TypeTable;->where(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver$TypeTable;
move-result-object p1
invoke-direct {v0, p1}, Lcom/google/common/reflect/TypeResolver;-><init>(Lcom/google/common/reflect/TypeResolver$TypeTable;)V
return-object v0
.end method
@@ -0,0 +1,95 @@
.class public interface abstract Lcom/google/common/reflect/TypeToInstanceMap;
.super Ljava/lang/Object;
.source "TypeToInstanceMap.java"
# interfaces
.implements Ljava/util/Map;
# annotations
.annotation build Lcom/google/common/annotations/Beta;
.end annotation
.annotation runtime Lcom/google/errorprone/annotations/DoNotMock;
value = "Use ImmutableTypeToInstanceMap or MutableTypeToInstanceMap"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<B:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;",
"Ljava/util/Map<",
"Lcom/google/common/reflect/TypeToken<",
"+TB;>;TB;>;"
}
.end annotation
# virtual methods
.method public abstract getInstance(Lcom/google/common/reflect/TypeToken;)Ljava/lang/Object;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;)TT;"
}
.end annotation
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.end method
.method public abstract getInstance(Ljava/lang/Class;)Ljava/lang/Object;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.end method
.method public abstract putInstance(Lcom/google/common/reflect/TypeToken;Ljava/lang/Object;)Ljava/lang/Object;
.param p2 # Ljava/lang/Object;
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.end param
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;TT;)TT;"
}
.end annotation
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.end method
.method public abstract putInstance(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
.param p2 # Ljava/lang/Object;
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.end param
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:TB;>(",
"Ljava/lang/Class<",
"TT;>;TT;)TT;"
}
.end annotation
.annotation runtime Lorg/checkerframework/checker/nullness/compatqual/NullableDecl;
.end annotation
.end method
@@ -0,0 +1,154 @@
.class Lcom/google/common/reflect/TypeToken$1;
.super Lcom/google/common/reflect/Invokable$MethodInvokable;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/TypeToken;->method(Ljava/lang/reflect/Method;)Lcom/google/common/reflect/Invokable;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/Invokable$MethodInvokable<",
"TT;>;"
}
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/google/common/reflect/TypeToken;
# direct methods
.method public constructor <init>(Lcom/google/common/reflect/TypeToken;Ljava/lang/reflect/Method;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/common/reflect/TypeToken$1;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-direct {p0, p2}, Lcom/google/common/reflect/Invokable$MethodInvokable;-><init>(Ljava/lang/reflect/Method;)V
return-void
.end method
# virtual methods
.method public getGenericExceptionTypes()[Ljava/lang/reflect/Type;
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$1;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-static {v0}, Lcom/google/common/reflect/TypeToken;->access$000(Lcom/google/common/reflect/TypeToken;)Lcom/google/common/reflect/TypeResolver;
move-result-object v0
invoke-super {p0}, Lcom/google/common/reflect/Invokable$MethodInvokable;->getGenericExceptionTypes()[Ljava/lang/reflect/Type;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/google/common/reflect/TypeResolver;->resolveTypesInPlace([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public getGenericParameterTypes()[Ljava/lang/reflect/Type;
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$1;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-static {v0}, Lcom/google/common/reflect/TypeToken;->access$100(Lcom/google/common/reflect/TypeToken;)Lcom/google/common/reflect/TypeResolver;
move-result-object v0
invoke-super {p0}, Lcom/google/common/reflect/Invokable$MethodInvokable;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/google/common/reflect/TypeResolver;->resolveTypesInPlace([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public getGenericReturnType()Ljava/lang/reflect/Type;
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$1;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-static {v0}, Lcom/google/common/reflect/TypeToken;->access$000(Lcom/google/common/reflect/TypeToken;)Lcom/google/common/reflect/TypeResolver;
move-result-object v0
invoke-super {p0}, Lcom/google/common/reflect/Invokable$MethodInvokable;->getGenericReturnType()Ljava/lang/reflect/Type;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/google/common/reflect/TypeResolver;->resolveType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public getOwnerType()Lcom/google/common/reflect/TypeToken;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$1;->this$0:Lcom/google/common/reflect/TypeToken;
return-object v0
.end method
.method public toString()Ljava/lang/String;
.locals 4
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/TypeToken$1;->getOwnerType()Lcom/google/common/reflect/TypeToken;
move-result-object v0
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-super {p0}, Lcom/google/common/reflect/Invokable;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x1
invoke-static {v1, v2}, Lcom/android/billingclient/api/d;->a(Ljava/lang/String;I)I
move-result v2
const-string v3, "."
invoke-static {v2, v0, v3, v1}, Lcom/google/android/gms/ads/internal/a;->a(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,166 @@
.class Lcom/google/common/reflect/TypeToken$2;
.super Lcom/google/common/reflect/Invokable$ConstructorInvokable;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/TypeToken;->constructor(Ljava/lang/reflect/Constructor;)Lcom/google/common/reflect/Invokable;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/Invokable$ConstructorInvokable<",
"TT;>;"
}
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/google/common/reflect/TypeToken;
# direct methods
.method public constructor <init>(Lcom/google/common/reflect/TypeToken;Ljava/lang/reflect/Constructor;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/common/reflect/TypeToken$2;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-direct {p0, p2}, Lcom/google/common/reflect/Invokable$ConstructorInvokable;-><init>(Ljava/lang/reflect/Constructor;)V
return-void
.end method
# virtual methods
.method public getGenericExceptionTypes()[Ljava/lang/reflect/Type;
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$2;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-static {v0}, Lcom/google/common/reflect/TypeToken;->access$000(Lcom/google/common/reflect/TypeToken;)Lcom/google/common/reflect/TypeResolver;
move-result-object v0
invoke-super {p0}, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->getGenericExceptionTypes()[Ljava/lang/reflect/Type;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/google/common/reflect/TypeResolver;->resolveTypesInPlace([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public getGenericParameterTypes()[Ljava/lang/reflect/Type;
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$2;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-static {v0}, Lcom/google/common/reflect/TypeToken;->access$100(Lcom/google/common/reflect/TypeToken;)Lcom/google/common/reflect/TypeResolver;
move-result-object v0
invoke-super {p0}, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/google/common/reflect/TypeResolver;->resolveTypesInPlace([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public getGenericReturnType()Ljava/lang/reflect/Type;
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$2;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-static {v0}, Lcom/google/common/reflect/TypeToken;->access$000(Lcom/google/common/reflect/TypeToken;)Lcom/google/common/reflect/TypeResolver;
move-result-object v0
invoke-super {p0}, Lcom/google/common/reflect/Invokable$ConstructorInvokable;->getGenericReturnType()Ljava/lang/reflect/Type;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/google/common/reflect/TypeResolver;->resolveType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public getOwnerType()Lcom/google/common/reflect/TypeToken;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$2;->this$0:Lcom/google/common/reflect/TypeToken;
return-object v0
.end method
.method public toString()Ljava/lang/String;
.locals 5
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/TypeToken$2;->getOwnerType()Lcom/google/common/reflect/TypeToken;
move-result-object v0
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
const-string v1, ", "
invoke-static {v1}, Lcom/google/common/base/Joiner;->on(Ljava/lang/String;)Lcom/google/common/base/Joiner;
move-result-object v1
invoke-virtual {p0}, Lcom/google/common/reflect/TypeToken$2;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
move-result-object v2
invoke-virtual {v1, v2}, Lcom/google/common/base/Joiner;->join([Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x2
invoke-static {v1, v2}, Lcom/android/billingclient/api/d;->a(Ljava/lang/String;I)I
move-result v2
const-string v3, "("
const-string v4, ")"
invoke-static {v2, v0, v3, v1, v4}, Lcom/android/billingclient/api/f;->a(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,143 @@
.class Lcom/google/common/reflect/TypeToken$3;
.super Lcom/google/common/reflect/TypeVisitor;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/TypeToken;->rejectTypeVariables()Lcom/google/common/reflect/TypeToken;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/google/common/reflect/TypeToken;
# direct methods
.method public constructor <init>(Lcom/google/common/reflect/TypeToken;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/common/reflect/TypeToken$3;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-direct {p0}, Lcom/google/common/reflect/TypeVisitor;-><init>()V
return-void
.end method
# virtual methods
.method public visitGenericArrayType(Ljava/lang/reflect/GenericArrayType;)V
.locals 2
const/4 v0, 0x1
new-array v0, v0, [Ljava/lang/reflect/Type;
.line 1
invoke-interface {p1}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object p1
const/4 v1, 0x0
aput-object p1, v0, v1
invoke-virtual {p0, v0}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
return-void
.end method
.method public visitParameterizedType(Ljava/lang/reflect/ParameterizedType;)V
.locals 2
.line 1
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
const/4 v0, 0x1
new-array v0, v0, [Ljava/lang/reflect/Type;
.line 2
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object p1
const/4 v1, 0x0
aput-object p1, v0, v1
invoke-virtual {p0, v0}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
return-void
.end method
.method public visitTypeVariable(Ljava/lang/reflect/TypeVariable;)V
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/TypeVariable<",
"*>;)V"
}
.end annotation
.line 1
new-instance p1, Ljava/lang/IllegalArgumentException;
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$3;->this$0:Lcom/google/common/reflect/TypeToken;
.line 2
invoke-static {v0}, Lcom/google/common/reflect/TypeToken;->access$500(Lcom/google/common/reflect/TypeToken;)Ljava/lang/reflect/Type;
move-result-object v0
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v1
add-int/lit8 v1, v1, 0x3a
const-string v2, "contains a type variable and is not safe for the operation"
invoke-static {v1, v0, v2}, Lcom/android/billingclient/api/e;->a(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public visitWildcardType(Ljava/lang/reflect/WildcardType;)V
.locals 1
.line 1
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
.line 2
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
return-void
.end method
@@ -0,0 +1,128 @@
.class Lcom/google/common/reflect/TypeToken$4;
.super Lcom/google/common/reflect/TypeVisitor;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/TypeToken;->getRawTypes()Lcom/google/common/collect/ImmutableSet;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic val$builder:Lcom/google/common/collect/ImmutableSet$Builder;
# direct methods
.method public constructor <init>(Lcom/google/common/reflect/TypeToken;Lcom/google/common/collect/ImmutableSet$Builder;)V
.locals 0
.line 1
iput-object p2, p0, Lcom/google/common/reflect/TypeToken$4;->val$builder:Lcom/google/common/collect/ImmutableSet$Builder;
invoke-direct {p0}, Lcom/google/common/reflect/TypeVisitor;-><init>()V
return-void
.end method
# virtual methods
.method public visitClass(Ljava/lang/Class;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)V"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$4;->val$builder:Lcom/google/common/collect/ImmutableSet$Builder;
invoke-virtual {v0, p1}, Lcom/google/common/collect/ImmutableSet$Builder;->add(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet$Builder;
return-void
.end method
.method public visitGenericArrayType(Ljava/lang/reflect/GenericArrayType;)V
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$4;->val$builder:Lcom/google/common/collect/ImmutableSet$Builder;
invoke-interface {p1}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object p1
invoke-static {p1}, Lcom/google/common/reflect/TypeToken;->of(Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeToken;
move-result-object p1
invoke-virtual {p1}, Lcom/google/common/reflect/TypeToken;->getRawType()Ljava/lang/Class;
move-result-object p1
invoke-static {p1}, Lcom/google/common/reflect/Types;->getArrayClass(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object p1
invoke-virtual {v0, p1}, Lcom/google/common/collect/ImmutableSet$Builder;->add(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet$Builder;
return-void
.end method
.method public visitParameterizedType(Ljava/lang/reflect/ParameterizedType;)V
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$4;->val$builder:Lcom/google/common/collect/ImmutableSet$Builder;
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object p1
check-cast p1, Ljava/lang/Class;
invoke-virtual {v0, p1}, Lcom/google/common/collect/ImmutableSet$Builder;->add(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet$Builder;
return-void
.end method
.method public visitTypeVariable(Ljava/lang/reflect/TypeVariable;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/TypeVariable<",
"*>;)V"
}
.end annotation
.line 1
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getBounds()[Ljava/lang/reflect/Type;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
return-void
.end method
.method public visitWildcardType(Ljava/lang/reflect/WildcardType;)V
.locals 0
.line 1
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
return-void
.end method
@@ -0,0 +1,128 @@
.class Lcom/google/common/reflect/TypeToken$Bounds;
.super Ljava/lang/Object;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeToken;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Bounds"
.end annotation
# instance fields
.field private final bounds:[Ljava/lang/reflect/Type;
.field private final target:Z
# direct methods
.method public constructor <init>([Ljava/lang/reflect/Type;Z)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/google/common/reflect/TypeToken$Bounds;->bounds:[Ljava/lang/reflect/Type;
.line 3
iput-boolean p2, p0, Lcom/google/common/reflect/TypeToken$Bounds;->target:Z
return-void
.end method
# virtual methods
.method public isSubtypeOf(Ljava/lang/reflect/Type;)Z
.locals 5
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$Bounds;->bounds:[Ljava/lang/reflect/Type;
array-length v1, v0
const/4 v2, 0x0
:goto_0
if-ge v2, v1, :cond_1
aget-object v3, v0, v2
.line 2
invoke-static {v3}, Lcom/google/common/reflect/TypeToken;->of(Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeToken;
move-result-object v3
invoke-virtual {v3, p1}, Lcom/google/common/reflect/TypeToken;->isSubtypeOf(Ljava/lang/reflect/Type;)Z
move-result v3
iget-boolean v4, p0, Lcom/google/common/reflect/TypeToken$Bounds;->target:Z
if-ne v3, v4, :cond_0
return v4
:cond_0
add-int/lit8 v2, v2, 0x1
goto :goto_0
.line 3
:cond_1
iget-boolean p1, p0, Lcom/google/common/reflect/TypeToken$Bounds;->target:Z
xor-int/lit8 p1, p1, 0x1
return p1
.end method
.method public isSupertypeOf(Ljava/lang/reflect/Type;)Z
.locals 5
.line 1
invoke-static {p1}, Lcom/google/common/reflect/TypeToken;->of(Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeToken;
move-result-object p1
.line 2
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$Bounds;->bounds:[Ljava/lang/reflect/Type;
array-length v1, v0
const/4 v2, 0x0
:goto_0
if-ge v2, v1, :cond_1
aget-object v3, v0, v2
.line 3
invoke-virtual {p1, v3}, Lcom/google/common/reflect/TypeToken;->isSubtypeOf(Ljava/lang/reflect/Type;)Z
move-result v3
iget-boolean v4, p0, Lcom/google/common/reflect/TypeToken$Bounds;->target:Z
if-ne v3, v4, :cond_0
return v4
:cond_0
add-int/lit8 v2, v2, 0x1
goto :goto_0
.line 4
:cond_1
iget-boolean p1, p0, Lcom/google/common/reflect/TypeToken$Bounds;->target:Z
xor-int/lit8 p1, p1, 0x1
return p1
.end method
@@ -0,0 +1,228 @@
.class final Lcom/google/common/reflect/TypeToken$ClassSet;
.super Lcom/google/common/reflect/TypeToken$TypeSet;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeToken;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "ClassSet"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/TypeToken<",
"TT;>.TypeSet;"
}
.end annotation
# static fields
.field private static final serialVersionUID:J
# instance fields
.field private transient classes:Lcom/google/common/collect/ImmutableSet;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ImmutableSet<",
"Lcom/google/common/reflect/TypeToken<",
"-TT;>;>;"
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end field
.field public final synthetic this$0:Lcom/google/common/reflect/TypeToken;
# direct methods
.method private constructor <init>(Lcom/google/common/reflect/TypeToken;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/common/reflect/TypeToken$ClassSet;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-direct {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeSet;-><init>(Lcom/google/common/reflect/TypeToken;)V
return-void
.end method
.method public synthetic constructor <init>(Lcom/google/common/reflect/TypeToken;Lcom/google/common/reflect/TypeToken$1;)V
.locals 0
.line 2
invoke-direct {p0, p1}, Lcom/google/common/reflect/TypeToken$ClassSet;-><init>(Lcom/google/common/reflect/TypeToken;)V
return-void
.end method
.method private readResolve()Ljava/lang/Object;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$ClassSet;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-virtual {v0}, Lcom/google/common/reflect/TypeToken;->getTypes()Lcom/google/common/reflect/TypeToken$TypeSet;
move-result-object v0
invoke-virtual {v0}, Lcom/google/common/reflect/TypeToken$TypeSet;->classes()Lcom/google/common/reflect/TypeToken$TypeSet;
move-result-object v0
return-object v0
.end method
# virtual methods
.method public classes()Lcom/google/common/reflect/TypeToken$TypeSet;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/TypeToken<",
"TT;>.TypeSet;"
}
.end annotation
return-object p0
.end method
.method public bridge synthetic delegate()Ljava/lang/Object;
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/TypeToken$ClassSet;->delegate()Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public bridge synthetic delegate()Ljava/util/Collection;
.locals 1
.line 2
invoke-virtual {p0}, Lcom/google/common/reflect/TypeToken$ClassSet;->delegate()Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public delegate()Ljava/util/Set;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set<",
"Lcom/google/common/reflect/TypeToken<",
"-TT;>;>;"
}
.end annotation
.line 3
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$ClassSet;->classes:Lcom/google/common/collect/ImmutableSet;
if-nez v0, :cond_0
.line 4
sget-object v0, Lcom/google/common/reflect/TypeToken$TypeCollector;->FOR_GENERIC_TYPE:Lcom/google/common/reflect/TypeToken$TypeCollector;
.line 5
invoke-virtual {v0}, Lcom/google/common/reflect/TypeToken$TypeCollector;->classesOnly()Lcom/google/common/reflect/TypeToken$TypeCollector;
move-result-object v0
iget-object v1, p0, Lcom/google/common/reflect/TypeToken$ClassSet;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-virtual {v0, v1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->collectTypes(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList;
move-result-object v0
.line 6
invoke-static {v0}, Lcom/google/common/collect/FluentIterable;->from(Ljava/lang/Iterable;)Lcom/google/common/collect/FluentIterable;
move-result-object v0
sget-object v1, Lcom/google/common/reflect/TypeToken$TypeFilter;->IGNORE_TYPE_VARIABLE_OR_WILDCARD:Lcom/google/common/reflect/TypeToken$TypeFilter;
.line 7
invoke-virtual {v0, v1}, Lcom/google/common/collect/FluentIterable;->filter(Lcom/google/common/base/Predicate;)Lcom/google/common/collect/FluentIterable;
move-result-object v0
.line 8
invoke-virtual {v0}, Lcom/google/common/collect/FluentIterable;->toSet()Lcom/google/common/collect/ImmutableSet;
move-result-object v0
iput-object v0, p0, Lcom/google/common/reflect/TypeToken$ClassSet;->classes:Lcom/google/common/collect/ImmutableSet;
:cond_0
return-object v0
.end method
.method public interfaces()Lcom/google/common/reflect/TypeToken$TypeSet;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/TypeToken<",
"TT;>.TypeSet;"
}
.end annotation
.line 1
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string v1, "classes().interfaces() not supported."
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public rawTypes()Ljava/util/Set;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set<",
"Ljava/lang/Class<",
"-TT;>;>;"
}
.end annotation
.line 1
sget-object v0, Lcom/google/common/reflect/TypeToken$TypeCollector;->FOR_RAW_TYPE:Lcom/google/common/reflect/TypeToken$TypeCollector;
.line 2
invoke-virtual {v0}, Lcom/google/common/reflect/TypeToken$TypeCollector;->classesOnly()Lcom/google/common/reflect/TypeToken$TypeCollector;
move-result-object v0
iget-object v1, p0, Lcom/google/common/reflect/TypeToken$ClassSet;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-static {v1}, Lcom/google/common/reflect/TypeToken;->access$300(Lcom/google/common/reflect/TypeToken;)Lcom/google/common/collect/ImmutableSet;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->collectTypes(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
move-result-object v0
.line 3
invoke-static {v0}, Lcom/google/common/collect/ImmutableSet;->copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableSet;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,70 @@
.class Lcom/google/common/reflect/TypeToken$InterfaceSet$1;
.super Ljava/lang/Object;
.source "TypeToken.java"
# interfaces
.implements Lcom/google/common/base/Predicate;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/TypeToken$InterfaceSet;->rawTypes()Ljava/util/Set;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lcom/google/common/base/Predicate<",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
# direct methods
.method public constructor <init>(Lcom/google/common/reflect/TypeToken$InterfaceSet;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public apply(Ljava/lang/Class;)Z
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)Z"
}
.end annotation
.line 2
invoke-virtual {p1}, Ljava/lang/Class;->isInterface()Z
move-result p1
return p1
.end method
.method public bridge synthetic apply(Ljava/lang/Object;)Z
.locals 0
.line 1
check-cast p1, Ljava/lang/Class;
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeToken$InterfaceSet$1;->apply(Ljava/lang/Class;)Z
move-result p1
return p1
.end method
@@ -0,0 +1,235 @@
.class final Lcom/google/common/reflect/TypeToken$InterfaceSet;
.super Lcom/google/common/reflect/TypeToken$TypeSet;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeToken;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "InterfaceSet"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/TypeToken<",
"TT;>.TypeSet;"
}
.end annotation
# static fields
.field private static final serialVersionUID:J
# instance fields
.field private final transient allTypes:Lcom/google/common/reflect/TypeToken$TypeSet;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/TypeToken<",
"TT;>.TypeSet;"
}
.end annotation
.end field
.field private transient interfaces:Lcom/google/common/collect/ImmutableSet;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ImmutableSet<",
"Lcom/google/common/reflect/TypeToken<",
"-TT;>;>;"
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end field
.field public final synthetic this$0:Lcom/google/common/reflect/TypeToken;
# direct methods
.method public constructor <init>(Lcom/google/common/reflect/TypeToken;Lcom/google/common/reflect/TypeToken$TypeSet;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/reflect/TypeToken<",
"TT;>.TypeSet;)V"
}
.end annotation
.line 1
iput-object p1, p0, Lcom/google/common/reflect/TypeToken$InterfaceSet;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-direct {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeSet;-><init>(Lcom/google/common/reflect/TypeToken;)V
.line 2
iput-object p2, p0, Lcom/google/common/reflect/TypeToken$InterfaceSet;->allTypes:Lcom/google/common/reflect/TypeToken$TypeSet;
return-void
.end method
.method private readResolve()Ljava/lang/Object;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$InterfaceSet;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-virtual {v0}, Lcom/google/common/reflect/TypeToken;->getTypes()Lcom/google/common/reflect/TypeToken$TypeSet;
move-result-object v0
invoke-virtual {v0}, Lcom/google/common/reflect/TypeToken$TypeSet;->interfaces()Lcom/google/common/reflect/TypeToken$TypeSet;
move-result-object v0
return-object v0
.end method
# virtual methods
.method public classes()Lcom/google/common/reflect/TypeToken$TypeSet;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/TypeToken<",
"TT;>.TypeSet;"
}
.end annotation
.line 1
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string v1, "interfaces().classes() not supported."
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public bridge synthetic delegate()Ljava/lang/Object;
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/TypeToken$InterfaceSet;->delegate()Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public bridge synthetic delegate()Ljava/util/Collection;
.locals 1
.line 2
invoke-virtual {p0}, Lcom/google/common/reflect/TypeToken$InterfaceSet;->delegate()Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public delegate()Ljava/util/Set;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set<",
"Lcom/google/common/reflect/TypeToken<",
"-TT;>;>;"
}
.end annotation
.line 3
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$InterfaceSet;->interfaces:Lcom/google/common/collect/ImmutableSet;
if-nez v0, :cond_0
.line 4
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$InterfaceSet;->allTypes:Lcom/google/common/reflect/TypeToken$TypeSet;
.line 5
invoke-static {v0}, Lcom/google/common/collect/FluentIterable;->from(Ljava/lang/Iterable;)Lcom/google/common/collect/FluentIterable;
move-result-object v0
sget-object v1, Lcom/google/common/reflect/TypeToken$TypeFilter;->INTERFACE_ONLY:Lcom/google/common/reflect/TypeToken$TypeFilter;
invoke-virtual {v0, v1}, Lcom/google/common/collect/FluentIterable;->filter(Lcom/google/common/base/Predicate;)Lcom/google/common/collect/FluentIterable;
move-result-object v0
invoke-virtual {v0}, Lcom/google/common/collect/FluentIterable;->toSet()Lcom/google/common/collect/ImmutableSet;
move-result-object v0
iput-object v0, p0, Lcom/google/common/reflect/TypeToken$InterfaceSet;->interfaces:Lcom/google/common/collect/ImmutableSet;
:cond_0
return-object v0
.end method
.method public interfaces()Lcom/google/common/reflect/TypeToken$TypeSet;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/TypeToken<",
"TT;>.TypeSet;"
}
.end annotation
return-object p0
.end method
.method public rawTypes()Ljava/util/Set;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set<",
"Ljava/lang/Class<",
"-TT;>;>;"
}
.end annotation
.line 1
sget-object v0, Lcom/google/common/reflect/TypeToken$TypeCollector;->FOR_RAW_TYPE:Lcom/google/common/reflect/TypeToken$TypeCollector;
iget-object v1, p0, Lcom/google/common/reflect/TypeToken$InterfaceSet;->this$0:Lcom/google/common/reflect/TypeToken;
.line 2
invoke-static {v1}, Lcom/google/common/reflect/TypeToken;->access$300(Lcom/google/common/reflect/TypeToken;)Lcom/google/common/collect/ImmutableSet;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->collectTypes(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
move-result-object v0
.line 3
invoke-static {v0}, Lcom/google/common/collect/FluentIterable;->from(Ljava/lang/Iterable;)Lcom/google/common/collect/FluentIterable;
move-result-object v0
new-instance v1, Lcom/google/common/reflect/TypeToken$InterfaceSet$1;
invoke-direct {v1, p0}, Lcom/google/common/reflect/TypeToken$InterfaceSet$1;-><init>(Lcom/google/common/reflect/TypeToken$InterfaceSet;)V
.line 4
invoke-virtual {v0, v1}, Lcom/google/common/collect/FluentIterable;->filter(Lcom/google/common/base/Predicate;)Lcom/google/common/collect/FluentIterable;
move-result-object v0
.line 5
invoke-virtual {v0}, Lcom/google/common/collect/FluentIterable;->toSet()Lcom/google/common/collect/ImmutableSet;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,41 @@
.class final Lcom/google/common/reflect/TypeToken$SimpleTypeToken;
.super Lcom/google/common/reflect/TypeToken;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeToken;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "SimpleTypeToken"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Lcom/google/common/reflect/TypeToken<",
"TT;>;"
}
.end annotation
# static fields
.field private static final serialVersionUID:J
# direct methods
.method public constructor <init>(Ljava/lang/reflect/Type;)V
.locals 1
const/4 v0, 0x0
.line 1
invoke-direct {p0, p1, v0}, Lcom/google/common/reflect/TypeToken;-><init>(Ljava/lang/reflect/Type;Lcom/google/common/reflect/TypeToken$1;)V
return-void
.end method
@@ -0,0 +1,143 @@
.class Lcom/google/common/reflect/TypeToken$TypeCollector$1;
.super Lcom/google/common/reflect/TypeToken$TypeCollector;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeToken$TypeCollector;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/TypeToken$TypeCollector<",
"Lcom/google/common/reflect/TypeToken<",
"*>;>;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 1
const/4 v0, 0x0
.line 1
invoke-direct {p0, v0}, Lcom/google/common/reflect/TypeToken$TypeCollector;-><init>(Lcom/google/common/reflect/TypeToken$1;)V
return-void
.end method
# virtual methods
.method public getInterfaces(Lcom/google/common/reflect/TypeToken;)Ljava/lang/Iterable;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/reflect/TypeToken<",
"*>;)",
"Ljava/lang/Iterable<",
"+",
"Lcom/google/common/reflect/TypeToken<",
"*>;>;"
}
.end annotation
.line 2
invoke-virtual {p1}, Lcom/google/common/reflect/TypeToken;->getGenericInterfaces()Lcom/google/common/collect/ImmutableList;
move-result-object p1
return-object p1
.end method
.method public bridge synthetic getInterfaces(Ljava/lang/Object;)Ljava/lang/Iterable;
.locals 0
.line 1
check-cast p1, Lcom/google/common/reflect/TypeToken;
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector$1;->getInterfaces(Lcom/google/common/reflect/TypeToken;)Ljava/lang/Iterable;
move-result-object p1
return-object p1
.end method
.method public getRawType(Lcom/google/common/reflect/TypeToken;)Ljava/lang/Class;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/reflect/TypeToken<",
"*>;)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.line 2
invoke-virtual {p1}, Lcom/google/common/reflect/TypeToken;->getRawType()Ljava/lang/Class;
move-result-object p1
return-object p1
.end method
.method public bridge synthetic getRawType(Ljava/lang/Object;)Ljava/lang/Class;
.locals 0
.line 1
check-cast p1, Lcom/google/common/reflect/TypeToken;
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector$1;->getRawType(Lcom/google/common/reflect/TypeToken;)Ljava/lang/Class;
move-result-object p1
return-object p1
.end method
.method public getSuperclass(Lcom/google/common/reflect/TypeToken;)Lcom/google/common/reflect/TypeToken;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/reflect/TypeToken<",
"*>;)",
"Lcom/google/common/reflect/TypeToken<",
"*>;"
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 2
invoke-virtual {p1}, Lcom/google/common/reflect/TypeToken;->getGenericSuperclass()Lcom/google/common/reflect/TypeToken;
move-result-object p1
return-object p1
.end method
.method public bridge synthetic getSuperclass(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
check-cast p1, Lcom/google/common/reflect/TypeToken;
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector$1;->getSuperclass(Lcom/google/common/reflect/TypeToken;)Lcom/google/common/reflect/TypeToken;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,142 @@
.class Lcom/google/common/reflect/TypeToken$TypeCollector$2;
.super Lcom/google/common/reflect/TypeToken$TypeCollector;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeToken$TypeCollector;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/TypeToken$TypeCollector<",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 1
const/4 v0, 0x0
.line 1
invoke-direct {p0, v0}, Lcom/google/common/reflect/TypeToken$TypeCollector;-><init>(Lcom/google/common/reflect/TypeToken$1;)V
return-void
.end method
# virtual methods
.method public getInterfaces(Ljava/lang/Class;)Ljava/lang/Iterable;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/Iterable<",
"+",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
.line 2
invoke-virtual {p1}, Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class;
move-result-object p1
invoke-static {p1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object p1
return-object p1
.end method
.method public bridge synthetic getInterfaces(Ljava/lang/Object;)Ljava/lang/Iterable;
.locals 0
.line 1
check-cast p1, Ljava/lang/Class;
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector$2;->getInterfaces(Ljava/lang/Class;)Ljava/lang/Iterable;
move-result-object p1
return-object p1
.end method
.method public getRawType(Ljava/lang/Class;)Ljava/lang/Class;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
return-object p1
.end method
.method public bridge synthetic getRawType(Ljava/lang/Object;)Ljava/lang/Class;
.locals 0
.line 1
check-cast p1, Ljava/lang/Class;
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector$2;->getRawType(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object p1
return-object p1
.end method
.method public getSuperclass(Ljava/lang/Class;)Ljava/lang/Class;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 2
invoke-virtual {p1}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object p1
return-object p1
.end method
.method public bridge synthetic getSuperclass(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
check-cast p1, Ljava/lang/Class;
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector$2;->getSuperclass(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,115 @@
.class Lcom/google/common/reflect/TypeToken$TypeCollector$3;
.super Lcom/google/common/reflect/TypeToken$TypeCollector$ForwardingTypeCollector;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/TypeToken$TypeCollector;->classesOnly()Lcom/google/common/reflect/TypeToken$TypeCollector;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/TypeToken$TypeCollector$ForwardingTypeCollector<",
"TK;>;"
}
.end annotation
# direct methods
.method public constructor <init>(Lcom/google/common/reflect/TypeToken$TypeCollector;Lcom/google/common/reflect/TypeToken$TypeCollector;)V
.locals 0
.line 1
invoke-direct {p0, p2}, Lcom/google/common/reflect/TypeToken$TypeCollector$ForwardingTypeCollector;-><init>(Lcom/google/common/reflect/TypeToken$TypeCollector;)V
return-void
.end method
# virtual methods
.method public collectTypes(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Iterable<",
"+TK;>;)",
"Lcom/google/common/collect/ImmutableList<",
"TK;>;"
}
.end annotation
.line 1
invoke-static {}, Lcom/google/common/collect/ImmutableList;->builder()Lcom/google/common/collect/ImmutableList$Builder;
move-result-object v0
.line 2
invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
move-result-object p1
:cond_0
:goto_0
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_1
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
.line 3
invoke-virtual {p0, v1}, Lcom/google/common/reflect/TypeToken$TypeCollector$ForwardingTypeCollector;->getRawType(Ljava/lang/Object;)Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->isInterface()Z
move-result v2
if-nez v2, :cond_0
.line 4
invoke-virtual {v0, v1}, Lcom/google/common/collect/ImmutableList$Builder;->add(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList$Builder;
goto :goto_0
.line 5
:cond_1
invoke-virtual {v0}, Lcom/google/common/collect/ImmutableList$Builder;->build()Lcom/google/common/collect/ImmutableList;
move-result-object p1
invoke-super {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->collectTypes(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
move-result-object p1
return-object p1
.end method
.method public getInterfaces(Ljava/lang/Object;)Ljava/lang/Iterable;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;)",
"Ljava/lang/Iterable<",
"+TK;>;"
}
.end annotation
.line 1
invoke-static {}, Lcom/google/common/collect/ImmutableSet;->of()Lcom/google/common/collect/ImmutableSet;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,80 @@
.class Lcom/google/common/reflect/TypeToken$TypeCollector$4;
.super Lcom/google/common/collect/Ordering;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/TypeToken$TypeCollector;->sortKeysByValue(Ljava/util/Map;Ljava/util/Comparator;)Lcom/google/common/collect/ImmutableList;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/Ordering<",
"TK;>;"
}
.end annotation
# instance fields
.field public final synthetic val$map:Ljava/util/Map;
.field public final synthetic val$valueComparator:Ljava/util/Comparator;
# direct methods
.method public constructor <init>(Ljava/util/Comparator;Ljava/util/Map;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/common/reflect/TypeToken$TypeCollector$4;->val$valueComparator:Ljava/util/Comparator;
iput-object p2, p0, Lcom/google/common/reflect/TypeToken$TypeCollector$4;->val$map:Ljava/util/Map;
invoke-direct {p0}, Lcom/google/common/collect/Ordering;-><init>()V
return-void
.end method
# virtual methods
.method public compare(Ljava/lang/Object;Ljava/lang/Object;)I
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;TK;)I"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$TypeCollector$4;->val$valueComparator:Ljava/util/Comparator;
iget-object v1, p0, Lcom/google/common/reflect/TypeToken$TypeCollector$4;->val$map:Ljava/util/Map;
.line 2
invoke-interface {v1, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
invoke-static {p1}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object;
iget-object v1, p0, Lcom/google/common/reflect/TypeToken$TypeCollector$4;->val$map:Ljava/util/Map;
invoke-interface {v1, p2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p2
invoke-static {p2}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 3
invoke-interface {v0, p1, p2}, Ljava/util/Comparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
move-result p1
return p1
.end method
@@ -0,0 +1,121 @@
.class Lcom/google/common/reflect/TypeToken$TypeCollector$ForwardingTypeCollector;
.super Lcom/google/common/reflect/TypeToken$TypeCollector;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeToken$TypeCollector;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "ForwardingTypeCollector"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
">",
"Lcom/google/common/reflect/TypeToken$TypeCollector<",
"TK;>;"
}
.end annotation
# instance fields
.field private final delegate:Lcom/google/common/reflect/TypeToken$TypeCollector;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/TypeToken$TypeCollector<",
"TK;>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Lcom/google/common/reflect/TypeToken$TypeCollector;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/reflect/TypeToken$TypeCollector<",
"TK;>;)V"
}
.end annotation
const/4 v0, 0x0
.line 1
invoke-direct {p0, v0}, Lcom/google/common/reflect/TypeToken$TypeCollector;-><init>(Lcom/google/common/reflect/TypeToken$1;)V
.line 2
iput-object p1, p0, Lcom/google/common/reflect/TypeToken$TypeCollector$ForwardingTypeCollector;->delegate:Lcom/google/common/reflect/TypeToken$TypeCollector;
return-void
.end method
# virtual methods
.method public getInterfaces(Ljava/lang/Object;)Ljava/lang/Iterable;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;)",
"Ljava/lang/Iterable<",
"+TK;>;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$TypeCollector$ForwardingTypeCollector;->delegate:Lcom/google/common/reflect/TypeToken$TypeCollector;
invoke-virtual {v0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->getInterfaces(Ljava/lang/Object;)Ljava/lang/Iterable;
move-result-object p1
return-object p1
.end method
.method public getRawType(Ljava/lang/Object;)Ljava/lang/Class;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$TypeCollector$ForwardingTypeCollector;->delegate:Lcom/google/common/reflect/TypeToken$TypeCollector;
invoke-virtual {v0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->getRawType(Ljava/lang/Object;)Ljava/lang/Class;
move-result-object p1
return-object p1
.end method
.method public getSuperclass(Ljava/lang/Object;)Ljava/lang/Object;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;)TK;"
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$TypeCollector$ForwardingTypeCollector;->delegate:Lcom/google/common/reflect/TypeToken$TypeCollector;
invoke-virtual {v0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->getSuperclass(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,356 @@
.class abstract Lcom/google/common/reflect/TypeToken$TypeCollector;
.super Ljava/lang/Object;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeToken;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x409
name = "TypeCollector"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/common/reflect/TypeToken$TypeCollector$ForwardingTypeCollector;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# static fields
.field public static final FOR_GENERIC_TYPE:Lcom/google/common/reflect/TypeToken$TypeCollector;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/TypeToken$TypeCollector<",
"Lcom/google/common/reflect/TypeToken<",
"*>;>;"
}
.end annotation
.end field
.field public static final FOR_RAW_TYPE:Lcom/google/common/reflect/TypeToken$TypeCollector;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/TypeToken$TypeCollector<",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 1
.line 1
new-instance v0, Lcom/google/common/reflect/TypeToken$TypeCollector$1;
invoke-direct {v0}, Lcom/google/common/reflect/TypeToken$TypeCollector$1;-><init>()V
sput-object v0, Lcom/google/common/reflect/TypeToken$TypeCollector;->FOR_GENERIC_TYPE:Lcom/google/common/reflect/TypeToken$TypeCollector;
.line 2
new-instance v0, Lcom/google/common/reflect/TypeToken$TypeCollector$2;
invoke-direct {v0}, Lcom/google/common/reflect/TypeToken$TypeCollector$2;-><init>()V
sput-object v0, Lcom/google/common/reflect/TypeToken$TypeCollector;->FOR_RAW_TYPE:Lcom/google/common/reflect/TypeToken$TypeCollector;
return-void
.end method
.method private constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public synthetic constructor <init>(Lcom/google/common/reflect/TypeToken$1;)V
.locals 0
.line 2
invoke-direct {p0}, Lcom/google/common/reflect/TypeToken$TypeCollector;-><init>()V
return-void
.end method
.method private collectTypes(Ljava/lang/Object;Ljava/util/Map;)I
.locals 3
.annotation build Lcom/google/errorprone/annotations/CanIgnoreReturnValue;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;",
"Ljava/util/Map<",
"-TK;",
"Ljava/lang/Integer;",
">;)I"
}
.end annotation
.line 6
invoke-interface {p2, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
if-eqz v0, :cond_0
.line 7
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result p1
return p1
.line 8
:cond_0
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->getRawType(Ljava/lang/Object;)Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->isInterface()Z
move-result v0
.line 9
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->getInterfaces(Ljava/lang/Object;)Ljava/lang/Iterable;
move-result-object v1
invoke-interface {v1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_0
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_1
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
.line 10
invoke-direct {p0, v2, p2}, Lcom/google/common/reflect/TypeToken$TypeCollector;->collectTypes(Ljava/lang/Object;Ljava/util/Map;)I
move-result v2
invoke-static {v0, v2}, Ljava/lang/Math;->max(II)I
move-result v0
goto :goto_0
.line 11
:cond_1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->getSuperclass(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
if-eqz v1, :cond_2
.line 12
invoke-direct {p0, v1, p2}, Lcom/google/common/reflect/TypeToken$TypeCollector;->collectTypes(Ljava/lang/Object;Ljava/util/Map;)I
move-result v1
invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I
move-result v0
:cond_2
add-int/lit8 v0, v0, 0x1
.line 13
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-interface {p2, p1, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return v0
.end method
.method private static sortKeysByValue(Ljava/util/Map;Ljava/util/Comparator;)Lcom/google/common/collect/ImmutableList;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">(",
"Ljava/util/Map<",
"TK;TV;>;",
"Ljava/util/Comparator<",
"-TV;>;)",
"Lcom/google/common/collect/ImmutableList<",
"TK;>;"
}
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/TypeToken$TypeCollector$4;
invoke-direct {v0, p1, p0}, Lcom/google/common/reflect/TypeToken$TypeCollector$4;-><init>(Ljava/util/Comparator;Ljava/util/Map;)V
.line 2
invoke-interface {p0}, Ljava/util/Map;->keySet()Ljava/util/Set;
move-result-object p0
invoke-virtual {v0, p0}, Lcom/google/common/collect/Ordering;->immutableSortedCopy(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
move-result-object p0
return-object p0
.end method
# virtual methods
.method public final classesOnly()Lcom/google/common/reflect/TypeToken$TypeCollector;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/TypeToken$TypeCollector<",
"TK;>;"
}
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/TypeToken$TypeCollector$3;
invoke-direct {v0, p0, p0}, Lcom/google/common/reflect/TypeToken$TypeCollector$3;-><init>(Lcom/google/common/reflect/TypeToken$TypeCollector;Lcom/google/common/reflect/TypeToken$TypeCollector;)V
return-object v0
.end method
.method public collectTypes(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Iterable<",
"+TK;>;)",
"Lcom/google/common/collect/ImmutableList<",
"TK;>;"
}
.end annotation
.line 2
invoke-static {}, Lcom/google/common/collect/Maps;->newHashMap()Ljava/util/HashMap;
move-result-object v0
.line 3
invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
move-result-object p1
:goto_0
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_0
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
.line 4
invoke-direct {p0, v1, v0}, Lcom/google/common/reflect/TypeToken$TypeCollector;->collectTypes(Ljava/lang/Object;Ljava/util/Map;)I
goto :goto_0
.line 5
:cond_0
invoke-static {}, Lcom/google/common/collect/Ordering;->natural()Lcom/google/common/collect/Ordering;
move-result-object p1
invoke-virtual {p1}, Lcom/google/common/collect/Ordering;->reverse()Lcom/google/common/collect/Ordering;
move-result-object p1
invoke-static {v0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->sortKeysByValue(Ljava/util/Map;Ljava/util/Comparator;)Lcom/google/common/collect/ImmutableList;
move-result-object p1
return-object p1
.end method
.method public final collectTypes(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;)",
"Lcom/google/common/collect/ImmutableList<",
"TK;>;"
}
.end annotation
.line 1
invoke-static {p1}, Lcom/google/common/collect/ImmutableList;->of(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->collectTypes(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
move-result-object p1
return-object p1
.end method
.method public abstract getInterfaces(Ljava/lang/Object;)Ljava/lang/Iterable;
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;)",
"Ljava/lang/Iterable<",
"+TK;>;"
}
.end annotation
.end method
.method public abstract getRawType(Ljava/lang/Object;)Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.end method
.method public abstract getSuperclass(Ljava/lang/Object;)Ljava/lang/Object;
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;)TK;"
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end method
@@ -0,0 +1,81 @@
.class final enum Lcom/google/common/reflect/TypeToken$TypeFilter$1;
.super Lcom/google/common/reflect/TypeToken$TypeFilter;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeToken$TypeFilter;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4011
name = null
.end annotation
# direct methods
.method public constructor <init>(Ljava/lang/String;I)V
.locals 1
const/4 v0, 0x0
.line 1
invoke-direct {p0, p1, p2, v0}, Lcom/google/common/reflect/TypeToken$TypeFilter;-><init>(Ljava/lang/String;ILcom/google/common/reflect/TypeToken$1;)V
return-void
.end method
# virtual methods
.method public apply(Lcom/google/common/reflect/TypeToken;)Z
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/reflect/TypeToken<",
"*>;)Z"
}
.end annotation
.line 2
invoke-static {p1}, Lcom/google/common/reflect/TypeToken;->access$500(Lcom/google/common/reflect/TypeToken;)Ljava/lang/reflect/Type;
move-result-object v0
instance-of v0, v0, Ljava/lang/reflect/TypeVariable;
if-nez v0, :cond_0
.line 3
invoke-static {p1}, Lcom/google/common/reflect/TypeToken;->access$500(Lcom/google/common/reflect/TypeToken;)Ljava/lang/reflect/Type;
move-result-object p1
instance-of p1, p1, Ljava/lang/reflect/WildcardType;
if-nez p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public bridge synthetic apply(Ljava/lang/Object;)Z
.locals 0
.line 1
check-cast p1, Lcom/google/common/reflect/TypeToken;
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeFilter$1;->apply(Lcom/google/common/reflect/TypeToken;)Z
move-result p1
return p1
.end method
@@ -0,0 +1,64 @@
.class final enum Lcom/google/common/reflect/TypeToken$TypeFilter$2;
.super Lcom/google/common/reflect/TypeToken$TypeFilter;
.source "TypeToken.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeToken$TypeFilter;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4011
name = null
.end annotation
# direct methods
.method public constructor <init>(Ljava/lang/String;I)V
.locals 1
const/4 v0, 0x0
.line 1
invoke-direct {p0, p1, p2, v0}, Lcom/google/common/reflect/TypeToken$TypeFilter;-><init>(Ljava/lang/String;ILcom/google/common/reflect/TypeToken$1;)V
return-void
.end method
# virtual methods
.method public apply(Lcom/google/common/reflect/TypeToken;)Z
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/reflect/TypeToken<",
"*>;)Z"
}
.end annotation
.line 2
invoke-virtual {p1}, Lcom/google/common/reflect/TypeToken;->getRawType()Ljava/lang/Class;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Class;->isInterface()Z
move-result p1
return p1
.end method
.method public bridge synthetic apply(Ljava/lang/Object;)Z
.locals 0
.line 1
check-cast p1, Lcom/google/common/reflect/TypeToken;
invoke-virtual {p0, p1}, Lcom/google/common/reflect/TypeToken$TypeFilter$2;->apply(Lcom/google/common/reflect/TypeToken;)Z
move-result p1
return p1
.end method
@@ -0,0 +1,149 @@
.class abstract enum Lcom/google/common/reflect/TypeToken$TypeFilter;
.super Ljava/lang/Enum;
.source "TypeToken.java"
# interfaces
.implements Lcom/google/common/base/Predicate;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeToken;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4409
name = "TypeFilter"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Enum<",
"Lcom/google/common/reflect/TypeToken$TypeFilter;",
">;",
"Lcom/google/common/base/Predicate<",
"Lcom/google/common/reflect/TypeToken<",
"*>;>;"
}
.end annotation
# static fields
.field private static final synthetic $VALUES:[Lcom/google/common/reflect/TypeToken$TypeFilter;
.field public static final enum IGNORE_TYPE_VARIABLE_OR_WILDCARD:Lcom/google/common/reflect/TypeToken$TypeFilter;
.field public static final enum INTERFACE_ONLY:Lcom/google/common/reflect/TypeToken$TypeFilter;
# direct methods
.method private static synthetic $values()[Lcom/google/common/reflect/TypeToken$TypeFilter;
.locals 3
const/4 v0, 0x2
new-array v0, v0, [Lcom/google/common/reflect/TypeToken$TypeFilter;
.line 1
sget-object v1, Lcom/google/common/reflect/TypeToken$TypeFilter;->IGNORE_TYPE_VARIABLE_OR_WILDCARD:Lcom/google/common/reflect/TypeToken$TypeFilter;
const/4 v2, 0x0
aput-object v1, v0, v2
sget-object v1, Lcom/google/common/reflect/TypeToken$TypeFilter;->INTERFACE_ONLY:Lcom/google/common/reflect/TypeToken$TypeFilter;
const/4 v2, 0x1
aput-object v1, v0, v2
return-object v0
.end method
.method public static constructor <clinit>()V
.locals 3
.line 1
new-instance v0, Lcom/google/common/reflect/TypeToken$TypeFilter$1;
const-string v1, "IGNORE_TYPE_VARIABLE_OR_WILDCARD"
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lcom/google/common/reflect/TypeToken$TypeFilter$1;-><init>(Ljava/lang/String;I)V
sput-object v0, Lcom/google/common/reflect/TypeToken$TypeFilter;->IGNORE_TYPE_VARIABLE_OR_WILDCARD:Lcom/google/common/reflect/TypeToken$TypeFilter;
.line 2
new-instance v0, Lcom/google/common/reflect/TypeToken$TypeFilter$2;
const-string v1, "INTERFACE_ONLY"
const/4 v2, 0x1
invoke-direct {v0, v1, v2}, Lcom/google/common/reflect/TypeToken$TypeFilter$2;-><init>(Ljava/lang/String;I)V
sput-object v0, Lcom/google/common/reflect/TypeToken$TypeFilter;->INTERFACE_ONLY:Lcom/google/common/reflect/TypeToken$TypeFilter;
.line 3
invoke-static {}, Lcom/google/common/reflect/TypeToken$TypeFilter;->$values()[Lcom/google/common/reflect/TypeToken$TypeFilter;
move-result-object v0
sput-object v0, Lcom/google/common/reflect/TypeToken$TypeFilter;->$VALUES:[Lcom/google/common/reflect/TypeToken$TypeFilter;
return-void
.end method
.method private constructor <init>(Ljava/lang/String;I)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.line 1
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public synthetic constructor <init>(Ljava/lang/String;ILcom/google/common/reflect/TypeToken$1;)V
.locals 0
.line 2
invoke-direct {p0, p1, p2}, Lcom/google/common/reflect/TypeToken$TypeFilter;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public static valueOf(Ljava/lang/String;)Lcom/google/common/reflect/TypeToken$TypeFilter;
.locals 1
.line 1
const-class v0, Lcom/google/common/reflect/TypeToken$TypeFilter;
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Lcom/google/common/reflect/TypeToken$TypeFilter;
return-object p0
.end method
.method public static values()[Lcom/google/common/reflect/TypeToken$TypeFilter;
.locals 1
.line 1
sget-object v0, Lcom/google/common/reflect/TypeToken$TypeFilter;->$VALUES:[Lcom/google/common/reflect/TypeToken$TypeFilter;
invoke-virtual {v0}, [Lcom/google/common/reflect/TypeToken$TypeFilter;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lcom/google/common/reflect/TypeToken$TypeFilter;
return-object v0
.end method
@@ -0,0 +1,208 @@
.class public Lcom/google/common/reflect/TypeToken$TypeSet;
.super Lcom/google/common/collect/ForwardingSet;
.source "TypeToken.java"
# interfaces
.implements Ljava/io/Serializable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/TypeToken;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "TypeSet"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ForwardingSet<",
"Lcom/google/common/reflect/TypeToken<",
"-TT;>;>;",
"Ljava/io/Serializable;"
}
.end annotation
# static fields
.field private static final serialVersionUID:J
# instance fields
.field public final synthetic this$0:Lcom/google/common/reflect/TypeToken;
.field private transient types:Lcom/google/common/collect/ImmutableSet;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ImmutableSet<",
"Lcom/google/common/reflect/TypeToken<",
"-TT;>;>;"
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end field
# direct methods
.method public constructor <init>(Lcom/google/common/reflect/TypeToken;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/common/reflect/TypeToken$TypeSet;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-direct {p0}, Lcom/google/common/collect/ForwardingSet;-><init>()V
return-void
.end method
# virtual methods
.method public classes()Lcom/google/common/reflect/TypeToken$TypeSet;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/TypeToken<",
"TT;>.TypeSet;"
}
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/TypeToken$ClassSet;
iget-object v1, p0, Lcom/google/common/reflect/TypeToken$TypeSet;->this$0:Lcom/google/common/reflect/TypeToken;
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lcom/google/common/reflect/TypeToken$ClassSet;-><init>(Lcom/google/common/reflect/TypeToken;Lcom/google/common/reflect/TypeToken$1;)V
return-object v0
.end method
.method public bridge synthetic delegate()Ljava/lang/Object;
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/common/reflect/TypeToken$TypeSet;->delegate()Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public bridge synthetic delegate()Ljava/util/Collection;
.locals 1
.line 2
invoke-virtual {p0}, Lcom/google/common/reflect/TypeToken$TypeSet;->delegate()Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public delegate()Ljava/util/Set;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set<",
"Lcom/google/common/reflect/TypeToken<",
"-TT;>;>;"
}
.end annotation
.line 3
iget-object v0, p0, Lcom/google/common/reflect/TypeToken$TypeSet;->types:Lcom/google/common/collect/ImmutableSet;
if-nez v0, :cond_0
.line 4
sget-object v0, Lcom/google/common/reflect/TypeToken$TypeCollector;->FOR_GENERIC_TYPE:Lcom/google/common/reflect/TypeToken$TypeCollector;
iget-object v1, p0, Lcom/google/common/reflect/TypeToken$TypeSet;->this$0:Lcom/google/common/reflect/TypeToken;
.line 5
invoke-virtual {v0, v1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->collectTypes(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList;
move-result-object v0
.line 6
invoke-static {v0}, Lcom/google/common/collect/FluentIterable;->from(Ljava/lang/Iterable;)Lcom/google/common/collect/FluentIterable;
move-result-object v0
sget-object v1, Lcom/google/common/reflect/TypeToken$TypeFilter;->IGNORE_TYPE_VARIABLE_OR_WILDCARD:Lcom/google/common/reflect/TypeToken$TypeFilter;
.line 7
invoke-virtual {v0, v1}, Lcom/google/common/collect/FluentIterable;->filter(Lcom/google/common/base/Predicate;)Lcom/google/common/collect/FluentIterable;
move-result-object v0
.line 8
invoke-virtual {v0}, Lcom/google/common/collect/FluentIterable;->toSet()Lcom/google/common/collect/ImmutableSet;
move-result-object v0
iput-object v0, p0, Lcom/google/common/reflect/TypeToken$TypeSet;->types:Lcom/google/common/collect/ImmutableSet;
:cond_0
return-object v0
.end method
.method public interfaces()Lcom/google/common/reflect/TypeToken$TypeSet;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/common/reflect/TypeToken<",
"TT;>.TypeSet;"
}
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/TypeToken$InterfaceSet;
iget-object v1, p0, Lcom/google/common/reflect/TypeToken$TypeSet;->this$0:Lcom/google/common/reflect/TypeToken;
invoke-direct {v0, v1, p0}, Lcom/google/common/reflect/TypeToken$InterfaceSet;-><init>(Lcom/google/common/reflect/TypeToken;Lcom/google/common/reflect/TypeToken$TypeSet;)V
return-object v0
.end method
.method public rawTypes()Ljava/util/Set;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set<",
"Ljava/lang/Class<",
"-TT;>;>;"
}
.end annotation
.line 1
sget-object v0, Lcom/google/common/reflect/TypeToken$TypeCollector;->FOR_RAW_TYPE:Lcom/google/common/reflect/TypeToken$TypeCollector;
iget-object v1, p0, Lcom/google/common/reflect/TypeToken$TypeSet;->this$0:Lcom/google/common/reflect/TypeToken;
.line 2
invoke-static {v1}, Lcom/google/common/reflect/TypeToken;->access$300(Lcom/google/common/reflect/TypeToken;)Lcom/google/common/collect/ImmutableSet;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/google/common/reflect/TypeToken$TypeCollector;->collectTypes(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
move-result-object v0
.line 3
invoke-static {v0}, Lcom/google/common/collect/ImmutableSet;->copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableSet;
move-result-object v0
return-object v0
.end method
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,241 @@
.class abstract Lcom/google/common/reflect/TypeVisitor;
.super Ljava/lang/Object;
.source "TypeVisitor.java"
# annotations
.annotation runtime Lcom/google/common/reflect/ElementTypesAreNonnullByDefault;
.end annotation
# instance fields
.field private final visited:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set<",
"Ljava/lang/reflect/Type;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-static {}, Lcom/google/common/collect/Sets;->newHashSet()Ljava/util/HashSet;
move-result-object v0
iput-object v0, p0, Lcom/google/common/reflect/TypeVisitor;->visited:Ljava/util/Set;
return-void
.end method
# virtual methods
.method public final varargs visit([Ljava/lang/reflect/Type;)V
.locals 4
.line 1
array-length v0, p1
const/4 v1, 0x0
:goto_0
if-ge v1, v0, :cond_7
aget-object v2, p1, v1
if-eqz v2, :cond_6
.line 2
iget-object v3, p0, Lcom/google/common/reflect/TypeVisitor;->visited:Ljava/util/Set;
invoke-interface {v3, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_0
goto :goto_1
.line 3
:cond_0
:try_start_0
instance-of v3, v2, Ljava/lang/reflect/TypeVariable;
if-eqz v3, :cond_1
.line 4
move-object v3, v2
check-cast v3, Ljava/lang/reflect/TypeVariable;
invoke-virtual {p0, v3}, Lcom/google/common/reflect/TypeVisitor;->visitTypeVariable(Ljava/lang/reflect/TypeVariable;)V
goto :goto_1
.line 5
:cond_1
instance-of v3, v2, Ljava/lang/reflect/WildcardType;
if-eqz v3, :cond_2
.line 6
move-object v3, v2
check-cast v3, Ljava/lang/reflect/WildcardType;
invoke-virtual {p0, v3}, Lcom/google/common/reflect/TypeVisitor;->visitWildcardType(Ljava/lang/reflect/WildcardType;)V
goto :goto_1
.line 7
:cond_2
instance-of v3, v2, Ljava/lang/reflect/ParameterizedType;
if-eqz v3, :cond_3
.line 8
move-object v3, v2
check-cast v3, Ljava/lang/reflect/ParameterizedType;
invoke-virtual {p0, v3}, Lcom/google/common/reflect/TypeVisitor;->visitParameterizedType(Ljava/lang/reflect/ParameterizedType;)V
goto :goto_1
.line 9
:cond_3
instance-of v3, v2, Ljava/lang/Class;
if-eqz v3, :cond_4
.line 10
move-object v3, v2
check-cast v3, Ljava/lang/Class;
invoke-virtual {p0, v3}, Lcom/google/common/reflect/TypeVisitor;->visitClass(Ljava/lang/Class;)V
goto :goto_1
.line 11
:cond_4
instance-of v3, v2, Ljava/lang/reflect/GenericArrayType;
if-eqz v3, :cond_5
.line 12
move-object v3, v2
check-cast v3, Ljava/lang/reflect/GenericArrayType;
invoke-virtual {p0, v3}, Lcom/google/common/reflect/TypeVisitor;->visitGenericArrayType(Ljava/lang/reflect/GenericArrayType;)V
goto :goto_1
.line 13
:cond_5
new-instance p1, Ljava/lang/AssertionError;
invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v1
add-int/lit8 v1, v1, 0xe
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v1}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v1, "Unknown type: "
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
throw p1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
:catchall_0
move-exception p1
.line 14
iget-object v0, p0, Lcom/google/common/reflect/TypeVisitor;->visited:Ljava/util/Set;
invoke-interface {v0, v2}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
.line 15
throw p1
:cond_6
:goto_1
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_7
return-void
.end method
.method public visitClass(Ljava/lang/Class;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)V"
}
.end annotation
return-void
.end method
.method public visitGenericArrayType(Ljava/lang/reflect/GenericArrayType;)V
.locals 0
return-void
.end method
.method public visitParameterizedType(Ljava/lang/reflect/ParameterizedType;)V
.locals 0
return-void
.end method
.method public visitTypeVariable(Ljava/lang/reflect/TypeVariable;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/TypeVariable<",
"*>;)V"
}
.end annotation
return-void
.end method
.method public visitWildcardType(Ljava/lang/reflect/WildcardType;)V
.locals 0
return-void
.end method
@@ -0,0 +1,66 @@
.class Lcom/google/common/reflect/Types$1;
.super Ljava/lang/Object;
.source "Types.java"
# interfaces
.implements Lcom/google/common/base/Function;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lcom/google/common/base/Function<",
"Ljava/lang/reflect/Type;",
"Ljava/lang/String;",
">;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public bridge synthetic apply(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 1
check-cast p1, Ljava/lang/reflect/Type;
invoke-virtual {p0, p1}, Lcom/google/common/reflect/Types$1;->apply(Ljava/lang/reflect/Type;)Ljava/lang/String;
move-result-object p1
return-object p1
.end method
.method public apply(Ljava/lang/reflect/Type;)Ljava/lang/String;
.locals 1
.line 2
sget-object v0, Lcom/google/common/reflect/Types$JavaVersion;->CURRENT:Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {v0, p1}, Lcom/google/common/reflect/Types$JavaVersion;->typeName(Ljava/lang/reflect/Type;)Ljava/lang/String;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,115 @@
.class Lcom/google/common/reflect/Types$2;
.super Lcom/google/common/reflect/TypeVisitor;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/Types;->getComponentType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic val$result:Ljava/util/concurrent/atomic/AtomicReference;
# direct methods
.method public constructor <init>(Ljava/util/concurrent/atomic/AtomicReference;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/common/reflect/Types$2;->val$result:Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {p0}, Lcom/google/common/reflect/TypeVisitor;-><init>()V
return-void
.end method
# virtual methods
.method public visitClass(Ljava/lang/Class;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)V"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$2;->val$result:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {p1}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->set(Ljava/lang/Object;)V
return-void
.end method
.method public visitGenericArrayType(Ljava/lang/reflect/GenericArrayType;)V
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$2;->val$result:Ljava/util/concurrent/atomic/AtomicReference;
invoke-interface {p1}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->set(Ljava/lang/Object;)V
return-void
.end method
.method public visitTypeVariable(Ljava/lang/reflect/TypeVariable;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/TypeVariable<",
"*>;)V"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$2;->val$result:Ljava/util/concurrent/atomic/AtomicReference;
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getBounds()[Ljava/lang/reflect/Type;
move-result-object p1
invoke-static {p1}, Lcom/google/common/reflect/Types;->access$100([Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->set(Ljava/lang/Object;)V
return-void
.end method
.method public visitWildcardType(Ljava/lang/reflect/WildcardType;)V
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$2;->val$result:Ljava/util/concurrent/atomic/AtomicReference;
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object p1
invoke-static {p1}, Lcom/google/common/reflect/Types;->access$100([Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->set(Ljava/lang/Object;)V
return-void
.end method
@@ -0,0 +1,52 @@
.class final enum Lcom/google/common/reflect/Types$ClassOwnership$1;
.super Lcom/google/common/reflect/Types$ClassOwnership;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types$ClassOwnership;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4011
name = null
.end annotation
# direct methods
.method public constructor <init>(Ljava/lang/String;I)V
.locals 1
const/4 v0, 0x0
.line 1
invoke-direct {p0, p1, p2, v0}, Lcom/google/common/reflect/Types$ClassOwnership;-><init>(Ljava/lang/String;ILcom/google/common/reflect/Types$1;)V
return-void
.end method
# virtual methods
.method public getOwnerType(Ljava/lang/Class;)Ljava/lang/Class;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
invoke-virtual {p1}, Ljava/lang/Class;->getEnclosingClass()Ljava/lang/Class;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,34 @@
.class Lcom/google/common/reflect/Types$ClassOwnership$1LocalClass;
.super Ljava/lang/Object;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/Types$ClassOwnership;->detectJvmBehavior()Lcom/google/common/reflect/Types$ClassOwnership;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "LocalClass"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
@@ -0,0 +1,64 @@
.class final enum Lcom/google/common/reflect/Types$ClassOwnership$2;
.super Lcom/google/common/reflect/Types$ClassOwnership;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types$ClassOwnership;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4011
name = null
.end annotation
# direct methods
.method public constructor <init>(Ljava/lang/String;I)V
.locals 1
const/4 v0, 0x0
.line 1
invoke-direct {p0, p1, p2, v0}, Lcom/google/common/reflect/Types$ClassOwnership;-><init>(Ljava/lang/String;ILcom/google/common/reflect/Types$1;)V
return-void
.end method
# virtual methods
.method public getOwnerType(Ljava/lang/Class;)Ljava/lang/Class;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
invoke-virtual {p1}, Ljava/lang/Class;->isLocalClass()Z
move-result v0
if-eqz v0, :cond_0
const/4 p1, 0x0
return-object p1
.line 2
:cond_0
invoke-virtual {p1}, Ljava/lang/Class;->getEnclosingClass()Ljava/lang/Class;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,33 @@
.class Lcom/google/common/reflect/Types$ClassOwnership$3;
.super Lcom/google/common/reflect/Types$ClassOwnership$1LocalClass;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/common/reflect/Types$ClassOwnership;->detectJvmBehavior()Lcom/google/common/reflect/Types$ClassOwnership;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/Types$ClassOwnership$1LocalClass<",
"Ljava/lang/String;",
">;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Lcom/google/common/reflect/Types$ClassOwnership$1LocalClass;-><init>()V
return-void
.end method
@@ -0,0 +1,233 @@
.class abstract enum Lcom/google/common/reflect/Types$ClassOwnership;
.super Ljava/lang/Enum;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4409
name = "ClassOwnership"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Enum<",
"Lcom/google/common/reflect/Types$ClassOwnership;",
">;"
}
.end annotation
# static fields
.field private static final synthetic $VALUES:[Lcom/google/common/reflect/Types$ClassOwnership;
.field public static final JVM_BEHAVIOR:Lcom/google/common/reflect/Types$ClassOwnership;
.field public static final enum LOCAL_CLASS_HAS_NO_OWNER:Lcom/google/common/reflect/Types$ClassOwnership;
.field public static final enum OWNED_BY_ENCLOSING_CLASS:Lcom/google/common/reflect/Types$ClassOwnership;
# direct methods
.method private static synthetic $values()[Lcom/google/common/reflect/Types$ClassOwnership;
.locals 3
const/4 v0, 0x2
new-array v0, v0, [Lcom/google/common/reflect/Types$ClassOwnership;
.line 1
sget-object v1, Lcom/google/common/reflect/Types$ClassOwnership;->OWNED_BY_ENCLOSING_CLASS:Lcom/google/common/reflect/Types$ClassOwnership;
const/4 v2, 0x0
aput-object v1, v0, v2
sget-object v1, Lcom/google/common/reflect/Types$ClassOwnership;->LOCAL_CLASS_HAS_NO_OWNER:Lcom/google/common/reflect/Types$ClassOwnership;
const/4 v2, 0x1
aput-object v1, v0, v2
return-object v0
.end method
.method public static constructor <clinit>()V
.locals 3
.line 1
new-instance v0, Lcom/google/common/reflect/Types$ClassOwnership$1;
const-string v1, "OWNED_BY_ENCLOSING_CLASS"
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lcom/google/common/reflect/Types$ClassOwnership$1;-><init>(Ljava/lang/String;I)V
sput-object v0, Lcom/google/common/reflect/Types$ClassOwnership;->OWNED_BY_ENCLOSING_CLASS:Lcom/google/common/reflect/Types$ClassOwnership;
.line 2
new-instance v0, Lcom/google/common/reflect/Types$ClassOwnership$2;
const-string v1, "LOCAL_CLASS_HAS_NO_OWNER"
const/4 v2, 0x1
invoke-direct {v0, v1, v2}, Lcom/google/common/reflect/Types$ClassOwnership$2;-><init>(Ljava/lang/String;I)V
sput-object v0, Lcom/google/common/reflect/Types$ClassOwnership;->LOCAL_CLASS_HAS_NO_OWNER:Lcom/google/common/reflect/Types$ClassOwnership;
.line 3
invoke-static {}, Lcom/google/common/reflect/Types$ClassOwnership;->$values()[Lcom/google/common/reflect/Types$ClassOwnership;
move-result-object v0
sput-object v0, Lcom/google/common/reflect/Types$ClassOwnership;->$VALUES:[Lcom/google/common/reflect/Types$ClassOwnership;
.line 4
invoke-static {}, Lcom/google/common/reflect/Types$ClassOwnership;->detectJvmBehavior()Lcom/google/common/reflect/Types$ClassOwnership;
move-result-object v0
sput-object v0, Lcom/google/common/reflect/Types$ClassOwnership;->JVM_BEHAVIOR:Lcom/google/common/reflect/Types$ClassOwnership;
return-void
.end method
.method private constructor <init>(Ljava/lang/String;I)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.line 1
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public synthetic constructor <init>(Ljava/lang/String;ILcom/google/common/reflect/Types$1;)V
.locals 0
.line 2
invoke-direct {p0, p1, p2}, Lcom/google/common/reflect/Types$ClassOwnership;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method private static detectJvmBehavior()Lcom/google/common/reflect/Types$ClassOwnership;
.locals 7
.line 1
new-instance v0, Lcom/google/common/reflect/Types$ClassOwnership$3;
invoke-direct {v0}, Lcom/google/common/reflect/Types$ClassOwnership$3;-><init>()V
const-class v0, Lcom/google/common/reflect/Types$ClassOwnership$3;
.line 2
invoke-virtual {v0}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
move-result-object v0
check-cast v0, Ljava/lang/reflect/ParameterizedType;
invoke-static {v0}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object;
check-cast v0, Ljava/lang/reflect/ParameterizedType;
.line 3
invoke-static {}, Lcom/google/common/reflect/Types$ClassOwnership;->values()[Lcom/google/common/reflect/Types$ClassOwnership;
move-result-object v1
array-length v2, v1
const/4 v3, 0x0
:goto_0
if-ge v3, v2, :cond_1
aget-object v4, v1, v3
.line 4
const-class v5, Lcom/google/common/reflect/Types$ClassOwnership$1LocalClass;
invoke-virtual {v4, v5}, Lcom/google/common/reflect/Types$ClassOwnership;->getOwnerType(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object v5
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object v6
if-ne v5, v6, :cond_0
return-object v4
:cond_0
add-int/lit8 v3, v3, 0x1
goto :goto_0
.line 5
:cond_1
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.end method
.method public static valueOf(Ljava/lang/String;)Lcom/google/common/reflect/Types$ClassOwnership;
.locals 1
.line 1
const-class v0, Lcom/google/common/reflect/Types$ClassOwnership;
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Lcom/google/common/reflect/Types$ClassOwnership;
return-object p0
.end method
.method public static values()[Lcom/google/common/reflect/Types$ClassOwnership;
.locals 1
.line 1
sget-object v0, Lcom/google/common/reflect/Types$ClassOwnership;->$VALUES:[Lcom/google/common/reflect/Types$ClassOwnership;
invoke-virtual {v0}, [Lcom/google/common/reflect/Types$ClassOwnership;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lcom/google/common/reflect/Types$ClassOwnership;
return-object v0
.end method
# virtual methods
.method public abstract getOwnerType(Ljava/lang/Class;)Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end method
@@ -0,0 +1,129 @@
.class final Lcom/google/common/reflect/Types$GenericArrayTypeImpl;
.super Ljava/lang/Object;
.source "Types.java"
# interfaces
.implements Ljava/lang/reflect/GenericArrayType;
.implements Ljava/io/Serializable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "GenericArrayTypeImpl"
.end annotation
# static fields
.field private static final serialVersionUID:J
# instance fields
.field private final componentType:Ljava/lang/reflect/Type;
# direct methods
.method public constructor <init>(Ljava/lang/reflect/Type;)V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
sget-object v0, Lcom/google/common/reflect/Types$JavaVersion;->CURRENT:Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {v0, p1}, Lcom/google/common/reflect/Types$JavaVersion;->usedInGenericType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
iput-object p1, p0, Lcom/google/common/reflect/Types$GenericArrayTypeImpl;->componentType:Ljava/lang/reflect/Type;
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 1
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.line 1
instance-of v0, p1, Ljava/lang/reflect/GenericArrayType;
if-eqz v0, :cond_0
.line 2
check-cast p1, Ljava/lang/reflect/GenericArrayType;
.line 3
invoke-virtual {p0}, Lcom/google/common/reflect/Types$GenericArrayTypeImpl;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object v0
invoke-interface {p1}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object p1
invoke-static {v0, p1}, Lcom/google/common/base/Objects;->equal(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p1
return p1
:cond_0
const/4 p1, 0x0
return p1
.end method
.method public getGenericComponentType()Ljava/lang/reflect/Type;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$GenericArrayTypeImpl;->componentType:Ljava/lang/reflect/Type;
return-object v0
.end method
.method public hashCode()I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$GenericArrayTypeImpl;->componentType:Ljava/lang/reflect/Type;
invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I
move-result v0
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$GenericArrayTypeImpl;->componentType:Ljava/lang/reflect/Type;
invoke-static {v0}, Lcom/google/common/reflect/Types;->toString(Ljava/lang/reflect/Type;)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
const-string v1, "[]"
invoke-virtual {v0, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,87 @@
.class final enum Lcom/google/common/reflect/Types$JavaVersion$1;
.super Lcom/google/common/reflect/Types$JavaVersion;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types$JavaVersion;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4011
name = null
.end annotation
# direct methods
.method public constructor <init>(Ljava/lang/String;I)V
.locals 1
const/4 v0, 0x0
.line 1
invoke-direct {p0, p1, p2, v0}, Lcom/google/common/reflect/Types$JavaVersion;-><init>(Ljava/lang/String;ILcom/google/common/reflect/Types$1;)V
return-void
.end method
# virtual methods
.method public newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/GenericArrayType;
.locals 1
.line 2
new-instance v0, Lcom/google/common/reflect/Types$GenericArrayTypeImpl;
invoke-direct {v0, p1}, Lcom/google/common/reflect/Types$GenericArrayTypeImpl;-><init>(Ljava/lang/reflect/Type;)V
return-object v0
.end method
.method public bridge synthetic newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 0
.line 1
invoke-virtual {p0, p1}, Lcom/google/common/reflect/Types$JavaVersion$1;->newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/GenericArrayType;
move-result-object p1
return-object p1
.end method
.method public usedInGenericType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 2
.line 1
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 2
instance-of v0, p1, Ljava/lang/Class;
if-eqz v0, :cond_0
.line 3
move-object v0, p1
check-cast v0, Ljava/lang/Class;
.line 4
invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z
move-result v1
if-eqz v1, :cond_0
.line 5
new-instance p1, Lcom/google/common/reflect/Types$GenericArrayTypeImpl;
invoke-virtual {v0}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v0
invoke-direct {p1, v0}, Lcom/google/common/reflect/Types$GenericArrayTypeImpl;-><init>(Ljava/lang/reflect/Type;)V
:cond_0
return-object p1
.end method
@@ -0,0 +1,68 @@
.class final enum Lcom/google/common/reflect/Types$JavaVersion$2;
.super Lcom/google/common/reflect/Types$JavaVersion;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types$JavaVersion;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4011
name = null
.end annotation
# direct methods
.method public constructor <init>(Ljava/lang/String;I)V
.locals 1
const/4 v0, 0x0
.line 1
invoke-direct {p0, p1, p2, v0}, Lcom/google/common/reflect/Types$JavaVersion;-><init>(Ljava/lang/String;ILcom/google/common/reflect/Types$1;)V
return-void
.end method
# virtual methods
.method public newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 1
.line 1
instance-of v0, p1, Ljava/lang/Class;
if-eqz v0, :cond_0
.line 2
check-cast p1, Ljava/lang/Class;
invoke-static {p1}, Lcom/google/common/reflect/Types;->getArrayClass(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object p1
return-object p1
.line 3
:cond_0
new-instance v0, Lcom/google/common/reflect/Types$GenericArrayTypeImpl;
invoke-direct {v0, p1}, Lcom/google/common/reflect/Types$GenericArrayTypeImpl;-><init>(Ljava/lang/reflect/Type;)V
return-object v0
.end method
.method public usedInGenericType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 0
.line 1
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/reflect/Type;
return-object p1
.end method
@@ -0,0 +1,118 @@
.class final enum Lcom/google/common/reflect/Types$JavaVersion$3;
.super Lcom/google/common/reflect/Types$JavaVersion;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types$JavaVersion;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4011
name = null
.end annotation
# direct methods
.method public constructor <init>(Ljava/lang/String;I)V
.locals 1
const/4 v0, 0x0
.line 1
invoke-direct {p0, p1, p2, v0}, Lcom/google/common/reflect/Types$JavaVersion;-><init>(Ljava/lang/String;ILcom/google/common/reflect/Types$1;)V
return-void
.end method
# virtual methods
.method public newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 1
.line 1
sget-object v0, Lcom/google/common/reflect/Types$JavaVersion;->JAVA7:Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {v0, p1}, Lcom/google/common/reflect/Types$JavaVersion;->newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
return-object p1
.end method
.method public typeName(Ljava/lang/reflect/Type;)Ljava/lang/String;
.locals 4
.line 1
:try_start_0
const-class v0, Ljava/lang/reflect/Type;
const-string v1, "getTypeName"
const/4 v2, 0x0
new-array v3, v2, [Ljava/lang/Class;
invoke-virtual {v0, v1, v3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
new-array v1, v2, [Ljava/lang/Object;
.line 2
invoke-virtual {v0, p1, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/String;
:try_end_0
.catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_2
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_1
.catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_0
return-object p1
:catch_0
move-exception p1
.line 3
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v0
:catch_1
move-exception p1
.line 4
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v0
.line 5
:catch_2
new-instance p1, Ljava/lang/AssertionError;
const-string v0, "Type.getTypeName should be available in Java 8"
invoke-direct {p1, v0}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
throw p1
.end method
.method public usedInGenericType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 1
.line 1
sget-object v0, Lcom/google/common/reflect/Types$JavaVersion;->JAVA7:Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {v0, p1}, Lcom/google/common/reflect/Types$JavaVersion;->usedInGenericType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,76 @@
.class final enum Lcom/google/common/reflect/Types$JavaVersion$4;
.super Lcom/google/common/reflect/Types$JavaVersion;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types$JavaVersion;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4011
name = null
.end annotation
# direct methods
.method public constructor <init>(Ljava/lang/String;I)V
.locals 1
const/4 v0, 0x0
.line 1
invoke-direct {p0, p1, p2, v0}, Lcom/google/common/reflect/Types$JavaVersion;-><init>(Ljava/lang/String;ILcom/google/common/reflect/Types$1;)V
return-void
.end method
# virtual methods
.method public jdkTypeDuplicatesOwnerName()Z
.locals 1
const/4 v0, 0x0
return v0
.end method
.method public newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 1
.line 1
sget-object v0, Lcom/google/common/reflect/Types$JavaVersion;->JAVA8:Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {v0, p1}, Lcom/google/common/reflect/Types$JavaVersion;->newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
return-object p1
.end method
.method public typeName(Ljava/lang/reflect/Type;)Ljava/lang/String;
.locals 1
.line 1
sget-object v0, Lcom/google/common/reflect/Types$JavaVersion;->JAVA8:Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {v0, p1}, Lcom/google/common/reflect/Types$JavaVersion;->typeName(Ljava/lang/reflect/Type;)Ljava/lang/String;
move-result-object p1
return-object p1
.end method
.method public usedInGenericType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 1
.line 1
sget-object v0, Lcom/google/common/reflect/Types$JavaVersion;->JAVA8:Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {v0, p1}, Lcom/google/common/reflect/Types$JavaVersion;->usedInGenericType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,34 @@
.class Lcom/google/common/reflect/Types$JavaVersion$5;
.super Lcom/google/common/reflect/TypeCapture;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types$JavaVersion;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/TypeCapture<",
"Ljava/util/Map$Entry<",
"Ljava/lang/String;",
"[[I>;>;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Lcom/google/common/reflect/TypeCapture;-><init>()V
return-void
.end method
@@ -0,0 +1,32 @@
.class Lcom/google/common/reflect/Types$JavaVersion$6;
.super Lcom/google/common/reflect/TypeCapture;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types$JavaVersion;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/TypeCapture<",
"[I>;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Lcom/google/common/reflect/TypeCapture;-><init>()V
return-void
.end method
@@ -0,0 +1,327 @@
.class abstract enum Lcom/google/common/reflect/Types$JavaVersion;
.super Ljava/lang/Enum;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4409
name = "JavaVersion"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Enum<",
"Lcom/google/common/reflect/Types$JavaVersion;",
">;"
}
.end annotation
# static fields
.field private static final synthetic $VALUES:[Lcom/google/common/reflect/Types$JavaVersion;
.field public static final CURRENT:Lcom/google/common/reflect/Types$JavaVersion;
.field public static final enum JAVA6:Lcom/google/common/reflect/Types$JavaVersion;
.field public static final enum JAVA7:Lcom/google/common/reflect/Types$JavaVersion;
.field public static final enum JAVA8:Lcom/google/common/reflect/Types$JavaVersion;
.field public static final enum JAVA9:Lcom/google/common/reflect/Types$JavaVersion;
# direct methods
.method private static synthetic $values()[Lcom/google/common/reflect/Types$JavaVersion;
.locals 3
const/4 v0, 0x4
new-array v0, v0, [Lcom/google/common/reflect/Types$JavaVersion;
.line 1
sget-object v1, Lcom/google/common/reflect/Types$JavaVersion;->JAVA6:Lcom/google/common/reflect/Types$JavaVersion;
const/4 v2, 0x0
aput-object v1, v0, v2
sget-object v1, Lcom/google/common/reflect/Types$JavaVersion;->JAVA7:Lcom/google/common/reflect/Types$JavaVersion;
const/4 v2, 0x1
aput-object v1, v0, v2
sget-object v1, Lcom/google/common/reflect/Types$JavaVersion;->JAVA8:Lcom/google/common/reflect/Types$JavaVersion;
const/4 v2, 0x2
aput-object v1, v0, v2
sget-object v1, Lcom/google/common/reflect/Types$JavaVersion;->JAVA9:Lcom/google/common/reflect/Types$JavaVersion;
const/4 v2, 0x3
aput-object v1, v0, v2
return-object v0
.end method
.method public static constructor <clinit>()V
.locals 6
.line 1
new-instance v0, Lcom/google/common/reflect/Types$JavaVersion$1;
const-string v1, "JAVA6"
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lcom/google/common/reflect/Types$JavaVersion$1;-><init>(Ljava/lang/String;I)V
sput-object v0, Lcom/google/common/reflect/Types$JavaVersion;->JAVA6:Lcom/google/common/reflect/Types$JavaVersion;
.line 2
new-instance v1, Lcom/google/common/reflect/Types$JavaVersion$2;
const-string v2, "JAVA7"
const/4 v3, 0x1
invoke-direct {v1, v2, v3}, Lcom/google/common/reflect/Types$JavaVersion$2;-><init>(Ljava/lang/String;I)V
sput-object v1, Lcom/google/common/reflect/Types$JavaVersion;->JAVA7:Lcom/google/common/reflect/Types$JavaVersion;
.line 3
new-instance v2, Lcom/google/common/reflect/Types$JavaVersion$3;
const-string v3, "JAVA8"
const/4 v4, 0x2
invoke-direct {v2, v3, v4}, Lcom/google/common/reflect/Types$JavaVersion$3;-><init>(Ljava/lang/String;I)V
sput-object v2, Lcom/google/common/reflect/Types$JavaVersion;->JAVA8:Lcom/google/common/reflect/Types$JavaVersion;
.line 4
new-instance v3, Lcom/google/common/reflect/Types$JavaVersion$4;
const-string v4, "JAVA9"
const/4 v5, 0x3
invoke-direct {v3, v4, v5}, Lcom/google/common/reflect/Types$JavaVersion$4;-><init>(Ljava/lang/String;I)V
sput-object v3, Lcom/google/common/reflect/Types$JavaVersion;->JAVA9:Lcom/google/common/reflect/Types$JavaVersion;
.line 5
invoke-static {}, Lcom/google/common/reflect/Types$JavaVersion;->$values()[Lcom/google/common/reflect/Types$JavaVersion;
move-result-object v4
sput-object v4, Lcom/google/common/reflect/Types$JavaVersion;->$VALUES:[Lcom/google/common/reflect/Types$JavaVersion;
.line 6
const-class v4, Ljava/lang/reflect/AnnotatedElement;
const-class v5, Ljava/lang/reflect/TypeVariable;
invoke-virtual {v4, v5}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v4
if-eqz v4, :cond_1
.line 7
new-instance v0, Lcom/google/common/reflect/Types$JavaVersion$5;
invoke-direct {v0}, Lcom/google/common/reflect/Types$JavaVersion$5;-><init>()V
invoke-virtual {v0}, Lcom/google/common/reflect/TypeCapture;->capture()Ljava/lang/reflect/Type;
move-result-object v0
.line 8
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "java.util.Map.java.util.Map"
.line 9
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_0
.line 10
sput-object v2, Lcom/google/common/reflect/Types$JavaVersion;->CURRENT:Lcom/google/common/reflect/Types$JavaVersion;
goto :goto_0
.line 11
:cond_0
sput-object v3, Lcom/google/common/reflect/Types$JavaVersion;->CURRENT:Lcom/google/common/reflect/Types$JavaVersion;
goto :goto_0
.line 12
:cond_1
new-instance v2, Lcom/google/common/reflect/Types$JavaVersion$6;
invoke-direct {v2}, Lcom/google/common/reflect/Types$JavaVersion$6;-><init>()V
invoke-virtual {v2}, Lcom/google/common/reflect/TypeCapture;->capture()Ljava/lang/reflect/Type;
move-result-object v2
instance-of v2, v2, Ljava/lang/Class;
if-eqz v2, :cond_2
.line 13
sput-object v1, Lcom/google/common/reflect/Types$JavaVersion;->CURRENT:Lcom/google/common/reflect/Types$JavaVersion;
goto :goto_0
.line 14
:cond_2
sput-object v0, Lcom/google/common/reflect/Types$JavaVersion;->CURRENT:Lcom/google/common/reflect/Types$JavaVersion;
:goto_0
return-void
.end method
.method private constructor <init>(Ljava/lang/String;I)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.line 1
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public synthetic constructor <init>(Ljava/lang/String;ILcom/google/common/reflect/Types$1;)V
.locals 0
.line 2
invoke-direct {p0, p1, p2}, Lcom/google/common/reflect/Types$JavaVersion;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public static valueOf(Ljava/lang/String;)Lcom/google/common/reflect/Types$JavaVersion;
.locals 1
.line 1
const-class v0, Lcom/google/common/reflect/Types$JavaVersion;
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Lcom/google/common/reflect/Types$JavaVersion;
return-object p0
.end method
.method public static values()[Lcom/google/common/reflect/Types$JavaVersion;
.locals 1
.line 1
sget-object v0, Lcom/google/common/reflect/Types$JavaVersion;->$VALUES:[Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {v0}, [Lcom/google/common/reflect/Types$JavaVersion;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lcom/google/common/reflect/Types$JavaVersion;
return-object v0
.end method
# virtual methods
.method public jdkTypeDuplicatesOwnerName()Z
.locals 1
const/4 v0, 0x1
return v0
.end method
.method public abstract newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.end method
.method public typeName(Ljava/lang/reflect/Type;)Ljava/lang/String;
.locals 0
.line 1
invoke-static {p1}, Lcom/google/common/reflect/Types;->toString(Ljava/lang/reflect/Type;)Ljava/lang/String;
move-result-object p1
return-object p1
.end method
.method public final usedInGenericType([Ljava/lang/reflect/Type;)Lcom/google/common/collect/ImmutableList;
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Ljava/lang/reflect/Type;",
")",
"Lcom/google/common/collect/ImmutableList<",
"Ljava/lang/reflect/Type;",
">;"
}
.end annotation
.line 1
invoke-static {}, Lcom/google/common/collect/ImmutableList;->builder()Lcom/google/common/collect/ImmutableList$Builder;
move-result-object v0
.line 2
array-length v1, p1
const/4 v2, 0x0
:goto_0
if-ge v2, v1, :cond_0
aget-object v3, p1, v2
.line 3
invoke-virtual {p0, v3}, Lcom/google/common/reflect/Types$JavaVersion;->usedInGenericType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v3
invoke-virtual {v0, v3}, Lcom/google/common/collect/ImmutableList$Builder;->add(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList$Builder;
add-int/lit8 v2, v2, 0x1
goto :goto_0
.line 4
:cond_0
invoke-virtual {v0}, Lcom/google/common/collect/ImmutableList$Builder;->build()Lcom/google/common/collect/ImmutableList;
move-result-object p1
return-object p1
.end method
.method public abstract usedInGenericType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.end method
@@ -0,0 +1,74 @@
.class final Lcom/google/common/reflect/Types$NativeTypeVariableEquals;
.super Ljava/lang/Object;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "NativeTypeVariableEquals"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<X:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# static fields
.field public static final NATIVE_TYPE_VARIABLE_ONLY:Z
# direct methods
.method public static constructor <clinit>()V
.locals 4
.line 1
const-class v0, Lcom/google/common/reflect/Types$NativeTypeVariableEquals;
.line 2
invoke-virtual {v0}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v1
const/4 v2, 0x0
aget-object v1, v1, v2
new-array v2, v2, [Ljava/lang/reflect/Type;
const-string v3, "X"
.line 3
invoke-static {v0, v3, v2}, Lcom/google/common/reflect/Types;->newArtificialTypeVariable(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/TypeVariable;
move-result-object v0
.line 4
invoke-virtual {v1, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
xor-int/lit8 v0, v0, 0x1
sput-boolean v0, Lcom/google/common/reflect/Types$NativeTypeVariableEquals;->NATIVE_TYPE_VARIABLE_ONLY:Z
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
@@ -0,0 +1,346 @@
.class final Lcom/google/common/reflect/Types$ParameterizedTypeImpl;
.super Ljava/lang/Object;
.source "Types.java"
# interfaces
.implements Ljava/lang/reflect/ParameterizedType;
.implements Ljava/io/Serializable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "ParameterizedTypeImpl"
.end annotation
# static fields
.field private static final serialVersionUID:J
# instance fields
.field private final argumentsList:Lcom/google/common/collect/ImmutableList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ImmutableList<",
"Ljava/lang/reflect/Type;",
">;"
}
.end annotation
.end field
.field private final ownerType:Ljava/lang/reflect/Type;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end field
.field private final rawType:Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Ljava/lang/reflect/Type;Ljava/lang/Class;[Ljava/lang/reflect/Type;)V
.locals 2
.param p1 # Ljava/lang/reflect/Type;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Class<",
"*>;[",
"Ljava/lang/reflect/Type;",
")V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-static {p2}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 3
array-length v0, p3
invoke-virtual {p2}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v1
array-length v1, v1
if-ne v0, v1, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
invoke-static {v0}, Lcom/google/common/base/Preconditions;->checkArgument(Z)V
const-string v0, "type parameter"
.line 4
invoke-static {p3, v0}, Lcom/google/common/reflect/Types;->access$200([Ljava/lang/reflect/Type;Ljava/lang/String;)V
.line 5
iput-object p1, p0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->ownerType:Ljava/lang/reflect/Type;
.line 6
iput-object p2, p0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->rawType:Ljava/lang/Class;
.line 7
sget-object p1, Lcom/google/common/reflect/Types$JavaVersion;->CURRENT:Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {p1, p3}, Lcom/google/common/reflect/Types$JavaVersion;->usedInGenericType([Ljava/lang/reflect/Type;)Lcom/google/common/collect/ImmutableList;
move-result-object p1
iput-object p1, p0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->argumentsList:Lcom/google/common/collect/ImmutableList;
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 3
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.line 1
instance-of v0, p1, Ljava/lang/reflect/ParameterizedType;
const/4 v1, 0x0
if-nez v0, :cond_0
return v1
.line 2
:cond_0
check-cast p1, Ljava/lang/reflect/ParameterizedType;
.line 3
invoke-virtual {p0}, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->getRawType()Ljava/lang/reflect/Type;
move-result-object v0
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1
.line 4
invoke-virtual {p0}, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object v0
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object v2
invoke-static {v0, v2}, Lcom/google/common/base/Objects;->equal(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1
.line 5
invoke-virtual {p0}, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v0
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object p1
invoke-static {v0, p1}, Ljava/util/Arrays;->equals([Ljava/lang/Object;[Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_1
const/4 v1, 0x1
:cond_1
return v1
.end method
.method public getActualTypeArguments()[Ljava/lang/reflect/Type;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->argumentsList:Lcom/google/common/collect/ImmutableList;
invoke-static {v0}, Lcom/google/common/reflect/Types;->access$300(Ljava/util/Collection;)[Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public getOwnerType()Ljava/lang/reflect/Type;
.locals 1
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->ownerType:Ljava/lang/reflect/Type;
return-object v0
.end method
.method public getRawType()Ljava/lang/reflect/Type;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->rawType:Ljava/lang/Class;
return-object v0
.end method
.method public hashCode()I
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->ownerType:Ljava/lang/reflect/Type;
if-nez v0, :cond_0
const/4 v0, 0x0
goto :goto_0
:cond_0
invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I
move-result v0
:goto_0
iget-object v1, p0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->argumentsList:Lcom/google/common/collect/ImmutableList;
.line 2
invoke-virtual {v1}, Lcom/google/common/collect/ImmutableList;->hashCode()I
move-result v1
xor-int/2addr v0, v1
iget-object v1, p0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->rawType:Ljava/lang/Class;
.line 3
invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I
move-result v1
xor-int/2addr v0, v1
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 4
.line 1
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 2
iget-object v1, p0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->ownerType:Ljava/lang/reflect/Type;
if-eqz v1, :cond_0
sget-object v1, Lcom/google/common/reflect/Types$JavaVersion;->CURRENT:Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {v1}, Lcom/google/common/reflect/Types$JavaVersion;->jdkTypeDuplicatesOwnerName()Z
move-result v2
if-eqz v2, :cond_0
.line 3
iget-object v2, p0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->ownerType:Ljava/lang/reflect/Type;
invoke-virtual {v1, v2}, Lcom/google/common/reflect/Types$JavaVersion;->typeName(Ljava/lang/reflect/Type;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x2e
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 4
:cond_0
iget-object v1, p0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->rawType:Ljava/lang/Class;
.line 5
invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x3c
.line 6
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 7
invoke-static {}, Lcom/google/common/reflect/Types;->access$500()Lcom/google/common/base/Joiner;
move-result-object v1
iget-object v2, p0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;->argumentsList:Lcom/google/common/collect/ImmutableList;
invoke-static {}, Lcom/google/common/reflect/Types;->access$400()Lcom/google/common/base/Function;
move-result-object v3
invoke-static {v2, v3}, Lcom/google/common/collect/Iterables;->transform(Ljava/lang/Iterable;Lcom/google/common/base/Function;)Ljava/lang/Iterable;
move-result-object v2
invoke-virtual {v1, v2}, Lcom/google/common/base/Joiner;->join(Ljava/lang/Iterable;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x3e
.line 8
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 9
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,317 @@
.class final Lcom/google/common/reflect/Types$TypeVariableImpl;
.super Ljava/lang/Object;
.source "Types.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "TypeVariableImpl"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<D::",
"Ljava/lang/reflect/GenericDeclaration;",
">",
"Ljava/lang/Object;"
}
.end annotation
# instance fields
.field private final bounds:Lcom/google/common/collect/ImmutableList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ImmutableList<",
"Ljava/lang/reflect/Type;",
">;"
}
.end annotation
.end field
.field private final genericDeclaration:Ljava/lang/reflect/GenericDeclaration;
.annotation system Ldalvik/annotation/Signature;
value = {
"TD;"
}
.end annotation
.end field
.field private final name:Ljava/lang/String;
# direct methods
.method public constructor <init>(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(TD;",
"Ljava/lang/String;",
"[",
"Ljava/lang/reflect/Type;",
")V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-string v0, "bound for type variable"
.line 2
invoke-static {p3, v0}, Lcom/google/common/reflect/Types;->access$200([Ljava/lang/reflect/Type;Ljava/lang/String;)V
.line 3
invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/reflect/GenericDeclaration;
iput-object p1, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->genericDeclaration:Ljava/lang/reflect/GenericDeclaration;
.line 4
invoke-static {p2}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/String;
iput-object p1, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->name:Ljava/lang/String;
.line 5
invoke-static {p3}, Lcom/google/common/collect/ImmutableList;->copyOf([Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList;
move-result-object p1
iput-object p1, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->bounds:Lcom/google/common/collect/ImmutableList;
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 4
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.line 1
sget-boolean v0, Lcom/google/common/reflect/Types$NativeTypeVariableEquals;->NATIVE_TYPE_VARIABLE_ONLY:Z
const/4 v1, 0x1
const/4 v2, 0x0
if-eqz v0, :cond_2
if-eqz p1, :cond_1
.line 2
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-static {v0}, Ljava/lang/reflect/Proxy;->isProxyClass(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_1
.line 3
invoke-static {p1}, Ljava/lang/reflect/Proxy;->getInvocationHandler(Ljava/lang/Object;)Ljava/lang/reflect/InvocationHandler;
move-result-object v0
instance-of v0, v0, Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;
if-eqz v0, :cond_1
.line 4
invoke-static {p1}, Ljava/lang/reflect/Proxy;->getInvocationHandler(Ljava/lang/Object;)Ljava/lang/reflect/InvocationHandler;
move-result-object p1
check-cast p1, Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;
.line 5
invoke-static {p1}, Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;->access$600(Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;)Lcom/google/common/reflect/Types$TypeVariableImpl;
move-result-object p1
.line 6
iget-object v0, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->name:Ljava/lang/String;
invoke-virtual {p1}, Lcom/google/common/reflect/Types$TypeVariableImpl;->getName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->genericDeclaration:Ljava/lang/reflect/GenericDeclaration;
.line 7
invoke-virtual {p1}, Lcom/google/common/reflect/Types$TypeVariableImpl;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->bounds:Lcom/google/common/collect/ImmutableList;
iget-object p1, p1, Lcom/google/common/reflect/Types$TypeVariableImpl;->bounds:Lcom/google/common/collect/ImmutableList;
.line 8
invoke-virtual {v0, p1}, Lcom/google/common/collect/ImmutableList;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_0
goto :goto_0
:cond_0
move v1, v2
:goto_0
return v1
:cond_1
return v2
.line 9
:cond_2
instance-of v0, p1, Ljava/lang/reflect/TypeVariable;
if-eqz v0, :cond_4
.line 10
check-cast p1, Ljava/lang/reflect/TypeVariable;
.line 11
iget-object v0, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->name:Ljava/lang/String;
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_3
iget-object v0, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->genericDeclaration:Ljava/lang/reflect/GenericDeclaration;
.line 12
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_3
goto :goto_1
:cond_3
move v1, v2
:goto_1
return v1
:cond_4
return v2
.end method
.method public getBounds()[Ljava/lang/reflect/Type;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->bounds:Lcom/google/common/collect/ImmutableList;
invoke-static {v0}, Lcom/google/common/reflect/Types;->access$300(Ljava/util/Collection;)[Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()TD;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->genericDeclaration:Ljava/lang/reflect/GenericDeclaration;
return-object v0
.end method
.method public getName()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->name:Ljava/lang/String;
return-object v0
.end method
.method public getTypeName()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->name:Ljava/lang/String;
return-object v0
.end method
.method public hashCode()I
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->genericDeclaration:Ljava/lang/reflect/GenericDeclaration;
invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I
move-result v0
iget-object v1, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->name:Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/String;->hashCode()I
move-result v1
xor-int/2addr v0, v1
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$TypeVariableImpl;->name:Ljava/lang/String;
return-object v0
.end method
@@ -0,0 +1,202 @@
.class final Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;
.super Ljava/lang/Object;
.source "Types.java"
# interfaces
.implements Ljava/lang/reflect/InvocationHandler;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "TypeVariableInvocationHandler"
.end annotation
# static fields
.field private static final typeVariableMethods:Lcom/google/common/collect/ImmutableMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ImmutableMap<",
"Ljava/lang/String;",
"Ljava/lang/reflect/Method;",
">;"
}
.end annotation
.end field
# instance fields
.field private final typeVariableImpl:Lcom/google/common/reflect/Types$TypeVariableImpl;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/reflect/Types$TypeVariableImpl<",
"*>;"
}
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 7
.line 1
const-class v0, Lcom/google/common/reflect/Types$TypeVariableImpl;
invoke-static {}, Lcom/google/common/collect/ImmutableMap;->builder()Lcom/google/common/collect/ImmutableMap$Builder;
move-result-object v1
.line 2
invoke-virtual {v0}, Ljava/lang/Class;->getMethods()[Ljava/lang/reflect/Method;
move-result-object v2
array-length v3, v2
const/4 v4, 0x0
:goto_0
if-ge v4, v3, :cond_1
aget-object v5, v2, v4
.line 3
invoke-virtual {v5}, Ljava/lang/reflect/Method;->getDeclaringClass()Ljava/lang/Class;
move-result-object v6
invoke-virtual {v6, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_0
const/4 v6, 0x1
.line 4
:try_start_0
invoke-virtual {v5, v6}, Ljava/lang/reflect/Method;->setAccessible(Z)V
:try_end_0
.catch Ljava/security/AccessControlException; {:try_start_0 .. :try_end_0} :catch_0
.line 5
:catch_0
invoke-virtual {v5}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v6
invoke-virtual {v1, v6, v5}, Lcom/google/common/collect/ImmutableMap$Builder;->put(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
:cond_0
add-int/lit8 v4, v4, 0x1
goto :goto_0
.line 6
:cond_1
invoke-virtual {v1}, Lcom/google/common/collect/ImmutableMap$Builder;->build()Lcom/google/common/collect/ImmutableMap;
move-result-object v0
sput-object v0, Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;->typeVariableMethods:Lcom/google/common/collect/ImmutableMap;
return-void
.end method
.method public constructor <init>(Lcom/google/common/reflect/Types$TypeVariableImpl;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/common/reflect/Types$TypeVariableImpl<",
"*>;)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;->typeVariableImpl:Lcom/google/common/reflect/Types$TypeVariableImpl;
return-void
.end method
.method public static synthetic access$600(Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;)Lcom/google/common/reflect/Types$TypeVariableImpl;
.locals 0
.line 1
iget-object p0, p0, Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;->typeVariableImpl:Lcom/google/common/reflect/Types$TypeVariableImpl;
return-object p0
.end method
# virtual methods
.method public invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.param p3 # [Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;
}
.end annotation
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object p1
.line 2
sget-object p2, Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;->typeVariableMethods:Lcom/google/common/collect/ImmutableMap;
invoke-virtual {p2, p1}, Lcom/google/common/collect/ImmutableMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p2
check-cast p2, Ljava/lang/reflect/Method;
if-eqz p2, :cond_0
.line 3
:try_start_0
iget-object p1, p0, Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;->typeVariableImpl:Lcom/google/common/reflect/Types$TypeVariableImpl;
invoke-virtual {p2, p1, p3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
:try_end_0
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_0
return-object p1
:catch_0
move-exception p1
.line 4
invoke-virtual {p1}, Ljava/lang/reflect/InvocationTargetException;->getCause()Ljava/lang/Throwable;
move-result-object p1
throw p1
.line 5
:cond_0
new-instance p2, Ljava/lang/UnsupportedOperationException;
invoke-direct {p2, p1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p2
.end method
@@ -0,0 +1,281 @@
.class final Lcom/google/common/reflect/Types$WildcardTypeImpl;
.super Ljava/lang/Object;
.source "Types.java"
# interfaces
.implements Ljava/lang/reflect/WildcardType;
.implements Ljava/io/Serializable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/reflect/Types;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "WildcardTypeImpl"
.end annotation
# static fields
.field private static final serialVersionUID:J
# instance fields
.field private final lowerBounds:Lcom/google/common/collect/ImmutableList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ImmutableList<",
"Ljava/lang/reflect/Type;",
">;"
}
.end annotation
.end field
.field private final upperBounds:Lcom/google/common/collect/ImmutableList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/ImmutableList<",
"Ljava/lang/reflect/Type;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>([Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-string v0, "lower bound for wildcard"
.line 2
invoke-static {p1, v0}, Lcom/google/common/reflect/Types;->access$200([Ljava/lang/reflect/Type;Ljava/lang/String;)V
const-string v0, "upper bound for wildcard"
.line 3
invoke-static {p2, v0}, Lcom/google/common/reflect/Types;->access$200([Ljava/lang/reflect/Type;Ljava/lang/String;)V
.line 4
sget-object v0, Lcom/google/common/reflect/Types$JavaVersion;->CURRENT:Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {v0, p1}, Lcom/google/common/reflect/Types$JavaVersion;->usedInGenericType([Ljava/lang/reflect/Type;)Lcom/google/common/collect/ImmutableList;
move-result-object p1
iput-object p1, p0, Lcom/google/common/reflect/Types$WildcardTypeImpl;->lowerBounds:Lcom/google/common/collect/ImmutableList;
.line 5
invoke-virtual {v0, p2}, Lcom/google/common/reflect/Types$JavaVersion;->usedInGenericType([Ljava/lang/reflect/Type;)Lcom/google/common/collect/ImmutableList;
move-result-object p1
iput-object p1, p0, Lcom/google/common/reflect/Types$WildcardTypeImpl;->upperBounds:Lcom/google/common/collect/ImmutableList;
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 3
.param p1 # Ljava/lang/Object;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.line 1
instance-of v0, p1, Ljava/lang/reflect/WildcardType;
const/4 v1, 0x0
if-eqz v0, :cond_0
.line 2
check-cast p1, Ljava/lang/reflect/WildcardType;
.line 3
iget-object v0, p0, Lcom/google/common/reflect/Types$WildcardTypeImpl;->lowerBounds:Lcom/google/common/collect/ImmutableList;
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v2
invoke-static {v2}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v2
invoke-virtual {v0, v2}, Lcom/google/common/collect/ImmutableList;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/common/reflect/Types$WildcardTypeImpl;->upperBounds:Lcom/google/common/collect/ImmutableList;
.line 4
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object p1
invoke-static {p1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object p1
invoke-virtual {v0, p1}, Lcom/google/common/collect/ImmutableList;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_0
const/4 v1, 0x1
:cond_0
return v1
.end method
.method public getLowerBounds()[Ljava/lang/reflect/Type;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$WildcardTypeImpl;->lowerBounds:Lcom/google/common/collect/ImmutableList;
invoke-static {v0}, Lcom/google/common/reflect/Types;->access$300(Ljava/util/Collection;)[Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public getUpperBounds()[Ljava/lang/reflect/Type;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$WildcardTypeImpl;->upperBounds:Lcom/google/common/collect/ImmutableList;
invoke-static {v0}, Lcom/google/common/reflect/Types;->access$300(Ljava/util/Collection;)[Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public hashCode()I
.locals 2
.line 1
iget-object v0, p0, Lcom/google/common/reflect/Types$WildcardTypeImpl;->lowerBounds:Lcom/google/common/collect/ImmutableList;
invoke-virtual {v0}, Lcom/google/common/collect/ImmutableList;->hashCode()I
move-result v0
iget-object v1, p0, Lcom/google/common/reflect/Types$WildcardTypeImpl;->upperBounds:Lcom/google/common/collect/ImmutableList;
invoke-virtual {v1}, Lcom/google/common/collect/ImmutableList;->hashCode()I
move-result v1
xor-int/2addr v0, v1
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 4
.line 1
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "?"
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 2
iget-object v1, p0, Lcom/google/common/reflect/Types$WildcardTypeImpl;->lowerBounds:Lcom/google/common/collect/ImmutableList;
invoke-virtual {v1}, Lcom/google/common/collect/ImmutableList;->iterator()Lcom/google/common/collect/UnmodifiableIterator;
move-result-object v1
:goto_0
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_0
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/reflect/Type;
const-string v3, " super "
.line 3
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v3, Lcom/google/common/reflect/Types$JavaVersion;->CURRENT:Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {v3, v2}, Lcom/google/common/reflect/Types$JavaVersion;->typeName(Ljava/lang/reflect/Type;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_0
.line 4
:cond_0
iget-object v1, p0, Lcom/google/common/reflect/Types$WildcardTypeImpl;->upperBounds:Lcom/google/common/collect/ImmutableList;
invoke-static {v1}, Lcom/google/common/reflect/Types;->access$700(Ljava/lang/Iterable;)Ljava/lang/Iterable;
move-result-object v1
invoke-interface {v1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_1
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_1
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/reflect/Type;
const-string v3, " extends "
.line 5
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v3, Lcom/google/common/reflect/Types$JavaVersion;->CURRENT:Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {v3, v2}, Lcom/google/common/reflect/Types$JavaVersion;->typeName(Ljava/lang/reflect/Type;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_1
.line 6
:cond_1
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,698 @@
.class final Lcom/google/common/reflect/Types;
.super Ljava/lang/Object;
.source "Types.java"
# annotations
.annotation runtime Lcom/google/common/reflect/ElementTypesAreNonnullByDefault;
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/common/reflect/Types$NativeTypeVariableEquals;,
Lcom/google/common/reflect/Types$JavaVersion;,
Lcom/google/common/reflect/Types$WildcardTypeImpl;,
Lcom/google/common/reflect/Types$TypeVariableImpl;,
Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;,
Lcom/google/common/reflect/Types$ParameterizedTypeImpl;,
Lcom/google/common/reflect/Types$GenericArrayTypeImpl;,
Lcom/google/common/reflect/Types$ClassOwnership;
}
.end annotation
# static fields
.field private static final COMMA_JOINER:Lcom/google/common/base/Joiner;
.field private static final TYPE_NAME:Lcom/google/common/base/Function;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/base/Function<",
"Ljava/lang/reflect/Type;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 2
.line 1
new-instance v0, Lcom/google/common/reflect/Types$1;
invoke-direct {v0}, Lcom/google/common/reflect/Types$1;-><init>()V
sput-object v0, Lcom/google/common/reflect/Types;->TYPE_NAME:Lcom/google/common/base/Function;
const-string v0, ", "
.line 2
invoke-static {v0}, Lcom/google/common/base/Joiner;->on(Ljava/lang/String;)Lcom/google/common/base/Joiner;
move-result-object v0
const-string v1, "null"
invoke-virtual {v0, v1}, Lcom/google/common/base/Joiner;->useForNull(Ljava/lang/String;)Lcom/google/common/base/Joiner;
move-result-object v0
sput-object v0, Lcom/google/common/reflect/Types;->COMMA_JOINER:Lcom/google/common/base/Joiner;
return-void
.end method
.method private constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static synthetic access$100([Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 0
.line 1
invoke-static {p0}, Lcom/google/common/reflect/Types;->subtypeOfComponentType([Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p0
return-object p0
.end method
.method public static synthetic access$200([Ljava/lang/reflect/Type;Ljava/lang/String;)V
.locals 0
.line 1
invoke-static {p0, p1}, Lcom/google/common/reflect/Types;->disallowPrimitiveType([Ljava/lang/reflect/Type;Ljava/lang/String;)V
return-void
.end method
.method public static synthetic access$300(Ljava/util/Collection;)[Ljava/lang/reflect/Type;
.locals 0
.line 1
invoke-static {p0}, Lcom/google/common/reflect/Types;->toArray(Ljava/util/Collection;)[Ljava/lang/reflect/Type;
move-result-object p0
return-object p0
.end method
.method public static synthetic access$400()Lcom/google/common/base/Function;
.locals 1
.line 1
sget-object v0, Lcom/google/common/reflect/Types;->TYPE_NAME:Lcom/google/common/base/Function;
return-object v0
.end method
.method public static synthetic access$500()Lcom/google/common/base/Joiner;
.locals 1
.line 1
sget-object v0, Lcom/google/common/reflect/Types;->COMMA_JOINER:Lcom/google/common/base/Joiner;
return-object v0
.end method
.method public static synthetic access$700(Ljava/lang/Iterable;)Ljava/lang/Iterable;
.locals 0
.line 1
invoke-static {p0}, Lcom/google/common/reflect/Types;->filterUpperBounds(Ljava/lang/Iterable;)Ljava/lang/Iterable;
move-result-object p0
return-object p0
.end method
.method private static disallowPrimitiveType([Ljava/lang/reflect/Type;Ljava/lang/String;)V
.locals 5
.line 1
array-length v0, p0
const/4 v1, 0x0
:goto_0
if-ge v1, v0, :cond_1
aget-object v2, p0, v1
.line 2
instance-of v3, v2, Ljava/lang/Class;
if-eqz v3, :cond_0
.line 3
check-cast v2, Ljava/lang/Class;
.line 4
invoke-virtual {v2}, Ljava/lang/Class;->isPrimitive()Z
move-result v3
xor-int/lit8 v3, v3, 0x1
const-string v4, "Primitive type \'%s\' used as %s"
invoke-static {v3, v4, v2, p1}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
:cond_0
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_1
return-void
.end method
.method private static filterUpperBounds(Ljava/lang/Iterable;)Ljava/lang/Iterable;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Iterable<",
"Ljava/lang/reflect/Type;",
">;)",
"Ljava/lang/Iterable<",
"Ljava/lang/reflect/Type;",
">;"
}
.end annotation
.line 1
const-class v0, Ljava/lang/Object;
invoke-static {v0}, Lcom/google/common/base/Predicates;->equalTo(Ljava/lang/Object;)Lcom/google/common/base/Predicate;
move-result-object v0
invoke-static {v0}, Lcom/google/common/base/Predicates;->not(Lcom/google/common/base/Predicate;)Lcom/google/common/base/Predicate;
move-result-object v0
invoke-static {p0, v0}, Lcom/google/common/collect/Iterables;->filter(Ljava/lang/Iterable;Lcom/google/common/base/Predicate;)Ljava/lang/Iterable;
move-result-object p0
return-object p0
.end method
.method public static getArrayClass(Ljava/lang/Class;)Ljava/lang/Class;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
const/4 v0, 0x0
.line 1
invoke-static {p0, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p0
return-object p0
.end method
.method public static getComponentType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 4
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
invoke-static {p0}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 2
new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
.line 3
new-instance v1, Lcom/google/common/reflect/Types$2;
invoke-direct {v1, v0}, Lcom/google/common/reflect/Types$2;-><init>(Ljava/util/concurrent/atomic/AtomicReference;)V
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/reflect/Type;
const/4 v3, 0x0
aput-object p0, v2, v3
.line 4
invoke-virtual {v1, v2}, Lcom/google/common/reflect/TypeVisitor;->visit([Ljava/lang/reflect/Type;)V
.line 5
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/reflect/Type;
return-object p0
.end method
.method public static newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 5
.line 1
instance-of v0, p0, Ljava/lang/reflect/WildcardType;
if-eqz v0, :cond_3
.line 2
check-cast p0, Ljava/lang/reflect/WildcardType;
.line 3
invoke-interface {p0}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v0
.line 4
array-length v1, v0
const/4 v2, 0x0
const/4 v3, 0x1
if-gt v1, v3, :cond_0
move v1, v3
goto :goto_0
:cond_0
move v1, v2
:goto_0
const-string v4, "Wildcard cannot have more than one lower bounds."
invoke-static {v1, v4}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/Object;)V
.line 5
array-length v1, v0
if-ne v1, v3, :cond_1
.line 6
aget-object p0, v0, v2
invoke-static {p0}, Lcom/google/common/reflect/Types;->newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p0
invoke-static {p0}, Lcom/google/common/reflect/Types;->supertypeOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/WildcardType;
move-result-object p0
return-object p0
.line 7
:cond_1
invoke-interface {p0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object p0
.line 8
array-length v0, p0
if-ne v0, v3, :cond_2
goto :goto_1
:cond_2
move v3, v2
:goto_1
const-string v0, "Wildcard should have only one upper bound."
invoke-static {v3, v0}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/Object;)V
.line 9
aget-object p0, p0, v2
invoke-static {p0}, Lcom/google/common/reflect/Types;->newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p0
invoke-static {p0}, Lcom/google/common/reflect/Types;->subtypeOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/WildcardType;
move-result-object p0
return-object p0
.line 10
:cond_3
sget-object v0, Lcom/google/common/reflect/Types$JavaVersion;->CURRENT:Lcom/google/common/reflect/Types$JavaVersion;
invoke-virtual {v0, p0}, Lcom/google/common/reflect/Types$JavaVersion;->newArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p0
return-object p0
.end method
.method public static varargs newArtificialTypeVariable(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/TypeVariable;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<D::",
"Ljava/lang/reflect/GenericDeclaration;",
">(TD;",
"Ljava/lang/String;",
"[",
"Ljava/lang/reflect/Type;",
")",
"Ljava/lang/reflect/TypeVariable<",
"TD;>;"
}
.end annotation
.line 1
array-length v0, p2
if-nez v0, :cond_0
const/4 p2, 0x1
new-array p2, p2, [Ljava/lang/reflect/Type;
const/4 v0, 0x0
const-class v1, Ljava/lang/Object;
aput-object v1, p2, v0
.line 2
:cond_0
invoke-static {p0, p1, p2}, Lcom/google/common/reflect/Types;->newTypeVariableImpl(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/TypeVariable;
move-result-object p0
return-object p0
.end method
.method public static varargs newParameterizedType(Ljava/lang/Class;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;[",
"Ljava/lang/reflect/Type;",
")",
"Ljava/lang/reflect/ParameterizedType;"
}
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;
sget-object v1, Lcom/google/common/reflect/Types$ClassOwnership;->JVM_BEHAVIOR:Lcom/google/common/reflect/Types$ClassOwnership;
.line 2
invoke-virtual {v1, p0}, Lcom/google/common/reflect/Types$ClassOwnership;->getOwnerType(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object v1
invoke-direct {v0, v1, p0, p1}, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;-><init>(Ljava/lang/reflect/Type;Ljava/lang/Class;[Ljava/lang/reflect/Type;)V
return-object v0
.end method
.method public static varargs newParameterizedTypeWithOwner(Ljava/lang/reflect/Type;Ljava/lang/Class;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType;
.locals 2
.param p0 # Ljava/lang/reflect/Type;
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Class<",
"*>;[",
"Ljava/lang/reflect/Type;",
")",
"Ljava/lang/reflect/ParameterizedType;"
}
.end annotation
if-nez p0, :cond_0
.line 1
invoke-static {p1, p2}, Lcom/google/common/reflect/Types;->newParameterizedType(Ljava/lang/Class;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType;
move-result-object p0
return-object p0
.line 2
:cond_0
invoke-static {p2}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 3
invoke-virtual {p1}, Ljava/lang/Class;->getEnclosingClass()Ljava/lang/Class;
move-result-object v0
if-eqz v0, :cond_1
const/4 v0, 0x1
goto :goto_0
:cond_1
const/4 v0, 0x0
:goto_0
const-string v1, "Owner type for unenclosed %s"
invoke-static {v0, v1, p1}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
.line 4
new-instance v0, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;
invoke-direct {v0, p0, p1, p2}, Lcom/google/common/reflect/Types$ParameterizedTypeImpl;-><init>(Ljava/lang/reflect/Type;Ljava/lang/Class;[Ljava/lang/reflect/Type;)V
return-object v0
.end method
.method private static newTypeVariableImpl(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/TypeVariable;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<D::",
"Ljava/lang/reflect/GenericDeclaration;",
">(TD;",
"Ljava/lang/String;",
"[",
"Ljava/lang/reflect/Type;",
")",
"Ljava/lang/reflect/TypeVariable<",
"TD;>;"
}
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/Types$TypeVariableImpl;
invoke-direct {v0, p0, p1, p2}, Lcom/google/common/reflect/Types$TypeVariableImpl;-><init>(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
.line 2
const-class p0, Ljava/lang/reflect/TypeVariable;
new-instance p1, Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;
invoke-direct {p1, v0}, Lcom/google/common/reflect/Types$TypeVariableInvocationHandler;-><init>(Lcom/google/common/reflect/Types$TypeVariableImpl;)V
.line 3
invoke-static {p0, p1}, Lcom/google/common/reflect/Reflection;->newProxy(Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/reflect/TypeVariable;
return-object p0
.end method
.method public static subtypeOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/WildcardType;
.locals 4
.annotation build Lcom/google/common/annotations/VisibleForTesting;
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/Types$WildcardTypeImpl;
const/4 v1, 0x0
new-array v2, v1, [Ljava/lang/reflect/Type;
const/4 v3, 0x1
new-array v3, v3, [Ljava/lang/reflect/Type;
aput-object p0, v3, v1
invoke-direct {v0, v2, v3}, Lcom/google/common/reflect/Types$WildcardTypeImpl;-><init>([Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)V
return-object v0
.end method
.method private static subtypeOfComponentType([Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.locals 3
.annotation runtime Ljavax/annotation/CheckForNull;
.end annotation
.line 1
array-length v0, p0
const/4 v1, 0x0
:goto_0
if-ge v1, v0, :cond_2
aget-object v2, p0, v1
.line 2
invoke-static {v2}, Lcom/google/common/reflect/Types;->getComponentType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v2
if-eqz v2, :cond_1
.line 3
instance-of p0, v2, Ljava/lang/Class;
if-eqz p0, :cond_0
.line 4
move-object p0, v2
check-cast p0, Ljava/lang/Class;
.line 5
invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
if-eqz v0, :cond_0
return-object p0
.line 6
:cond_0
invoke-static {v2}, Lcom/google/common/reflect/Types;->subtypeOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/WildcardType;
move-result-object p0
return-object p0
:cond_1
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_2
const/4 p0, 0x0
return-object p0
.end method
.method public static supertypeOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/WildcardType;
.locals 4
.annotation build Lcom/google/common/annotations/VisibleForTesting;
.end annotation
.line 1
new-instance v0, Lcom/google/common/reflect/Types$WildcardTypeImpl;
const/4 v1, 0x1
new-array v2, v1, [Ljava/lang/reflect/Type;
const/4 v3, 0x0
aput-object p0, v2, v3
new-array p0, v1, [Ljava/lang/reflect/Type;
const-class v1, Ljava/lang/Object;
aput-object v1, p0, v3
invoke-direct {v0, v2, p0}, Lcom/google/common/reflect/Types$WildcardTypeImpl;-><init>([Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)V
return-object v0
.end method
.method private static toArray(Ljava/util/Collection;)[Ljava/lang/reflect/Type;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Collection<",
"Ljava/lang/reflect/Type;",
">;)[",
"Ljava/lang/reflect/Type;"
}
.end annotation
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/reflect/Type;
.line 1
invoke-interface {p0, v0}, Ljava/util/Collection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object p0
check-cast p0, [Ljava/lang/reflect/Type;
return-object p0
.end method
.method public static toString(Ljava/lang/reflect/Type;)Ljava/lang/String;
.locals 1
.line 1
instance-of v0, p0, Ljava/lang/Class;
if-eqz v0, :cond_0
check-cast p0, Ljava/lang/Class;
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p0
goto :goto_0
:cond_0
invoke-virtual {p0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p0
:goto_0
return-object p0
.end method
@@ -0,0 +1,11 @@
.class interface abstract synthetic Lcom/google/common/reflect/package-info;
.super Ljava/lang/Object;
.source "package-info.java"
# annotations
.annotation runtime Lcom/google/errorprone/annotations/CheckReturnValue;
.end annotation
.annotation runtime Ljavax/annotation/ParametersAreNonnullByDefault;
.end annotation