Ciele
- Implementujte akcie hry.
- Zabezpečte vyhodnotenie všetkých akcií pri každej požiadavke o dáta.
Úvod
-
Na tomto cvičení vytvoríte triedu DataUpdater s rozhraním Action. DataUpdater bude obsahovať jednu
metódu slúžiacu na aktualízáciu všetkých dát. Významom tejto triedy je overiť, či sa v databáze nenachádzajú
nevyhodnotené akcie. Zoradiť ich a vyhodnotiť. Cieľom je vytvoriť hráčovi ilúziu, že akcia sa vykonala kým bol
odhlásený. V hre nezáleží na čase vykonania - dôležité je poradie vykpnávania.
Postup
-
V hre sa vyskytujú akcie, ktoré je nutné vykonať aj v čase, kedy hráč nie je prihlásený. V balíku domain.actions sa nachádzjú perzistentné triedy reprezentujúce akcie. Obsahujú všetky dáta potrebné pre svoje vykonanie.Úloha: Vytvorte v balíku dataupdater rozhranie
Actions nasledovnými metódami.public long getExecutionTimeMillis(); public void execute(); public boolean verify();Úloha: V triedach reprezentujúcich akcie implementujte metódy rozhrania action.getExecutionTimeMillis()nech zatiaľ vraciaSystem.currentMillis()execute()nech vypíše na štandardný výstup meno akcie, ktorá sa vykonáva. -
V tomto kroku potrebujeme vytvoriť správcu dát, ktorý načíta z databázy všetky akcie a vykoná ich.Úloha: V balíku dataupdater vytvorte triedu DataUpdater s jednou metódou
updateAllData()Úloha: V tele metódy zabezpečte vykonanie akcí z databázy.Poznámka: Každá trieda v balíku domain obsahuje metódu findAll..., ktorá vráti všetky jej záznamy z databázy. -
V poslednom kroku potrebujeme zabezpečiť, aby sa metóda aktualizácie volala v ten správny čas.Úloha: Do niektorého webového controllera z balíka web.game pridajte premennú typu DataUpdater a v aspektovom súbore pridajte pred odovzdaním dát vykonanie metódy aktualizácie dát z triedy DataUpdater. (napr. metóda list sa zavolá pri klinutí v menu na List all daného typu)Na to, aby sme vedeli overiť správnosť, potrebujeme pridať pár akcií do databázy a overiť výpisy.Úloha: Pridajte akciu z každého druhu a overte, že jej vykonanie sa vypíše na obrazovku.Poznámka: Vo vygenerovanom používateľskom rozhraní pridajte nové záznamy typu ProductionAction, AttackAction, BuildingAction a AddTroopsAction.


