summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Implement in-memory repositories, XML load validation, and menu exit/list ↵Kostya2026-08-1421-61/+359
| | | | | | | | | | | | | | commands - Add generic Repository<T> interface; EventRepository/UserRepository extend it - Implement InMemoryEventRepository/InMemoryUserRepository backed by ArrayList - Rename XMLLoader to XMLLoaderV1, add LoadValidator and mapper/v2 package - Add OrderBookTradingMechanism - Add User(String, int) convenience constructor - Add ListEventsMenuCommand and ExitMenuCommand, isExit() on MenuCommand - Menu now sizes selection range by max command index and exits on isExit() - LoadFileMenuCommand reports validation issues on failed loads - Untrack test-data/ and config.properties from .gitignore
* Move mapper/provider infra into v1 packages, add repository write methodsKostya2026-08-149-18/+83
| | | | | Correct Mapper's generic parameter order to <TModel, TDomain> and stub addEvent/addUser on the Event/User repositories.
* Move IO providers into io package, add InputProcessor, implement menu loop ↵Kostya2026-08-149-24/+116
| | | | | | | and file load command Wires InputProcessor into the console menu's selection loop and the load-file command's prompt handling, replacing the unimplemented stub.
* Wire buyShares and menu commands, replace factory interfaces with DIKostya2026-08-1421-64/+211
| | | | | | | | Implement LocalGuessMarketContext.buyShares/loadEvents via a new TradingOperation and Loader, backed by in-memory repositories. Replace the ConsoleInputProviderFactory/ConsoleOutputProviderFactory pattern with picocontainer-injected providers, and drive the menu from a list of MenuCommand implementations instead of a hardcoded printout.
* Add ledgered credit/debit to Account and trade recording to EventKostya2026-08-146-26/+67
| | | | | | | Drops AccountType (accounts no longer need to self-identify), gives Account credit()/debit() that append LedgerEntry rows, adds Event.recordTrade()/tradeVolumeOf()/getCommission(), and implements LocalGuessMarketContext.listEvents() via the repository.
* Implement LMSR mechanism and Event/Account accessors, wire EventMapperV1Kostya2026-08-144-2/+176
| | | | | | Adds LmsrTradingMechanism, exposes Event/Account getters plus Event.toEventSummary() for DTO conversion, and implements EventMapperV1.toDomain() to build Event from the legacy XML model.
* Wire EventRepository into LocalGuessMarketContext, add mapper/provider infra ↵Kostya2026-08-148-5/+49
| | | | | | | and tests Removes the placeholder Mapper interface in favor of concrete mapper/provider implementations, fixes Menu.stop() to no-op instead of throwing.
* Add legacy XML model bindings, mapper infra, and normalize account balanceKostya2026-08-1328-4/+2277
| | | | | Rename repositories package to repository, add MarketAction domain type, and round Account.initialBalance through BigDecimalOptions.toMoney.
* Add domain model, repositories, and trading mechanism interfaces to service ↵Kostya2026-08-1311-0/+197
| | | | | | | module Introduces Account/Event/Trade/User/Option/LedgerEntry domain types plus EventRepository/UserRepository and TradingMechanism abstractions.
* Remove engine moduleKostya2026-08-1314-995/+0
| | | | | | Superseded by the service module's GuessMarketContext implementation; the JAXB model, TradingMechanism interface, and its LMSR/order-book stubs had no remaining callers.
* Add service module with stubbed LocalGuessMarketContextKostya2026-08-139-75/+170
| | | | | | | | | | GuessMarketContext gained a richer surface (loadEvents/listEvents/ buyShares/closeEvent/account/save-restoreState) backed by new EventDetailDTO, MarketStateDTO, OptionStateDTO and PurchaseReceiptDTO. The old engine-module provider implemented the previous shape and is removed; market.guess.service.LocalGuessMarketContext replaces it as a stub, each method throwing UnsupportedOperationException pending a real implementation.
* Replace EventDTO with richer EventSummaryDTO/TradeRowDTO view modelsKostya2026-08-138-30/+30
| | | | | | | Introduce MechanismType and rename CommissionChargeType to CommissionTiming to better describe LMSR vs order-book events. LocalGuessMarketContext.GetAllEventsAsync is stubbed pending the new mapping.
* Move I/O provider abstraction to ui-console, add ledger/account/problem DTOsKostya2026-08-1318-50/+47
| | | | | | | | 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.
* Vendor Mockito 5.23.0 dependenciesKostya2026-08-135-0/+0
|
* Move engine contracts to api module, add I/O provider abstraction and ↵Kostya2026-08-1032-31/+1115
| | | | | | | | | | | 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.
* flatten modules to repo root, vendor deps, repair Eclipse build pathsKostya2026-08-0994-124/+155
| | | | | | | | | | | | | | | | | | | | | | | Move api, engine, ui-console and ui-desktop out of modules/ up to the repo root and drop the empty exception project (GuessMarketException now lives in api). Vendor gson, jaxb, okhttp, openjfx and tomcat under lib/, and group the JUnit standalone jar into lib/junit/ alongside them. Rewrite every .classpath: drop the copy-pasted optional="true" that was masking real build path errors, point the library entries at ../lib/, and put the JUnit jar on the test source folders so the placeholder AppTest classes compile. ui-desktop: take the JavaFX jars off the modulepath (there is no module-info.java, so module="true" left the packages unresolvable) and add a Launcher that calls Application.launch, avoiding the "JavaFX runtime components are missing" check without VM arguments. engine: add LocalGuessMarketService and the GuessMarketContext provider interface, and give GuessMarketException the no-arg and cause constructors they need.
* consolidate modules, add more infraKostya2026-08-0912-29/+97
|
* wireframeKostya2026-08-0633-25/+309
|
* template initial commitKostya2026-08-0612-0/+232