1
2
3
4 package de.powerstat.validation.values;
5
6
7 import java.util.Objects;
8
9 import de.powerstat.validation.interfaces.IValueObject;
10
11
12
13
14
15
16
17 public final class PoBoxNumber implements Comparable<PoBoxNumber>, IValueObject
18 {
19
20
21
22
23
24
25
26
27 private final long poBoxNumber;
28
29
30
31
32
33
34
35
36 private PoBoxNumber(final long poBoxNumber)
37 {
38 super();
39 if (poBoxNumber < 1)
40 {
41 throw new IndexOutOfBoundsException("POBoxNumber number out of range (1-..)!");
42 }
43 this.poBoxNumber = poBoxNumber;
44 }
45
46
47
48
49
50
51
52
53 public static PoBoxNumber of(final long poBoxNumber)
54 {
55
56
57
58
59
60
61
62
63
64
65
66
67
68 return new PoBoxNumber(poBoxNumber);
69 }
70
71
72
73
74
75
76
77
78 public static PoBoxNumber of(final String value)
79 {
80 return of(Long.parseLong(value));
81 }
82
83
84
85
86
87
88
89 public long longValue()
90 {
91 return this.poBoxNumber;
92 }
93
94
95
96
97
98
99
100 @Override
101 public String stringValue()
102 {
103 return Long.toString(this.poBoxNumber);
104 }
105
106
107
108
109
110
111
112
113 @Override
114 public int hashCode()
115 {
116 return Long.hashCode(this.poBoxNumber);
117 }
118
119
120
121
122
123
124
125
126
127 @Override
128 public boolean equals(final Object obj)
129 {
130 if (this == obj)
131 {
132 return true;
133 }
134 if (!(obj instanceof PoBoxNumber))
135 {
136 return false;
137 }
138 final PoBoxNumber other = (PoBoxNumber)obj;
139 return this.poBoxNumber == other.poBoxNumber;
140 }
141
142
143
144
145
146
147
148
149
150
151
152
153 @Override
154 public String toString()
155 {
156 final var builder = new StringBuilder(25);
157 builder.append("PoBoxNumber[poBoxNumber=").append(this.poBoxNumber).append(']');
158 return builder.toString();
159 }
160
161
162
163
164
165
166
167
168
169 @Override
170 public int compareTo(final PoBoxNumber obj)
171 {
172 Objects.requireNonNull(obj, "obj");
173 return Long.compare(this.poBoxNumber, obj.poBoxNumber);
174 }
175
176 }