@Override public Map<C, Map<R, V>> rowMap() { return original.columnMap(); }
@Override public Map<C, Map<R, V2>> columnMap() { Function<Map<R, V1>, Map<R, V2>> columnFunction = new Function<Map<R, V1>, Map<R, V2>>() { @Override public Map<R, V2> apply(Map<R, V1> column) { return Maps.transformValues(column, function); } }; return Maps.transformValues(fromTable.columnMap(), columnFunction); } }
@Override public Map<C, Map<R, V>> rowMap() { return original.columnMap(); }
@Override public Map<C, Map<R, V>> rowMap() { return original.columnMap(); }
@Override public synchronized Map<C, Map<R, V>> columnMap() { return wrapped.columnMap(); } }
@Override public Map<C, Map<R, V>> columnMap() { return delegate().columnMap(); }
@Override public Map<C, Map<R, V2>> columnMap() { Function<Map<R, V1>, Map<R, V2>> columnFunction = new Function<Map<R, V1>, Map<R, V2>>() { @Override public Map<R, V2> apply(Map<R, V1> column) { return Maps.transformValues(column, function); } }; return Maps.transformValues(fromTable.columnMap(), columnFunction); } }
@Override public Map<C, Map<R, V2>> columnMap() { Function<Map<R, V1>, Map<R, V2>> columnFunction = new Function<Map<R, V1>, Map<R, V2>>() { @Override public Map<R, V2> apply(Map<R, V1> column) { return Maps.transformValues(column, function); } }; return Maps.transformValues(fromTable.columnMap(), columnFunction); } }
@Override public Map<C, Map<R, V>> columnMap() { return delegate().columnMap(); }
@Override public Map<C, Map<R, V>> columnMap() { synchronized (mutex) { return map( Maps.transformValues( delegate().columnMap(), new com.google.common.base.Function<Map<R, V>, Map<R, V>>() { @Override public Map<R, V> apply(Map<R, V> t) { return map(t, mutex); } }), mutex); } }
@Override public Map<C, Map<R, V>> columnMap() { assertTrue(Thread.holdsLock(mutex)); return delegate.columnMap(); }
@Override public Map<C, Map<R, V>> columnMap() { synchronized (mutex) { return map( Maps.transformValues( delegate().columnMap(), new com.google.common.base.Function<Map<R, V>, Map<R, V>>() { @Override public Map<R, V> apply(Map<R, V> t) { return map(t, mutex); } }), mutex); } }
@Override public Map<C, Map<R, V>> columnMap() { return delegate().columnMap(); }
@Override protected Map<String, Map<Integer, Character>> makeEmptyMap() { return makeTable().columnMap(); } }
@Override protected Map<String, Map<Integer, Character>> makePopulatedMap() { Table<Integer, String, Character> table = makeTable(); table.put(1, "foo", 'a'); table.put(1, "bar", 'b'); table.put(3, "foo", 'c'); return table.columnMap(); }
private JsonArray tableToJson(Table<Integer, Integer, Object> table, Gson gson) { JsonArray jsonTable = new JsonArray(); table.rowMap().forEach((rk, r) -> { if (rk == 0) { return; } JsonObject jsonRow = new JsonObject(); table.columnMap().forEach((ck, c) -> { String key = String.valueOf(table.get(0, ck)).toLowerCase(); Object value = table.get(rk, ck); jsonRow.add(key, gson.toJsonTree(value)); }); jsonTable.add(jsonRow); }); JsonObject jsonRoot = new JsonObject(); if (file != null) { jsonRoot.add("file", new JsonPrimitive(file.toString())); } return jsonTable; } }
@Override protected Map<String, Map<Integer, Character>> makePopulatedMap() { Table<Integer, String, String> table = HashBasedTable.create(); table.put(1, "foo", "apple"); table.put(1, "bar", "banana"); table.put(3, "foo", "cat"); return Tables.transformValues(table, FIRST_CHARACTER).columnMap(); } }
@Override protected Map<String, Map<Integer, Character>> makePopulatedMap() { Table<Integer, String, Character> table = HashBasedTable.create(); table.put(1, "foo", 'a'); table.put(1, "bar", 'b'); table.put(3, "foo", 'c'); return Tables.unmodifiableTable(table).columnMap(); } }
@Override public Map<C, Map<R, V>> columnMap() { synchronized (mutex) { return map( Maps.transformValues( delegate().columnMap(), new com.google.common.base.Function<Map<R, V>, Map<R, V>>() { @Override public Map<R, V> apply(Map<R, V> t) { return map(t, mutex); } }), mutex); } }
public void testTransposedViews() { Table<Integer, String, Character> original = HashBasedTable.create(); Table<String, Integer, Character> transpose = Tables.transpose(original); original.put(1, "foo", 'a'); assertSame(original.columnKeySet(), transpose.rowKeySet()); assertSame(original.rowKeySet(), transpose.columnKeySet()); assertSame(original.columnMap(), transpose.rowMap()); assertSame(original.rowMap(), transpose.columnMap()); assertSame(original.values(), transpose.values()); assertEquals(original.row(1), transpose.column(1)); assertEquals(original.row(2), transpose.column(2)); assertEquals(original.column("foo"), transpose.row("foo")); assertEquals(original.column("bar"), transpose.row("bar")); } }