19 package org.sleuthkit.autopsy.casemodule;
22 import java.nio.file.Path;
23 import java.nio.file.Paths;
24 import javax.swing.JPanel;
25 import java.util.ArrayList;
26 import java.util.Calendar;
27 import java.util.List;
28 import java.util.UUID;
29 import javax.swing.filechooser.FileFilter;
30 import org.openide.util.NbBundle;
31 import org.openide.util.lookup.ServiceProvider;
32 import org.openide.util.lookup.ServiceProviders;
45 @ServiceProviders(value={
46 @ServiceProvider(service=DataSourceProcessor.class),
47 @ServiceProvider(service=AutomatedIngestDataSourceProcessor.class)}
51 private final static String DATA_SOURCE_TYPE = NbBundle.getMessage(
ImageDSProcessor.class,
"ImageDSProcessor.dsType.text");
52 private static final List<String> allExt =
new ArrayList<>();
56 private static final String allDesc = NbBundle.getMessage(
ImageDSProcessor.class,
"ImageDSProcessor.allDesc.text");
58 private static final List<FileFilter> filtersList =
new ArrayList<>();
72 filtersList.add(allFilter);
73 filtersList.add(rawFilter);
74 filtersList.add(encaseFilter);
75 filtersList.add(virtualMachineFilter);
99 return DATA_SOURCE_TYPE;
157 if (!setDataSourceOptionsCalled) {
159 deviceId = UUID.randomUUID().toString();
164 run(deviceId, imagePath, timeZone, ignoreFatOrphanFiles, progressMonitor, callback);
189 addImageTask =
new AddImageTask(deviceId, imagePath, timeZone, ignoreFatOrphanFiles, progressMonitor, callback);
190 new Thread(addImageTask).start();
202 if (null != addImageTask) {
203 addImageTask.cancelTask();
216 ignoreFatOrphanFiles =
false;
218 setDataSourceOptionsCalled =
false;
236 this.deviceId = UUID.randomUUID().toString();
237 this.imagePath = imagePath;
238 this.timeZone = Calendar.getInstance().getTimeZone().getID();
239 this.ignoreFatOrphanFiles = ignoreFatOrphanFiles;
240 setDataSourceOptionsCalled =
true;
244 for (FileFilter filter : filters) {
245 if (filter.accept(file)) {
256 if (!isAcceptedByFiler(dataSourcePath.toFile(), filtersList)) {
267 }
catch (Exception ex) {
277 this.deviceId = deviceId;
278 this.imagePath = dataSourcePath.toString();
279 this.timeZone = Calendar.getInstance().getTimeZone().getID();
280 this.ignoreFatOrphanFiles =
false;
281 setDataSourceOptionsCalled =
true;
282 run(deviceId, dataSourcePath.toString(), timeZone, ignoreFatOrphanFiles, progressMonitor, callBack);
boolean getNoFatOrphans()
void process(String deviceId, Path dataSourcePath, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callBack)
String getDataSourceType()
static boolean isAcceptedByFiler(File file, List< FileFilter > filters)
static final String RAW_IMAGE_DESC
static final String VIRTUAL_MACHINE_DESC
static synchronized ImageFilePanel createInstance(String context, List< FileFilter > fileChooserFilters)
AddImageTask addImageTask
void run(String deviceId, String imagePath, String timeZone, boolean ignoreFatOrphanFiles, DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback)
static final String ENCASE_IMAGE_DESC
boolean ignoreFatOrphanFiles
static final List< String > VIRTUAL_MACHINE_EXTS
static final List< String > ENCASE_IMAGE_EXTS
void setDataSourceOptions(String imagePath, String timeZone, boolean ignoreFatOrphanFiles)
boolean setDataSourceOptionsCalled
static boolean imageHasFileSystem(Path dataSourcePath)
void run(DataSourceProcessorProgressMonitor progressMonitor, DataSourceProcessorCallback callback)
static Case getCurrentCase()
final ImageFilePanel configPanel
static final List< String > RAW_IMAGE_EXTS
int canProcess(Path dataSourcePath)