Autopsy  4.9.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
SingleInterCaseCommonAttributeSearcher.java
Go to the documentation of this file.
1 /*
2  *
3  * Autopsy Forensic Browser
4  *
5  * Copyright 2018 Basis Technology Corp.
6  * Contact: carrier <at> sleuthkit <dot> org
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20 package org.sleuthkit.autopsy.commonfilesearch;
21 
22 import java.sql.SQLException;
23 import java.util.HashSet;
24 import java.util.Map;
25 import java.util.Set;
26 import org.openide.util.NbBundle;
31 import org.sleuthkit.datamodel.TskCoreException;
33 import static org.sleuthkit.autopsy.commonfilesearch.AbstractCommonAttributeSearcher.MEDIA_PICS_VIDEO_MIME_TYPES;
34 
39 public class SingleInterCaseCommonAttributeSearcher extends InterCaseCommonAttributeSearcher {
40 
41  private final int corrleationCaseId;
42  private String correlationCaseName;
43 
54  public SingleInterCaseCommonAttributeSearcher(int correlationCaseId, boolean filterByMediaMimeType,
55  boolean filterByDocMimeType, Type corAttrType, int percentageThreshold) throws EamDbException {
56  super(filterByMediaMimeType, filterByDocMimeType, corAttrType, percentageThreshold);
57 
58  this.corrleationCaseId = correlationCaseId;
59  this.correlationCaseName = "";
60  }
61 
73  @Override
75 
76  CorrelationCase correlationCase = this.getCorrelationCaseFromId(this.corrleationCaseId);
77  this.correlationCaseName = correlationCase.getDisplayName();
78  InterCaseSearchResultsProcessor eamDbAttrInst = new InterCaseSearchResultsProcessor(this.corAttrType);
79  Map<Integer, CommonAttributeValueList> interCaseCommonFiles = eamDbAttrInst.findSingleInterCaseValuesByCount(Case.getCurrentCase(), correlationCase);
80  Set<String> mimeTypesToFilterOn = new HashSet<>();
81  if (isFilterByMedia()) {
82  mimeTypesToFilterOn.addAll(MEDIA_PICS_VIDEO_MIME_TYPES);
83  }
84  if (isFilterByDoc()) {
85  mimeTypesToFilterOn.addAll(TEXT_FILES_MIME_TYPES);
86  }
87  return new CommonAttributeCountSearchResults(interCaseCommonFiles, this.frequencyPercentageThreshold, this.corAttrType, mimeTypesToFilterOn);
88  }
89 
101  @Override
103 
104  CorrelationCase correlationCase = this.getCorrelationCaseFromId(this.corrleationCaseId);
105  this.correlationCaseName = correlationCase.getDisplayName();
106  InterCaseSearchResultsProcessor eamDbAttrInst = new InterCaseSearchResultsProcessor(this.corAttrType);
107  Map<String, Map<String, CommonAttributeValueList>> interCaseCommonFiles = eamDbAttrInst.findSingleInterCaseValuesByCase(Case.getCurrentCase(), correlationCase);
108  Set<String> mimeTypesToFilterOn = new HashSet<>();
109  if (isFilterByMedia()) {
110  mimeTypesToFilterOn.addAll(MEDIA_PICS_VIDEO_MIME_TYPES);
111  }
112  if (isFilterByDoc()) {
113  mimeTypesToFilterOn.addAll(TEXT_FILES_MIME_TYPES);
114  }
115  return new CommonAttributeCaseSearchResults(interCaseCommonFiles, this.frequencyPercentageThreshold, this.corAttrType, mimeTypesToFilterOn);
116  }
117 
118  @NbBundle.Messages({
119  "# {0} - case name",
120  "# {1} - attr type",
121  "# {2} - threshold string",
122  "SingleInterCaseCommonAttributeSearcher.buildTabTitle.titleInterSingle=Common Properties (Central Repository Case: {0}, {1}{2})"})
123 
124  @Override
125  String getTabTitle() {
126  String typeString = this.corAttrType.getDisplayName();
127  if (typeString.equals("Files")) {
128  typeString = this.buildCategorySelectionString();
129  }
130  return Bundle.SingleInterCaseCommonAttributeSearcher_buildTabTitle_titleInterSingle(this.correlationCaseName, typeString, this.getPercentThresholdString());
131  }
132 }
SingleInterCaseCommonAttributeSearcher(int correlationCaseId, boolean filterByMediaMimeType, boolean filterByDocMimeType, Type corAttrType, int percentageThreshold)

Copyright © 2012-2018 Basis Technology. Generated on: Tue Dec 18 2018
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.