final class com.google.common.collect.SparseImmutableTable extends com.google.common.collect.RegularImmutableTable
{
static final com.google.common.collect.ImmutableTable EMPTY;
private final com.google.common.collect.ImmutableMap rowMap;
private final com.google.common.collect.ImmutableMap columnMap;
private final int[] cellRowIndices;
private final int[] cellColumnInRowIndices;
void <init>(com.google.common.collect.ImmutableList, com.google.common.collect.ImmutableSet, com.google.common.collect.ImmutableSet)
{
com.google.common.collect.SparseImmutableTable v;
int[] v, v;
boolean v, v, v, v;
com.google.common.collect.ImmutableSet v, v;
com.google.common.collect.ImmutableMap v, v, v, v, v;
java.util.Set v, v;
java.util.LinkedHashMap v, v, v, v;
com.google.common.collect.ImmutableList v;
int v, v, v, v, v, v, v, v;
java.util.Iterator v, v;
com.google.common.collect.ImmutableMap$Builder v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
com.google.common.collect.UnmodifiableIterator v, v;
v := @this: com.google.common.collect.SparseImmutableTable;
v := @parameter: com.google.common.collect.ImmutableList;
v := @parameter: com.google.common.collect.ImmutableSet;
v := @parameter: com.google.common.collect.ImmutableSet;
specialinvoke v.<com.google.common.collect.RegularImmutableTable: void <init>()>();
v = staticinvoke <com.google.common.collect.Maps: com.google.common.collect.ImmutableMap indexMap(java.util.Collection)>(v);
v = staticinvoke <com.google.common.collect.Maps: java.util.LinkedHashMap newLinkedHashMap()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableSet: com.google.common.collect.UnmodifiableIterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = staticinvoke <com.google.common.collect.Maps: java.util.LinkedHashMap newLinkedHashMap()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableSet: com.google.common.collect.UnmodifiableIterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = virtualinvoke v.<com.google.common.collect.ImmutableList: int size()>();
v = newarray (int)[v];
v = virtualinvoke v.<com.google.common.collect.ImmutableList: int size()>();
v = newarray (int)[v];
v = 0;
label:
v = virtualinvoke v.<com.google.common.collect.ImmutableList: int size()>();
if v >= v goto label;
v = virtualinvoke v.<com.google.common.collect.ImmutableList: java.lang.Object get(int)>(v);
v = interfaceinvoke v.<com.google.common.collect.Table$Cell: java.lang.Object getRowKey()>();
v = interfaceinvoke v.<com.google.common.collect.Table$Cell: java.lang.Object getColumnKey()>();
v = interfaceinvoke v.<com.google.common.collect.Table$Cell: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v[v] = v;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.Map: int size()>();
v[v] = v;
v = interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
virtualinvoke v.<com.google.common.collect.SparseImmutableTable: void checkNoDuplicate(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v, v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v + 1;
goto label;
label:
v.<com.google.common.collect.SparseImmutableTable: int[] cellRowIndices> = v;
v.<com.google.common.collect.SparseImmutableTable: int[] cellColumnInRowIndices> = v;
v = new com.google.common.collect.ImmutableMap$Builder;
v = interfaceinvoke v.<java.util.Map: int size()>();
specialinvoke v.<com.google.common.collect.ImmutableMap$Builder: void <init>(int)>(v);
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <com.google.common.collect.ImmutableMap: com.google.common.collect.ImmutableMap copyOf(java.util.Map)>(v);
virtualinvoke v.<com.google.common.collect.ImmutableMap$Builder: com.google.common.collect.ImmutableMap$Builder put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = virtualinvoke v.<com.google.common.collect.ImmutableMap$Builder: com.google.common.collect.ImmutableMap build()>();
v.<com.google.common.collect.SparseImmutableTable: com.google.common.collect.ImmutableMap rowMap> = v;
v = new com.google.common.collect.ImmutableMap$Builder;
v = interfaceinvoke v.<java.util.Map: int size()>();
specialinvoke v.<com.google.common.collect.ImmutableMap$Builder: void <init>(int)>(v);
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <com.google.common.collect.ImmutableMap: com.google.common.collect.ImmutableMap copyOf(java.util.Map)>(v);
virtualinvoke v.<com.google.common.collect.ImmutableMap$Builder: com.google.common.collect.ImmutableMap$Builder put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = virtualinvoke v.<com.google.common.collect.ImmutableMap$Builder: com.google.common.collect.ImmutableMap build()>();
v.<com.google.common.collect.SparseImmutableTable: com.google.common.collect.ImmutableMap columnMap> = v;
return;
}
public com.google.common.collect.ImmutableMap columnMap()
{
com.google.common.collect.SparseImmutableTable v;
com.google.common.collect.ImmutableMap v, v;
v := @this: com.google.common.collect.SparseImmutableTable;
v = v.<com.google.common.collect.SparseImmutableTable: com.google.common.collect.ImmutableMap columnMap>;
v = staticinvoke <com.google.common.collect.ImmutableMap: com.google.common.collect.ImmutableMap copyOf(java.util.Map)>(v);
return v;
}
public com.google.common.collect.ImmutableMap rowMap()
{
com.google.common.collect.SparseImmutableTable v;
com.google.common.collect.ImmutableMap v, v;
v := @this: com.google.common.collect.SparseImmutableTable;
v = v.<com.google.common.collect.SparseImmutableTable: com.google.common.collect.ImmutableMap rowMap>;
v = staticinvoke <com.google.common.collect.ImmutableMap: com.google.common.collect.ImmutableMap copyOf(java.util.Map)>(v);
return v;
}
public int size()
{
int v;
com.google.common.collect.SparseImmutableTable v;
int[] v;
v := @this: com.google.common.collect.SparseImmutableTable;
v = v.<com.google.common.collect.SparseImmutableTable: int[] cellRowIndices>;
v = lengthof v;
return v;
}
com.google.common.collect.Table$Cell getCell(int)
{
com.google.common.collect.ImmutableList v, v;
com.google.common.collect.SparseImmutableTable v;
int[] v, v;
int v, v, v;
com.google.common.collect.Table$Cell v;
com.google.common.collect.ImmutableSet v, v;
com.google.common.collect.ImmutableMap v;
java.lang.Object v, v, v, v, v, v;
v := @this: com.google.common.collect.SparseImmutableTable;
v := @parameter: int;
v = v.<com.google.common.collect.SparseImmutableTable: int[] cellRowIndices>;
v = v[v];
v = v.<com.google.common.collect.SparseImmutableTable: com.google.common.collect.ImmutableMap rowMap>;
v = virtualinvoke v.<com.google.common.collect.ImmutableMap: com.google.common.collect.ImmutableSet entrySet()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableSet: com.google.common.collect.ImmutableList asList()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableList: java.lang.Object get(int)>(v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<com.google.common.collect.SparseImmutableTable: int[] cellColumnInRowIndices>;
v = v[v];
v = virtualinvoke v.<com.google.common.collect.ImmutableMap: com.google.common.collect.ImmutableSet entrySet()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableSet: com.google.common.collect.ImmutableList asList()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableList: java.lang.Object get(int)>(v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <com.google.common.collect.SparseImmutableTable: com.google.common.collect.Table$Cell cellOf(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
return v;
}
java.lang.Object getValue(int)
{
com.google.common.collect.ImmutableMap v;
com.google.common.collect.ImmutableCollection v, v;
com.google.common.collect.ImmutableList v, v;
com.google.common.collect.SparseImmutableTable v;
int[] v, v;
int v, v, v;
java.lang.Object v, v;
v := @this: com.google.common.collect.SparseImmutableTable;
v := @parameter: int;
v = v.<com.google.common.collect.SparseImmutableTable: int[] cellRowIndices>;
v = v[v];
v = v.<com.google.common.collect.SparseImmutableTable: com.google.common.collect.ImmutableMap rowMap>;
v = virtualinvoke v.<com.google.common.collect.ImmutableMap: com.google.common.collect.ImmutableCollection values()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableCollection: com.google.common.collect.ImmutableList asList()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableList: java.lang.Object get(int)>(v);
v = v.<com.google.common.collect.SparseImmutableTable: int[] cellColumnInRowIndices>;
v = v[v];
v = virtualinvoke v.<com.google.common.collect.ImmutableMap: com.google.common.collect.ImmutableCollection values()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableCollection: com.google.common.collect.ImmutableList asList()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableList: java.lang.Object get(int)>(v);
return v;
}
com.google.common.collect.ImmutableTable$SerializedForm createSerializedForm()
{
com.google.common.collect.SparseImmutableTable v;
int[] v, v;
int v, v, v, v;
boolean v;
com.google.common.collect.ImmutableSet v, v, v;
com.google.common.collect.ImmutableMap v;
com.google.common.collect.ImmutableTable$SerializedForm v;
java.lang.Object v, v, v, v;
com.google.common.collect.UnmodifiableIterator v;
v := @this: com.google.common.collect.SparseImmutableTable;
v = virtualinvoke v.<com.google.common.collect.SparseImmutableTable: com.google.common.collect.ImmutableSet columnKeySet()>();
v = staticinvoke <com.google.common.collect.Maps: com.google.common.collect.ImmutableMap indexMap(java.util.Collection)>(v);
v = virtualinvoke v.<com.google.common.collect.SparseImmutableTable: com.google.common.collect.ImmutableSet cellSet()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableSet: int size()>();
v = newarray (int)[v];
v = 0;
v = virtualinvoke v.<com.google.common.collect.SparseImmutableTable: com.google.common.collect.ImmutableSet cellSet()>();
v = virtualinvoke v.<com.google.common.collect.ImmutableSet: com.google.common.collect.UnmodifiableIterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v;
v = v + 1;
v = interfaceinvoke v.<com.google.common.collect.Table$Cell: java.lang.Object getColumnKey()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v[v] = v;
goto label;
label:
v = v.<com.google.common.collect.SparseImmutableTable: int[] cellRowIndices>;
v = staticinvoke <com.google.common.collect.ImmutableTable$SerializedForm: com.google.common.collect.ImmutableTable$SerializedForm create(com.google.common.collect.ImmutableTable,int[],int[])>(v, v, v);
return v;
}
static void <clinit>()
{
com.google.common.collect.ImmutableSet v, v;
com.google.common.collect.ImmutableList v;
com.google.common.collect.SparseImmutableTable v;
v = new com.google.common.collect.SparseImmutableTable;
v = staticinvoke <com.google.common.collect.ImmutableList: com.google.common.collect.ImmutableList of()>();
v = staticinvoke <com.google.common.collect.ImmutableSet: com.google.common.collect.ImmutableSet of()>();
v = staticinvoke <com.google.common.collect.ImmutableSet: com.google.common.collect.ImmutableSet of()>();
specialinvoke v.<com.google.common.collect.SparseImmutableTable: void <init>(com.google.common.collect.ImmutableList,com.google.common.collect.ImmutableSet,com.google.common.collect.ImmutableSet)>(v, v, v);
<com.google.common.collect.SparseImmutableTable: com.google.common.collect.ImmutableTable EMPTY> = v;
return;
}
}