diff options
| author | Kostya <mail@sartin.in> | 2026-08-13 15:39:56 +0000 |
|---|---|---|
| committer | Kostya <mail@sartin.in> | 2026-08-13 15:39:56 +0000 |
| commit | 9dd3ec7ff11839503e4d5ef6639d0faa21403095 (patch) | |
| tree | 925fb81222c055404b63cc8eed8ef7ae710ec5be /engine/src/main/java | |
| parent | c58e65ad4fba4b964d26dcf11d6163465fc3cfd3 (diff) | |
| download | guess-market-9dd3ec7ff11839503e4d5ef6639d0faa21403095.tar.gz guess-market-9dd3ec7ff11839503e4d5ef6639d0faa21403095.tar.xz guess-market-9dd3ec7ff11839503e4d5ef6639d0faa21403095.zip | |
Move I/O provider abstraction to ui-console, add ledger/account/problem DTOs
InputProvider/OutputProvider were api-layer types only ever implemented
by the console UI; relocate them there. Drop the unused
GuessMarketEngine/LocalGuessMarketService pair, flesh out LoadResultDTO
with success/failure variants, and make LocalGuessMarketContext.LoadAsync
report real outcomes instead of an empty placeholder.
Diffstat (limited to 'engine/src/main/java')
| -rw-r--r-- | engine/src/main/java/market/guess/engine/LocalGuessMarketService.java | 20 | ||||
| -rw-r--r-- | engine/src/main/java/market/guess/engine/provider/LocalGuessMarketContext.java | 11 |
2 files changed, 6 insertions, 25 deletions
diff --git a/engine/src/main/java/market/guess/engine/LocalGuessMarketService.java b/engine/src/main/java/market/guess/engine/LocalGuessMarketService.java deleted file mode 100644 index dafbef6..0000000 --- a/engine/src/main/java/market/guess/engine/LocalGuessMarketService.java +++ /dev/null | |||
| @@ -1,20 +0,0 @@ | |||
| 1 | package market.guess.engine; | ||
| 2 | |||
| 3 | import java.util.concurrent.CompletableFuture; | ||
| 4 | import market.guess.api.GuessMarketContext; | ||
| 5 | import market.guess.api.GuessMarketEngine; | ||
| 6 | import market.guess.api.LoadResultDTO; | ||
| 7 | |||
| 8 | public class LocalGuessMarketService implements GuessMarketEngine { | ||
| 9 | private final GuessMarketContext context; | ||
| 10 | |||
| 11 | public LocalGuessMarketService(GuessMarketContext context) { | ||
| 12 | super(); | ||
| 13 | this.context = context; | ||
| 14 | } | ||
| 15 | |||
| 16 | @Override | ||
| 17 | public CompletableFuture<LoadResultDTO> loadEvents() { | ||
| 18 | return context.LoadAsync(); | ||
| 19 | } | ||
| 20 | } | ||
diff --git a/engine/src/main/java/market/guess/engine/provider/LocalGuessMarketContext.java b/engine/src/main/java/market/guess/engine/provider/LocalGuessMarketContext.java index 628038d..cf0923b 100644 --- a/engine/src/main/java/market/guess/engine/provider/LocalGuessMarketContext.java +++ b/engine/src/main/java/market/guess/engine/provider/LocalGuessMarketContext.java | |||
| @@ -4,30 +4,31 @@ import jakarta.xml.bind.JAXBContext; | |||
| 4 | import jakarta.xml.bind.Marshaller; | 4 | import jakarta.xml.bind.Marshaller; |
| 5 | import java.io.File; | 5 | import java.io.File; |
| 6 | import java.util.List; | 6 | import java.util.List; |
| 7 | import java.util.concurrent.CompletableFuture; | ||
| 8 | import market.guess.api.CommissionChargeType; | 7 | import market.guess.api.CommissionChargeType; |
| 9 | import market.guess.api.EventDTO; | 8 | import market.guess.api.EventDTO; |
| 10 | import market.guess.api.EventStatus; | 9 | import market.guess.api.EventStatus; |
| 11 | import market.guess.api.GuessMarketContext; | 10 | import market.guess.api.GuessMarketContext; |
| 12 | import market.guess.api.LoadResultDTO; | 11 | import market.guess.api.LoadResultDTO; |
| 12 | import market.guess.api.ProblemDTO; | ||
| 13 | import market.guess.engine.model.GuessMarket; | 13 | import market.guess.engine.model.GuessMarket; |
| 14 | 14 | ||
| 15 | public class LocalGuessMarketContext implements GuessMarketContext { | 15 | public class LocalGuessMarketContext implements GuessMarketContext { |
| 16 | private GuessMarket context; | 16 | private GuessMarket context; |
| 17 | 17 | ||
| 18 | @Override | 18 | @Override |
| 19 | public CompletableFuture<LoadResultDTO> LoadAsync() { | 19 | public LoadResultDTO LoadAsync() { |
| 20 | var file = new File("test-data/ex-1/multiple.xml"); | ||
| 20 | try { | 21 | try { |
| 21 | var file = new File("test-data/ex-1/multiple.xml"); | ||
| 22 | var ctx = JAXBContext.newInstance(GuessMarket.class); | 22 | var ctx = JAXBContext.newInstance(GuessMarket.class); |
| 23 | var unmarshaller = ctx.createUnmarshaller(); | 23 | var unmarshaller = ctx.createUnmarshaller(); |
| 24 | 24 | ||
| 25 | context = (GuessMarket) unmarshaller.unmarshal(file); | 25 | context = (GuessMarket) unmarshaller.unmarshal(file); |
| 26 | 26 | return LoadResultDTO.success(file.getPath(), context.getGMEvents().getGMEvent().size()); | |
| 27 | } catch (Exception e) { | 27 | } catch (Exception e) { |
| 28 | e.printStackTrace(); | 28 | e.printStackTrace(); |
| 29 | return LoadResultDTO.failure( | ||
| 30 | file.getPath(), List.of(new ProblemDTO("LOAD_FAILED", e.getMessage(), file.getPath()))); | ||
| 29 | } | 31 | } |
| 30 | return CompletableFuture.completedFuture(new LoadResultDTO()); | ||
| 31 | } | 32 | } |
| 32 | 33 | ||
| 33 | @Override | 34 | @Override |