19 package org.sleuthkit.autopsy.casemodule;
 
   21 import java.util.ArrayList;
 
   22 import java.util.List;
 
   23 import org.openide.util.NbBundle;
 
   38 class AddLocalFilesTask 
implements Runnable {
 
   40     private final String deviceId;
 
   41     private final String rootVirtualDirectoryName;
 
   42     private final List<String> localFilePaths;
 
   43     private final DataSourceProcessorProgressMonitor progress;
 
   44     private final DataSourceProcessorCallback callback;
 
   68     AddLocalFilesTask(String deviceId, String rootVirtualDirectoryName, List<String> localFilePaths, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback) {
 
   69         this.deviceId = deviceId;
 
   70         this.rootVirtualDirectoryName = rootVirtualDirectoryName;
 
   71         this.localFilePaths = localFilePaths;
 
   72         this.callback = callback;
 
   73         this.progress = progressMonitor;
 
   83         List<Content> newDataSources = 
new ArrayList<>();
 
   84         List<String> errors = 
new ArrayList<>();
 
   86             progress.setIndeterminate(
true);
 
   87             FileManager fileManager = Case.getCurrentCase().getServices().getFileManager();
 
   88             LocalFilesDataSource newDataSource = fileManager.addLocalFilesDataSource(deviceId, rootVirtualDirectoryName, 
"", localFilePaths, 
new ProgressUpdater());
 
   89             newDataSources.add(newDataSource.getRootDirectory());
 
   90         } 
catch (TskDataException | TskCoreException ex) {
 
   91             errors.add(ex.getMessage());
 
   93             DataSourceProcessorCallback.DataSourceProcessorResult result;
 
   94             if (!errors.isEmpty()) {
 
   95                 result = DataSourceProcessorCallback.DataSourceProcessorResult.CRITICAL_ERRORS;
 
   97                 result = DataSourceProcessorCallback.DataSourceProcessorResult.NO_ERRORS;
 
   99             callback.done(result, errors, newDataSources);
 
  118             if (count % 10 == 0) {
 
  119                 progress.setProgressText(NbBundle.getMessage(
this.getClass(),
 
  120                         "AddLocalFilesTask.localFileAdd.progress.text",
 
  121                         file.getParentPath(),
 
void fileAdded(final AbstractFile file)