public final class com.google.common.math.Quantiles
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.common.math.Quantiles
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.google.common.math.Quantiles this
0: .line 131
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.google.common.math.Quantiles this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/math/Quantiles;
public static com.google.common.math.Quantiles$ScaleAndIndex median();
descriptor: ()Lcom/google/common/math/Quantiles$ScaleAndIndex;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: .line 135
iconst_2
invokestatic com.google.common.math.Quantiles.scale:(I)Lcom/google/common/math/Quantiles$Scale;
iconst_1
invokevirtual com.google.common.math.Quantiles$Scale.index:(I)Lcom/google/common/math/Quantiles$ScaleAndIndex;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.math.Quantiles$Scale quartiles();
descriptor: ()Lcom/google/common/math/Quantiles$Scale;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: .line 140
iconst_4
invokestatic com.google.common.math.Quantiles.scale:(I)Lcom/google/common/math/Quantiles$Scale;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.math.Quantiles$Scale percentiles();
descriptor: ()Lcom/google/common/math/Quantiles$Scale;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: .line 145
bipush 100
invokestatic com.google.common.math.Quantiles.scale:(I)Lcom/google/common/math/Quantiles$Scale;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.math.Quantiles$Scale scale(int);
descriptor: (I)Lcom/google/common/math/Quantiles$Scale;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // int scale
0: .line 155
new com.google.common.math.Quantiles$Scale
dup
iload 0 /* scale */
invokespecial com.google.common.math.Quantiles$Scale.<init>:(I)V
areturn
end local 0 // int scale
LocalVariableTable:
Start End Slot Name Signature
0 1 0 scale I
MethodParameters:
Name Flags
scale
private static boolean containsNaN(double[]);
descriptor: ([D)Z
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=2, locals=6, args_size=1
start local 0 // double[] dataset
0: .line 455
aload 0 /* dataset */
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: double[] top top int int double[]
StackMap stack:
1: aload 5
iload 3
daload
dstore 1 /* value */
start local 1 // double value
2: .line 456
dload 1 /* value */
invokestatic java.lang.Double.isNaN:(D)Z
ifeq 4
3: .line 457
iconst_1
ireturn
end local 1 // double value
4: .line 455
StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 1
6: .line 460
iconst_0
ireturn
end local 0 // double[] dataset
LocalVariableTable:
Start End Slot Name Signature
0 7 0 dataset [D
2 4 1 value D
MethodParameters:
Name Flags
dataset
private static double interpolate(double, double, double, double);
descriptor: (DDDD)D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=8, args_size=4
start local 0 // double lower
start local 2 // double upper
start local 4 // double remainder
start local 6 // double scale
0: .line 469
dload 0 /* lower */
ldc -Infinity
dcmpl
ifne 4
1: .line 470
dload 2 /* upper */
ldc Infinity
dcmpl
ifne 3
2: .line 472
ldc NaN
dreturn
3: .line 475
StackMap locals:
StackMap stack:
ldc -Infinity
dreturn
4: .line 477
StackMap locals:
StackMap stack:
dload 2 /* upper */
ldc Infinity
dcmpl
ifne 6
5: .line 479
ldc Infinity
dreturn
6: .line 481
StackMap locals:
StackMap stack:
dload 0 /* lower */
dload 2 /* upper */
dload 0 /* lower */
dsub
dload 4 /* remainder */
dmul
dload 6 /* scale */
ddiv
dadd
dreturn
end local 6 // double scale
end local 4 // double remainder
end local 2 // double upper
end local 0 // double lower
LocalVariableTable:
Start End Slot Name Signature
0 7 0 lower D
0 7 2 upper D
0 7 4 remainder D
0 7 6 scale D
MethodParameters:
Name Flags
lower
upper
remainder
scale
private static void checkIndex(int, int);
descriptor: (II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 // int index
start local 1 // int scale
0: .line 485
iload 0 /* index */
iflt 1
iload 0 /* index */
iload 1 /* scale */
if_icmple 4
1: .line 486
StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
2: .line 487
new java.lang.StringBuilder
dup
ldc "Quantile indexes must be between 0 and the scale, which is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1 /* scale */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: .line 486
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: .line 489
StackMap locals:
StackMap stack:
return
end local 1 // int scale
end local 0 // int index
LocalVariableTable:
Start End Slot Name Signature
0 5 0 index I
0 5 1 scale I
MethodParameters:
Name Flags
index
scale
private static double[] longsToDoubles(long[]);
descriptor: ([J)[D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 // long[] longs
0: .line 492
aload 0 /* longs */
arraylength
istore 1 /* len */
start local 1 // int len
1: .line 493
iload 1 /* len */
newarray 7
astore 2 /* doubles */
start local 2 // double[] doubles
2: .line 494
iconst_0
istore 3 /* i */
start local 3 // int i
3: goto 6
4: .line 495
StackMap locals: int double[] int
StackMap stack:
aload 2 /* doubles */
iload 3 /* i */
aload 0 /* longs */
iload 3 /* i */
laload
l2d
dastore
5: .line 494
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 3 /* i */
iload 1 /* len */
if_icmplt 4
end local 3 // int i
7: .line 497
aload 2 /* doubles */
areturn
end local 2 // double[] doubles
end local 1 // int len
end local 0 // long[] longs
LocalVariableTable:
Start End Slot Name Signature
0 8 0 longs [J
1 8 1 len I
2 8 2 doubles [D
3 7 3 i I
MethodParameters:
Name Flags
longs
private static double[] intsToDoubles(int[]);
descriptor: ([I)[D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 // int[] ints
0: .line 501
aload 0 /* ints */
arraylength
istore 1 /* len */
start local 1 // int len
1: .line 502
iload 1 /* len */
newarray 7
astore 2 /* doubles */
start local 2 // double[] doubles
2: .line 503
iconst_0
istore 3 /* i */
start local 3 // int i
3: goto 6
4: .line 504
StackMap locals: int double[] int
StackMap stack:
aload 2 /* doubles */
iload 3 /* i */
aload 0 /* ints */
iload 3 /* i */
iaload
i2d
dastore
5: .line 503
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 3 /* i */
iload 1 /* len */
if_icmplt 4
end local 3 // int i
7: .line 506
aload 2 /* doubles */
areturn
end local 2 // double[] doubles
end local 1 // int len
end local 0 // int[] ints
LocalVariableTable:
Start End Slot Name Signature
0 8 0 ints [I
1 8 1 len I
2 8 2 doubles [D
3 7 3 i I
MethodParameters:
Name Flags
ints
private static void selectInPlace(int, double[], int, int);
descriptor: (I[DII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=4
start local 0 // int required
start local 1 // double[] array
start local 2 // int from
start local 3 // int to
0: .line 533
iload 0 /* required */
iload 2 /* from */
if_icmpne 16
1: .line 534
iload 2 /* from */
istore 4 /* min */
start local 4 // int min
2: .line 535
iload 2 /* from */
iconst_1
iadd
istore 5 /* index */
start local 5 // int index
3: goto 7
4: .line 536
StackMap locals: int int
StackMap stack:
aload 1 /* array */
iload 4 /* min */
daload
aload 1 /* array */
iload 5 /* index */
daload
dcmpl
ifle 6
5: .line 537
iload 5 /* index */
istore 4 /* min */
6: .line 535
StackMap locals:
StackMap stack:
iinc 5 /* index */ 1
StackMap locals:
StackMap stack:
7: iload 5 /* index */
iload 3 /* to */
if_icmple 4
end local 5 // int index
8: .line 540
iload 4 /* min */
iload 2 /* from */
if_icmpeq 10
9: .line 541
aload 1 /* array */
iload 4 /* min */
iload 2 /* from */
invokestatic com.google.common.math.Quantiles.swap:([DII)V
10: .line 543
StackMap locals:
StackMap stack:
return
end local 4 // int min
11: .line 549
StackMap locals:
StackMap stack:
aload 1 /* array */
iload 2 /* from */
iload 3 /* to */
invokestatic com.google.common.math.Quantiles.partition:([DII)I
istore 4 /* partitionPoint */
start local 4 // int partitionPoint
12: .line 550
iload 4 /* partitionPoint */
iload 0 /* required */
if_icmplt 14
13: .line 551
iload 4 /* partitionPoint */
iconst_1
isub
istore 3 /* to */
14: .line 553
StackMap locals: int
StackMap stack:
iload 4 /* partitionPoint */
iload 0 /* required */
if_icmpgt 16
15: .line 554
iload 4 /* partitionPoint */
iconst_1
iadd
istore 2 /* from */
end local 4 // int partitionPoint
16: .line 548
StackMap locals:
StackMap stack:
iload 3 /* to */
iload 2 /* from */
if_icmpgt 11
17: .line 557
return
end local 3 // int to
end local 2 // int from
end local 1 // double[] array
end local 0 // int required
LocalVariableTable:
Start End Slot Name Signature
0 18 0 required I
0 18 1 array [D
0 18 2 from I
0 18 3 to I
2 11 4 min I
3 8 5 index I
12 16 4 partitionPoint I
MethodParameters:
Name Flags
required
array
from
to
private static int partition(double[], int, int);
descriptor: ([DII)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=3
start local 0 // double[] array
start local 1 // int from
start local 2 // int to
0: .line 569
aload 0 /* array */
iload 1 /* from */
iload 2 /* to */
invokestatic com.google.common.math.Quantiles.movePivotToStartOfSlice:([DII)V
1: .line 570
aload 0 /* array */
iload 1 /* from */
daload
dstore 3 /* pivot */
start local 3 // double pivot
2: .line 574
iload 2 /* to */
istore 5 /* partitionPoint */
start local 5 // int partitionPoint
3: .line 575
iload 2 /* to */
istore 6 /* i */
start local 6 // int i
4: goto 9
5: .line 576
StackMap locals: double int int
StackMap stack:
aload 0 /* array */
iload 6 /* i */
daload
dload 3 /* pivot */
dcmpl
ifle 8
6: .line 577
aload 0 /* array */
iload 5 /* partitionPoint */
iload 6 /* i */
invokestatic com.google.common.math.Quantiles.swap:([DII)V
7: .line 578
iinc 5 /* partitionPoint */ -1
8: .line 575
StackMap locals:
StackMap stack:
iinc 6 /* i */ -1
StackMap locals:
StackMap stack:
9: iload 6 /* i */
iload 1 /* from */
if_icmpgt 5
end local 6 // int i
10: .line 585
aload 0 /* array */
iload 1 /* from */
iload 5 /* partitionPoint */
invokestatic com.google.common.math.Quantiles.swap:([DII)V
11: .line 586
iload 5 /* partitionPoint */
ireturn
end local 5 // int partitionPoint
end local 3 // double pivot
end local 2 // int to
end local 1 // int from
end local 0 // double[] array
LocalVariableTable:
Start End Slot Name Signature
0 12 0 array [D
0 12 1 from I
0 12 2 to I
2 12 3 pivot D
3 12 5 partitionPoint I
4 10 6 i I
MethodParameters:
Name Flags
array
from
to
private static void movePivotToStartOfSlice(double[], int, int);
descriptor: ([DII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=3
start local 0 // double[] array
start local 1 // int from
start local 2 // int to
0: .line 596
iload 1 /* from */
iload 2 /* to */
iadd
iconst_1
iushr
istore 3 /* mid */
start local 3 // int mid
1: .line 601
aload 0 /* array */
iload 2 /* to */
daload
aload 0 /* array */
iload 3 /* mid */
daload
dcmpg
ifge 2
iconst_1
goto 3
StackMap locals: int
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 4 /* toLessThanMid */
start local 4 // boolean toLessThanMid
4: .line 602
aload 0 /* array */
iload 3 /* mid */
daload
aload 0 /* array */
iload 1 /* from */
daload
dcmpg
ifge 5
iconst_1
goto 6
StackMap locals: int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 5 /* midLessThanFrom */
start local 5 // boolean midLessThanFrom
7: .line 603
aload 0 /* array */
iload 2 /* to */
daload
aload 0 /* array */
iload 1 /* from */
daload
dcmpg
ifge 8
iconst_1
goto 9
StackMap locals: int
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: istore 6 /* toLessThanFrom */
start local 6 // boolean toLessThanFrom
10: .line 604
iload 4 /* toLessThanMid */
iload 5 /* midLessThanFrom */
if_icmpne 13
11: .line 606
aload 0 /* array */
iload 3 /* mid */
iload 1 /* from */
invokestatic com.google.common.math.Quantiles.swap:([DII)V
12: .line 607
goto 15
StackMap locals: int
StackMap stack:
13: iload 4 /* toLessThanMid */
iload 6 /* toLessThanFrom */
if_icmpeq 15
14: .line 609
aload 0 /* array */
iload 1 /* from */
iload 2 /* to */
invokestatic com.google.common.math.Quantiles.swap:([DII)V
15: .line 612
StackMap locals:
StackMap stack:
return
end local 6 // boolean toLessThanFrom
end local 5 // boolean midLessThanFrom
end local 4 // boolean toLessThanMid
end local 3 // int mid
end local 2 // int to
end local 1 // int from
end local 0 // double[] array
LocalVariableTable:
Start End Slot Name Signature
0 16 0 array [D
0 16 1 from I
0 16 2 to I
1 16 3 mid I
4 16 4 toLessThanMid Z
7 16 5 midLessThanFrom Z
10 16 6 toLessThanFrom Z
MethodParameters:
Name Flags
array
from
to
private static void selectAllInPlace(int[], int, int, double[], int, int);
descriptor: ([III[DII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=10, args_size=6
start local 0 // int[] allRequired
start local 1 // int requiredFrom
start local 2 // int requiredTo
start local 3 // double[] array
start local 4 // int from
start local 5 // int to
0: .line 622
aload 0 /* allRequired */
iload 1 /* requiredFrom */
iload 2 /* requiredTo */
iload 4 /* from */
iload 5 /* to */
invokestatic com.google.common.math.Quantiles.chooseNextSelection:([IIIII)I
istore 6 /* requiredChosen */
start local 6 // int requiredChosen
1: .line 623
aload 0 /* allRequired */
iload 6 /* requiredChosen */
iaload
istore 7 /* required */
start local 7 // int required
2: .line 626
iload 7 /* required */
aload 3 /* array */
iload 4 /* from */
iload 5 /* to */
invokestatic com.google.common.math.Quantiles.selectInPlace:(I[DII)V
3: .line 629
iload 6 /* requiredChosen */
iconst_1
isub
istore 8 /* requiredBelow */
start local 8 // int requiredBelow
4: .line 630
goto 6
5: .line 631
StackMap locals: int int int
StackMap stack:
iinc 8 /* requiredBelow */ -1
6: .line 630
StackMap locals:
StackMap stack:
iload 8 /* requiredBelow */
iload 1 /* requiredFrom */
if_icmplt 7
aload 0 /* allRequired */
iload 8 /* requiredBelow */
iaload
iload 7 /* required */
if_icmpeq 5
7: .line 633
StackMap locals:
StackMap stack:
iload 8 /* requiredBelow */
iload 1 /* requiredFrom */
if_icmplt 9
8: .line 634
aload 0 /* allRequired */
iload 1 /* requiredFrom */
iload 8 /* requiredBelow */
aload 3 /* array */
iload 4 /* from */
iload 7 /* required */
iconst_1
isub
invokestatic com.google.common.math.Quantiles.selectAllInPlace:([III[DII)V
9: .line 638
StackMap locals:
StackMap stack:
iload 6 /* requiredChosen */
iconst_1
iadd
istore 9 /* requiredAbove */
start local 9 // int requiredAbove
10: .line 639
goto 12
11: .line 640
StackMap locals: int
StackMap stack:
iinc 9 /* requiredAbove */ 1
12: .line 639
StackMap locals:
StackMap stack:
iload 9 /* requiredAbove */
iload 2 /* requiredTo */
if_icmpgt 13
aload 0 /* allRequired */
iload 9 /* requiredAbove */
iaload
iload 7 /* required */
if_icmpeq 11
13: .line 642
StackMap locals:
StackMap stack:
iload 9 /* requiredAbove */
iload 2 /* requiredTo */
if_icmpgt 15
14: .line 643
aload 0 /* allRequired */
iload 9 /* requiredAbove */
iload 2 /* requiredTo */
aload 3 /* array */
iload 7 /* required */
iconst_1
iadd
iload 5 /* to */
invokestatic com.google.common.math.Quantiles.selectAllInPlace:([III[DII)V
15: .line 645
StackMap locals:
StackMap stack:
return
end local 9 // int requiredAbove
end local 8 // int requiredBelow
end local 7 // int required
end local 6 // int requiredChosen
end local 5 // int to
end local 4 // int from
end local 3 // double[] array
end local 2 // int requiredTo
end local 1 // int requiredFrom
end local 0 // int[] allRequired
LocalVariableTable:
Start End Slot Name Signature
0 16 0 allRequired [I
0 16 1 requiredFrom I
0 16 2 requiredTo I
0 16 3 array [D
0 16 4 from I
0 16 5 to I
1 16 6 requiredChosen I
2 16 7 required I
4 16 8 requiredBelow I
10 16 9 requiredAbove I
MethodParameters:
Name Flags
allRequired
requiredFrom
requiredTo
array
from
to
private static int chooseNextSelection(int[], int, int, int, int);
descriptor: ([IIIII)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=9, args_size=5
start local 0 // int[] allRequired
start local 1 // int requiredFrom
start local 2 // int requiredTo
start local 3 // int from
start local 4 // int to
0: .line 658
iload 1 /* requiredFrom */
iload 2 /* requiredTo */
if_icmpne 2
1: .line 659
iload 1 /* requiredFrom */
ireturn
2: .line 664
StackMap locals:
StackMap stack:
iload 3 /* from */
iload 4 /* to */
iadd
iconst_1
iushr
istore 5 /* centerFloor */
start local 5 // int centerFloor
3: .line 671
iload 1 /* requiredFrom */
istore 6 /* low */
start local 6 // int low
4: .line 672
iload 2 /* requiredTo */
istore 7 /* high */
start local 7 // int high
5: .line 673
goto 14
6: .line 674
StackMap locals: int int int
StackMap stack:
iload 6 /* low */
iload 7 /* high */
iadd
iconst_1
iushr
istore 8 /* mid */
start local 8 // int mid
7: .line 675
aload 0 /* allRequired */
iload 8 /* mid */
iaload
iload 5 /* centerFloor */
if_icmple 10
8: .line 676
iload 8 /* mid */
istore 7 /* high */
9: .line 677
goto 14
StackMap locals: int
StackMap stack:
10: aload 0 /* allRequired */
iload 8 /* mid */
iaload
iload 5 /* centerFloor */
if_icmpge 13
11: .line 678
iload 8 /* mid */
istore 6 /* low */
12: .line 679
goto 14
13: .line 680
StackMap locals:
StackMap stack:
iload 8 /* mid */
ireturn
end local 8 // int mid
14: .line 673
StackMap locals:
StackMap stack:
iload 7 /* high */
iload 6 /* low */
iconst_1
iadd
if_icmpgt 6
15: .line 685
iload 3 /* from */
iload 4 /* to */
iadd
aload 0 /* allRequired */
iload 6 /* low */
iaload
isub
aload 0 /* allRequired */
iload 7 /* high */
iaload
isub
ifle 17
16: .line 686
iload 7 /* high */
ireturn
17: .line 688
StackMap locals:
StackMap stack:
iload 6 /* low */
ireturn
end local 7 // int high
end local 6 // int low
end local 5 // int centerFloor
end local 4 // int to
end local 3 // int from
end local 2 // int requiredTo
end local 1 // int requiredFrom
end local 0 // int[] allRequired
LocalVariableTable:
Start End Slot Name Signature
0 18 0 allRequired [I
0 18 1 requiredFrom I
0 18 2 requiredTo I
0 18 3 from I
0 18 4 to I
3 18 5 centerFloor I
4 18 6 low I
5 18 7 high I
7 14 8 mid I
MethodParameters:
Name Flags
allRequired
requiredFrom
requiredTo
from
to
private static void swap(double[], int, int);
descriptor: ([DII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 // double[] array
start local 1 // int i
start local 2 // int j
0: .line 694
aload 0 /* array */
iload 1 /* i */
daload
dstore 3 /* temp */
start local 3 // double temp
1: .line 695
aload 0 /* array */
iload 1 /* i */
aload 0 /* array */
iload 2 /* j */
daload
dastore
2: .line 696
aload 0 /* array */
iload 2 /* j */
dload 3 /* temp */
dastore
3: .line 697
return
end local 3 // double temp
end local 2 // int j
end local 1 // int i
end local 0 // double[] array
LocalVariableTable:
Start End Slot Name Signature
0 4 0 array [D
0 4 1 i I
0 4 2 j I
1 4 3 temp D
MethodParameters:
Name Flags
array
i
j
}
SourceFile: "Quantiles.java"
NestMembers:
com.google.common.math.Quantiles$Scale com.google.common.math.Quantiles$ScaleAndIndex com.google.common.math.Quantiles$ScaleAndIndexes
InnerClasses:
public final Scale = com.google.common.math.Quantiles$Scale of com.google.common.math.Quantiles
public final ScaleAndIndex = com.google.common.math.Quantiles$ScaleAndIndex of com.google.common.math.Quantiles
public final ScaleAndIndexes = com.google.common.math.Quantiles$ScaleAndIndexes of com.google.common.math.Quantiles
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
com.google.common.annotations.GwtIncompatible()