.class abstract Lcom/google/common/hash/AbstractCompositeHashFunction; .super Lcom/google/common/hash/AbstractHashFunction; .source "AbstractCompositeHashFunction.java" # annotations .annotation runtime Lcom/google/common/hash/ElementTypesAreNonnullByDefault; .end annotation .annotation runtime Lcom/google/errorprone/annotations/Immutable; .end annotation # static fields .field private static final serialVersionUID:J # instance fields .field final functions:[Lcom/google/common/hash/HashFunction; # direct methods .method varargs constructor ([Lcom/google/common/hash/HashFunction;)V .locals 3 .line 39 invoke-direct {p0}, Lcom/google/common/hash/AbstractHashFunction;->()V .line 40 array-length v0, p1 const/4 v1, 0x0 :goto_0 if-ge v1, v0, :cond_0 aget-object v2, p1, v1 .line 41 invoke-static {v2}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_0 iput-object p1, p0, Lcom/google/common/hash/AbstractCompositeHashFunction;->functions:[Lcom/google/common/hash/HashFunction; return-void .end method .method private fromHashers([Lcom/google/common/hash/Hasher;)Lcom/google/common/hash/Hasher; .locals 1 .line 74 new-instance v0, Lcom/google/common/hash/AbstractCompositeHashFunction$1; invoke-direct {v0, p0, p1}, Lcom/google/common/hash/AbstractCompositeHashFunction$1;->(Lcom/google/common/hash/AbstractCompositeHashFunction;[Lcom/google/common/hash/Hasher;)V return-object v0 .end method # virtual methods .method abstract makeHash([Lcom/google/common/hash/Hasher;)Lcom/google/common/hash/HashCode; .end method .method public newHasher()Lcom/google/common/hash/Hasher; .locals 4 iget-object v0, p0, Lcom/google/common/hash/AbstractCompositeHashFunction;->functions:[Lcom/google/common/hash/HashFunction; .line 56 array-length v0, v0 new-array v1, v0, [Lcom/google/common/hash/Hasher; const/4 v2, 0x0 :goto_0 if-ge v2, v0, :cond_0 iget-object v3, p0, Lcom/google/common/hash/AbstractCompositeHashFunction;->functions:[Lcom/google/common/hash/HashFunction; .line 58 aget-object v3, v3, v2 invoke-interface {v3}, Lcom/google/common/hash/HashFunction;->newHasher()Lcom/google/common/hash/Hasher; move-result-object v3 aput-object v3, v1, v2 add-int/lit8 v2, v2, 0x1 goto :goto_0 .line 60 :cond_0 invoke-direct {p0, v1}, Lcom/google/common/hash/AbstractCompositeHashFunction;->fromHashers([Lcom/google/common/hash/Hasher;)Lcom/google/common/hash/Hasher; move-result-object p0 return-object p0 .end method .method public newHasher(I)Lcom/google/common/hash/Hasher; .locals 4 const/4 v0, 0x0 if-ltz p1, :cond_0 const/4 v1, 0x1 goto :goto_0 :cond_0 move v1, v0 .line 65 :goto_0 invoke-static {v1}, Lcom/google/common/base/Preconditions;->checkArgument(Z)V iget-object v1, p0, Lcom/google/common/hash/AbstractCompositeHashFunction;->functions:[Lcom/google/common/hash/HashFunction; .line 66 array-length v1, v1 new-array v2, v1, [Lcom/google/common/hash/Hasher; :goto_1 if-ge v0, v1, :cond_1 iget-object v3, p0, Lcom/google/common/hash/AbstractCompositeHashFunction;->functions:[Lcom/google/common/hash/HashFunction; .line 68 aget-object v3, v3, v0 invoke-interface {v3, p1}, Lcom/google/common/hash/HashFunction;->newHasher(I)Lcom/google/common/hash/Hasher; move-result-object v3 aput-object v3, v2, v0 add-int/lit8 v0, v0, 0x1 goto :goto_1 .line 70 :cond_1 invoke-direct {p0, v2}, Lcom/google/common/hash/AbstractCompositeHashFunction;->fromHashers([Lcom/google/common/hash/Hasher;)Lcom/google/common/hash/Hasher; move-result-object p0 return-object p0 .end method