1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.linecorp.centraldogma.server.command;
18
19 import static java.util.Objects.requireNonNull;
20
21 import javax.annotation.Nullable;
22
23 import com.fasterxml.jackson.annotation.JsonCreator;
24 import com.fasterxml.jackson.annotation.JsonProperty;
25 import com.google.common.base.MoreObjects.ToStringHelper;
26
27 import com.linecorp.centraldogma.common.Author;
28
29
30
31
32 public final class UnremoveProjectCommand extends RootCommand<Void> {
33
34 private final String projectName;
35
36 @JsonCreator
37 UnremoveProjectCommand(@JsonProperty("timestamp") @Nullable Long timestamp,
38 @JsonProperty("author") @Nullable Author author,
39 @JsonProperty("projectName") String projectName) {
40 super(CommandType.UNREMOVE_PROJECT, timestamp, author);
41 this.projectName = requireNonNull(projectName, "projectName");
42 }
43
44
45
46
47 @JsonProperty
48 public String projectName() {
49 return projectName;
50 }
51
52 @Override
53 public boolean equals(Object obj) {
54 if (this == obj) {
55 return true;
56 }
57
58 if (!(obj instanceof UnremoveProjectCommand)) {
59 return false;
60 }
61
62 final UnremoveProjectCommand that = (UnremoveProjectCommand) obj;
63 return super.equals(obj) &&
64 projectName.equals(that.projectName);
65 }
66
67 @Override
68 public int hashCode() {
69 return projectName.hashCode() * 31 + super.hashCode();
70 }
71
72 @Override
73 ToStringHelper toStringHelper() {
74 return super.toStringHelper().add("projectName", projectName);
75 }
76 }