summaryrefslogtreecommitdiffstats
path: root/api/src/main/java
diff options
context:
space:
mode:
authorKostya <mail@sartin.in>2026-08-10 20:21:55 +0000
committerKostya <mail@sartin.in>2026-08-10 20:21:55 +0000
commit9d19a3187789f01d6dbbc73d14c7f90df3e67560 (patch)
treef93b0727ef25ef046e7f4d90c195cdd4bcf19348 /api/src/main/java
parent34deee1c5ef2df5ba2514f77ec4dfd4a684a9d13 (diff)
downloadguess-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')
-rw-r--r--api/src/main/java/market/guess/InputProvider.java5
-rw-r--r--api/src/main/java/market/guess/InputProviderFactory.java5
-rw-r--r--api/src/main/java/market/guess/OutputProvider.java7
-rw-r--r--api/src/main/java/market/guess/OutputProviderFactory.java5
-rw-r--r--api/src/main/java/market/guess/api/EventDTO.java8
-rw-r--r--api/src/main/java/market/guess/api/GuessMarketContext.java18
-rw-r--r--api/src/main/java/market/guess/api/GuessMarketEngine.java7
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 @@
1package market.guess;
2
3public 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 @@
1package market.guess;
2
3public 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 @@
1package market.guess;
2
3public 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 @@
1package market.guess;
2
3public 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 @@
1package market.guess.api; 1package market.guess.api;
2
3public 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 @@
1package market.guess.api;
2
3import java.util.List;
4import java.util.concurrent.CompletableFuture;
5
6public 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 @@
1package market.guess.api;
2
3import java.util.concurrent.CompletableFuture;
4
5public interface GuessMarketEngine {
6 CompletableFuture<LoadResultDTO> loadEvents();
7}