Dopište jednoduchý rezervační systém pro leteckou společnost. Systém musí umět přidávat a rušit rezervace v určitém letu, včetně ošetření všech chybových stavů pomocí výjimek.
Vaším úkolem je napsat třídy LetImpl (implementuje rozhraní Let) a AerolinkyImpl (implementuje rozhraní Aerolinky).
Třída LetImpl musí obsahovat:atributy, které slouží k uložení informací o trase letu (odkud kam se letí - řetězce), o kapacitě letu (počet míst resp. počet volných míst) a seznam rezervací. Rezervace je vždy na jméno a jeden člověk může mýt rezervováno více míst.
konstruktor s hlavičkou LetImpl(String odkud, String kam, int mist), kde odkud a kam jsou počáteční resp. cílový bod trasy a míst je požadovaný maximální počet míst v letu. Konstruktor slouží k vytvoření letu z místa odkud do místa kam s mist místy.
metody rezervuj resp. zrusRezervace, které slouží k rezervování (rušení rezervace) v letu (více viz Let.java). Zrušení rezervace = uvolnění všech míst rezervovaným na jméno jmeno
metodu pro implicitní převod třídy LetImpl na řetězec. Výsledný řetězec musí obsahovat odkud kam se letí a informace o rezervacích (pár jméno - počet míst).
metodu void vypis(), která vypíše informace o daném letu (stejné informace, jako vrací předchozí metoda).
Třída AerolinkyImpl implementuje rozhraní Aerolinky a musí obsahovat:
název společnosti
sídlo společnosti (místo odkud společnost létá)
seznam letů realizovaných danou společností. Každý let je instance třídy LetImpl
konstruktor s hlavičkou AerolinkyImpl(String nazev, String sidlo), který vytvoří novou společnost se jménem nazev a sídlem (místem odletů) sidlo.
metody pridejLet, zrusLet, rezervuj, zrus, vypis(detaily o jednotlivých metodách viz Aerolinky.java).
metodu pro implicitní převod třídy na řetězec. Výsledný řetězec musí obsahovat veškeré informace a společnosti (název, sídlo a kompletní seznam letů, včetně informací o jednotlivých letech).
Třídy s použitými výjimkami najdete archívu vyjimky.zip Nezapomeňte, že každá výjimka by měla obsahovat popis příčiny svého vzniku Pro testování použijte připravenou třídu TestAerolinky, která využívá balík junit.jar