From 5e16f7f37c984d7ee1d1f0484cf0a8154bbb849d Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 20 Jun 2025 17:18:45 +0300 Subject: Improve code quality: Replace instanceof with polymorphism and extract constants MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Major improvements: 1. Replace instanceof checks with polymorphic methods in VSAbstractEvent hierarchy - Added isInternalEvent(), isMessageReceiveEvent(), etc. methods - Added getEventPriority() for clean event ordering - Added shouldIncreaseTimestamps() to control timestamp behavior - Refactored VSTask to use these polymorphic methods 2. Extract magic numbers and strings to constants - Created VSConstants class for centralized configuration values - Added event priority constants (PRIORITY_HIGHEST, PRIORITY_HIGH, etc.) - Extracted string constants like CLASS_PREFIX - Moved magic numbers to named constants (PERCENTAGE_RANGE, etc.) 3. Update tests to work with new polymorphic approach - Fixed mocking in VSTaskTest to return correct values - All 132 tests passing These changes improve maintainability, reduce coupling, and make the codebase more self-documenting. The polymorphic approach eliminates type checking and makes it easier to add new event types. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- src/main/java/events/internal/VSMessageReceiveEvent.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/main/java/events/internal/VSMessageReceiveEvent.java') diff --git a/src/main/java/events/internal/VSMessageReceiveEvent.java b/src/main/java/events/internal/VSMessageReceiveEvent.java index 51ae926..54f2c94 100644 --- a/src/main/java/events/internal/VSMessageReceiveEvent.java +++ b/src/main/java/events/internal/VSMessageReceiveEvent.java @@ -24,6 +24,21 @@ public class VSMessageReceiveEvent extends VSAbstractInternalEvent public VSMessageReceiveEvent(VSMessage message) { this.message = message; } + + @Override + public boolean isMessageReceiveEvent() { + return true; + } + + @Override + public boolean isSerializable() { + return false; + } + + @Override + public boolean shouldIncreaseTimestamps() { + return false; + } /* (non-Javadoc) * @see events.VSAbstractEvent#onInit() -- cgit v1.2.3