Akcie 1

Ciele
  1. Implementujte akcie hry.
  2. 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
  1. 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 Action s 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ľ vracia System.currentMillis()
    execute() nech vypíše na štandardný výstup meno akcie, ktorá sa vykonáva.
  2. 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.
  3. 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.
comments powered by Disqus