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 class PurgeProjectCommand extends RootCommand<Void> {
33
34 private final String projectName;
35
36 @JsonCreator
37 PurgeProjectCommand(@JsonProperty("timestamp") @Nullable Long timestamp,
38 @JsonProperty("author") @Nullable Author author,
39 @JsonProperty("projectName") String projectName) {
40 super(CommandType.PURGE_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 if (!(obj instanceof PurgeProjectCommand)) {
58 return false;
59 }
60
61 final PurgeProjectCommand that = (PurgeProjectCommand) obj;
62 return super.equals(obj) &&
63 projectName.equals(that.projectName);
64 }
65
66 @Override
67 public int hashCode() {
68 return projectName.hashCode() * 31 + super.hashCode();
69 }
70
71 @Override
72 ToStringHelper toStringHelper() {
73 return super.toStringHelper()
74 .add("projectName", projectName);
75 }
76 }