1  import java.io.*;
  2  
  3  public class DirectoryNode implements FileSystemNode
  4  {
  5     public DirectoryNode(File directory)
  6     {
  7        this.directory = directory;
  8     }
  9  
 10     public void accept(FileSystemVisitor v)
 11     {
 12        v.visitDirectoryNode(this);
 13     }
 14  
 15     public File getDirectory() { return directory; }
 16  
 17     public FileSystemNode[] getChildren()
 18     {
 19        File[] files = directory.listFiles();
 20        FileSystemNode[] children = new FileSystemNode[files.length];
 21        for (int i = 0; i < files.length; i++)
 22        {
 23           File f = files[i];
 24           if (f.isDirectory())
 25              children[i] = new DirectoryNode(f);
 26           else
 27              children[i] = new FileNode(f);
 28        }
 29        return children;
 30     }
 31  
 32     private File directory;
 33  }