mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-17 10:17:41 +00:00
algorithm debugged and simplified
This commit is contained in:
parent
c92e644042
commit
c71d15d51f
@ -32,7 +32,7 @@ import org.sleuthkit.autopsy.datamodel.CommonFileParentNode;
|
||||
/**
|
||||
* Makes nodes for common files search results.
|
||||
*/
|
||||
final class CommonFilesChildren extends ChildFactory<AbstractFile> {
|
||||
final class CommonFilesChildren extends ChildFactory<String> {
|
||||
|
||||
private CommonFilesMetaData metaData;
|
||||
|
||||
@ -46,22 +46,20 @@ final class CommonFilesChildren extends ChildFactory<AbstractFile> {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Node createNodeForKey(AbstractFile t) {
|
||||
protected Node createNodeForKey(String md5) {
|
||||
|
||||
final String md5Hash = t.getMd5Hash();
|
||||
|
||||
List<AbstractFile> children = this.metaData.getChildrenForFile(t);
|
||||
List<AbstractFile> children = this.metaData.getChildrenForFile(md5);
|
||||
|
||||
int instanceCount = children.size();
|
||||
String dataSources = selectDataSources(children);
|
||||
|
||||
return new CommonFileParentNode(Children.create(new CommonFilesDescendants(children, this.metaData.getDataSourceIdToNameMap()), true), md5Hash, instanceCount, dataSources);
|
||||
return new CommonFileParentNode(Children.create(new CommonFilesDescendants(children, this.metaData.getDataSourceIdToNameMap()), true), md5, instanceCount, dataSources);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean createKeys(List<AbstractFile> toPopulate) {
|
||||
final Map<org.sleuthkit.datamodel.AbstractFile, List<org.sleuthkit.datamodel.AbstractFile>> filesMap = this.metaData.getFilesMap();
|
||||
Collection<AbstractFile> files = filesMap.keySet();
|
||||
protected boolean createKeys(List<String> toPopulate) {
|
||||
final Map<String, List<org.sleuthkit.datamodel.AbstractFile>> filesMap = this.metaData.getFilesMap();
|
||||
Collection<String> files = filesMap.keySet();
|
||||
toPopulate.addAll(files);
|
||||
return true;
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
*/
|
||||
abstract class CommonFilesMetaData {
|
||||
|
||||
private final Map<AbstractFile, List<AbstractFile>> parentNodes;
|
||||
private final Map<String, List<AbstractFile>> parentNodes;
|
||||
private final Map<Long, String> dataSourceIdToNameMap;
|
||||
|
||||
private final SleuthkitCase sleuthkitCase;
|
||||
@ -67,7 +67,7 @@ abstract class CommonFilesMetaData {
|
||||
}
|
||||
}
|
||||
|
||||
Map<AbstractFile, List<AbstractFile>> getFilesMap() {
|
||||
Map<String, List<AbstractFile>> getFilesMap() {
|
||||
return Collections.unmodifiableMap(this.parentNodes);
|
||||
}
|
||||
|
||||
@ -86,24 +86,16 @@ abstract class CommonFilesMetaData {
|
||||
|
||||
List<AbstractFile> files = this.sleuthkitCase.findAllFilesWhere(getSqlWhereClause());
|
||||
|
||||
AbstractFile previousFile = null;
|
||||
List<AbstractFile> children = new ArrayList<>();
|
||||
|
||||
String previousMd5 = "";
|
||||
|
||||
for (AbstractFile file : files) {
|
||||
|
||||
String currentMd5 = file.getMd5Hash();
|
||||
if (currentMd5.equals(previousMd5)) {
|
||||
children.add(file);
|
||||
|
||||
if(parentNodes.containsKey(currentMd5)){
|
||||
parentNodes.get(currentMd5).add(file);
|
||||
} else {
|
||||
if (previousFile != null) {
|
||||
this.parentNodes.put(previousFile, children);
|
||||
}
|
||||
previousMd5 = currentMd5;
|
||||
previousFile = file;
|
||||
children.clear();
|
||||
List<AbstractFile> children = new ArrayList<>();
|
||||
children.add(file);
|
||||
parentNodes.put(currentMd5, children);
|
||||
}
|
||||
}
|
||||
|
||||
@ -125,7 +117,7 @@ abstract class CommonFilesMetaData {
|
||||
* @param t
|
||||
* @return
|
||||
*/
|
||||
List<AbstractFile> getChildrenForFile(AbstractFile t) {
|
||||
return this.parentNodes.get(t);
|
||||
List<AbstractFile> getChildrenForFile(String md5) {
|
||||
return this.parentNodes.get(md5);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user