in provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/IntrospectionSupport.java [250:316]
public static String toString(Object target, Class<?> stopClass, Map<String, Object> overrideFields, String ... fields) {
try {
LinkedHashMap<String, Object> map = new LinkedHashMap<>();
addFields(target, target.getClass(), stopClass, map);
if (overrideFields != null) {
for(String key : overrideFields.keySet()) {
Object value = overrideFields.get(key);
map.put(key, value);
}
}
if( fields!=null ) {
map.keySet().retainAll(Arrays.asList(fields));
}
boolean useMultiLine = false;
LinkedHashMap<String, String> props = new LinkedHashMap<>();
for (Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
String value = null;
if( entry.getValue() !=null ) {
value = entry.getValue().toString();
if( value!=null && ( value.indexOf('\n')>=0 || (key.length()+value.length())>70 ) ) {
useMultiLine = true;
}
}
props.put(key, value);
}
StringBuilder buffer = new StringBuilder();
if( useMultiLine) {
buffer.append("{\n");
boolean first = true;
for (Entry<String, String> entry : props.entrySet()) {
if (first) {
first = false;
} else {
buffer.append(",\n");
}
buffer.append(" ");
buffer.append(entry.getKey());
buffer.append(": ");
buffer.append(StringSupport.indent(entry.getValue(), 2));
}
buffer.append("\n}");
} else {
buffer.append("{");
boolean first = true;
for (Entry<String, String> entry : props.entrySet()) {
if (first) {
first = false;
} else {
buffer.append(", ");
}
buffer.append(entry.getKey());
buffer.append(": ");
String value = entry.getValue();
buffer.append(value);
}
buffer.append("}");
}
return buffer.toString();
} catch (Throwable e) {
e.printStackTrace();
return "Could not toString: " + e;
}
}