19 package org.sleuthkit.autopsy.discovery.search;
21 import java.awt.Image;
22 import java.util.ArrayList;
23 import java.util.HashMap;
24 import java.util.LinkedHashMap;
25 import java.util.List;
27 import java.util.TimeZone;
28 import org.apache.commons.lang3.StringUtils;
65 this.searchCache = cache;
89 List<AbstractFilter> filters,
95 final Map<GroupKey, List<Result>> searchResults = searchCache.get(
96 userName, filters, groupAttributeType, groupSortingType,
97 domainSortingMethod, caseDb, centralRepoDb);
100 final LinkedHashMap<GroupKey, Integer> groupSizes =
new LinkedHashMap<>();
101 for (
GroupKey groupKey : searchResults.keySet()) {
102 groupSizes.put(groupKey, searchResults.get(groupKey).size());
131 List<AbstractFilter> filters,
135 GroupKey groupKey,
int startingEntry,
int numberOfEntries,
138 final Map<GroupKey, List<Result>> searchResults = searchCache.get(
139 userName, filters, groupAttributeType, groupSortingType,
140 domainSortingMethod, caseDb, centralRepoDb);
141 final List<Result> domainsInGroup = searchResults.get(groupKey);
143 final List<Result> page =
new ArrayList<>();
144 for (
int i = startingEntry; (i < startingEntry + numberOfEntries)
145 && (i < domainsInGroup.size()); i++) {
146 page.add(domainsInGroup.get(i));
170 return thumbnailCache.
get(thumbnailRequest);
189 return artifactsCache.
get(artifactsRequest);
205 List<BlackboardArtifact> artifacts =
new ArrayList<>();
206 Map<String, List<BlackboardArtifact>> dateMap =
new HashMap<>();
207 if (!StringUtils.isBlank(domain)) {
213 for (BlackboardArtifact artifact : artifacts) {
217 }
catch (TskCoreException ex) {
218 throw new DiscoveryException(
"Unable to get date for artifact with ID: " + artifact.getArtifactID(), ex);
220 if (!StringUtils.isBlank(date)) {
221 List<BlackboardArtifact> artifactList = dateMap.get(date);
222 if (artifactList == null) {
223 artifactList =
new ArrayList<>();
225 artifactList.add(artifact);
226 dateMap.put(date, artifactList);
230 List<MiniTimelineResult> dateArtifactList =
new ArrayList<>();
232 for (String date : dateMap.keySet()) {
235 return dateArtifactList;
248 private String
getDate(BlackboardArtifact artifact)
throws TskCoreException {
249 for (BlackboardAttribute attribute : artifact.getAttributes()) {
250 if (attribute.getAttributeType().getTypeName().startsWith(
"TSK_DATETIME")) {
252 String dateString = TimeUtilities.epochToTime(attribute.getValueLong(), timeZone);
253 if (dateString.length() >= 10) {
254 return dateString.substring(0, 10);
List< BlackboardArtifact > get(DomainSearchArtifactsRequest request)
List< Result > getDomainsInGroup(String userName, List< AbstractFilter > filters, DiscoveryAttributes.AttributeType groupAttributeType, Group.GroupSortingAlgorithm groupSortingType, ResultsSorter.SortingMethod domainSortingMethod, GroupKey groupKey, int startingEntry, int numberOfEntries, SleuthkitCase caseDb, CentralRepository centralRepoDb)
List< BlackboardArtifact > getArtifacts(DomainSearchArtifactsRequest artifactsRequest)
final DomainSearchArtifactsCache artifactsCache
final DomainSearchThumbnailCache thumbnailCache
static TimeZone getTimeZone(Content content)
final DomainSearchCache searchCache
Map< GroupKey, Integer > getGroupSizes(String userName, List< AbstractFilter > filters, DiscoveryAttributes.AttributeType groupAttributeType, Group.GroupSortingAlgorithm groupSortingType, ResultsSorter.SortingMethod domainSortingMethod, SleuthkitCase caseDb, CentralRepository centralRepoDb)
Image get(DomainSearchThumbnailRequest request)
List< MiniTimelineResult > getAllArtifactsForDomain(SleuthkitCase sleuthkitCase, String domain)
String getDate(BlackboardArtifact artifact)
Image getThumbnail(DomainSearchThumbnailRequest thumbnailRequest)