19 package org.sleuthkit.autopsy.discovery.search;
23 import java.util.ArrayList;
24 import java.util.Collections;
25 import java.util.List;
26 import org.openide.util.NbBundle;
48 private final List<AbstractFile>
instances =
new ArrayList<>();
62 abstractFile.getUniquePath();
63 }
catch (TskCoreException ignored) {
67 instances.add(abstractFile);
68 if (abstractFile.isDirNameFlagSet(TskData.TSK_FS_NAME_FLAG_ENUM.UNALLOC)) {
72 keywordListNames =
new ArrayList<>();
73 hashSetNames =
new ArrayList<>();
74 interestingSetNames =
new ArrayList<>();
75 objectDetectedNames =
new ArrayList<>();
86 if (deleted && !duplicate.isDirNameFlagSet(TskData.TSK_FS_NAME_FLAG_ENUM.UNALLOC)) {
95 duplicate.getUniquePath();
96 }
catch (TskCoreException ignored) {
99 instances.add(duplicate);
139 return Collections.unmodifiableList(instances);
157 if (!keywordListNames.contains(keywordListName)) {
158 keywordListNames.add(keywordListName);
162 Collections.sort(keywordListNames);
171 return Collections.unmodifiableList(keywordListNames);
180 if (!hashSetNames.contains(hashSetName)) {
181 hashSetNames.add(hashSetName);
185 Collections.sort(hashSetNames);
194 return Collections.unmodifiableList(hashSetNames);
203 if (!interestingSetNames.contains(interestingSetName)) {
204 interestingSetNames.add(interestingSetName);
208 Collections.sort(interestingSetNames);
217 return Collections.unmodifiableList(interestingSetNames);
226 if (!objectDetectedNames.contains(objectDetectedName)) {
227 objectDetectedNames.add(objectDetectedName);
231 Collections.sort(objectDetectedNames);
240 return Collections.unmodifiableList(objectDetectedNames);
249 return instances.get(0);
257 + String.join(
",", keywordListNames) +
", " +
getFirstInstance().getMIMEType();
263 || HashUtility.isNoDataMd5(
this.getFirstInstance().getMd5Hash())
264 || !HashUtility.isValidMd5Hash(
this.getFirstInstance().getMd5Hash())) {
265 return super.hashCode();
277 || HashUtility.isNoDataMd5(
this.getFirstInstance().getMd5Hash())
278 || !HashUtility.isValidMd5Hash(
this.getFirstInstance().getMd5Hash())) {
279 return super.equals(obj);
288 "# {0} - significanceDisplayName",
289 "ResultFile_updateScoreAndDescription_description=Has an {0} analysis result score"
299 this.currentScore = score;
300 String significanceDisplay = score.getSignificance().getDisplayName();
301 this.scoreDescription = Bundle.ResultFile_updateScoreAndDescription_description(significanceDisplay);
313 if (type.getMediaTypes().contains(mimeType)) {
final List< AbstractFile > instances
String getScoreDescription()
void addDuplicate(AbstractFile duplicate)
SearchData.Frequency getFrequency()
ResultFile(AbstractFile abstractFile)
TskData.FileKnown getKnown()
List< String > getKeywordListNames()
List< String > getObjectDetectedNames()
List< String > getInterestingSetNames()
List< AbstractFile > getAllInstances()
void addHashSetName(String hashSetName)
List< String > getHashSetNames()
final List< String > interestingSetNames
AbstractFile getFirstInstance()
SleuthkitCase getSleuthkitCase()
static final Logger logger
void addKeywordListName(String keywordListName)
final List< String > objectDetectedNames
synchronized static Logger getLogger(String name)
static Type fromMIMEtype(String mimeType)
static Case getCurrentCaseThrows()
final List< String > keywordListNames
long getDataSourceObjectId()
void addInterestingSetName(String interestingSetName)
void updateScoreAndDescription(AbstractFile file)
boolean equals(Object obj)
final List< String > hashSetNames
void addObjectDetectedName(String objectDetectedName)