Skip to content

Commit 8484ce6

Browse files
Get rid of String buffer
1 parent a3893fb commit 8484ce6

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

src/main/java/io/github/computerdaddyguy/jfiletreeprettyprinter/renderer/DefaultTreeEntryRenderer.java

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -26,60 +26,60 @@ public DefaultTreeEntryRenderer(RenderingOptions options) {
2626

2727
@Override
2828
public String renderTree(TreeEntry entry) {
29-
var depth = Depth.createNewEmpty();
30-
var buff = new StringBuilder();
31-
renderTree(entry, depth, buff);
32-
return buff.toString();
29+
return renderTree(entry, Depth.createNewEmpty());
3330
}
3431

35-
public void renderTree(TreeEntry entry, Depth depth, StringBuilder buff) {
36-
switch (entry) {
37-
case TreeEntry.DirectoryEntry dirEntry -> renderDirectory(buff, depth, dirEntry, List.of(dirEntry.getDir()));
38-
case TreeEntry.FileEntry fileEntry -> renderFile(buff, depth, fileEntry);
39-
case TreeEntry.SkippedChildrenEntry skippedChildrenEntry -> renderSkippedChildrenEntry(buff, depth, skippedChildrenEntry);
40-
case TreeEntry.MaxDepthReachEntry maxDepthReachEntry -> renderMaxDepthReachEntry(buff, depth, maxDepthReachEntry);
41-
}
32+
private String renderTree(TreeEntry entry, Depth depth) {
33+
return switch (entry) {
34+
case TreeEntry.DirectoryEntry dirEntry -> renderDirectory(depth, dirEntry, List.of(dirEntry.getDir()));
35+
case TreeEntry.FileEntry fileEntry -> renderFile(depth, fileEntry);
36+
case TreeEntry.SkippedChildrenEntry skippedChildrenEntry -> renderSkippedChildrenEntry(depth, skippedChildrenEntry);
37+
case TreeEntry.MaxDepthReachEntry maxDepthReachEntry -> renderMaxDepthReachEntry(depth, maxDepthReachEntry);
38+
};
4239
}
4340

44-
private void renderDirectory(StringBuilder buff, Depth depth, DirectoryEntry dirEntry, List<Path> compactPaths) {
41+
private String renderDirectory(Depth depth, DirectoryEntry dirEntry, List<Path> compactPaths) {
4542

4643
if (options.areCompactDirectoriesUsed()
4744
&& dirEntry.getEntries().size() == 1
4845
&& dirEntry.getEntries().get(0) instanceof DirectoryEntry childDirEntry) {
4946
var newCompactPaths = new ArrayList<>(compactPaths);
5047
newCompactPaths.add(childDirEntry.getDir());
51-
renderDirectory(buff, depth, childDirEntry, newCompactPaths);
52-
return;
48+
return renderDirectory(depth, childDirEntry, newCompactPaths);
5349
}
5450

55-
buff.append(lineRenderer.renderDirectoryBegin(depth, dirEntry, compactPaths));
51+
var line = lineRenderer.renderDirectoryBegin(depth, dirEntry, compactPaths);
5652

5753
var childIt = dirEntry.getEntries().iterator();
5854

5955
if (childIt.hasNext()) {
60-
buff.append('\n');
56+
line += "\n";
6157
}
6258

59+
var childLines = "";
60+
6361
while (childIt.hasNext()) {
6462
var childEntry = childIt.next();
6563
var childDepth = depth.append(childIt.hasNext() ? DepthSymbol.NON_LAST_FILE : DepthSymbol.LAST_FILE);
66-
renderTree(childEntry, childDepth, buff);
64+
childLines += renderTree(childEntry, childDepth);
6765
if (childIt.hasNext()) {
68-
buff.append('\n');
66+
childLines += "\n";
6967
}
7068
}
69+
70+
return line + childLines;
7171
}
7272

73-
private void renderFile(StringBuilder buff, Depth depth, FileEntry fileEntry) {
74-
buff.append(lineRenderer.renderFile(depth, fileEntry));
73+
private String renderFile(Depth depth, FileEntry fileEntry) {
74+
return lineRenderer.renderFile(depth, fileEntry);
7575
}
7676

77-
private void renderSkippedChildrenEntry(StringBuilder buff, Depth depth, SkippedChildrenEntry skippedChildrenEntry) {
78-
buff.append(lineRenderer.renderChildLimitReached(depth, skippedChildrenEntry));
77+
private String renderSkippedChildrenEntry(Depth depth, SkippedChildrenEntry skippedChildrenEntry) {
78+
return lineRenderer.renderChildLimitReached(depth, skippedChildrenEntry);
7979
}
8080

81-
private void renderMaxDepthReachEntry(StringBuilder buff, Depth depth, MaxDepthReachEntry maxDepthReachEntry) {
82-
buff.append(lineRenderer.renderMaxDepthReached(depth, maxDepthReachEntry));
81+
private String renderMaxDepthReachEntry(Depth depth, MaxDepthReachEntry maxDepthReachEntry) {
82+
return lineRenderer.renderMaxDepthReached(depth, maxDepthReachEntry);
8383
}
8484

8585
}

0 commit comments

Comments
 (0)