public Object visitBinary(final BinaryExpression binaryExpression, final BinaryOperator operator,
final Object leftSide, final Object rightSide) {
try {
StringWriter writer = new StringWriter();
JsonStreamWriter jsonStreamWriter = new JsonStreamWriter(writer);
jsonStreamWriter.beginObject().namedStringValueRaw("nodeType", binaryExpression.getKind().toString()).separator()
.namedStringValue("operator", operator.toUriLiteral()).separator().namedStringValueRaw("type",
getType(binaryExpression)).separator().name("left").unquotedValue(leftSide.toString()).separator().name(
"right").unquotedValue(rightSide.toString()).endObject();
writer.flush();
return writer.toString();