Repository: cassandra Updated Branches: refs/heads/trunk 1aeeff47a -> 41c11262a
Make ResultSetBuilder.rowToJson public Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/41c11262 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/41c11262 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/41c11262 Branch: refs/heads/trunk Commit: 41c11262a41151e6ebcd9fbe94d30619adfa1a24 Parents: 1aeeff4 Author: Bereng <berenguerbl...@gmail.com> Authored: Thu Apr 7 17:52:16 2016 +0100 Committer: Aleksey Yeschenko <alek...@apache.org> Committed: Mon Apr 11 18:30:35 2016 +0100 ---------------------------------------------------------------------- .../cassandra/cql3/selection/Selection.java | 54 ++++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/41c11262/src/java/org/apache/cassandra/cql3/selection/Selection.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/selection/Selection.java b/src/java/org/apache/cassandra/cql3/selection/Selection.java index e0e1bd8..3bee743 100644 --- a/src/java/org/apache/cassandra/cql3/selection/Selection.java +++ b/src/java/org/apache/cassandra/cql3/selection/Selection.java @@ -258,6 +258,32 @@ public abstract class Selection .toString(); } + public static List<ByteBuffer> rowToJson(List<ByteBuffer> row, int protocolVersion, ResultSet.ResultMetadata metadata) + { + StringBuilder sb = new StringBuilder("{"); + for (int i = 0; i < metadata.names.size(); i++) + { + if (i > 0) + sb.append(", "); + + ColumnSpecification spec = metadata.names.get(i); + String columnName = spec.name.toString(); + if (!columnName.equals(columnName.toLowerCase(Locale.US))) + columnName = "\"" + columnName + "\""; + + ByteBuffer buffer = row.get(i); + sb.append('"'); + sb.append(Json.quoteAsJsonString(columnName)); + sb.append("\": "); + if (buffer == null) + sb.append("null"); + else + sb.append(spec.type.toJSONString(buffer, protocolVersion)); + } + sb.append("}"); + return Collections.singletonList(UTF8Type.instance.getSerializer().serialize(sb.toString())); + } + public class ResultSetBuilder { private final ResultSet resultSet; @@ -367,35 +393,9 @@ public abstract class Selection private List<ByteBuffer> getOutputRow(int protocolVersion) { List<ByteBuffer> outputRow = selectors.getOutputRow(protocolVersion); - return isJson ? rowToJson(outputRow, protocolVersion) + return isJson ? rowToJson(outputRow, protocolVersion, metadata) : outputRow; } - - private List<ByteBuffer> rowToJson(List<ByteBuffer> row, int protocolVersion) - { - StringBuilder sb = new StringBuilder("{"); - for (int i = 0; i < metadata.names.size(); i++) - { - if (i > 0) - sb.append(", "); - - ColumnSpecification spec = metadata.names.get(i); - String columnName = spec.name.toString(); - if (!columnName.equals(columnName.toLowerCase(Locale.US))) - columnName = "\"" + columnName + "\""; - - ByteBuffer buffer = row.get(i); - sb.append('"'); - sb.append(Json.quoteAsJsonString(columnName)); - sb.append("\": "); - if (buffer == null) - sb.append("null"); - else - sb.append(spec.type.toJSONString(buffer, protocolVersion)); - } - sb.append("}"); - return Collections.singletonList(UTF8Type.instance.getSerializer().serialize(sb.toString())); - } } private static interface Selectors