1 import java.io.*;
2
3 public class PrintVisitor implements FileSystemVisitor
4 {
5 public void visitFileNode(FileNode node)
6 {
7 for (int i = 0; i < level; i++) System.out.print(" ");
8 System.out.println(node.getFile().getName());
9 }
10
11 public void visitDirectoryNode(DirectoryNode node)
12 {
13 for (int i = 0; i < level; i++) System.out.print(" ");
14 System.out.println(node.getDirectory().getName());
15 level++;
16 for (FileSystemNode c : node.getChildren())
17 c.accept(this);
18 level--;
19 }
20
21 private int level = 0;
22 }