Autopsy 4.22.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
TskDataModelChangedEvent.java
Go to the documentation of this file.
1/*
2 * Autopsy Forensic Browser
3 *
4 * Copyright 2021 Basis Technology Corp.
5 * Contact: carrier <at> sleuthkit <dot> org
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 */
19package org.sleuthkit.autopsy.casemodule.events;
20
21import java.util.ArrayList;
22import java.util.Collections;
23import java.util.List;
24import java.util.function.Function;
25import java.util.logging.Level;
26import java.util.stream.Collectors;
27import org.sleuthkit.autopsy.casemodule.Case;
28import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException;
29import org.sleuthkit.autopsy.coreutils.Logger;
30import org.sleuthkit.autopsy.events.AutopsyEvent;
31import org.sleuthkit.datamodel.SleuthkitCase;
32import org.sleuthkit.datamodel.TskCoreException;
33
60public abstract class TskDataModelChangedEvent<T, U> extends AutopsyEvent {
61
62 private static final long serialVersionUID = 1L;
63 private static final Logger logger = Logger.getLogger(TskDataModelChangedEvent.class.getName());
64 private final boolean hasOldValue;
65 private final List<Long> oldValueIds;
66 private transient List<T> oldValueObjects;
67 private final boolean hasNewValue;
68 private final List<Long> newValueIds;
69 private transient List<U> newValueObjects;
70
91 protected TskDataModelChangedEvent(String eventName, List<T> oldValueObjects, Function<T, Long> oldValueGetIdMethod, List<U> newValueObjects, Function<U, Long> newValueGetIdMethod) {
92 super(eventName, null, null);
93 oldValueIds = new ArrayList<>();
94 this.oldValueObjects = new ArrayList<>();
95 if (oldValueObjects != null) {
96 hasOldValue = true;
97 oldValueIds.addAll(oldValueObjects.stream()
98 .map(o -> oldValueGetIdMethod.apply(o))
99 .collect(Collectors.toList()));
100 this.oldValueObjects.addAll(oldValueObjects);
101 } else {
102 hasOldValue = false;
103 }
104 newValueIds = new ArrayList<>();
105 this.newValueObjects = new ArrayList<>();
106 if (newValueObjects != null) {
107 hasNewValue = true;
108 newValueIds.addAll(newValueObjects.stream()
109 .map(o -> newValueGetIdMethod.apply(o))
110 .collect(Collectors.toList()));
111 this.newValueObjects.addAll(newValueObjects);
112 } else {
113 hasNewValue = false;
114 }
115 }
116
123 @Override
124 public List<T> getOldValue() {
125 if (hasOldValue) {
126 if (oldValueObjects == null) {
127 try {
128 Case currentCase = Case.getCurrentCaseThrows();
129 SleuthkitCase caseDb = currentCase.getSleuthkitCase();
131 } catch (NoCurrentCaseException | TskCoreException ex) {
132 logger.log(Level.SEVERE, String.format("Error getting oldValue() TSK Data Model objects for %s event (%s)", getPropertyName(), getSourceType()), ex);
133 return Collections.emptyList();
134 }
135 }
136 return Collections.unmodifiableList(oldValueObjects);
137 } else {
138 return Collections.emptyList();
139 }
140 }
141
148 @Override
149 public List<U> getNewValue() {
150 if (hasNewValue) {
151 if (newValueObjects == null) {
152 try {
153 Case currentCase = Case.getCurrentCaseThrows();
154 SleuthkitCase caseDb = currentCase.getSleuthkitCase();
156 } catch (NoCurrentCaseException | TskCoreException ex) {
157 logger.log(Level.SEVERE, String.format("Error getting newValue() TSK Data Model objects for %s event (%s)", getPropertyName(), getSourceType()), ex);
158 return Collections.emptyList();
159 }
160 }
161 return Collections.unmodifiableList(newValueObjects);
162 } else {
163 return Collections.emptyList();
164 }
165 }
166
182 protected List<T> getOldValueObjects(SleuthkitCase caseDb, List<Long> ids) throws TskCoreException {
183 return Collections.emptyList();
184 }
185
201 protected List<U> getNewValueObjects(SleuthkitCase caseDb, List<Long> ids) throws TskCoreException {
202 return Collections.emptyList();
203 }
204
205}
List< T > getOldValueObjects(SleuthkitCase caseDb, List< Long > ids)
TskDataModelChangedEvent(String eventName, List< T > oldValueObjects, Function< T, Long > oldValueGetIdMethod, List< U > newValueObjects, Function< U, Long > newValueGetIdMethod)
List< U > getNewValueObjects(SleuthkitCase caseDb, List< Long > ids)
synchronized static Logger getLogger(String name)
Definition Logger.java:124
AutopsyEvent(String eventName, Object oldValue, Object newValue)

Copyright © 2012-2024 Sleuth Kit Labs. Generated on:
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.