/**
   * Performs actions before a LaTeX document is built; namely:
   *
   * <ul>
   *   <li>memorizing which files are present in the temporary and build source folder, and
   *   <li>moving temporary files from their folder into the build folder, so the build process has
   *       access to them.
   * </ul>
   *
   * @param monitor progress monitor
   * @throws CoreException if an error occurs
   */
  public void performBeforeBuild(IProgressMonitor monitor) throws CoreException {
    // capture current state of build and temp folder
    tracking.refreshSnapshots(sourceDir, monitor);

    // use temp files from previous build
    restoreTempFiles(monitor);
  }