19 package org.sleuthkit.autopsy.casemodule.services;
21 import java.util.Arrays;
22 import java.util.HashSet;
23 import java.util.List;
24 import java.util.Objects;
26 import javax.annotation.concurrent.Immutable;
34 final class TagNameDefiniton
implements Comparable<TagNameDefiniton> {
36 private static final String TAGS_SETTINGS_NAME =
"Tags";
37 private static final String TAG_NAMES_SETTING_KEY =
"TagNames";
38 private final String displayName;
39 private final String description;
40 private final TagName.HTML_COLOR color;
50 TagNameDefiniton(String displayName, String description, TagName.HTML_COLOR color) {
51 this.displayName = displayName;
52 this.description = description;
61 String getDisplayName() {
70 String getDescription() {
79 TagName.HTML_COLOR getColor() {
95 public int compareTo(TagNameDefiniton other) {
96 return this.getDisplayName().toLowerCase().compareTo(other.getDisplayName().toLowerCase());
105 public int hashCode() {
107 hash = 83 * hash + Objects.hashCode(this.displayName);
120 public boolean equals(Object obj) {
121 if (!(obj instanceof TagNameDefiniton)) {
124 TagNameDefiniton thatTagName = (TagNameDefiniton) obj;
125 return this.getDisplayName().equals(thatTagName.getDisplayName());
134 public String toString() {
142 private String toSettingsFormat() {
143 return displayName +
"," + description +
"," + color.name();
151 static synchronized Set<TagNameDefiniton> getTagNameDefinitions() {
152 Set<TagNameDefiniton> tagNames =
new HashSet<>();
153 String setting = ModuleSettings.getConfigSetting(TAGS_SETTINGS_NAME, TAG_NAMES_SETTING_KEY);
154 if (null != setting && !setting.isEmpty()) {
155 List<String> tagNameTuples = Arrays.asList(setting.split(
";"));
156 for (String tagNameTuple : tagNameTuples) {
157 String[] tagNameAttributes = tagNameTuple.split(
",");
158 tagNames.add(
new TagNameDefiniton(tagNameAttributes[0], tagNameAttributes[1], TagName.HTML_COLOR.valueOf(tagNameAttributes[2])));
169 static synchronized void setTagNameDefinitions(Set<TagNameDefiniton> tagNames) {
170 StringBuilder setting =
new StringBuilder();
171 for (TagNameDefiniton tagName : tagNames) {
172 if (setting.length() != 0) {
175 setting.append(tagName.toSettingsFormat());
177 ModuleSettings.setConfigSetting(TAGS_SETTINGS_NAME, TAG_NAMES_SETTING_KEY, setting.toString());