.class abstract Lorg/greenrobot/greendao/query/AbstractQueryData; .super Ljava/lang/Object; .source "AbstractQueryData.java" # annotations .annotation system Ldalvik/annotation/Signature; value = { ";>", "Ljava/lang/Object;" } .end annotation # instance fields .field final dao:Lorg/greenrobot/greendao/AbstractDao; .annotation system Ldalvik/annotation/Signature; value = { "Lorg/greenrobot/greendao/AbstractDao<", "TT;*>;" } .end annotation .end field .field final initialValues:[Ljava/lang/String; .field final queriesForThreads:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "Ljava/lang/Long;", "Ljava/lang/ref/WeakReference<", "TQ;>;>;" } .end annotation .end field .field final sql:Ljava/lang/String; # direct methods .method constructor (Lorg/greenrobot/greendao/AbstractDao;Ljava/lang/String;[Ljava/lang/String;)V .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lorg/greenrobot/greendao/AbstractDao<", "TT;*>;", "Ljava/lang/String;", "[", "Ljava/lang/String;", ")V" } .end annotation .line 33 invoke-direct {p0}, Ljava/lang/Object;->()V .line 34 iput-object p1, p0, Lorg/greenrobot/greendao/query/AbstractQueryData;->dao:Lorg/greenrobot/greendao/AbstractDao; .line 35 iput-object p2, p0, Lorg/greenrobot/greendao/query/AbstractQueryData;->sql:Ljava/lang/String; .line 36 iput-object p3, p0, Lorg/greenrobot/greendao/query/AbstractQueryData;->initialValues:[Ljava/lang/String; .line 37 new-instance p1, Ljava/util/HashMap; invoke-direct {p1}, Ljava/util/HashMap;->()V iput-object p1, p0, Lorg/greenrobot/greendao/query/AbstractQueryData;->queriesForThreads:Ljava/util/Map; return-void .end method # virtual methods .method protected abstract createQuery()Lorg/greenrobot/greendao/query/AbstractQuery; .annotation system Ldalvik/annotation/Signature; value = { "()TQ;" } .end annotation .end method .method forCurrentThread()Lorg/greenrobot/greendao/query/AbstractQuery; .registers 7 .annotation system Ldalvik/annotation/Signature; value = { "()TQ;" } .end annotation .line 60 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object v0 invoke-virtual {v0}, Ljava/lang/Thread;->getId()J move-result-wide v0 .line 61 iget-object v2, p0, Lorg/greenrobot/greendao/query/AbstractQueryData;->queriesForThreads:Ljava/util/Map; monitor-enter v2 .line 62 :try_start_b iget-object v3, p0, Lorg/greenrobot/greendao/query/AbstractQueryData;->queriesForThreads:Ljava/util/Map; invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v4 invoke-interface {v3, v4}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/lang/ref/WeakReference; if-eqz v3, :cond_20 .line 63 invoke-virtual {v3}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; move-result-object v3 check-cast v3, Lorg/greenrobot/greendao/query/AbstractQuery; goto :goto_21 :cond_20 const/4 v3, 0x0 :goto_21 if-nez v3, :cond_39 .line 65 invoke-virtual {p0}, Lorg/greenrobot/greendao/query/AbstractQueryData;->gc()V .line 66 invoke-virtual {p0}, Lorg/greenrobot/greendao/query/AbstractQueryData;->createQuery()Lorg/greenrobot/greendao/query/AbstractQuery; move-result-object v3 .line 67 iget-object v4, p0, Lorg/greenrobot/greendao/query/AbstractQueryData;->queriesForThreads:Ljava/util/Map; invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v0 new-instance v1, Ljava/lang/ref/WeakReference; invoke-direct {v1, v3}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V invoke-interface {v4, v0, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_44 .line 69 :cond_39 iget-object v0, p0, Lorg/greenrobot/greendao/query/AbstractQueryData;->initialValues:[Ljava/lang/String; iget-object v1, v3, Lorg/greenrobot/greendao/query/AbstractQuery;->parameters:[Ljava/lang/String; iget-object v4, p0, Lorg/greenrobot/greendao/query/AbstractQueryData;->initialValues:[Ljava/lang/String; array-length v4, v4 const/4 v5, 0x0 invoke-static {v0, v5, v1, v5, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 71 :goto_44 monitor-exit v2 return-object v3 :catchall_46 move-exception v0 .line 72 monitor-exit v2 :try_end_48 .catchall {:try_start_b .. :try_end_48} :catchall_46 throw v0 .end method .method forCurrentThread(Lorg/greenrobot/greendao/query/AbstractQuery;)Lorg/greenrobot/greendao/query/AbstractQuery; .registers 6 .annotation system Ldalvik/annotation/Signature; value = { "(TQ;)TQ;" } .end annotation .line 45 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object v0 iget-object v1, p1, Lorg/greenrobot/greendao/query/AbstractQuery;->ownerThread:Ljava/lang/Thread; if-ne v0, v1, :cond_14 .line 46 iget-object v0, p0, Lorg/greenrobot/greendao/query/AbstractQueryData;->initialValues:[Ljava/lang/String; iget-object v1, p1, Lorg/greenrobot/greendao/query/AbstractQuery;->parameters:[Ljava/lang/String; iget-object v2, p0, Lorg/greenrobot/greendao/query/AbstractQueryData;->initialValues:[Ljava/lang/String; array-length v2, v2 const/4 v3, 0x0 invoke-static {v0, v3, v1, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V return-object p1 .line 49 :cond_14 invoke-virtual {p0}, Lorg/greenrobot/greendao/query/AbstractQueryData;->forCurrentThread()Lorg/greenrobot/greendao/query/AbstractQuery; move-result-object p1 return-object p1 .end method .method gc()V .registers 4 .line 78 iget-object v0, p0, Lorg/greenrobot/greendao/query/AbstractQueryData;->queriesForThreads:Ljava/util/Map; monitor-enter v0 .line 79 :try_start_3 iget-object v1, p0, Lorg/greenrobot/greendao/query/AbstractQueryData;->queriesForThreads:Ljava/util/Map; invoke-interface {v1}, Ljava/util/Map;->entrySet()Ljava/util/Set; move-result-object v1 invoke-interface {v1}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v1 .line 80 :cond_d :goto_d invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-eqz v2, :cond_29 .line 81 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/util/Map$Entry; .line 82 invoke-interface {v2}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/lang/ref/WeakReference; invoke-virtual {v2}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; move-result-object v2 if-nez v2, :cond_d .line 83 invoke-interface {v1}, Ljava/util/Iterator;->remove()V goto :goto_d .line 86 :cond_29 monitor-exit v0 return-void :catchall_2b move-exception v1 monitor-exit v0 :try_end_2d .catchall {:try_start_3 .. :try_end_2d} :catchall_2b throw v1 .end method