Repository: thrift Updated Branches: refs/heads/master 8f27189df -> a242c28ba
THRIFT-227 Pretty print binary collections This closes #441 commit 5da68694fec6a51e97f5a75823babb1074e32eb2 Author: Roshan George <[email protected]> Date: 2015-04-13T03:40:26Z Project: http://git-wip-us.apache.org/repos/asf/thrift/repo Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/a242c28b Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/a242c28b Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/a242c28b Branch: refs/heads/master Commit: a242c28ba16012ba480c5fbac88bedceaf3aed57 Parents: 8f27189 Author: Roger Meier <[email protected]> Authored: Tue Apr 14 22:14:41 2015 +0200 Committer: Roger Meier <[email protected]> Committed: Tue Apr 14 22:14:41 2015 +0200 ---------------------------------------------------------------------- compiler/cpp/src/generate/t_java_generator.cc | 10 ++++++++++ lib/java/src/org/apache/thrift/TBaseHelper.java | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/thrift/blob/a242c28b/compiler/cpp/src/generate/t_java_generator.cc ---------------------------------------------------------------------- diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc index 9ca1567..3d8da1e 100644 --- a/compiler/cpp/src/generate/t_java_generator.cc +++ b/compiler/cpp/src/generate/t_java_generator.cc @@ -2423,6 +2423,16 @@ void t_java_generator::generate_java_struct_tostring(ofstream& out, t_struct* ts if (field->get_type()->is_base_type() && ((t_base_type*)(field->get_type()))->is_binary()) { indent(out) << "org.apache.thrift.TBaseHelper.toString(this." << field->get_name() << ", sb);" << endl; + } else if ((field->get_type()->is_set()) && + (((t_set*) field->get_type())->get_elem_type()->is_base_type()) && + (((t_base_type*) ((t_set*) field->get_type())->get_elem_type())->is_binary())) { + indent(out) << "org.apache.thrift.TBaseHelper.toString(this." << field->get_name() << ", sb);" + << endl; + } else if ((field->get_type()->is_list()) && + (((t_list*) field->get_type())->get_elem_type()->is_base_type()) && + (((t_base_type*) ((t_list*) field->get_type())->get_elem_type())->is_binary())) { + indent(out) << "org.apache.thrift.TBaseHelper.toString(this." << field->get_name() << ", sb);" + << endl; } else { indent(out) << "sb.append(this." << (*f_iter)->get_name() << ");" << endl; } http://git-wip-us.apache.org/repos/asf/thrift/blob/a242c28b/lib/java/src/org/apache/thrift/TBaseHelper.java ---------------------------------------------------------------------- diff --git a/lib/java/src/org/apache/thrift/TBaseHelper.java b/lib/java/src/org/apache/thrift/TBaseHelper.java index 4f02b06..5517536 100644 --- a/lib/java/src/org/apache/thrift/TBaseHelper.java +++ b/lib/java/src/org/apache/thrift/TBaseHelper.java @@ -28,6 +28,7 @@ import java.util.SortedMap; import java.util.SortedSet; import java.util.TreeMap; import java.util.TreeSet; +import java.util.Collection; public final class TBaseHelper { @@ -221,6 +222,25 @@ public final class TBaseHelper { } } + public static void toString(Collection<ByteBuffer> bbs, StringBuilder sb) { + Iterator<ByteBuffer> it = bbs.iterator(); + if (!it.hasNext()) { + sb.append("[]"); + } else { + sb.append("["); + while (true) { + ByteBuffer bb = it.next(); + org.apache.thrift.TBaseHelper.toString(bb, sb); + if (!it.hasNext()) { + sb.append("]"); + return; + } else { + sb.append(", "); + } + } + } + } + public static void toString(ByteBuffer bb, StringBuilder sb) { byte[] buf = bb.array();
