/**
  * Recursively orders files based on dependencies.
  *
  * @param file The file to add to the list.
  */
 private void order(JavaFile file) {
   if (file.isMain()) main = file;
   if (files.contains(file)) return;
   if (file.getPublicClass().hasParent()) order(file.getPublicClass().getParent().getFile());
   files.add(file);
 }