1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.es.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.es.log.bsentity.BsClickLog;
25
26
27
28
29 public class ClickLog extends BsClickLog {
30
31 private static final long serialVersionUID = 1L;
32
33 private Map<String, Object> fields;
34
35 public String getId() {
36 return asDocMeta().id();
37 }
38
39 public void setId(final String id) {
40 asDocMeta().id(id);
41 }
42
43 public Long getVersionNo() {
44 return asDocMeta().version();
45 }
46
47 public void setVersionNo(final Long version) {
48 asDocMeta().version(version);
49 }
50
51 public void addField(final String key, final Object value) {
52 fields.put(key, value);
53 }
54
55 @Override
56 public Map<String, Object> toSource() {
57 final Map<String, Object> sourceMap = super.toSource();
58 if (fields != null) {
59 sourceMap.putAll(fields);
60 }
61 return sourceMap;
62 }
63
64 @Override
65 protected void addFieldToSource(final Map<String, Object> sourceMap, final String field, final Object value) {
66 if (value instanceof LocalDateTime) {
67 final LocalDateTime ldt = (LocalDateTime) value;
68 final ZonedDateTime zdt = ZonedDateTime.of(ldt, ZoneId.systemDefault());
69 super.addFieldToSource(sourceMap, field, DateTimeFormatter.ISO_INSTANT.format(zdt));
70 } else {
71 super.addFieldToSource(sourceMap, field, value);
72 }
73 }
74
75 @Override
76 public String toString() {
77 return "ClickLog [queryRequestedAt=" + queryRequestedAt + ", requestedAt=" + requestedAt + ", queryId=" + queryId + ", docId="
78 + docId + ", userSessionId=" + userSessionId + ", url=" + url + ", order=" + order + ", docMeta=" + docMeta + "]";
79 }
80 }