1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.opensearch.log.exentity;
17
18 import java.time.LocalDateTime;
19 import java.time.ZoneId;
20 import java.time.ZonedDateTime;
21 import java.time.format.DateTimeFormatter;
22 import java.util.Map;
23
24 import org.codelibs.fess.entity.SearchLogEvent;
25 import org.codelibs.fess.opensearch.log.bsentity.BsUserInfo;
26
27
28
29
30 public class UserInfo extends BsUserInfo implements SearchLogEvent {
31
32 private static final long serialVersionUID = 1L;
33
34 private Map<String, Object> fields;
35
36 @Override
37 public String getId() {
38 return asDocMeta().id();
39 }
40
41 public void setId(final String id) {
42 asDocMeta().id(id);
43 }
44
45 @Override
46 public Long getVersionNo() {
47 return asDocMeta().version();
48 }
49
50 public void setVersionNo(final Long version) {
51 asDocMeta().version(version);
52 }
53
54 public String getLogMessage() {
55 return getId();
56 }
57
58 public LocalDateTime getRequestedAt() {
59 return getUpdatedAt();
60 }
61
62 public void addField(final String key, final Object value) {
63 fields.put(key, value);
64 }
65
66 @Override
67 public Map<String, Object> toSource() {
68 final Map<String, Object> sourceMap = super.toSource();
69 if (fields != null) {
70 sourceMap.putAll(fields);
71 }
72 return sourceMap;
73 }
74
75 @Override
76 protected void addFieldToSource(final Map<String, Object> sourceMap, final String field, final Object value) {
77 if (value instanceof final LocalDateTime ldt) {
78 final ZonedDateTime zdt = ZonedDateTime.of(ldt, ZoneId.systemDefault());
79 super.addFieldToSource(sourceMap, field, DateTimeFormatter.ISO_INSTANT.format(zdt));
80 } else {
81 super.addFieldToSource(sourceMap, field, value);
82 }
83 }
84
85 @Override
86 public String toString() {
87 return "UserInfo [createdAt=" + createdAt + ", updatedAt=" + updatedAt + ", docMeta=" + docMeta + "]";
88 }
89
90 @Override
91 public String getEventType() {
92 return "user";
93 }
94 }