Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

11 - Java generics

Možné řešení z minulého cvičení

Konzultace

Konzultace ohledně návrhu semestrálního projektu

Teorie

Viz přednáška: generics.pdf

Zadání

cv11.1

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.

cv11.2

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.

cv11.3

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:

Class clazz = object.getClass();

Field[] fields=clazz.getDeclaredFields();

Pokročilé

cv11.4 - SystemProPripravuClankuDoCasopisu

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.

  • bo - třídy které se používají v JPA/ORM a ukládají do databáze
  • DAO - zde se nachází CRUD operace
  • DTO - myšlenka spočívá v zapouzdření více dat (z více tříd) do jednoho objektu
  • services - zde je funkcionalita aplikace (zde se využívají sequenční diagramy)
  • bb - java beans, java třídy, které propojují UI a bussiness logiku aplikace.
  • UI - JSF, UI pomocí kterého uživatel ovládá aplikaci

Ve třídě GenericHibernateJpaDao naimplementujte metody: getAll(), getByProperty() a remove()

nápověda:

prohlédněte si celou třídu GenericHibernateJpaDao
courses/b6b36omo/labs/lab112017.txt · Last modified: 2021/12/15 16:27 by zidekja2