.class Lcom/mbridge/msdk/dycreator/bus/SubscriberMethodFinder; .super Ljava/lang/Object; .source "SourceFile" # static fields .field private static final a:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "Ljava/lang/String;", "Ljava/util/List<", "Lcom/mbridge/msdk/dycreator/bus/SubscriberMethod;", ">;>;" } .end annotation .end field .field private static final b:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "Ljava/lang/Class<", "*>;", "Ljava/lang/Class<", "*>;>;" } .end annotation .end field # direct methods .method static constructor ()V .locals 1 .line 12 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V sput-object v0, Lcom/mbridge/msdk/dycreator/bus/SubscriberMethodFinder;->a:Ljava/util/Map; .line 13 new-instance v0, Ljava/util/concurrent/ConcurrentHashMap; invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;->()V sput-object v0, Lcom/mbridge/msdk/dycreator/bus/SubscriberMethodFinder;->b:Ljava/util/Map; return-void .end method .method public constructor ()V .locals 0 .line 15 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static a()V .locals 1 sget-object v0, Lcom/mbridge/msdk/dycreator/bus/SubscriberMethodFinder;->a:Ljava/util/Map; .line 92 invoke-interface {v0}, Ljava/util/Map;->clear()V return-void .end method .method public static a(Ljava/lang/Class;)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;)V" } .end annotation sget-object v0, Lcom/mbridge/msdk/dycreator/bus/SubscriberMethodFinder;->a:Ljava/util/Map; .line 96 invoke-interface {v0}, Ljava/util/Map;->isEmpty()Z move-result v0 if-eqz v0, :cond_0 sget-object v0, Lcom/mbridge/msdk/dycreator/bus/SubscriberMethodFinder;->b:Ljava/util/Map; .line 99 invoke-interface {v0, p0, p0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; return-void .line 97 :cond_0 new-instance p0, Ljava/lang/IllegalStateException; const-string v0, "This method must be called before registering anything" invoke-direct {p0, v0}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p0 .end method .method public static clearSkipMethodNameVerifications()V .locals 1 sget-object v0, Lcom/mbridge/msdk/dycreator/bus/SubscriberMethodFinder;->b:Ljava/util/Map; .line 104 invoke-interface {v0}, Ljava/util/Map;->clear()V return-void .end method # virtual methods .method public final a(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/List; .locals 15 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Ljava/lang/String;", ")", "Ljava/util/List<", "Lcom/mbridge/msdk/dycreator/bus/SubscriberMethod;", ">;" } .end annotation move-object/from16 v0, p2 .line 19 new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V invoke-virtual/range {p1 .. p1}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const/16 v2, 0x2e invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 sget-object v2, Lcom/mbridge/msdk/dycreator/bus/SubscriberMethodFinder;->a:Ljava/util/Map; .line 21 monitor-enter v2 .line 22 :try_start_0 invoke-interface {v2, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/util/List; .line 23 monitor-exit v2 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_1 if-eqz v3, :cond_0 return-object v3 .line 28 :cond_0 new-instance v2, Ljava/util/ArrayList; invoke-direct {v2}, Ljava/util/ArrayList;->()V .line 30 new-instance v3, Ljava/util/HashSet; invoke-direct {v3}, Ljava/util/HashSet;->()V .line 32 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V move-object/from16 v5, p1 :goto_0 if-eqz v5, :cond_9 .line 33 invoke-virtual {v5}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v6 const-string v7, "java." .line 34 invoke-virtual {v6, v7}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v7 if-nez v7, :cond_9 const-string v7, "javax." invoke-virtual {v6, v7}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v7 if-nez v7, :cond_9 const-string v7, "android." invoke-virtual {v6, v7}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v6 if-eqz v6, :cond_1 goto/16 :goto_4 .line 38 :cond_1 invoke-virtual {v5}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method; move-result-object v6 .line 40 array-length v7, v6 const/4 v8, 0x0 move v9, v8 :goto_1 if-ge v9, v7, :cond_8 .line 43 aget-object v10, v6, v9 .line 44 invoke-virtual {v10}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String; move-result-object v11 .line 45 invoke-virtual {v11, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v12 if-eqz v12, :cond_7 .line 46 invoke-virtual {v10}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class; move-result-object v12 .line 47 array-length v13, v12 const/4 v14, 0x1 if-ne v13, v14, :cond_7 .line 48 invoke-virtual/range {p2 .. p2}, Ljava/lang/String;->length()I move-result v13 invoke-virtual {v11, v13}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object v13 .line 50 invoke-virtual {v13}, Ljava/lang/String;->length()I move-result v14 if-nez v14, :cond_2 .line 51 sget-object v13, Lcom/mbridge/msdk/dycreator/bus/ThreadMode;->PostThread:Lcom/mbridge/msdk/dycreator/bus/ThreadMode; goto :goto_2 :cond_2 const-string v14, "MainThread" .line 52 invoke-virtual {v13, v14}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v14 if-eqz v14, :cond_3 .line 53 sget-object v13, Lcom/mbridge/msdk/dycreator/bus/ThreadMode;->MainThread:Lcom/mbridge/msdk/dycreator/bus/ThreadMode; goto :goto_2 :cond_3 const-string v14, "BackgroundThread" .line 54 invoke-virtual {v13, v14}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v14 if-eqz v14, :cond_4 .line 55 sget-object v13, Lcom/mbridge/msdk/dycreator/bus/ThreadMode;->BackgroundThread:Lcom/mbridge/msdk/dycreator/bus/ThreadMode; goto :goto_2 :cond_4 const-string v14, "Async" .line 57 invoke-virtual {v13, v14}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v13 if-nez v13, :cond_6 sget-object v11, Lcom/mbridge/msdk/dycreator/bus/SubscriberMethodFinder;->b:Ljava/util/Map; .line 58 invoke-interface {v11, v5}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z move-result v11 if-eqz v11, :cond_5 goto :goto_3 .line 59 :cond_5 new-instance v0, Lcom/mbridge/msdk/dycreator/bus/EventBusException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "Illegal onEvent method, check for typos: " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Lcom/mbridge/msdk/dycreator/bus/EventBusException;->(Ljava/lang/String;)V throw v0 .line 64 :cond_6 sget-object v13, Lcom/mbridge/msdk/dycreator/bus/ThreadMode;->Async:Lcom/mbridge/msdk/dycreator/bus/ThreadMode; .line 67 :goto_2 aget-object v12, v12, v8 .line 68 invoke-virtual {v4, v8}, Ljava/lang/StringBuilder;->setLength(I)V .line 69 invoke-virtual {v4, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const/16 v11, 0x3e .line 70 invoke-virtual {v4, v11}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; invoke-virtual {v12}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v11 invoke-virtual {v4, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; .line 71 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v11 .line 72 invoke-virtual {v3, v11}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z move-result v11 if-eqz v11, :cond_7 .line 73 new-instance v11, Lcom/mbridge/msdk/dycreator/bus/SubscriberMethod; invoke-direct {v11, v10, v13, v12}, Lcom/mbridge/msdk/dycreator/bus/SubscriberMethod;->(Ljava/lang/reflect/Method;Lcom/mbridge/msdk/dycreator/bus/ThreadMode;Ljava/lang/Class;)V invoke-interface {v2, v11}, Ljava/util/List;->add(Ljava/lang/Object;)Z :cond_7 :goto_3 add-int/lit8 v9, v9, 0x1 goto/16 :goto_1 .line 32 :cond_8 invoke-virtual {v5}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class; move-result-object v5 goto/16 :goto_0 .line 80 :cond_9 :goto_4 invoke-interface {v2}, Ljava/util/List;->isEmpty()Z move-result v3 if-nez v3, :cond_a sget-object v3, Lcom/mbridge/msdk/dycreator/bus/SubscriberMethodFinder;->a:Ljava/util/Map; .line 83 monitor-enter v3 .line 84 :try_start_1 invoke-interface {v3, v1, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .line 85 monitor-exit v3 return-object v2 :catchall_0 move-exception v0 .line 86 monitor-exit v3 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 throw v0 .line 81 :cond_a new-instance v1, Lcom/mbridge/msdk/dycreator/bus/EventBusException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const-string v3, "Subscriber " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-object/from16 v3, p1 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; const-string v3, " has no methods called " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {v1, v0}, Lcom/mbridge/msdk/dycreator/bus/EventBusException;->(Ljava/lang/String;)V throw v1 :catchall_1 move-exception v0 .line 23 :try_start_2 monitor-exit v2 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_1 throw v0 .end method