public void visit(final File inputFile, final File outputFile) throws VisitorException {
    if (inputFile.isFile()) {
      if (outputFile.isFile()) {
        if (outputFile.lastModified() > inputFile.lastModified() && !shouldOverwrite(inputFile, outputFile)) {
          return;
        }
      }
      handleFile(inputFile, outputFile);
    } else {
      throw new VisitorException("Input file does not exist " + inputFile);
    }
  }