From ce19f0714cf549ac105ee0b9c00b3e8aaaa7e480 Mon Sep 17 00:00:00 2001 From: Ketansinghrajput Date: Thu, 14 May 2026 18:53:05 +0530 Subject: [PATCH] Forge: 14/05/26 --- .../main/java/com/forge/engine/event/EngineEvent.java | 3 +-- .../java/com/forge/engine/event/EngineEventListener.java | 6 +----- .../src/main/java/com/forge/engine/event/EventBus.java | 9 ++------- .../java/com/forge/engine/model/AuctionStateMachine.java | 3 +-- .../src/main/java/com/forge/engine/model/Bid.java | 4 +--- 5 files changed, 6 insertions(+), 19 deletions(-) diff --git a/forge-engine/src/main/java/com/forge/engine/event/EngineEvent.java b/forge-engine/src/main/java/com/forge/engine/event/EngineEvent.java index 0bd37a2..525e4e4 100644 --- a/forge-engine/src/main/java/com/forge/engine/event/EngineEvent.java +++ b/forge-engine/src/main/java/com/forge/engine/event/EngineEvent.java @@ -1,6 +1,5 @@ package com.forge.engine.event; -// Sealed interface ka matlab hai iske alawa aur koi class isko implement nahi kar sakti. -// Yeh Java 21 ka strict pattern matching feature hai. + public sealed interface EngineEvent permits BidPlacedEvent, AuctionEndedEvent { } \ No newline at end of file diff --git a/forge-engine/src/main/java/com/forge/engine/event/EngineEventListener.java b/forge-engine/src/main/java/com/forge/engine/event/EngineEventListener.java index 3426bc6..6115617 100644 --- a/forge-engine/src/main/java/com/forge/engine/event/EngineEventListener.java +++ b/forge-engine/src/main/java/com/forge/engine/event/EngineEventListener.java @@ -1,10 +1,6 @@ package com.forge.engine.event; -/** - * Ye ek Functional Interface है. - * Jo bhi class engine ke events (jaise STOMP WebSocket bridge) sunna chahti hai, - * usko ye implement karna padega. - */ + @FunctionalInterface public interface EngineEventListener { void onEvent(EngineEvent event); diff --git a/forge-engine/src/main/java/com/forge/engine/event/EventBus.java b/forge-engine/src/main/java/com/forge/engine/event/EventBus.java index fb92f9c..17e759d 100644 --- a/forge-engine/src/main/java/com/forge/engine/event/EventBus.java +++ b/forge-engine/src/main/java/com/forge/engine/event/EventBus.java @@ -29,17 +29,12 @@ public void subscribe(EngineEventListener listener) { log.info("New listener subscribed to EventBus"); } - /** - * PRODUCER: Called by BiddingEngine. - * Extremely fast. Just drops the event in the queue and returns. - */ + public void publish(EngineEvent event) { eventQueue.offer(event); } - /** - * CONSUMER: Infinite background loop running on a Virtual Thread. - */ + private void processEvents() { log.info("EventBus Background Consumer Loop Started..."); while (!Thread.currentThread().isInterrupted()) { diff --git a/forge-engine/src/main/java/com/forge/engine/model/AuctionStateMachine.java b/forge-engine/src/main/java/com/forge/engine/model/AuctionStateMachine.java index 444656d..85f8470 100644 --- a/forge-engine/src/main/java/com/forge/engine/model/AuctionStateMachine.java +++ b/forge-engine/src/main/java/com/forge/engine/model/AuctionStateMachine.java @@ -8,7 +8,7 @@ public class AuctionStateMachine { private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); public AuctionStateMachine() { - // Default state jab auction create hota hai + this.currentState = AuctionState.DRAFT; } @@ -44,7 +44,6 @@ public boolean transitionTo(AuctionState newState) { lock.writeLock().unlock(); } } - // Yeh method AuctionStateMachine.java mein add kar public void transitionToEnded() { boolean success = transitionTo(AuctionState.ENDED); if (!success) { diff --git a/forge-engine/src/main/java/com/forge/engine/model/Bid.java b/forge-engine/src/main/java/com/forge/engine/model/Bid.java index c58396f..bbc22fa 100644 --- a/forge-engine/src/main/java/com/forge/engine/model/Bid.java +++ b/forge-engine/src/main/java/com/forge/engine/model/Bid.java @@ -4,13 +4,11 @@ public record Bid(BidKey bidKey, String bidderId) { - // Backward Compatibility Constructor: Tera purana code yahi constructor call karega - // aur yeh automatically naya BidKey object generate kar lega! + public Bid(String bidderId, Money price) { this(new BidKey(price, Instant.now()), bidderId); } - // --- OLD GETTERS (Taaki tera bacha hua code break na ho) --- public Money getPrice() { return bidKey.amount(); }