From f0b58321ae53f330da86c392661354b87bd9a412 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 20 Jun 2025 20:04:02 +0300 Subject: Modernize codebase to use Java 21 features MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Convert VS3Tupel and VSLamportTime to records for immutability - Use switch expressions with pattern matching in VSTimestampTriggeredEvent - Modernize exception handling with pattern matching in VSErrorHandler - Replace anonymous ActionListener with lambda in VSAboutFrame - Use formatted strings instead of concatenation in VSDummyProtocol - Add sealed hierarchy VSEventType for exhaustive pattern matching - Create VSSimulationConfig record for configuration management - Maintain backward compatibility with deprecated methods All 132 unit tests pass successfully with Java 21 features. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../implementations/VSTimestampTriggeredEvent.java | 42 ++++++++-------------- 1 file changed, 14 insertions(+), 28 deletions(-) (limited to 'src/main/java/events/implementations/VSTimestampTriggeredEvent.java') diff --git a/src/main/java/events/implementations/VSTimestampTriggeredEvent.java b/src/main/java/events/implementations/VSTimestampTriggeredEvent.java index c5e5386..278d2f2 100644 --- a/src/main/java/events/implementations/VSTimestampTriggeredEvent.java +++ b/src/main/java/events/implementations/VSTimestampTriggeredEvent.java @@ -130,20 +130,13 @@ public abstract class VSTimestampTriggeredEvent extends VSAbstractEvent implemen protected boolean checkLamportCondition(VSInternalProcess process) { long currentLamport = process.getLamportTime(); - switch (operator) { - case EQUAL: - return currentLamport == targetLamportTime; - case GREATER_THAN: - return currentLamport > targetLamportTime; - case LESS_THAN: - return currentLamport < targetLamportTime; - case GREATER_EQUAL: - return currentLamport >= targetLamportTime; - case LESS_EQUAL: - return currentLamport <= targetLamportTime; - default: - return false; - } + return switch (operator) { + case EQUAL -> currentLamport == targetLamportTime; + case GREATER_THAN -> currentLamport > targetLamportTime; + case LESS_THAN -> currentLamport < targetLamportTime; + case GREATER_EQUAL -> currentLamport >= targetLamportTime; + case LESS_EQUAL -> currentLamport <= targetLamportTime; + }; } /** @@ -156,20 +149,13 @@ public abstract class VSTimestampTriggeredEvent extends VSAbstractEvent implemen return false; } - switch (operator) { - case EQUAL: - return vectorTimesEqual(currentVector, targetVectorTime); - case GREATER_THAN: - return vectorTimeGreater(currentVector, targetVectorTime, false); - case LESS_THAN: - return vectorTimeGreater(targetVectorTime, currentVector, false); - case GREATER_EQUAL: - return vectorTimeGreater(currentVector, targetVectorTime, true); - case LESS_EQUAL: - return vectorTimeGreater(targetVectorTime, currentVector, true); - default: - return false; - } + return switch (operator) { + case EQUAL -> vectorTimesEqual(currentVector, targetVectorTime); + case GREATER_THAN -> vectorTimeGreater(currentVector, targetVectorTime, false); + case LESS_THAN -> vectorTimeGreater(targetVectorTime, currentVector, false); + case GREATER_EQUAL -> vectorTimeGreater(currentVector, targetVectorTime, true); + case LESS_EQUAL -> vectorTimeGreater(targetVectorTime, currentVector, true); + }; } /** -- cgit v1.2.3