Search
https://gitlab.fel.cvut.cz/B181_B6B36OMO/seminar/tree/master/cv10_solution
Konzultace ohledně návrhu semestrálního projektu
Viz přednáška: generics.pdf
Stahněte si šablony projektů na: https://gitlab.fel.cvut.cz/B181_B6B36OMO/seminar/tree/master/cv11.1_assigment https://gitlab.fel.cvut.cz/B181_B6B36OMO/seminar/tree/master/cv11.2_assigment https://gitlab.fel.cvut.cz/B181_B6B36OMO/seminar/tree/master/cv11.3_assigment https://gitlab.fel.cvut.cz/B171_B6B36OMO/seminar/tree/master/SystemProPripravuClankuDoCasopisu
Dnešní cvičení ma čtyři části.
V této části cvičení máte třídu Container, která má reprezentovat generický kontejner pro jakákoli data. Doplňte vše potřebné podle hlavní metody main.
Doplňte kostru metod a tříd do funkčního celku.
Aplikace obsahuje 3 třídy:
MyListItem - reprezentuje prvek v seznamu. MyList - spojový seznam. MyListIterator - iterátor pro danou datovou strukturu
Jak se má iterátor přesně chovat najdete nejlépe v dokumentaci interface ListIterator a samozřejmě v testech. Iterátor bude umět všechny zde popisované operace. Oproti knihovní implementaci není potřeba detekovat změny na seznamu, které nejsou způsobené aktuálním iterátorem (např. souběžná modifikace seznamu pomocí dvou iterátorů by měla vyhodit výjimku) - to neřešte (nebo jen kdo chce, ale není to pokryto testy). Metody, které mají vyhazovat nějaké výjimky, jsou v kostře kódu patřičně zdokumentované.
Veškeré požadované části úkolu jsou pokryté testy.
Tato část je zaměřená na procvičení java reflexe. Cíl aplikace je, aby ukládala informace o jakékoli třídě do metamodelu. Při tomto ukládání všechny informace vypisujte o dané třídě: Název třídy, anotace třídy, atributry (název, hodnota), anotace u atributů. Po spuštění aplikace uvidíte jak dlouho trvá inspekce 2 tříd pomocí reflexe.
nápověda:
Field[] fields=clazz.getDeclaredFields();
Zde je celý system, který obsahuje vrstvy popsané níže. Testy nespouštějte, protože nemáte připojenou aplikaci k databázi. Jedná se ale o klasický příklad chain of responsibility. Každá vrstva má svůj účel.
Ve třídě GenericHibernateJpaDao naimplementujte metody: getAll(), getByProperty() a remove()