.class public Lcom/google/common/collect/ImmutableMultimap$Builder; .super Ljava/lang/Object; .source "ImmutableMultimap.java" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/google/common/collect/ImmutableMultimap; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x9 name = "Builder" .end annotation .annotation system Ldalvik/annotation/Signature; value = { "", "Ljava/lang/Object;" } .end annotation # instance fields .field builderMultimap:Lcom/google/common/collect/Multimap; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/common/collect/Multimap", ";" } .end annotation .end field .field keyComparator:Ljava/util/Comparator; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Comparator", "<-TK;>;" } .end annotation .end field .field valueComparator:Ljava/util/Comparator; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Comparator", "<-TV;>;" } .end annotation .end field # direct methods .method public constructor ()V .locals 1 .prologue .line 163 invoke-direct {p0}, Ljava/lang/Object;->()V .line 155 new-instance v0, Lcom/google/common/collect/ImmutableMultimap$BuilderMultimap; invoke-direct {v0}, Lcom/google/common/collect/ImmutableMultimap$BuilderMultimap;->()V iput-object v0, p0, Lcom/google/common/collect/ImmutableMultimap$Builder;->builderMultimap:Lcom/google/common/collect/Multimap; .line 163 return-void .end method # virtual methods .method public build()Lcom/google/common/collect/ImmutableMultimap; .locals 4 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lcom/google/common/collect/ImmutableMultimap", ";" } .end annotation .prologue .line 254 iget-object v0, p0, Lcom/google/common/collect/ImmutableMultimap$Builder;->valueComparator:Ljava/util/Comparator; if-eqz v0, :cond_0 .line 255 iget-object v0, p0, Lcom/google/common/collect/ImmutableMultimap$Builder;->builderMultimap:Lcom/google/common/collect/Multimap; invoke-interface {v0}, Lcom/google/common/collect/Multimap;->asMap()Ljava/util/Map; move-result-object v0 invoke-interface {v0}, Ljava/util/Map;->values()Ljava/util/Collection; move-result-object v0 invoke-interface {v0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; move-result-object v1 :goto_0 invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v0 if-eqz v0, :cond_0 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/Collection; .line 256 check-cast v0, Ljava/util/List; .line 257 iget-object v2, p0, Lcom/google/common/collect/ImmutableMultimap$Builder;->valueComparator:Ljava/util/Comparator; invoke-static {v0, v2}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V goto :goto_0 .line 260 :cond_0 iget-object v0, p0, Lcom/google/common/collect/ImmutableMultimap$Builder;->keyComparator:Ljava/util/Comparator; if-eqz v0, :cond_2 .line 261 new-instance v1, Lcom/google/common/collect/ImmutableMultimap$BuilderMultimap; invoke-direct {v1}, Lcom/google/common/collect/ImmutableMultimap$BuilderMultimap;->()V .line 262 iget-object v0, p0, Lcom/google/common/collect/ImmutableMultimap$Builder;->builderMultimap:Lcom/google/common/collect/Multimap; invoke-interface {v0}, Lcom/google/common/collect/Multimap;->asMap()Ljava/util/Map; move-result-object v0 invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set; move-result-object v0 invoke-static {v0}, Lcom/google/common/collect/Lists;->newArrayList(Ljava/lang/Iterable;)Ljava/util/ArrayList; move-result-object v0 .line 264 iget-object v2, p0, Lcom/google/common/collect/ImmutableMultimap$Builder;->keyComparator:Ljava/util/Comparator; invoke-static {v2}, Lcom/google/common/collect/Ordering;->from(Ljava/util/Comparator;)Lcom/google/common/collect/Ordering; move-result-object v2 invoke-virtual {v2}, Lcom/google/common/collect/Ordering;->onKeys()Lcom/google/common/collect/Ordering; move-result-object v2 invoke-static {v0, v2}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V .line 267 invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v2 :goto_1 invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z move-result v0 if-eqz v0, :cond_1 invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/Map$Entry; .line 268 invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v3 invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/Iterable; invoke-interface {v1, v3, v0}, Lcom/google/common/collect/Multimap;->putAll(Ljava/lang/Object;Ljava/lang/Iterable;)Z goto :goto_1 .line 270 :cond_1 iput-object v1, p0, Lcom/google/common/collect/ImmutableMultimap$Builder;->builderMultimap:Lcom/google/common/collect/Multimap; .line 272 :cond_2 iget-object v0, p0, Lcom/google/common/collect/ImmutableMultimap$Builder;->builderMultimap:Lcom/google/common/collect/Multimap; invoke-static {v0}, Lcom/google/common/collect/ImmutableMultimap;->copyOf(Lcom/google/common/collect/Multimap;)Lcom/google/common/collect/ImmutableMultimap; move-result-object v0 return-object v0 .end method .method public orderKeysBy(Ljava/util/Comparator;)Lcom/google/common/collect/ImmutableMultimap$Builder; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/Comparator", "<-TK;>;)", "Lcom/google/common/collect/ImmutableMultimap$Builder", ";" } .end annotation .prologue .line 236 invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/Comparator; iput-object v0, p0, Lcom/google/common/collect/ImmutableMultimap$Builder;->keyComparator:Ljava/util/Comparator; .line 237 return-object p0 .end method .method public orderValuesBy(Ljava/util/Comparator;)Lcom/google/common/collect/ImmutableMultimap$Builder; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/Comparator", "<-TV;>;)", "Lcom/google/common/collect/ImmutableMultimap$Builder", ";" } .end annotation .prologue .line 246 invoke-static {p1}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/Comparator; iput-object v0, p0, Lcom/google/common/collect/ImmutableMultimap$Builder;->valueComparator:Ljava/util/Comparator; .line 247 return-object p0 .end method .method public put(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMultimap$Builder; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(TK;TV;)", "Lcom/google/common/collect/ImmutableMultimap$Builder", ";" } .end annotation .prologue .line 169 invoke-static {p1, p2}, Lcom/google/common/collect/CollectPreconditions;->checkEntryNotNull(Ljava/lang/Object;Ljava/lang/Object;)V .line 170 iget-object v0, p0, Lcom/google/common/collect/ImmutableMultimap$Builder;->builderMultimap:Lcom/google/common/collect/Multimap; invoke-interface {v0, p1, p2}, Lcom/google/common/collect/Multimap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z .line 171 return-object p0 .end method .method public put(Ljava/util/Map$Entry;)Lcom/google/common/collect/ImmutableMultimap$Builder; .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/Map$Entry", "<+TK;+TV;>;)", "Lcom/google/common/collect/ImmutableMultimap$Builder", ";" } .end annotation .prologue .line 180 invoke-interface {p1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v0 invoke-interface {p1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v1 invoke-virtual {p0, v0, v1}, Lcom/google/common/collect/ImmutableMultimap$Builder;->put(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMultimap$Builder; move-result-object v0 return-object v0 .end method .method public putAll(Lcom/google/common/collect/Multimap;)Lcom/google/common/collect/ImmutableMultimap$Builder; .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/Multimap", "<+TK;+TV;>;)", "Lcom/google/common/collect/ImmutableMultimap$Builder", ";" } .end annotation .prologue .line 224 invoke-interface {p1}, Lcom/google/common/collect/Multimap;->asMap()Ljava/util/Map; move-result-object v0 invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set; move-result-object v0 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v1 :goto_0 invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v0 if-eqz v0, :cond_0 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/Map$Entry; .line 225 invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v2 invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/Iterable; invoke-virtual {p0, v2, v0}, Lcom/google/common/collect/ImmutableMultimap$Builder;->putAll(Ljava/lang/Object;Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableMultimap$Builder; goto :goto_0 .line 227 :cond_0 return-object p0 .end method .method public putAll(Ljava/lang/Object;Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableMultimap$Builder; .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(TK;", "Ljava/lang/Iterable", "<+TV;>;)", "Lcom/google/common/collect/ImmutableMultimap$Builder", ";" } .end annotation .prologue .line 191 if-nez p1, :cond_0 .line 192 new-instance v0, Ljava/lang/NullPointerException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "null key in entry: null=" invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-static {p2}, Lcom/google/common/collect/Iterables;->toString(Ljava/lang/Iterable;)Ljava/lang/String; move-result-object v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw v0 .line 195 :cond_0 iget-object v0, p0, Lcom/google/common/collect/ImmutableMultimap$Builder;->builderMultimap:Lcom/google/common/collect/Multimap; invoke-interface {v0, p1}, Lcom/google/common/collect/Multimap;->get(Ljava/lang/Object;)Ljava/util/Collection; move-result-object v0 .line 196 invoke-interface {p2}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; move-result-object v1 :goto_0 invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-eqz v2, :cond_1 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 .line 197 invoke-static {p1, v2}, Lcom/google/common/collect/CollectPreconditions;->checkEntryNotNull(Ljava/lang/Object;Ljava/lang/Object;)V .line 198 invoke-interface {v0, v2}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z goto :goto_0 .line 200 :cond_1 return-object p0 .end method .method public varargs putAll(Ljava/lang/Object;[Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMultimap$Builder; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(TK;[TV;)", "Lcom/google/common/collect/ImmutableMultimap$Builder", ";" } .end annotation .prologue .line 210 invoke-static {p2}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; move-result-object v0 invoke-virtual {p0, p1, v0}, Lcom/google/common/collect/ImmutableMultimap$Builder;->putAll(Ljava/lang/Object;Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableMultimap$Builder; move-result-object v0 return-object v0 .end method