Skip to content

Commit 9ae41f6

Browse files
committed
refactor: Replace magic numbers in IPv4/IPv6 parsers with named constants
1 parent 8688c1a commit 9ae41f6

1 file changed

Lines changed: 13 additions & 6 deletions

File tree

src/main/java/com/retailsvc/http/validate/DefaultValidator.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -216,9 +216,16 @@ private static boolean isUriReference(String s) {
216216
}
217217
}
218218

219+
private static final int IPV4_OCTET_COUNT = 4;
220+
private static final int IPV4_OCTET_MAX_DIGITS = 3;
221+
private static final int IPV4_OCTET_MAX_VALUE = 255;
222+
private static final int DECIMAL_RADIX = 10;
223+
private static final int IPV6_HEXTET_COUNT = 8;
224+
private static final int IPV6_HEXTET_MAX_DIGITS = 4;
225+
219226
private static boolean isIpv4(String s) {
220227
String[] parts = s.split("\\.", -1);
221-
if (parts.length != 4) {
228+
if (parts.length != IPV4_OCTET_COUNT) {
222229
return false;
223230
}
224231
for (String part : parts) {
@@ -231,7 +238,7 @@ private static boolean isIpv4(String s) {
231238

232239
private static boolean isIpv4Octet(String part) {
233240
int len = part.length();
234-
if (len == 0 || len > 3) {
241+
if (len == 0 || len > IPV4_OCTET_MAX_DIGITS) {
235242
return false;
236243
}
237244
if (len > 1 && part.charAt(0) == '0') {
@@ -243,9 +250,9 @@ private static boolean isIpv4Octet(String part) {
243250
if (c < '0' || c > '9') {
244251
return false;
245252
}
246-
n = n * 10 + (c - '0');
253+
n = n * DECIMAL_RADIX + (c - '0');
247254
}
248-
return n <= 255;
255+
return n <= IPV4_OCTET_MAX_VALUE;
249256
}
250257

251258
private static boolean isIpv6(String s) {
@@ -266,7 +273,7 @@ private static boolean isIpv6(String s) {
266273
right = new String[0];
267274
}
268275
int total = left.length + right.length;
269-
if (compressed ? total > 7 : total != 8) {
276+
if (compressed ? total > IPV6_HEXTET_COUNT - 1 : total != IPV6_HEXTET_COUNT) {
270277
return false;
271278
}
272279
return allHextets(left) && allHextets(right);
@@ -283,7 +290,7 @@ private static boolean allHextets(String[] parts) {
283290

284291
private static boolean isHextet(String hextet) {
285292
int len = hextet.length();
286-
if (len == 0 || len > 4) {
293+
if (len == 0 || len > IPV6_HEXTET_MAX_DIGITS) {
287294
return false;
288295
}
289296
for (int i = 0; i < len; i++) {

0 commit comments

Comments
 (0)