in tajo-common/src/main/java/org/apache/tajo/datum/protobuf/ProtobufJsonFormat.java [149:201]
private void printFieldValue(FieldDescriptor field, Object value, JsonGenerator generator) throws IOException {
switch (field.getType()) {
case INT32:
case INT64:
case SINT32:
case SINT64:
case SFIXED32:
case SFIXED64:
case FLOAT:
case DOUBLE:
case BOOL:
// Good old toString() does what we want for these types.
generator.print(value.toString());
break;
case UINT32:
case FIXED32:
generator.print(TextUtils.unsignedToString((Integer) value));
break;
case UINT64:
case FIXED64:
generator.print(TextUtils.unsignedToString((Long) value));
break;
case STRING:
generator.print("\"");
generator.print(escapeText((String) value));
generator.print("\"");
break;
case BYTES: {
generator.print("\"");
generator.print(escapeBytes((ByteString) value));
generator.print("\"");
break;
}
case ENUM: {
generator.print("\"");
generator.print(((EnumValueDescriptor) value).getName());
generator.print("\"");
break;
}
case MESSAGE:
case GROUP:
generator.print("{");
print((Message) value, generator);
generator.print("}");
break;
}
}