19 package org.sleuthkit.autopsy.centralrepository.datamodel;
21 import java.sql.ResultSet;
22 import java.sql.SQLException;
23 import java.time.Instant;
24 import java.util.ArrayList;
25 import java.util.Collection;
26 import java.util.Collections;
27 import java.util.List;
28 import org.apache.commons.lang3.StringUtils;
38 =
"SELECT pa.id, pa.persona_id, pa.alias, pa.justification, pa.confidence_id, pa.date_added, pa.examiner_id, e.login_name, e.display_name " 39 +
"FROM persona_alias as pa " 40 +
"INNER JOIN examiners as e ON e.id = pa.examiner_id ";
42 private final long id;
103 Instant instant = Instant.now();
104 Long timeStampMillis = instant.toEpochMilli();
106 String insertSQL =
"INSERT INTO persona_alias (persona_id, alias, justification, confidence_id, date_added, examiner_id ) " 107 +
" VALUES ( ?, ?, ?, ?, ?, ?)";
109 List<Object> params =
new ArrayList<>();
110 params.add(persona.
getId());
112 params.add(StringUtils.isBlank(justification) ?
"" :
justification);
114 params.add(timeStampMillis);
115 params.add(examiner.
getId());
120 +
"WHERE pa.persona_id = ?" 121 +
" AND pa.alias = ?" 122 +
" AND pa.date_added = ?" 123 +
" AND pa.examiner_id = ?";
125 List<Object> queryParams =
new ArrayList<>();
126 queryParams.add(persona.
getId());
127 queryParams.add(alias);
128 queryParams.add(timeStampMillis);
129 queryParams.add(examiner.
getId());
131 PersonaAliasesQueryCallback queryCallback =
new PersonaAliasesQueryCallback();
134 Collection<PersonaAlias> aliases = queryCallback.getAliases();
135 if (aliases.size() != 1) {
139 return aliases.iterator().next();
150 String deleteSQL =
" DELETE FROM persona_alias WHERE id = ?";
152 List<Object> params =
new ArrayList<>();
153 params.add(alias.
getId());
172 String updateClause =
"UPDATE persona_alias SET confidence_id = ?, justification = ? WHERE id = ?";
174 List<Object> params =
new ArrayList<>();
176 params.add(StringUtils.isBlank(justification) ?
"" :
justification);
177 params.add(alias.
getId());
185 static class PersonaAliasesQueryCallback
implements CentralRepositoryDbQueryCallback {
187 private final Collection<PersonaAlias> personaAliases =
new ArrayList<>();
190 public void process(ResultSet rs)
throws SQLException {
194 rs.getInt(
"examiner_id"),
195 rs.getString(
"login_name"));
199 rs.getLong(
"persona_id"),
200 rs.getString(
"alias"),
201 rs.getString(
"justification"),
203 Long.parseLong(rs.getString(
"date_added")),
206 personaAliases.add(alias);
210 Collection<PersonaAlias> getAliases() {
211 return Collections.unmodifiableCollection(personaAliases);
225 +
"WHERE pa.persona_id = ?";
227 List<Object> params =
new ArrayList<>();
228 params.add(personaId);
230 PersonaAliasesQueryCallback queryCallback =
new PersonaAliasesQueryCallback();
233 return queryCallback.getAliases();
247 if (instance == null) {
248 throw new CentralRepoException(
"Failed to get instance of CentralRespository, CR was null");
CentralRepoExaminer getExaminer()
void executeQuery(String sql, List< Object > params, CentralRepositoryDbQueryCallback queryCallback)
final String justification
Persona.Confidence getConfidence()
CentralRepoExaminer getOrInsertExaminer(String examinerLoginName)
static final String SELECT_QUERY_BASE
static Collection< PersonaAlias > getPersonaAliases(long personaId)
String getJustification()
static CentralRepository getCRInstance()
final Persona.Confidence confidence
static Confidence fromId(int value)
final CentralRepoExaminer examiner
void executeCommand(String sql, List< Object > params)
PersonaAlias(long id, long personaId, String alias, String justification, Persona.Confidence confidence, long dateAdded, CentralRepoExaminer examiner)
static CentralRepository getInstance()