table)
+ {
+ return table.rowMap();
+ }
+
+ @Override
+ public JavaType getInputType(TypeFactory typeFactory)
+ {
+ return tableType;
+ }
+
+ @Override
+ public JavaType getOutputType(TypeFactory typeFactory)
+ {
+ return typeFactory.constructRawMapType(Map.class);
+ }
+}
diff --git a/src/test/java/com/fasterxml/jackson/datatype/guava/TestTables.java b/src/test/java/com/fasterxml/jackson/datatype/guava/TestTables.java
new file mode 100644
index 0000000..b9d23a5
--- /dev/null
+++ b/src/test/java/com/fasterxml/jackson/datatype/guava/TestTables.java
@@ -0,0 +1,220 @@
+package com.fasterxml.jackson.datatype.guava;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.base.Supplier;
+import com.google.common.collect.ArrayTable;
+import com.google.common.collect.ForwardingTable;
+import com.google.common.collect.HashBasedTable;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.ImmutableTable;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Table;
+import com.google.common.collect.Tables;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * Unit test to verify serialization and deserialization of {@link Table}.
+ *
+ * @author Michael Hixson
+ */
+public final class TestTables extends ModuleTestBase
+{
+ private final ObjectMapper MAPPER = mapperWithModule();
+
+ /**
+ * Tests that we can convert a {@link Table} instance (the interface, not one
+ * of the concrete implementations provided by Guava) to and from JSON.
+ *
+ * Serialization must preserve cell ordering.
+ */
+ public void testDefaultTables() throws Exception
+ {
+ Table original = Tables.newCustomTable(
+ new LinkedHashMap>(),
+ new Supplier