final class com.google.common.collect.RegularImmutableSortedMultiset extends com.google.common.collect.ImmutableSortedMultiset
{
private static final long[] ZERO_CUMULATIVE_COUNTS;
static final com.google.common.collect.ImmutableSortedMultiset NATURAL_EMPTY_MULTISET;
final transient com.google.common.collect.RegularImmutableSortedSet elementSet;
private final transient long[] cumulativeCounts;
private final transient int offset;
private final transient int length;
void <init>(java.util.Comparator)
{
long[] v;
com.google.common.collect.RegularImmutableSortedMultiset v;
com.google.common.collect.RegularImmutableSortedSet v;
java.util.Comparator v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v := @parameter: java.util.Comparator;
specialinvoke v.<com.google.common.collect.ImmutableSortedMultiset: void <init>()>();
v = staticinvoke <com.google.common.collect.ImmutableSortedSet: com.google.common.collect.RegularImmutableSortedSet emptySet(java.util.Comparator)>(v);
v.<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.RegularImmutableSortedSet elementSet> = v;
v = <com.google.common.collect.RegularImmutableSortedMultiset: long[] ZERO_CUMULATIVE_COUNTS>;
v.<com.google.common.collect.RegularImmutableSortedMultiset: long[] cumulativeCounts> = v;
v.<com.google.common.collect.RegularImmutableSortedMultiset: int offset> = 0;
v.<com.google.common.collect.RegularImmutableSortedMultiset: int length> = 0;
return;
}
void <init>(com.google.common.collect.RegularImmutableSortedSet, long[], int, int)
{
long[] v;
int v, v;
com.google.common.collect.RegularImmutableSortedMultiset v;
com.google.common.collect.RegularImmutableSortedSet v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v := @parameter: com.google.common.collect.RegularImmutableSortedSet;
v := @parameter: long[];
v := @parameter: int;
v := @parameter: int;
specialinvoke v.<com.google.common.collect.ImmutableSortedMultiset: void <init>()>();
v.<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.RegularImmutableSortedSet elementSet> = v;
v.<com.google.common.collect.RegularImmutableSortedMultiset: long[] cumulativeCounts> = v;
v.<com.google.common.collect.RegularImmutableSortedMultiset: int offset> = v;
v.<com.google.common.collect.RegularImmutableSortedMultiset: int length> = v;
return;
}
private int getCount(int)
{
long v, v, v;
com.google.common.collect.RegularImmutableSortedMultiset v;
long[] v, v;
int v, v, v, v, v, v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v := @parameter: int;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: long[] cumulativeCounts>;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: int offset>;
v = v + v;
v = v + 1;
v = v[v];
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: long[] cumulativeCounts>;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: int offset>;
v = v + v;
v = v[v];
v = v - v;
return v;
}
com.google.common.collect.Multiset$Entry getEntry(int)
{
com.google.common.collect.ImmutableList v;
int v, v;
java.lang.Object v;
com.google.common.collect.Multiset$Entry v;
com.google.common.collect.RegularImmutableSortedMultiset v;
com.google.common.collect.RegularImmutableSortedSet v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v := @parameter: int;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.RegularImmutableSortedSet elementSet>;
v = virtualinvoke v.<com.google.common.collect.RegularImmutableSortedSet: com.google.common.collect.ImmutableList asList()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableList: java.lang.Object get(int)>(v);
v = specialinvoke v.<com.google.common.collect.RegularImmutableSortedMultiset: int getCount(int)>(v);
v = staticinvoke <com.google.common.collect.Multisets: com.google.common.collect.Multiset$Entry immutableEntry(java.lang.Object,int)>(v, v);
return v;
}
public void forEachEntry(java.util.function.ObjIntConsumer)
{
java.util.function.ObjIntConsumer v;
com.google.common.collect.RegularImmutableSortedMultiset v;
com.google.common.collect.ImmutableList v;
int v, v, v;
java.lang.Object v;
com.google.common.collect.RegularImmutableSortedSet v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v := @parameter: java.util.function.ObjIntConsumer;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = 0;
label:
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: int length>;
if v >= v goto label;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.RegularImmutableSortedSet elementSet>;
v = virtualinvoke v.<com.google.common.collect.RegularImmutableSortedSet: com.google.common.collect.ImmutableList asList()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableList: java.lang.Object get(int)>(v);
v = specialinvoke v.<com.google.common.collect.RegularImmutableSortedMultiset: int getCount(int)>(v);
interfaceinvoke v.<java.util.function.ObjIntConsumer: void accept(java.lang.Object,int)>(v, v);
v = v + 1;
goto label;
label:
return;
}
public com.google.common.collect.Multiset$Entry firstEntry()
{
com.google.common.collect.Multiset$Entry v;
com.google.common.collect.RegularImmutableSortedMultiset v;
boolean v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v = virtualinvoke v.<com.google.common.collect.RegularImmutableSortedMultiset: boolean isEmpty()>();
if v == 0 goto label;
v = null;
goto label;
label:
v = virtualinvoke v.<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.Multiset$Entry getEntry(int)>(0);
label:
return v;
}
public com.google.common.collect.Multiset$Entry lastEntry()
{
int v, v;
com.google.common.collect.Multiset$Entry v;
com.google.common.collect.RegularImmutableSortedMultiset v;
boolean v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v = virtualinvoke v.<com.google.common.collect.RegularImmutableSortedMultiset: boolean isEmpty()>();
if v == 0 goto label;
v = null;
goto label;
label:
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: int length>;
v = v - 1;
v = virtualinvoke v.<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.Multiset$Entry getEntry(int)>(v);
label:
return v;
}
public int count(java.lang.Object)
{
int v, v;
java.lang.Object v;
com.google.common.collect.RegularImmutableSortedMultiset v;
com.google.common.collect.RegularImmutableSortedSet v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v := @parameter: java.lang.Object;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.RegularImmutableSortedSet elementSet>;
v = virtualinvoke v.<com.google.common.collect.RegularImmutableSortedSet: int indexOf(java.lang.Object)>(v);
if v < 0 goto label;
v = specialinvoke v.<com.google.common.collect.RegularImmutableSortedMultiset: int getCount(int)>(v);
goto label;
label:
v = 0;
label:
return v;
}
public int size()
{
long v, v, v;
com.google.common.collect.RegularImmutableSortedMultiset v;
long[] v, v;
int v, v, v, v, v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: long[] cumulativeCounts>;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: int offset>;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: int length>;
v = v + v;
v = v[v];
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: long[] cumulativeCounts>;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: int offset>;
v = v[v];
v = v - v;
v = staticinvoke <com.google.common.primitives.Ints: int saturatedCast(long)>(v);
return v;
}
public com.google.common.collect.ImmutableSortedSet elementSet()
{
com.google.common.collect.RegularImmutableSortedMultiset v;
com.google.common.collect.RegularImmutableSortedSet v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.RegularImmutableSortedSet elementSet>;
return v;
}
public com.google.common.collect.ImmutableSortedMultiset headMultiset(java.lang.Object, com.google.common.collect.BoundType)
{
com.google.common.collect.RegularImmutableSortedMultiset v;
com.google.common.collect.BoundType v, v;
int v;
java.lang.Object v, v;
com.google.common.collect.ImmutableSortedMultiset v;
com.google.common.collect.RegularImmutableSortedSet v;
boolean v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v := @parameter: java.lang.Object;
v := @parameter: com.google.common.collect.BoundType;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.RegularImmutableSortedSet elementSet>;
v = staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = <com.google.common.collect.BoundType: com.google.common.collect.BoundType CLOSED>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<com.google.common.collect.RegularImmutableSortedSet: int headIndex(java.lang.Object,boolean)>(v, v);
v = virtualinvoke v.<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.ImmutableSortedMultiset getSubMultiset(int,int)>(0, v);
return v;
}
public com.google.common.collect.ImmutableSortedMultiset tailMultiset(java.lang.Object, com.google.common.collect.BoundType)
{
com.google.common.collect.RegularImmutableSortedMultiset v;
com.google.common.collect.BoundType v, v;
int v, v;
java.lang.Object v, v;
com.google.common.collect.ImmutableSortedMultiset v;
com.google.common.collect.RegularImmutableSortedSet v;
boolean v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v := @parameter: java.lang.Object;
v := @parameter: com.google.common.collect.BoundType;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.RegularImmutableSortedSet elementSet>;
v = staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = <com.google.common.collect.BoundType: com.google.common.collect.BoundType CLOSED>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<com.google.common.collect.RegularImmutableSortedSet: int tailIndex(java.lang.Object,boolean)>(v, v);
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: int length>;
v = virtualinvoke v.<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.ImmutableSortedMultiset getSubMultiset(int,int)>(v, v);
return v;
}
com.google.common.collect.ImmutableSortedMultiset getSubMultiset(int, int)
{
com.google.common.collect.RegularImmutableSortedMultiset v, v;
long[] v;
int v, v, v, v, v, v, v;
com.google.common.collect.ImmutableSortedMultiset v;
com.google.common.collect.RegularImmutableSortedSet v, v;
java.util.Comparator v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v := @parameter: int;
v := @parameter: int;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: int length>;
staticinvoke <com.google.common.base.Preconditions: void checkPositionIndexes(int,int,int)>(v, v, v);
if v != v goto label;
v = virtualinvoke v.<com.google.common.collect.RegularImmutableSortedMultiset: java.util.Comparator comparator()>();
v = staticinvoke <com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.ImmutableSortedMultiset emptyMultiset(java.util.Comparator)>(v);
return v;
label:
if v != 0 goto label;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: int length>;
if v != v goto label;
return v;
label:
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.RegularImmutableSortedSet elementSet>;
v = virtualinvoke v.<com.google.common.collect.RegularImmutableSortedSet: com.google.common.collect.RegularImmutableSortedSet getSubSet(int,int)>(v, v);
v = new com.google.common.collect.RegularImmutableSortedMultiset;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: long[] cumulativeCounts>;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: int offset>;
v = v + v;
v = v - v;
specialinvoke v.<com.google.common.collect.RegularImmutableSortedMultiset: void <init>(com.google.common.collect.RegularImmutableSortedSet,long[],int,int)>(v, v, v, v);
return v;
}
boolean isPartialView()
{
long[] v;
int v, v, v, v;
com.google.common.collect.RegularImmutableSortedMultiset v;
boolean v;
v := @this: com.google.common.collect.RegularImmutableSortedMultiset;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: int offset>;
if v > 0 goto label;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: int length>;
v = v.<com.google.common.collect.RegularImmutableSortedMultiset: long[] cumulativeCounts>;
v = lengthof v;
v = v - 1;
if v >= v goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static void <clinit>()
{
long[] v;
com.google.common.collect.Ordering v;
com.google.common.collect.RegularImmutableSortedMultiset v;
v = newarray (long)[1];
v[0] = 0L;
<com.google.common.collect.RegularImmutableSortedMultiset: long[] ZERO_CUMULATIVE_COUNTS> = v;
v = new com.google.common.collect.RegularImmutableSortedMultiset;
v = staticinvoke <com.google.common.collect.Ordering: com.google.common.collect.Ordering natural()>();
specialinvoke v.<com.google.common.collect.RegularImmutableSortedMultiset: void <init>(java.util.Comparator)>(v);
<com.google.common.collect.RegularImmutableSortedMultiset: com.google.common.collect.ImmutableSortedMultiset NATURAL_EMPTY_MULTISET> = v;
return;
}
}