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 RemoveRepositoryCommand extends ProjectCommand<Void> {
33
34 private final String repositoryName;
35
36 @JsonCreator
37 RemoveRepositoryCommand(@JsonProperty("timestamp") @Nullable Long timestamp,
38 @JsonProperty("author") @Nullable Author author,
39 @JsonProperty("projectName") String projectName,
40 @JsonProperty("repositoryName") String repositoryName) {
41 super(CommandType.REMOVE_REPOSITORY, timestamp, author, projectName);
42 this.repositoryName = requireNonNull(repositoryName, "repositoryName");
43 }
44
45
46
47
48 @JsonProperty
49 public String repositoryName() {
50 return repositoryName;
51 }
52
53 @Override
54 public boolean equals(Object obj) {
55 if (this == obj) {
56 return true;
57 }
58
59 if (!(obj instanceof RemoveRepositoryCommand)) {
60 return false;
61 }
62
63 final RemoveRepositoryCommand that = (RemoveRepositoryCommand) obj;
64 return super.equals(obj) &&
65 repositoryName.equals(that.repositoryName);
66 }
67
68 @Override
69 public int hashCode() {
70 return repositoryName.hashCode() * 31 + super.hashCode();
71 }
72
73 @Override
74 ToStringHelper toStringHelper() {
75 return super.toStringHelper().add("repositoryName", repositoryName);
76 }
77 }