19 package org.sleuthkit.autopsy.timeline.ui.detailview.datamodel;
21 import com.google.common.collect.ImmutableMap;
22 import com.google.common.collect.ImmutableSortedSet;
23 import java.util.Collections;
24 import java.util.Comparator;
25 import java.util.Optional;
27 import java.util.SortedSet;
28 import org.joda.time.Interval;
62 private final TimelineEventType
type;
68 private final ImmutableMap<TimelineEvent.DescriptionLevel, String>
descriptions;
102 public SingleDetailsViewEvent(
long eventID,
long dataSourceObjId,
long fileObjId, Long artifactID,
long time, TimelineEventType type, String fullDescription, String medDescription, String shortDescription,
boolean hashHit,
boolean tagged) {
106 this.artifactID = Long.valueOf(0).equals(artifactID) ? null :
artifactID;
109 descriptions = ImmutableMap.<TimelineEvent.DescriptionLevel, String>of(TimelineEvent.DescriptionLevel.FULL, fullDescription,
110 TimelineEvent.DescriptionLevel.MEDIUM, medDescription,
111 TimelineEvent.DescriptionLevel.SHORT, shortDescription);
117 this(singleEvent.getEventID(),
118 singleEvent.getDataSourceObjID(),
119 singleEvent.getFileObjID(),
120 singleEvent.getArtifactID().orElse(null),
121 singleEvent.getTime(),
122 singleEvent.getEventType(),
123 singleEvent.getFullDescription(),
124 singleEvent.getMedDescription(),
125 singleEvent.getShortDescription(),
126 singleEvent.isHashHit(),
127 singleEvent.isTagged());
140 SingleDetailsViewEvent singleEvent =
new SingleDetailsViewEvent(eventID, dataSourceObjId, fileObjId, artifactID, time, type, descriptions.get(TimelineEvent.DescriptionLevel.FULL), descriptions.get(TimelineEvent.DescriptionLevel.MEDIUM), descriptions.get(TimelineEvent.DescriptionLevel.SHORT),
hashHit,
tagged);
141 singleEvent.
parent = newParent;
173 return Optional.ofNullable(artifactID);
244 return descriptions.get(lod);
258 return Collections.singleton(eventID);
263 return isHashHit() ? Collections.singleton(eventID) : Collections.emptySet();
268 return isTagged() ? Collections.singleton(eventID) : Collections.emptySet();
284 hash = 13 * hash + (int) (this.eventID ^ (this.eventID >>> 32));
293 if (getClass() != obj.getClass()) {
297 return this.eventID == other.
eventID;
313 return TimelineEvent.DescriptionLevel.FULL;
326 if (parent == null) {
327 return Optional.empty();
329 return Optional.of((EventStripe) parent);
331 return parent.getParentStripe();
Set< Long > getEventIDsWithHashHits()
boolean equals(Object obj)
Optional< EventStripe > getParentStripe()
TimelineEventType getEventType()
SingleDetailsViewEvent withParent(MultiEvent<?> newParent)
final long dataSourceObjId
SingleDetailsViewEvent(TimelineEvent singleEvent)
final ImmutableMap< TimelineEvent.DescriptionLevel, String > descriptions
Set< Long > getEventIDsWithTags()
String getShortDescription()
long getDataSourceObjID()
Optional< Long > getArtifactID()
String getMedDescription()
Set< Long > getEventIDs()
final TimelineEventType type
String getDescription(TimelineEvent.DescriptionLevel lod)
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()
SortedSet< EventCluster > getClusters()
TimelineEvent.DescriptionLevel getDescriptionLevel()