ModelLoaderRegistry.smali
.class public Lcom/bumptech/glide/load/model/ModelLoaderRegistry;
.super Ljava/lang/Object;
.source "ModelLoaderRegistry.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
}
.end annotation
# instance fields
.field private final cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
.field private final multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;
# direct methods
.method public constructor <init>(Landroidx/core/util/Pools$Pool;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/core/util/Pools$Pool<",
"Ljava/util/List<",
"Ljava/lang/Exception;",
">;>;)V"
}
.end annotation
.line 21
new-instance v0, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;
invoke-direct {v0, p1}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;-><init>(Landroidx/core/util/Pools$Pool;)V
invoke-direct {p0, v0}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;-><init>(Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;)V
return-void
.end method
.method constructor <init>(Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;)V
.registers 3
.line 25
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 18
new-instance v0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
invoke-direct {v0}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;-><init>()V
iput-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
.line 26
iput-object p1, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;
return-void
.end method
.method private static getClass(Ljava/lang/Object;)Ljava/lang/Class;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<A:",
"Ljava/lang/Object;",
">(TA;)",
"Ljava/lang/Class<",
"TA;>;"
}
.end annotation
.line 91
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p0
return-object p0
.end method
.method private getModelLoadersForClass(Ljava/lang/Class;)Ljava/util/List;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<A:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TA;>;)",
"Ljava/util/List<",
"Lcom/bumptech/glide/load/model/ModelLoader<",
"TA;*>;>;"
}
.end annotation
.line 81
iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
invoke-virtual {v0, p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;->get(Ljava/lang/Class;)Ljava/util/List;
move-result-object v0
if-nez v0, :cond_17
.line 83
iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;
invoke-virtual {v0, p1}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->build(Ljava/lang/Class;)Ljava/util/List;
move-result-object v0
invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object v0
.line 84
iget-object v1, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
invoke-virtual {v1, p1, v0}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;->put(Ljava/lang/Class;Ljava/util/List;)V
:cond_17
return-object v0
.end method
.method private tearDown(Ljava/util/List;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<Model:",
"Ljava/lang/Object;",
"Data:",
"Ljava/lang/Object;",
">(",
"Ljava/util/List<",
"Lcom/bumptech/glide/load/model/ModelLoaderFactory<",
"TModel;TData;>;>;)V"
}
.end annotation
.line 53
invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p1
:goto_4
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_14
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/bumptech/glide/load/model/ModelLoaderFactory;
.line 54
invoke-interface {v0}, Lcom/bumptech/glide/load/model/ModelLoaderFactory;->teardown()V
goto :goto_4
:cond_14
return-void
.end method
# virtual methods
.method public declared-synchronized append(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/load/model/ModelLoaderFactory;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<Model:",
"Ljava/lang/Object;",
"Data:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TModel;>;",
"Ljava/lang/Class<",
"TData;>;",
"Lcom/bumptech/glide/load/model/ModelLoaderFactory<",
"TModel;TData;>;)V"
}
.end annotation
monitor-enter p0
.line 31
:try_start_1
iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;
invoke-virtual {v0, p1, p2, p3}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->append(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/load/model/ModelLoaderFactory;)V
.line 32
iget-object p1, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
invoke-virtual {p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;->clear()V
:try_end_b
.catchall {:try_start_1 .. :try_end_b} :catchall_d
.line 33
monitor-exit p0
return-void
:catchall_d
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized build(Ljava/lang/Class;Ljava/lang/Class;)Lcom/bumptech/glide/load/model/ModelLoader;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<Model:",
"Ljava/lang/Object;",
"Data:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TModel;>;",
"Ljava/lang/Class<",
"TData;>;)",
"Lcom/bumptech/glide/load/model/ModelLoader<",
"TModel;TData;>;"
}
.end annotation
monitor-enter p0
.line 73
:try_start_1
iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;
invoke-virtual {v0, p1, p2}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->build(Ljava/lang/Class;Ljava/lang/Class;)Lcom/bumptech/glide/load/model/ModelLoader;
move-result-object p1
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return-object p1
:catchall_9
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized getDataClasses(Ljava/lang/Class;)Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/util/List<",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
monitor-enter p0
.line 77
:try_start_1
iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;
invoke-virtual {v0, p1}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->getDataClasses(Ljava/lang/Class;)Ljava/util/List;
move-result-object p1
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return-object p1
:catchall_9
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized getModelLoaders(Ljava/lang/Object;)Ljava/util/List;
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"<A:",
"Ljava/lang/Object;",
">(TA;)",
"Ljava/util/List<",
"Lcom/bumptech/glide/load/model/ModelLoader<",
"TA;*>;>;"
}
.end annotation
monitor-enter p0
.line 59
:try_start_1
invoke-static {p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->getClass(Ljava/lang/Object;)Ljava/lang/Class;
move-result-object v0
invoke-direct {p0, v0}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->getModelLoadersForClass(Ljava/lang/Class;)Ljava/util/List;
move-result-object v0
.line 60
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
.line 61
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2, v1}, Ljava/util/ArrayList;-><init>(I)V
const/4 v3, 0x0
:goto_13
if-ge v3, v1, :cond_27
.line 63
invoke-interface {v0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/bumptech/glide/load/model/ModelLoader;
.line 64
invoke-interface {v4, p1}, Lcom/bumptech/glide/load/model/ModelLoader;->handles(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_24
.line 65
invoke-interface {v2, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_24
.catchall {:try_start_1 .. :try_end_24} :catchall_29
:cond_24
add-int/lit8 v3, v3, 0x1
goto :goto_13
.line 68
:cond_27
monitor-exit p0
return-object v2
:catchall_29
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized prepend(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/load/model/ModelLoaderFactory;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<Model:",
"Ljava/lang/Object;",
"Data:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TModel;>;",
"Ljava/lang/Class<",
"TData;>;",
"Lcom/bumptech/glide/load/model/ModelLoaderFactory<",
"TModel;TData;>;)V"
}
.end annotation
monitor-enter p0
.line 37
:try_start_1
iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;
invoke-virtual {v0, p1, p2, p3}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->prepend(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/load/model/ModelLoaderFactory;)V
.line 38
iget-object p1, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
invoke-virtual {p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;->clear()V
:try_end_b
.catchall {:try_start_1 .. :try_end_b} :catchall_d
.line 39
monitor-exit p0
return-void
:catchall_d
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized remove(Ljava/lang/Class;Ljava/lang/Class;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<Model:",
"Ljava/lang/Object;",
"Data:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TModel;>;",
"Ljava/lang/Class<",
"TData;>;)V"
}
.end annotation
monitor-enter p0
.line 42
:try_start_1
iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;
invoke-virtual {v0, p1, p2}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->remove(Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/List;
move-result-object p1
invoke-direct {p0, p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->tearDown(Ljava/util/List;)V
.line 43
iget-object p1, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
invoke-virtual {p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;->clear()V
:try_end_f
.catchall {:try_start_1 .. :try_end_f} :catchall_11
.line 44
monitor-exit p0
return-void
:catchall_11
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized replace(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/load/model/ModelLoaderFactory;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<Model:",
"Ljava/lang/Object;",
"Data:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TModel;>;",
"Ljava/lang/Class<",
"TData;>;",
"Lcom/bumptech/glide/load/model/ModelLoaderFactory<",
"TModel;TData;>;)V"
}
.end annotation
monitor-enter p0
.line 48
:try_start_1
iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;
invoke-virtual {v0, p1, p2, p3}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->replace(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/load/model/ModelLoaderFactory;)Ljava/util/List;
move-result-object p1
invoke-direct {p0, p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->tearDown(Ljava/util/List;)V
.line 49
iget-object p1, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
invoke-virtual {p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;->clear()V
:try_end_f
.catchall {:try_start_1 .. :try_end_f} :catchall_11
.line 50
monitor-exit p0
return-void
:catchall_11
move-exception p1
monitor-exit p0
throw p1
.end method