@@ -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