in application/org.openjdk.jmc.joverflow/src/main/java/org/openjdk/jmc/joverflow/heap/model/JavaValueArray.java [285:345]
public String valueAsString(boolean bigLimit) {
StringBuilder result;
byte[] value = getValue();
char elementSignature = getElementType();
int elSize = elementSize(elementSignature);
int limit = bigLimit ? 1000 : (elementSignature == 'C') ? 32 : 10;
result = new StringBuilder(limit * 8);
result.append(getElementTypeName(elementSignature)).append('[');
result.append(value.length / elSize).append(']');
for (int i = 1; i < getClazz().getNumArrayDimensions(); i++) {
result.append("[]");
}
result.append('{');
int num = 0;
for (int i = 0; i < value.length;) {
if (num > 0 && elementSignature != 'C') {
result.append(", ");
}
if (num >= limit || result.length() > 74) {
result.append(" ...");
break;
}
num++;
switch (elementSignature) {
case 'C':
result.append(charAsString(charAt(i, value)));
break;
case 'Z':
result.append(booleanAsString(booleanAt(i, value)));
break;
case 'B':
result.append(byteAsString(byteAt(i, value)));
break;
case 'S':
result.append(shortAt(i, value));
break;
case 'I':
result.append(intAt(i, value));
break;
case 'J': // long
result.append(longAt(i, value));
break;
case 'F':
result.append(floatAt(i, value));
break;
case 'D': // double
result.append(doubleAt(i, value));
break;
default: {
throw new RuntimeException("unknown primitive type?");
}
}
i += elSize;
}
result.append('}');
return StringInterner.internString(result.toString());
}