public class com.google.common.collect.ImmutableMap$Builder<K, V>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.google.common.collect.ImmutableMap$Builder
super_class: java.lang.Object
{
java.util.Comparator<? super V> valueComparator;
descriptor: Ljava/util/Comparator;
flags: (0x0000)
Signature: Ljava/util/Comparator<-TV;>;
RuntimeVisibleTypeAnnotations:
FIELD
org.checkerframework.checker.nullness.qual.MonotonicNonNull()
java.util.Map$Entry<K, V>[] entries;
descriptor: [Ljava/util/Map$Entry;
flags: (0x0000)
Signature: [Ljava/util/Map$Entry<TK;TV;>;
int size;
descriptor: I
flags: (0x0000)
boolean entriesUsed;
descriptor: Z
flags: (0x0000)
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_4
invokespecial com.google.common.collect.ImmutableMap$Builder.<init>:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
void <init>(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 1
anewarray java.util.Map$Entry
putfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
2: aload 0
iconst_0
putfield com.google.common.collect.ImmutableMap$Builder.size:I
3: aload 0
iconst_0
putfield com.google.common.collect.ImmutableMap$Builder.entriesUsed:Z
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
0 5 1 initialCapacity I
MethodParameters:
Name Flags
initialCapacity
private void ensureCapacity(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
arraylength
if_icmple 6
1: aload 0
2: aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
arraylength
iload 1
invokestatic com.google.common.collect.ImmutableCollection$Builder.expandedCapacity:(II)I
3: invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.util.Map$Entry[]
4: putfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
5: aload 0
iconst_0
putfield com.google.common.collect.ImmutableMap$Builder.entriesUsed:Z
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
0 7 1 minCapacity I
MethodParameters:
Name Flags
minCapacity
public com.google.common.collect.ImmutableMap$Builder<K, V> put(K, V);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.size:I
iconst_1
iadd
invokevirtual com.google.common.collect.ImmutableMap$Builder.ensureCapacity:(I)V
1: aload 1
aload 2
invokestatic com.google.common.collect.ImmutableMap.entryOf:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$Entry;
astore 3
start local 3 2: aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
aload 0
dup
getfield com.google.common.collect.ImmutableMap$Builder.size:I
dup_x1
iconst_1
iadd
putfield com.google.common.collect.ImmutableMap$Builder.size:I
aload 3
aastore
3: aload 0
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
0 4 1 key TK;
0 4 2 value TV;
2 4 3 entry Ljava/util/Map$Entry<TK;TV;>;
Signature: (TK;TV;)Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
key
value
public com.google.common.collect.ImmutableMap$Builder<K, V> put(java.util.Map$Entry<? extends K, ? extends V>);
descriptor: (Ljava/util/Map$Entry;)Lcom/google/common/collect/ImmutableMap$Builder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
invokevirtual com.google.common.collect.ImmutableMap$Builder.put:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
0 1 1 entry Ljava/util/Map$Entry<+TK;+TV;>;
Signature: (Ljava/util/Map$Entry<+TK;+TV;>;)Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
entry
public com.google.common.collect.ImmutableMap$Builder<K, V> putAll(java.util.Map<? extends K, ? extends V>);
descriptor: (Ljava/util/Map;)Lcom/google/common/collect/ImmutableMap$Builder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokevirtual com.google.common.collect.ImmutableMap$Builder.putAll:(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableMap$Builder;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
0 1 1 map Ljava/util/Map<+TK;+TV;>;
Signature: (Ljava/util/Map<+TK;+TV;>;)Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
map
public com.google.common.collect.ImmutableMap$Builder<K, V> putAll(java.lang.Iterable<? extends java.util.Map$Entry<? extends K, ? extends V>>);
descriptor: (Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableMap$Builder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.util.Collection
ifeq 2
1: aload 0
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.size:I
aload 1
checkcast java.util.Collection
invokeinterface java.util.Collection.size:()I
iadd
invokevirtual com.google.common.collect.ImmutableMap$Builder.ensureCapacity:(I)V
2: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: com.google.common.collect.ImmutableMap$Builder java.lang.Iterable top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 4: aload 0
aload 2
invokevirtual com.google.common.collect.ImmutableMap$Builder.put:(Ljava/util/Map$Entry;)Lcom/google/common/collect/ImmutableMap$Builder;
pop
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
0 7 1 entries Ljava/lang/Iterable<+Ljava/util/Map$Entry<+TK;+TV;>;>;
4 5 2 entry Ljava/util/Map$Entry<+TK;+TV;>;
Signature: (Ljava/lang/Iterable<+Ljava/util/Map$Entry<+TK;+TV;>;>;)Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
com.google.common.annotations.Beta()
MethodParameters:
Name Flags
entries
public com.google.common.collect.ImmutableMap$Builder<K, V> orderEntriesByValue(java.util.Comparator<? super V>);
descriptor: (Ljava/util/Comparator;)Lcom/google/common/collect/ImmutableMap$Builder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.collect.ImmutableMap$Builder.valueComparator:Ljava/util/Comparator;
ifnonnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "valueComparator was already set"
invokestatic com.google.common.base.Preconditions.checkState:(ZLjava/lang/Object;)V
3: aload 0
aload 1
ldc "valueComparator"
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Comparator
putfield com.google.common.collect.ImmutableMap$Builder.valueComparator:Ljava/util/Comparator;
4: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
0 5 1 valueComparator Ljava/util/Comparator<-TV;>;
Signature: (Ljava/util/Comparator<-TV;>;)Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
com.google.common.annotations.Beta()
MethodParameters:
Name Flags
valueComparator
com.google.common.collect.ImmutableMap$Builder<K, V> combine(com.google.common.collect.ImmutableMap$Builder<K, V>);
descriptor: (Lcom/google/common/collect/ImmutableMap$Builder;)Lcom/google/common/collect/ImmutableMap$Builder;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.size:I
aload 1
getfield com.google.common.collect.ImmutableMap$Builder.size:I
iadd
invokevirtual com.google.common.collect.ImmutableMap$Builder.ensureCapacity:(I)V
2: aload 1
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
iconst_0
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.size:I
aload 1
getfield com.google.common.collect.ImmutableMap$Builder.size:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: aload 0
dup
getfield com.google.common.collect.ImmutableMap$Builder.size:I
aload 1
getfield com.google.common.collect.ImmutableMap$Builder.size:I
iadd
putfield com.google.common.collect.ImmutableMap$Builder.size:I
4: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
0 5 1 other Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
Signature: (Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;)Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
other
public com.google.common.collect.ImmutableMap<K, V> build();
descriptor: ()Lcom/google/common/collect/ImmutableMap;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.ImmutableMap$Builder.valueComparator:Ljava/util/Comparator;
ifnull 5
1: aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entriesUsed:Z
ifeq 3
2: aload 0
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.size:I
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.util.Map$Entry[]
putfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
iconst_0
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.size:I
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.valueComparator:Ljava/util/Comparator;
invokestatic com.google.common.collect.Ordering.from:(Ljava/util/Comparator;)Lcom/google/common/collect/Ordering;
invokestatic com.google.common.collect.Maps.valueFunction:()Lcom/google/common/base/Function;
invokevirtual com.google.common.collect.Ordering.onResultOf:(Lcom/google/common/base/Function;)Lcom/google/common/collect/Ordering;
4: invokestatic java.util.Arrays.sort:([Ljava/lang/Object;IILjava/util/Comparator;)V
5: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.size:I
tableswitch { // 0 - 1
0: 6
1: 7
default: 8
}
6: StackMap locals:
StackMap stack:
invokestatic com.google.common.collect.ImmutableMap.of:()Lcom/google/common/collect/ImmutableMap;
areturn
7: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
iconst_0
aaload
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
iconst_0
aaload
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
invokestatic com.google.common.collect.ImmutableMap.of:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap;
areturn
8: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.google.common.collect.ImmutableMap$Builder.entriesUsed:Z
9: aload 0
getfield com.google.common.collect.ImmutableMap$Builder.size:I
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
invokestatic com.google.common.collect.RegularImmutableMap.fromEntryArray:(I[Ljava/util/Map$Entry;)Lcom/google/common/collect/ImmutableMap;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
Signature: ()Lcom/google/common/collect/ImmutableMap<TK;TV;>;
com.google.common.collect.ImmutableMap<K, V> buildJdkBacked();
descriptor: ()Lcom/google/common/collect/ImmutableMap;
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.ImmutableMap$Builder.valueComparator:Ljava/util/Comparator;
ifnonnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "buildJdkBacked is only for testing; can't use valueComparator"
3: invokestatic com.google.common.base.Preconditions.checkState:(ZLjava/lang/Object;)V
4: aload 0
getfield com.google.common.collect.ImmutableMap$Builder.size:I
tableswitch { // 0 - 1
0: 5
1: 6
default: 7
}
5: StackMap locals:
StackMap stack:
invokestatic com.google.common.collect.ImmutableMap.of:()Lcom/google/common/collect/ImmutableMap;
areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
iconst_0
aaload
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
iconst_0
aaload
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
invokestatic com.google.common.collect.ImmutableMap.of:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap;
areturn
7: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.google.common.collect.ImmutableMap$Builder.entriesUsed:Z
8: aload 0
getfield com.google.common.collect.ImmutableMap$Builder.size:I
aload 0
getfield com.google.common.collect.ImmutableMap$Builder.entries:[Ljava/util/Map$Entry;
invokestatic com.google.common.collect.JdkBackedImmutableMap.create:(I[Ljava/util/Map$Entry;)Lcom/google/common/collect/ImmutableMap;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/collect/ImmutableMap$Builder<TK;TV;>;
Signature: ()Lcom/google/common/collect/ImmutableMap<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "ImmutableMap.java"
NestHost: com.google.common.collect.ImmutableMap
InnerClasses:
public abstract Builder = com.google.common.collect.ImmutableCollection$Builder of com.google.common.collect.ImmutableCollection
public Builder = com.google.common.collect.ImmutableMap$Builder of com.google.common.collect.ImmutableMap
public abstract Entry = java.util.Map$Entry of java.util.Map