.class public Lcom/google/common/collect/ImmutableRangeSet$Builder; .super Ljava/lang/Object; .source "ImmutableRangeSet.java" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/google/common/collect/ImmutableRangeSet; .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 private final ranges:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Lcom/google/common/collect/Range<", "TC;>;>;" } .end annotation .end field # direct methods .method public constructor ()V .locals 1 .line 722 invoke-direct {p0}, Ljava/lang/Object;->()V .line 723 invoke-static {}, Lcom/google/common/collect/Lists;->newArrayList()Ljava/util/ArrayList; move-result-object v0 iput-object v0, p0, Lcom/google/common/collect/ImmutableRangeSet$Builder;->ranges:Ljava/util/List; return-void .end method # virtual methods .method public add(Lcom/google/common/collect/Range;)Lcom/google/common/collect/ImmutableRangeSet$Builder; .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/Range<", "TC;>;)", "Lcom/google/common/collect/ImmutableRangeSet$Builder<", "TC;>;" } .end annotation .line 736 invoke-virtual {p1}, Lcom/google/common/collect/Range;->isEmpty()Z move-result v0 xor-int/lit8 v0, v0, 0x1 const-string v1, "range must not be empty, but was %s" invoke-static {v0, v1, p1}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V iget-object v0, p0, Lcom/google/common/collect/ImmutableRangeSet$Builder;->ranges:Ljava/util/List; .line 737 invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z return-object p0 .end method .method public addAll(Lcom/google/common/collect/RangeSet;)Lcom/google/common/collect/ImmutableRangeSet$Builder; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/RangeSet<", "TC;>;)", "Lcom/google/common/collect/ImmutableRangeSet$Builder<", "TC;>;" } .end annotation .line 748 invoke-interface {p1}, Lcom/google/common/collect/RangeSet;->asRanges()Ljava/util/Set; move-result-object p1 invoke-virtual {p0, p1}, Lcom/google/common/collect/ImmutableRangeSet$Builder;->addAll(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableRangeSet$Builder; move-result-object p0 return-object p0 .end method .method public addAll(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableRangeSet$Builder; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Iterable<", "Lcom/google/common/collect/Range<", "TC;>;>;)", "Lcom/google/common/collect/ImmutableRangeSet$Builder<", "TC;>;" } .end annotation .line 760 invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; move-result-object p1 :goto_0 invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z move-result v0 if-eqz v0, :cond_0 invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/common/collect/Range; .line 761 invoke-virtual {p0, v0}, Lcom/google/common/collect/ImmutableRangeSet$Builder;->add(Lcom/google/common/collect/Range;)Lcom/google/common/collect/ImmutableRangeSet$Builder; goto :goto_0 :cond_0 return-object p0 .end method .method public build()Lcom/google/common/collect/ImmutableRangeSet; .locals 5 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lcom/google/common/collect/ImmutableRangeSet<", "TC;>;" } .end annotation .line 778 new-instance v0, Lcom/google/common/collect/ImmutableList$Builder; iget-object v1, p0, Lcom/google/common/collect/ImmutableRangeSet$Builder;->ranges:Ljava/util/List; .line 779 invoke-interface {v1}, Ljava/util/List;->size()I move-result v1 invoke-direct {v0, v1}, Lcom/google/common/collect/ImmutableList$Builder;->(I)V iget-object v1, p0, Lcom/google/common/collect/ImmutableRangeSet$Builder;->ranges:Ljava/util/List; .line 780 invoke-static {}, Lcom/google/common/collect/Range;->rangeLexOrdering()Lcom/google/common/collect/Ordering; move-result-object v2 invoke-static {v1, v2}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V iget-object p0, p0, Lcom/google/common/collect/ImmutableRangeSet$Builder;->ranges:Ljava/util/List; .line 781 invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object p0 invoke-static {p0}, Lcom/google/common/collect/Iterators;->peekingIterator(Ljava/util/Iterator;)Lcom/google/common/collect/PeekingIterator; move-result-object p0 .line 782 :goto_0 invoke-interface {p0}, Lcom/google/common/collect/PeekingIterator;->hasNext()Z move-result v1 if-eqz v1, :cond_1 .line 783 invoke-interface {p0}, Lcom/google/common/collect/PeekingIterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/google/common/collect/Range; .line 784 :goto_1 invoke-interface {p0}, Lcom/google/common/collect/PeekingIterator;->hasNext()Z move-result v2 if-eqz v2, :cond_0 .line 785 invoke-interface {p0}, Lcom/google/common/collect/PeekingIterator;->peek()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/google/common/collect/Range; .line 786 invoke-virtual {v1, v2}, Lcom/google/common/collect/Range;->isConnected(Lcom/google/common/collect/Range;)Z move-result v3 if-eqz v3, :cond_0 .line 788 invoke-virtual {v1, v2}, Lcom/google/common/collect/Range;->intersection(Lcom/google/common/collect/Range;)Lcom/google/common/collect/Range; move-result-object v3 invoke-virtual {v3}, Lcom/google/common/collect/Range;->isEmpty()Z move-result v3 const-string v4, "Overlapping ranges not permitted but found %s overlapping %s" .line 787 invoke-static {v3, v4, v1, v2}, Lcom/google/common/base/Preconditions;->checkArgument(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V .line 792 invoke-interface {p0}, Lcom/google/common/collect/PeekingIterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/google/common/collect/Range; invoke-virtual {v1, v2}, Lcom/google/common/collect/Range;->span(Lcom/google/common/collect/Range;)Lcom/google/common/collect/Range; move-result-object v1 goto :goto_1 .line 797 :cond_0 invoke-virtual {v0, v1}, Lcom/google/common/collect/ImmutableList$Builder;->add(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList$Builder; goto :goto_0 .line 799 :cond_1 invoke-virtual {v0}, Lcom/google/common/collect/ImmutableList$Builder;->build()Lcom/google/common/collect/ImmutableList; move-result-object p0 .line 800 invoke-virtual {p0}, Lcom/google/common/collect/ImmutableList;->isEmpty()Z move-result v0 if-eqz v0, :cond_2 .line 801 invoke-static {}, Lcom/google/common/collect/ImmutableRangeSet;->of()Lcom/google/common/collect/ImmutableRangeSet; move-result-object p0 return-object p0 .line 802 :cond_2 invoke-virtual {p0}, Lcom/google/common/collect/ImmutableList;->size()I move-result v0 const/4 v1, 0x1 if-ne v0, v1, :cond_3 .line 803 invoke-static {p0}, Lcom/google/common/collect/Iterables;->getOnlyElement(Ljava/lang/Iterable;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/common/collect/Range; invoke-static {}, Lcom/google/common/collect/Range;->all()Lcom/google/common/collect/Range; move-result-object v1 invoke-virtual {v0, v1}, Lcom/google/common/collect/Range;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_3 .line 804 invoke-static {}, Lcom/google/common/collect/ImmutableRangeSet;->all()Lcom/google/common/collect/ImmutableRangeSet; move-result-object p0 return-object p0 .line 806 :cond_3 new-instance v0, Lcom/google/common/collect/ImmutableRangeSet; invoke-direct {v0, p0}, Lcom/google/common/collect/ImmutableRangeSet;->(Lcom/google/common/collect/ImmutableList;)V return-object v0 .end method .method combine(Lcom/google/common/collect/ImmutableRangeSet$Builder;)Lcom/google/common/collect/ImmutableRangeSet$Builder; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/common/collect/ImmutableRangeSet$Builder<", "TC;>;)", "Lcom/google/common/collect/ImmutableRangeSet$Builder<", "TC;>;" } .end annotation .line 768 iget-object p1, p1, Lcom/google/common/collect/ImmutableRangeSet$Builder;->ranges:Ljava/util/List; invoke-virtual {p0, p1}, Lcom/google/common/collect/ImmutableRangeSet$Builder;->addAll(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableRangeSet$Builder; return-object p0 .end method