Skip to content

Commit 58ff7a4

Browse files
committed
Use a switch expression in another spot
1 parent c7e1851 commit 58ff7a4

File tree

1 file changed

+16
-20
lines changed

1 file changed

+16
-20
lines changed

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

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -385,31 +385,27 @@ long readNode(Buffer buffer, long nodeNumber, int index)
385385
// can either be 0 or 1.
386386
long baseOffset = nodeNumber * this.metadata.nodeByteSize();
387387

388-
switch (this.metadata.recordSize()) {
389-
case 24:
388+
int recordSize = this.metadata.recordSize();
389+
return switch (recordSize) {
390+
case 24 -> {
390391
// For a 24 bit record, each record is 3 bytes.
391392
buffer.position(baseOffset + (long) index * 3);
392-
return Decoder.decodeLong(buffer, 0, 3);
393-
case 28:
393+
yield Decoder.decodeLong(buffer, 0, 3);
394+
}
395+
case 28 -> {
394396
int middle = buffer.get(baseOffset + 3);
395-
396-
if (index == 0) {
397-
// We get the most significant from the first half
398-
// of the byte. It belongs to the first record.
399-
middle = (0xF0 & middle) >>> 4;
400-
} else {
401-
// We get the most significant byte of the second record.
402-
middle = 0x0F & middle;
403-
}
397+
// We get the most significant bits from the appropriate half
398+
// of the byte based on the index.
399+
middle = index == 0 ? (0xF0 & middle) >>> 4 : 0x0F & middle;
404400
buffer.position(baseOffset + (long) index * 4);
405-
return Decoder.decodeLong(buffer, middle, 3);
406-
case 32:
401+
yield Decoder.decodeLong(buffer, middle, 3);
402+
}
403+
case 32 -> {
407404
buffer.position(baseOffset + (long) index * 4);
408-
return Decoder.decodeLong(buffer, 0, 4);
409-
default:
410-
throw new InvalidDatabaseException("Unknown record size: "
411-
+ this.metadata.recordSize());
412-
}
405+
yield Decoder.decodeLong(buffer, 0, 4);
406+
}
407+
default -> throw new InvalidDatabaseException("Unknown record size: " + recordSize);
408+
};
413409
}
414410

415411
<T> T resolveDataPointer(

0 commit comments

Comments
 (0)