.class public Lcom/bumptech/glide/load/data/DataRewinderRegistry; .super Ljava/lang/Object; .source "DataRewinderRegistry.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/bumptech/glide/load/data/DataRewinderRegistry$DefaultRewinder; } .end annotation # static fields .field private static final DEFAULT_FACTORY:Lcom/bumptech/glide/load/data/DataRewinder$Factory; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/bumptech/glide/load/data/DataRewinder$Factory<", "*>;" } .end annotation .end field # instance fields .field private final rewinders:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "Ljava/lang/Class<", "*>;", "Lcom/bumptech/glide/load/data/DataRewinder$Factory<", "*>;>;" } .end annotation .end field # direct methods .method static constructor ()V .registers 1 .line 14 new-instance v0, Lcom/bumptech/glide/load/data/DataRewinderRegistry$1; invoke-direct {v0}, Lcom/bumptech/glide/load/data/DataRewinderRegistry$1;->()V sput-object v0, Lcom/bumptech/glide/load/data/DataRewinderRegistry;->DEFAULT_FACTORY:Lcom/bumptech/glide/load/data/DataRewinder$Factory; return-void .end method .method public constructor ()V .registers 2 .line 12 invoke-direct {p0}, Ljava/lang/Object;->()V .line 13 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V iput-object v0, p0, Lcom/bumptech/glide/load/data/DataRewinderRegistry;->rewinders:Ljava/util/Map; return-void .end method # virtual methods .method public declared-synchronized build(Ljava/lang/Object;)Lcom/bumptech/glide/load/data/DataRewinder; .registers 7 .annotation system Ldalvik/annotation/Signature; value = { "(TT;)", "Lcom/bumptech/glide/load/data/DataRewinder<", "TT;>;" } .end annotation monitor-enter p0 .line 36 :try_start_1 invoke-static {p1}, Lcom/bumptech/glide/util/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; .line 37 iget-object v0, p0, Lcom/bumptech/glide/load/data/DataRewinderRegistry;->rewinders:Ljava/util/Map; invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v1 invoke-interface {v0, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/bumptech/glide/load/data/DataRewinder$Factory; if-nez v0, :cond_37 .line 39 iget-object v1, p0, Lcom/bumptech/glide/load/data/DataRewinderRegistry;->rewinders:Ljava/util/Map; invoke-interface {v1}, Ljava/util/Map;->values()Ljava/util/Collection; move-result-object v1 invoke-interface {v1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; move-result-object v1 :cond_1c invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-eqz v2, :cond_37 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/bumptech/glide/load/data/DataRewinder$Factory; .line 40 invoke-interface {v2}, Lcom/bumptech/glide/load/data/DataRewinder$Factory;->getDataClass()Ljava/lang/Class; move-result-object v3 invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v4 invoke-virtual {v3, v4}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result v3 if-eqz v3, :cond_1c move-object v0, v2 :cond_37 if-nez v0, :cond_3b .line 48 sget-object v0, Lcom/bumptech/glide/load/data/DataRewinderRegistry;->DEFAULT_FACTORY:Lcom/bumptech/glide/load/data/DataRewinder$Factory; .line 50 :cond_3b invoke-interface {v0, p1}, Lcom/bumptech/glide/load/data/DataRewinder$Factory;->build(Ljava/lang/Object;)Lcom/bumptech/glide/load/data/DataRewinder; move-result-object p1 :try_end_3f .catchall {:try_start_1 .. :try_end_3f} :catchall_41 monitor-exit p0 return-object p1 :catchall_41 move-exception p1 :try_start_42 monitor-exit p0 :try_end_43 .catchall {:try_start_42 .. :try_end_43} :catchall_41 throw p1 .end method .method public declared-synchronized register(Lcom/bumptech/glide/load/data/DataRewinder$Factory;)V .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/bumptech/glide/load/data/DataRewinder$Factory<", "*>;)V" } .end annotation monitor-enter p0 .line 30 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/data/DataRewinderRegistry;->rewinders:Ljava/util/Map; invoke-interface {p1}, Lcom/bumptech/glide/load/data/DataRewinder$Factory;->getDataClass()Ljava/lang/Class; move-result-object v1 invoke-interface {v0, v1, p1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :try_end_a .catchall {:try_start_1 .. :try_end_a} :catchall_c .line 31 monitor-exit p0 return-void :catchall_c move-exception p1 :try_start_d monitor-exit p0 :try_end_e .catchall {:try_start_d .. :try_end_e} :catchall_c throw p1 .end method