in core/src/main/java/com/datastax/oss/driver/internal/core/tracker/RequestLogFormatter.java [151:243]
protected int appendValues(
Request request,
int maxValues,
int maxValueLength,
boolean addSeparator,
StringBuilder builder) {
if (request instanceof BatchStatement) {
BatchStatement batch = (BatchStatement) request;
for (BatchableStatement<?> child : batch) {
maxValues = appendValues(child, maxValues, maxValueLength, addSeparator, builder);
if (addSeparator) {
addSeparator = false;
}
if (maxValues < 0) {
return -1;
}
}
} else if (request instanceof BoundStatement) {
BoundStatement statement = (BoundStatement) request;
ColumnDefinitions definitions = statement.getPreparedStatement().getVariableDefinitions();
List<ByteBuffer> values = statement.getValues();
assert definitions.size() == values.size();
if (definitions.size() > 0) {
if (addSeparator) {
builder.append(' ');
}
builder.append('[');
for (int i = 0; i < definitions.size(); i++) {
if (i > 0) {
builder.append(", ");
}
maxValues -= 1;
if (maxValues < 0) {
builder.append(FURTHER_VALUES_TRUNCATED);
return -1;
}
builder.append(definitions.get(i).getName().asCql(true)).append('=');
if (!statement.isSet(i)) {
builder.append("<UNSET>");
} else {
ByteBuffer value = values.get(i);
DataType type = definitions.get(i).getType();
appendValue(value, type, maxValueLength, builder);
}
}
builder.append(']');
}
} else if (request instanceof SimpleStatement) {
SimpleStatement statement = (SimpleStatement) request;
if (!statement.getPositionalValues().isEmpty()) {
if (addSeparator) {
builder.append(' ');
}
builder.append('[');
int i = 0;
for (Object value : statement.getPositionalValues()) {
if (i > 0) {
builder.append(", ");
}
maxValues -= 1;
if (maxValues < 0) {
builder.append(FURTHER_VALUES_TRUNCATED);
return -1;
}
builder.append('v').append(i).append('=');
appendValue(value, maxValueLength, builder);
i += 1;
}
builder.append(']');
} else if (!statement.getNamedValues().isEmpty()) {
if (addSeparator) {
builder.append(' ');
}
builder.append('[');
int i = 0;
for (Map.Entry<CqlIdentifier, Object> entry : statement.getNamedValues().entrySet()) {
if (i > 0) {
builder.append(", ");
}
maxValues -= 1;
if (maxValues < 0) {
builder.append(FURTHER_VALUES_TRUNCATED);
return -1;
}
builder.append(entry.getKey().asCql(true)).append('=');
appendValue(entry.getValue(), maxValueLength, builder);
i += 1;
}
builder.append(']');
}
}
return maxValues;
}