final class com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound extends com.google.common.collect.AbstractNavigableMap
{
private final java.util.NavigableMap positiveRangesByLowerBound;
private final java.util.NavigableMap positiveRangesByUpperBound;
private final com.google.common.collect.Range complementLowerBoundWindow;
void <init>(java.util.NavigableMap)
{
com.google.common.collect.Range v;
java.util.NavigableMap v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound v;
v := @this: com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound;
v := @parameter: java.util.NavigableMap;
v = staticinvoke <com.google.common.collect.Range: com.google.common.collect.Range all()>();
specialinvoke v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: void <init>(java.util.NavigableMap,com.google.common.collect.Range)>(v, v);
return;
}
private void <init>(java.util.NavigableMap, com.google.common.collect.Range)
{
com.google.common.collect.Range v;
com.google.common.collect.TreeRangeSet$RangesByUpperBound v;
java.util.NavigableMap v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound v;
v := @this: com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound;
v := @parameter: java.util.NavigableMap;
v := @parameter: com.google.common.collect.Range;
specialinvoke v.<com.google.common.collect.AbstractNavigableMap: void <init>()>();
v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.NavigableMap positiveRangesByLowerBound> = v;
v = new com.google.common.collect.TreeRangeSet$RangesByUpperBound;
specialinvoke v.<com.google.common.collect.TreeRangeSet$RangesByUpperBound: void <init>(java.util.NavigableMap)>(v);
v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.NavigableMap positiveRangesByUpperBound> = v;
v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: com.google.common.collect.Range complementLowerBoundWindow> = v;
return;
}
private java.util.NavigableMap subMap(com.google.common.collect.Range)
{
com.google.common.collect.Range v, v, v, v;
java.util.NavigableMap v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound v, v;
com.google.common.collect.ImmutableSortedMap v;
boolean v;
v := @this: com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound;
v := @parameter: com.google.common.collect.Range;
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: com.google.common.collect.Range complementLowerBoundWindow>;
v = virtualinvoke v.<com.google.common.collect.Range: boolean isConnected(com.google.common.collect.Range)>(v);
if v != 0 goto label;
v = staticinvoke <com.google.common.collect.ImmutableSortedMap: com.google.common.collect.ImmutableSortedMap of()>();
return v;
label:
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: com.google.common.collect.Range complementLowerBoundWindow>;
v = virtualinvoke v.<com.google.common.collect.Range: com.google.common.collect.Range intersection(com.google.common.collect.Range)>(v);
v = new com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound;
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.NavigableMap positiveRangesByLowerBound>;
specialinvoke v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: void <init>(java.util.NavigableMap,com.google.common.collect.Range)>(v, v);
return v;
}
public java.util.NavigableMap subMap(com.google.common.collect.Cut, boolean, com.google.common.collect.Cut, boolean)
{
com.google.common.collect.Cut v, v;
com.google.common.collect.Range v;
java.util.NavigableMap v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound v;
com.google.common.collect.BoundType v, v;
boolean v, v;
v := @this: com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound;
v := @parameter: com.google.common.collect.Cut;
v := @parameter: boolean;
v := @parameter: com.google.common.collect.Cut;
v := @parameter: boolean;
v = staticinvoke <com.google.common.collect.BoundType: com.google.common.collect.BoundType forBoolean(boolean)>(v);
v = staticinvoke <com.google.common.collect.BoundType: com.google.common.collect.BoundType forBoolean(boolean)>(v);
v = staticinvoke <com.google.common.collect.Range: com.google.common.collect.Range range(java.lang.Comparable,com.google.common.collect.BoundType,java.lang.Comparable,com.google.common.collect.BoundType)>(v, v, v, v);
v = specialinvoke v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.NavigableMap subMap(com.google.common.collect.Range)>(v);
return v;
}
public java.util.NavigableMap headMap(com.google.common.collect.Cut, boolean)
{
com.google.common.collect.Cut v;
com.google.common.collect.BoundType v;
com.google.common.collect.Range v;
java.util.NavigableMap v;
boolean v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound v;
v := @this: com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound;
v := @parameter: com.google.common.collect.Cut;
v := @parameter: boolean;
v = staticinvoke <com.google.common.collect.BoundType: com.google.common.collect.BoundType forBoolean(boolean)>(v);
v = staticinvoke <com.google.common.collect.Range: com.google.common.collect.Range upTo(java.lang.Comparable,com.google.common.collect.BoundType)>(v, v);
v = specialinvoke v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.NavigableMap subMap(com.google.common.collect.Range)>(v);
return v;
}
public java.util.NavigableMap tailMap(com.google.common.collect.Cut, boolean)
{
com.google.common.collect.Cut v;
com.google.common.collect.BoundType v;
com.google.common.collect.Range v;
java.util.NavigableMap v;
boolean v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound v;
v := @this: com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound;
v := @parameter: com.google.common.collect.Cut;
v := @parameter: boolean;
v = staticinvoke <com.google.common.collect.BoundType: com.google.common.collect.BoundType forBoolean(boolean)>(v);
v = staticinvoke <com.google.common.collect.Range: com.google.common.collect.Range downTo(java.lang.Comparable,com.google.common.collect.BoundType)>(v, v);
v = specialinvoke v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.NavigableMap subMap(com.google.common.collect.Range)>(v);
return v;
}
public java.util.Comparator comparator()
{
com.google.common.collect.Ordering v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound v;
v := @this: com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound;
v = staticinvoke <com.google.common.collect.Ordering: com.google.common.collect.Ordering natural()>();
return v;
}
java.util.Iterator entryIterator()
{
com.google.common.collect.PeekingIterator v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound$1 v;
boolean v, v, v, v, v;
com.google.common.collect.Cut v, v, v, v;
java.util.Iterator v;
java.util.Collection v;
com.google.common.collect.Range v, v, v, v;
java.util.NavigableMap v, v, v;
com.google.common.collect.BoundType v, v;
java.lang.Comparable v;
java.lang.Object v, v;
com.google.common.collect.UnmodifiableIterator v;
v := @this: com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound;
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: com.google.common.collect.Range complementLowerBoundWindow>;
v = virtualinvoke v.<com.google.common.collect.Range: boolean hasLowerBound()>();
if v == 0 goto label;
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.NavigableMap positiveRangesByUpperBound>;
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: com.google.common.collect.Range complementLowerBoundWindow>;
v = virtualinvoke v.<com.google.common.collect.Range: java.lang.Comparable lowerEndpoint()>();
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: com.google.common.collect.Range complementLowerBoundWindow>;
v = virtualinvoke v.<com.google.common.collect.Range: com.google.common.collect.BoundType lowerBoundType()>();
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 = interfaceinvoke v.<java.util.NavigableMap: java.util.NavigableMap tailMap(java.lang.Object,boolean)>(v, v);
v = interfaceinvoke v.<java.util.NavigableMap: java.util.Collection values()>();
goto label;
label:
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.NavigableMap positiveRangesByUpperBound>;
v = interfaceinvoke v.<java.util.NavigableMap: java.util.Collection values()>();
label:
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
v = staticinvoke <com.google.common.collect.Iterators: com.google.common.collect.PeekingIterator peekingIterator(java.util.Iterator)>(v);
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: com.google.common.collect.Range complementLowerBoundWindow>;
v = staticinvoke <com.google.common.collect.Cut: com.google.common.collect.Cut belowAll()>();
v = virtualinvoke v.<com.google.common.collect.Range: boolean contains(java.lang.Comparable)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<com.google.common.collect.PeekingIterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<com.google.common.collect.PeekingIterator: java.lang.Object peek()>();
v = v.<com.google.common.collect.Range: com.google.common.collect.Cut lowerBound>;
v = staticinvoke <com.google.common.collect.Cut: com.google.common.collect.Cut belowAll()>();
if v == v goto label;
label:
v = staticinvoke <com.google.common.collect.Cut: com.google.common.collect.Cut belowAll()>();
goto label;
label:
v = interfaceinvoke v.<com.google.common.collect.PeekingIterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<com.google.common.collect.PeekingIterator: java.lang.Object next()>();
v = v.<com.google.common.collect.Range: com.google.common.collect.Cut upperBound>;
goto label;
label:
v = staticinvoke <com.google.common.collect.Iterators: com.google.common.collect.UnmodifiableIterator emptyIterator()>();
return v;
label:
v = new com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound$1;
specialinvoke v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound$1: void <init>(com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound,com.google.common.collect.Cut,com.google.common.collect.PeekingIterator)>(v, v, v);
return v;
}
java.util.Iterator descendingEntryIterator()
{
com.google.common.collect.PeekingIterator v;
boolean v, v, v, v, v, v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound$2 v;
java.util.Collection v;
com.google.common.collect.Range v, v, v, v, v;
java.util.NavigableMap v, v, v, v, v, v;
com.google.common.collect.BoundType v, v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound v;
com.google.common.collect.Cut v, v, v, v, v, v, v, v, v;
java.util.Iterator v;
java.lang.Comparable v;
java.lang.Object v, v, v, v, v;
com.google.common.collect.UnmodifiableIterator v;
v := @this: com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound;
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: com.google.common.collect.Range complementLowerBoundWindow>;
v = virtualinvoke v.<com.google.common.collect.Range: boolean hasUpperBound()>();
if v == 0 goto label;
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: com.google.common.collect.Range complementLowerBoundWindow>;
v = virtualinvoke v.<com.google.common.collect.Range: java.lang.Comparable upperEndpoint()>();
goto label;
label:
v = staticinvoke <com.google.common.collect.Cut: com.google.common.collect.Cut aboveAll()>();
label:
v = v;
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: com.google.common.collect.Range complementLowerBoundWindow>;
v = virtualinvoke v.<com.google.common.collect.Range: boolean hasUpperBound()>();
if v == 0 goto label;
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: com.google.common.collect.Range complementLowerBoundWindow>;
v = virtualinvoke v.<com.google.common.collect.Range: com.google.common.collect.BoundType upperBoundType()>();
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 = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.NavigableMap positiveRangesByUpperBound>;
v = interfaceinvoke v.<java.util.NavigableMap: java.util.NavigableMap headMap(java.lang.Object,boolean)>(v, v);
v = interfaceinvoke v.<java.util.NavigableMap: java.util.NavigableMap descendingMap()>();
v = interfaceinvoke v.<java.util.NavigableMap: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
v = staticinvoke <com.google.common.collect.Iterators: com.google.common.collect.PeekingIterator peekingIterator(java.util.Iterator)>(v);
v = interfaceinvoke v.<com.google.common.collect.PeekingIterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<com.google.common.collect.PeekingIterator: java.lang.Object peek()>();
v = v.<com.google.common.collect.Range: com.google.common.collect.Cut upperBound>;
v = staticinvoke <com.google.common.collect.Cut: com.google.common.collect.Cut aboveAll()>();
if v != v goto label;
v = interfaceinvoke v.<com.google.common.collect.PeekingIterator: java.lang.Object next()>();
v = v.<com.google.common.collect.Range: com.google.common.collect.Cut lowerBound>;
goto label;
label:
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.NavigableMap positiveRangesByLowerBound>;
v = interfaceinvoke v.<com.google.common.collect.PeekingIterator: java.lang.Object peek()>();
v = v.<com.google.common.collect.Range: com.google.common.collect.Cut upperBound>;
interfaceinvoke v.<java.util.NavigableMap: java.lang.Object higherKey(java.lang.Object)>(v);
goto label;
label:
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: com.google.common.collect.Range complementLowerBoundWindow>;
v = staticinvoke <com.google.common.collect.Cut: com.google.common.collect.Cut belowAll()>();
v = virtualinvoke v.<com.google.common.collect.Range: boolean contains(java.lang.Comparable)>(v);
if v == 0 goto label;
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.NavigableMap positiveRangesByLowerBound>;
v = staticinvoke <com.google.common.collect.Cut: com.google.common.collect.Cut belowAll()>();
v = interfaceinvoke v.<java.util.NavigableMap: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = staticinvoke <com.google.common.collect.Iterators: com.google.common.collect.UnmodifiableIterator emptyIterator()>();
return v;
label:
v = v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.NavigableMap positiveRangesByLowerBound>;
v = staticinvoke <com.google.common.collect.Cut: com.google.common.collect.Cut belowAll()>();
v = interfaceinvoke v.<java.util.NavigableMap: java.lang.Object higherKey(java.lang.Object)>(v);
label:
v = staticinvoke <com.google.common.collect.Cut: com.google.common.collect.Cut aboveAll()>();
v = staticinvoke <com.google.common.base.MoreObjects: java.lang.Object firstNonNull(java.lang.Object,java.lang.Object)>(v, v);
v = new com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound$2;
specialinvoke v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound$2: void <init>(com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound,com.google.common.collect.Cut,com.google.common.collect.PeekingIterator)>(v, v, v);
return v;
}
public int size()
{
int v;
java.util.Iterator v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound v;
v := @this: com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound;
v = virtualinvoke v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.Iterator entryIterator()>();
v = staticinvoke <com.google.common.collect.Iterators: int size(java.util.Iterator)>(v);
return v;
}
public com.google.common.collect.Range get(java.lang.Object)
{
java.util.Map$Entry v;
java.util.NavigableMap v;
java.lang.ClassCastException v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound v;
java.lang.Object v, v, v;
boolean v, v;
v := @this: com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound;
v := @parameter: java.lang.Object;
v = v instanceof com.google.common.collect.Cut;
if v == 0 goto label;
label:
v = virtualinvoke v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: java.util.NavigableMap tailMap(com.google.common.collect.Cut,boolean)>(v, 1);
v = interfaceinvoke v.<java.util.NavigableMap: java.util.Map$Entry firstEntry()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<com.google.common.collect.Cut: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
label:
return v;
label:
v := @caughtexception;
return null;
label:
return null;
catch java.lang.ClassCastException from label to label with label;
}
public boolean containsKey(java.lang.Object)
{
com.google.common.collect.Range v;
java.lang.Object v;
boolean v;
com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound v;
v := @this: com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<com.google.common.collect.TreeRangeSet$ComplementRangesByLowerBound: com.google.common.collect.Range get(java.lang.Object)>(v);
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
}