1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.linecorp.centraldogma.internal.api.v1;
18
19 import static java.util.Objects.requireNonNull;
20
21 import javax.annotation.Nullable;
22
23 import com.fasterxml.jackson.annotation.JsonInclude;
24 import com.fasterxml.jackson.annotation.JsonInclude.Include;
25 import com.fasterxml.jackson.annotation.JsonProperty;
26 import com.google.common.base.MoreObjects;
27 import com.google.common.base.MoreObjects.ToStringHelper;
28
29 import com.linecorp.centraldogma.common.ChangeType;
30
31 @JsonInclude(Include.NON_NULL)
32 public class ChangeDto<T> {
33
34 private final String path;
35
36 private final ChangeType type;
37
38 private final T content;
39
40 public ChangeDto(String path, ChangeType type, @Nullable T content) {
41 this.path = requireNonNull(path, "path");
42 this.type = requireNonNull(type, "type");
43 this.content = content;
44 }
45
46 @JsonProperty("path")
47 public String path() {
48 return path;
49 }
50
51 @JsonProperty("type")
52 public ChangeType type() {
53 return type;
54 }
55
56 @Nullable
57 @JsonProperty("content")
58 public T content() {
59 return content;
60 }
61
62 @Override
63 public String toString() {
64 final ToStringHelper stringHelper = MoreObjects.toStringHelper(this)
65 .add("path", path())
66 .add("type", type());
67 if (content() != null) {
68 stringHelper.add("content", content());
69 }
70
71 return stringHelper.toString();
72 }
73 }