code: public List<File> processFiles() throws Exception {
          List<File> changed = new ArrayList<>();
          for (File child : files) {
              File file = processFile(child);
              if (file != null) {
                  changed.add(file);
              }
          }
          return changed;
      }
docs: Processes the file, recursing as necessary, generating the source code.
  <p>
  The list of altered files is returned.
  
  @return the list of changed files, not null
  @throws Exception if an error occurs