1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.linecorp.centraldogma.server.metadata;
18
19 import static java.util.Objects.requireNonNull;
20
21 import com.fasterxml.jackson.annotation.JsonCreator;
22 import com.fasterxml.jackson.annotation.JsonInclude;
23 import com.fasterxml.jackson.annotation.JsonInclude.Include;
24 import com.fasterxml.jackson.annotation.JsonProperty;
25 import com.google.common.base.MoreObjects;
26
27
28
29
30 @JsonInclude(Include.NON_NULL)
31 public class TokenRegistration implements Identifiable {
32
33
34
35
36 private final String appId;
37
38
39
40
41 private final ProjectRole role;
42
43
44
45
46 private final UserAndTimestamp creation;
47
48
49
50
51 @JsonCreator
52 public TokenRegistration(@JsonProperty("appId") String appId,
53 @JsonProperty("role") ProjectRole role,
54 @JsonProperty("creation") UserAndTimestamp creation) {
55 this.appId = requireNonNull(appId, "appId");
56 this.role = requireNonNull(role, "role");
57 this.creation = requireNonNull(creation, "creation");
58 }
59
60 @Override
61 public String id() {
62 return appId;
63 }
64
65
66
67
68 @JsonProperty
69 public String appId() {
70 return appId;
71 }
72
73
74
75
76 @JsonProperty
77 public ProjectRole role() {
78 return role;
79 }
80
81
82
83
84 @JsonProperty
85 public UserAndTimestamp creation() {
86 return creation;
87 }
88
89 @Override
90 public String toString() {
91 return MoreObjects.toStringHelper(this)
92 .add("appId", appId())
93 .add("role", role())
94 .add("creation", creation())
95 .toString();
96 }
97 }