AbstractNodeItem: refactor formatting name by depth

Remove duplicate string literals.
This commit is contained in:
Paul Campbell 2016-08-22 09:01:34 +01:00
parent 6253a3226f
commit 3d94eaeb32

View file

@ -132,17 +132,18 @@ abstract class AbstractNodeItem<T> implements Node<T> {
final StringBuilder sb = new StringBuilder();
final String unnamed = "(unnamed)";
if (isNamed()) {
sb.append(String.format("[%1$" + (depth + name.length()) + "s]\n",
name));
sb.append(formatByDepth(name, depth));
} else if (!children.isEmpty()) {
sb.append(
String.format("[%1$" + (depth + unnamed.length()) + "s]\n",
unnamed));
sb.append(formatByDepth(unnamed, depth));
}
getChildren().forEach(c -> sb.append(c.drawTree(depth + 1)));
return sb.toString();
}
private String formatByDepth(final String value, final int depth) {
return String.format("[%1$" + (depth + value.length()) + "s]\n", value);
}
@Override
public boolean isNamed() {
return name != null && name.length() > 0;