Skip to content

Commit 163082b

Browse files
oschwaldclaude
andcommitted
Convert switch statements to expressions
Converts the decodeBoolean method switch statement to use Java 17 switch expressions, making the code more concise and eliminating the need for break statements. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 36e7354 commit 163082b

File tree

1 file changed

+17
-30
lines changed

1 file changed

+17
-30
lines changed

src/main/java/com/maxmind/db/Decoder.java

Lines changed: 17 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -120,16 +120,11 @@ private <T> DecodedValue decode(Class<T> cls, java.lang.reflect.Type genericType
120120

121121
int size = ctrlByte & 0x1f;
122122
if (size >= 29) {
123-
switch (size) {
124-
case 29:
125-
size = 29 + (0xFF & buffer.get());
126-
break;
127-
case 30:
128-
size = 285 + decodeInteger(2);
129-
break;
130-
default:
131-
size = 65821 + decodeInteger(3);
132-
}
123+
size = switch (size) {
124+
case 29 -> 29 + (0xFF & buffer.get());
125+
case 30 -> 285 + decodeInteger(2);
126+
default -> 65821 + decodeInteger(3);
127+
};
133128
}
134129

135130
return new DecodedValue(this.decodeByType(type, size, cls, genericType));
@@ -259,16 +254,13 @@ private float decodeFloat(int size) throws InvalidDatabaseException {
259254

260255
private static boolean decodeBoolean(int size)
261256
throws InvalidDatabaseException {
262-
switch (size) {
263-
case 0:
264-
return false;
265-
case 1:
266-
return true;
267-
default:
268-
throw new InvalidDatabaseException(
269-
"The MaxMind DB file's data section contains bad data: "
270-
+ "invalid size of boolean.");
271-
}
257+
return switch (size) {
258+
case 0 -> false;
259+
case 1 -> true;
260+
default -> throw new InvalidDatabaseException(
261+
"The MaxMind DB file's data section contains bad data: "
262+
+ "invalid size of boolean.");
263+
};
272264
}
273265

274266
private <T, V> List<V> decodeArray(
@@ -553,16 +545,11 @@ private CtrlData getCtrlData(int offset)
553545
if (size >= 29) {
554546
int bytesToRead = size - 28;
555547
offset += bytesToRead;
556-
switch (size) {
557-
case 29:
558-
size = 29 + (0xFF & buffer.get());
559-
break;
560-
case 30:
561-
size = 285 + decodeInteger(2);
562-
break;
563-
default:
564-
size = 65821 + decodeInteger(3);
565-
}
548+
size = switch (size) {
549+
case 29 -> 29 + (0xFF & buffer.get());
550+
case 30 -> 285 + decodeInteger(2);
551+
default -> 65821 + decodeInteger(3);
552+
};
566553
}
567554

568555
return new CtrlData(type, ctrlByte, offset, size);

0 commit comments

Comments
 (0)