AjTypeSystem.smali
.class public Lorg/aspectj/lang/reflect/AjTypeSystem;
.super Ljava/lang/Object;
.source "AjTypeSystem.java"
# static fields
.field private static ajTypes:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/Class;",
"Ljava/lang/ref/WeakReference<",
"Lorg/aspectj/lang/reflect/AjType;",
">;>;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 28
new-instance v0, Ljava/util/WeakHashMap;
invoke-direct {v0}, Ljava/util/WeakHashMap;-><init>()V
invoke-static {v0}, Ljava/util/Collections;->synchronizedMap(Ljava/util/Map;)Ljava/util/Map;
move-result-object v0
sput-object v0, Lorg/aspectj/lang/reflect/AjTypeSystem;->ajTypes:Ljava/util/Map;
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 26
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getAjType(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TT;>;)",
"Lorg/aspectj/lang/reflect/AjType<",
"TT;>;"
}
.end annotation
.line 39
.local p0, "fromClass":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
sget-object v0, Lorg/aspectj/lang/reflect/AjTypeSystem;->ajTypes:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/ref/WeakReference;
.line 40
.local v0, "weakRefToAjType":Ljava/lang/ref/WeakReference;, "Ljava/lang/ref/WeakReference<Lorg/aspectj/lang/reflect/AjType;>;"
if-eqz v0, :cond_24
.line 41
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lorg/aspectj/lang/reflect/AjType;
.line 42
.local v1, "theAjType":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<TT;>;"
if-eqz v1, :cond_13
.line 43
return-object v1
.line 45
:cond_13
new-instance v2, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;
invoke-direct {v2, p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;-><init>(Ljava/lang/Class;)V
move-object v1, v2
.line 46
sget-object v2, Lorg/aspectj/lang/reflect/AjTypeSystem;->ajTypes:Ljava/util/Map;
new-instance v3, Ljava/lang/ref/WeakReference;
invoke-direct {v3, v1}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
invoke-interface {v2, p0, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 47
return-object v1
.line 51
.end local v1 # "theAjType":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<TT;>;"
:cond_24
new-instance v1, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;
invoke-direct {v1, p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;-><init>(Ljava/lang/Class;)V
.line 52
.restart local v1 # "theAjType":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<TT;>;"
sget-object v2, Lorg/aspectj/lang/reflect/AjTypeSystem;->ajTypes:Ljava/util/Map;
new-instance v3, Ljava/lang/ref/WeakReference;
invoke-direct {v3, v1}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
invoke-interface {v2, p0, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 53
return-object v1
.end method