1 package org.kuali.common.devops.model;
2
3 import org.kuali.common.core.build.ValidatingBuilder;
4 import org.kuali.common.core.validate.annotation.IdiotProofImmutable;
5 import org.kuali.common.util.ObjectUtils;
6
7 @IdiotProofImmutable
8 public final class CanonicalNameRecord {
9
10 private final String alias;
11 private final String canonical;
12
13 private CanonicalNameRecord(Builder builder) {
14 this.alias = builder.alias;
15 this.canonical = builder.canonical;
16 }
17
18 public static Builder builder() {
19 return new Builder();
20 }
21
22 public static class Builder extends ValidatingBuilder<CanonicalNameRecord> {
23
24 private String alias;
25 private String canonical;
26
27 @Override
28 public CanonicalNameRecord build() {
29 return validate(new CanonicalNameRecord(this));
30 }
31
32 public Builder alias(String alias) {
33 this.alias = alias;
34 return this;
35 }
36
37 public Builder canonical(String canonical) {
38 this.canonical = canonical;
39 return this;
40 }
41
42 public String getAlias() {
43 return alias;
44 }
45
46 public void setAlias(String alias) {
47 this.alias = alias;
48 }
49
50 public String getCanonical() {
51 return canonical;
52 }
53
54 public void setCanonical(String canonical) {
55 this.canonical = canonical;
56 }
57
58 }
59
60 public String getAlias() {
61 return alias;
62 }
63
64 public String getCanonical() {
65 return canonical;
66 }
67
68 @Override
69 public int hashCode() {
70 final int prime = 31;
71 int result = 1;
72 result = prime * result + alias.hashCode();
73 result = prime * result + canonical.hashCode();
74 return result;
75 }
76
77 @Override
78 public boolean equals(Object other) {
79 if (ObjectUtils.notEqual(this, other)) {
80 return false;
81 } else {
82 CanonicalNameRecord cname = (CanonicalNameRecord) other;
83 return alias.equals(cname.getAlias()) && canonical.equals(cname.getCanonical());
84 }
85 }
86
87 }