diff options
| author | Kostya <mail@sartin.in> | 2026-08-10 20:21:55 +0000 |
|---|---|---|
| committer | Kostya <mail@sartin.in> | 2026-08-10 20:21:55 +0000 |
| commit | 9d19a3187789f01d6dbbc73d14c7f90df3e67560 (patch) | |
| tree | f93b0727ef25ef046e7f4d90c195cdd4bcf19348 /api/src/main/java/market/guess | |
| parent | 34deee1c5ef2df5ba2514f77ec4dfd4a684a9d13 (diff) | |
| download | guess-market-9d19a3187789f01d6dbbc73d14c7f90df3e67560.tar.gz guess-market-9d19a3187789f01d6dbbc73d14c7f90df3e67560.tar.xz guess-market-9d19a3187789f01d6dbbc73d14c7f90df3e67560.zip | |
Move engine contracts to api module, add I/O provider abstraction and PicoContainer wiring
Relocates GuessMarketEngine/GuessMarketContext into market.guess.api so
engine and ui-console depend on a shared contract instead of engine
internals, and makes context loading async (CompletableFuture). Adds
InputProvider/OutputProvider interfaces with console implementations,
wires the console app's Menu through a PicoContainer, and adds the
generated model classes plus vendored picocontainer jar needed to build it.
Diffstat (limited to 'api/src/main/java/market/guess')
7 files changed, 55 insertions, 0 deletions
diff --git a/api/src/main/java/market/guess/InputProvider.java b/api/src/main/java/market/guess/InputProvider.java new file mode 100644 index 0000000..be7372b --- /dev/null +++ b/api/src/main/java/market/guess/InputProvider.java | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | package market.guess; | ||
| 2 | |||
| 3 | public interface InputProvider extends AutoCloseable { | ||
| 4 | int nextInt(); | ||
| 5 | } | ||
diff --git a/api/src/main/java/market/guess/InputProviderFactory.java b/api/src/main/java/market/guess/InputProviderFactory.java new file mode 100644 index 0000000..6801103 --- /dev/null +++ b/api/src/main/java/market/guess/InputProviderFactory.java | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | package market.guess; | ||
| 2 | |||
| 3 | public interface InputProviderFactory { | ||
| 4 | InputProvider create(); | ||
| 5 | } | ||
diff --git a/api/src/main/java/market/guess/OutputProvider.java b/api/src/main/java/market/guess/OutputProvider.java new file mode 100644 index 0000000..774408e --- /dev/null +++ b/api/src/main/java/market/guess/OutputProvider.java | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | package market.guess; | ||
| 2 | |||
| 3 | public interface OutputProvider { | ||
| 4 | void print(Object object); | ||
| 5 | |||
| 6 | void println(Object object); | ||
| 7 | } | ||
diff --git a/api/src/main/java/market/guess/OutputProviderFactory.java b/api/src/main/java/market/guess/OutputProviderFactory.java new file mode 100644 index 0000000..b4eb7f5 --- /dev/null +++ b/api/src/main/java/market/guess/OutputProviderFactory.java | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | package market.guess; | ||
| 2 | |||
| 3 | public interface OutputProviderFactory { | ||
| 4 | OutputProvider create(); | ||
| 5 | } | ||
diff --git a/api/src/main/java/market/guess/api/EventDTO.java b/api/src/main/java/market/guess/api/EventDTO.java index 66b2312..2b2bc63 100644 --- a/api/src/main/java/market/guess/api/EventDTO.java +++ b/api/src/main/java/market/guess/api/EventDTO.java | |||
| @@ -1 +1,9 @@ | |||
| 1 | package market.guess.api; | 1 | package market.guess.api; |
| 2 | |||
| 3 | public record EventDTO( | ||
| 4 | int id, | ||
| 5 | String name, | ||
| 6 | String description, | ||
| 7 | int commission, | ||
| 8 | CommissionChargeType commissionChargeType, | ||
| 9 | EventStatus status) {} | ||
diff --git a/api/src/main/java/market/guess/api/GuessMarketContext.java b/api/src/main/java/market/guess/api/GuessMarketContext.java new file mode 100644 index 0000000..12ffbeb --- /dev/null +++ b/api/src/main/java/market/guess/api/GuessMarketContext.java | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | package market.guess.api; | ||
| 2 | |||
| 3 | import java.util.List; | ||
| 4 | import java.util.concurrent.CompletableFuture; | ||
| 5 | |||
| 6 | public interface GuessMarketContext { | ||
| 7 | CompletableFuture<LoadResultDTO> LoadAsync(); | ||
| 8 | |||
| 9 | void SaveChangesAsync(); | ||
| 10 | |||
| 11 | List<EventDTO> GetAllEventsAsync(); | ||
| 12 | |||
| 13 | void GetEventInfoByIdAsync(); | ||
| 14 | |||
| 15 | void CreateEventAsync(); | ||
| 16 | |||
| 17 | void UpdateEventAsync(); | ||
| 18 | } | ||
diff --git a/api/src/main/java/market/guess/api/GuessMarketEngine.java b/api/src/main/java/market/guess/api/GuessMarketEngine.java new file mode 100644 index 0000000..b6d44a4 --- /dev/null +++ b/api/src/main/java/market/guess/api/GuessMarketEngine.java | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | package market.guess.api; | ||
| 2 | |||
| 3 | import java.util.concurrent.CompletableFuture; | ||
| 4 | |||
| 5 | public interface GuessMarketEngine { | ||
| 6 | CompletableFuture<LoadResultDTO> loadEvents(); | ||
| 7 | } | ||