diff options
author | Jisi Liu <jisi.liu@gmail.com> | 2015-02-19 13:56:02 -0800 |
---|---|---|
committer | Jisi Liu <jisi.liu@gmail.com> | 2015-02-19 14:41:14 -0800 |
commit | f0e08fd4e4c33c87bbfb309b5baa4d6e976ddcc7 (patch) | |
tree | 34883820fef99ca64ec9ec42ce753f4ffdb56cea /javanano/src/main/java | |
parent | 709164e764fcf0e4be79e721dafeda4544f27b40 (diff) | |
download | protobuf-f0e08fd4e4c33c87bbfb309b5baa4d6e976ddcc7.tar.gz protobuf-f0e08fd4e4c33c87bbfb309b5baa4d6e976ddcc7.tar.bz2 protobuf-f0e08fd4e4c33c87bbfb309b5baa4d6e976ddcc7.zip |
Support maps in NanoPrinter.
Diffstat (limited to 'javanano/src/main/java')
-rw-r--r-- | javanano/src/main/java/com/google/protobuf/nano/MessageNanoPrinter.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/javanano/src/main/java/com/google/protobuf/nano/MessageNanoPrinter.java b/javanano/src/main/java/com/google/protobuf/nano/MessageNanoPrinter.java index dd43cdbb..c4b2ad3d 100644 --- a/javanano/src/main/java/com/google/protobuf/nano/MessageNanoPrinter.java +++ b/javanano/src/main/java/com/google/protobuf/nano/MessageNanoPrinter.java @@ -35,6 +35,7 @@ import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; +import java.util.Map; /** * Static helper methods for printing nano protos. @@ -170,6 +171,19 @@ public final class MessageNanoPrinter { indentBuf.setLength(origIndentBufLength); buf.append(indentBuf).append(">\n"); } + } else if (object instanceof Map) { + Map<?,?> map = (Map<?,?>) object; + identifier = deCamelCaseify(identifier); + + for (Map.Entry<?,?> entry : map.entrySet()) { + buf.append(indentBuf).append(identifier).append(" <\n"); + int origIndentBufLength = indentBuf.length(); + indentBuf.append(INDENT); + print("key", entry.getKey(), indentBuf, buf); + print("value", entry.getValue(), indentBuf, buf); + indentBuf.setLength(origIndentBufLength); + buf.append(indentBuf).append(">\n"); + } } else { // Non-null primitive value identifier = deCamelCaseify(identifier); |