19package org.sleuthkit.autopsy.timeline.ui.detailview.datamodel;
21import com.google.common.collect.ImmutableMap;
22import com.google.common.collect.ImmutableSortedSet;
23import java.util.Collections;
24import java.util.Comparator;
25import java.util.Optional;
27import java.util.SortedSet;
28import org.joda.time.Interval;
29import org.sleuthkit.datamodel.TimelineEvent;
30import org.sleuthkit.datamodel.TimelineEventType;
31import org.sleuthkit.datamodel.TimelineLevelOfDetail;
63 private final TimelineEventType
type;
69 private final ImmutableMap<TimelineLevelOfDetail, String>
descriptions;
103 public SingleDetailsViewEvent(
long eventID,
long dataSourceObjId,
long fileObjId, Long
artifactID,
long time, TimelineEventType
type, String fullDescription, String medDescription, String shortDescription,
boolean hashHit,
boolean tagged) {
110 descriptions = ImmutableMap.<TimelineLevelOfDetail, String>of(TimelineLevelOfDetail.HIGH, fullDescription,
111 TimelineLevelOfDetail.MEDIUM, medDescription,
112 TimelineLevelOfDetail.LOW, shortDescription);
118 this(singleEvent.getEventID(),
119 singleEvent.getDataSourceObjID(),
120 singleEvent.getContentObjID(),
121 singleEvent.getArtifactID().orElse(
null),
122 singleEvent.getTime(),
123 singleEvent.getEventType(),
124 singleEvent.getDescription(TimelineLevelOfDetail.HIGH),
125 singleEvent.getDescription(TimelineLevelOfDetail.MEDIUM),
126 singleEvent.getDescription(TimelineLevelOfDetail.LOW),
127 singleEvent.eventSourceHasHashHits(),
128 singleEvent.eventSourceIsTagged());
141 SingleDetailsViewEvent singleEvent =
new SingleDetailsViewEvent(
eventID,
dataSourceObjId,
fileObjId,
artifactID,
time,
type,
descriptions.get(TimelineLevelOfDetail.HIGH),
descriptions.get(TimelineLevelOfDetail.MEDIUM),
descriptions.get(TimelineLevelOfDetail.LOW),
hashHit,
tagged);
142 singleEvent.parent = newParent;
259 return Collections.singleton(
eventID);
264 return isHashHit() ? Collections.singleton(
eventID) : Collections.emptySet();
269 return isTagged() ? Collections.singleton(
eventID) : Collections.emptySet();
285 hash = 13 * hash + (int) (this.eventID ^ (this.eventID >>> 32));
294 if (getClass() != obj.getClass()) {
298 return this.eventID == other.
eventID;
314 return TimelineLevelOfDetail.HIGH;
328 return Optional.empty();
332 return parent.getParentStripe();
Optional< Long > getArtifactID()
final long dataSourceObjId
final TimelineEventType type
Optional< EventStripe > getParentStripe()
TimelineEventType getEventType()
TimelineLevelOfDetail getDescriptionLevel()
Set< Long > getEventIDs()
String getDescription(TimelineLevelOfDetail lod)
Set< Long > getEventIDsWithHashHits()
SortedSet< EventCluster > getClusters()
SingleDetailsViewEvent(TimelineEvent singleEvent)
String getShortDescription()
final ImmutableMap< TimelineLevelOfDetail, String > descriptions
SingleDetailsViewEvent(long eventID, long dataSourceObjId, long fileObjId, Long artifactID, long time, TimelineEventType type, String fullDescription, String medDescription, String shortDescription, boolean hashHit, boolean tagged)
String getFullDescription()
Set< Long > getEventIDsWithTags()
boolean equals(Object obj)
long getDataSourceObjID()
String getMedDescription()
SingleDetailsViewEvent withParent(MultiEvent<?> newParent)