13. cviceni ========== * vyhodnoceni dochazky * konzultace * predmetova anketa * zadani premiove ulohy PREMIOVA ULOHA * nemenitelna trida Product - reprezentuje produkt nabizeny v e-shopu - atributy id, name a unitPrice - konstruktor s odpovidajicimi parametry a kontrolami - get metoda pro kazdy z atributu - metody equals() a hashCode() vhodne implementovane - metoda toString() ve formatu " (): Kc" * nemenitelna trida ShoppingCartEntry - reprezentuje jeden zaznam nakupniho kosiku - atributy product a quantity - konstruktor s odpovidajicimi parametry a kontrolami - get metoda pro kazdy z atributu - metoda getTotalPrice() vracejici celkovou cenu - metody equals() a hashCode() vhodne implementovane - metoda toString() ve formatu "x " * trida ShoppingCart - reprezentuje nakupni kosik - metoda void addProduct(Product, int) - prida zadany pocet kusu produktu do kosiku - do kosiku nelze pridat mene jak jeden produkt - pokud produkt jiz v kosiku je, dojde ke zvyseni poctu kusu - metoda void setProductQuantity(Product, int) - nastavi novy pocet kusu konkretniho produktu - nelze nastavit pocet kusu produktu, ktery v kosiku neni - pokud je novy pocet kusu <= 0, produkt z kosiku odstrani - metoda void removeProduct(Product product) - odebere vsechny kusy zadaneho produktu z kosiku - nelze odebrat produkt, ktery v kosiku neni - metoda boolean isEmpty() - metoda int getProductsCount() - vrati sumu poctu kusu vsech produktu v kosiku - metoda int getTotalPrice() - vrati celkovou cenu nakupu - metoda Collection getContent() - metoda String toString() - samostatny radek pro kazdy zaznam v kosiku - format radku "x => Kc" - metoda boolean store(OutputStream) - zapise obsah kosiku do vystupniho produ - pokud zapis probehne bez problemu, vrati true, jinak false - kazdy zaznam kosiku je na samostatnem radku, posledni radek je prazdny - format radku ";;;" - metoda boolean load(InputStream) - nacte obsah kosiku ze vstupniho proudu - pokud cteni probehne bez problemu, vrati true, jinak false - metodu lze zavolat jen tehdy, je-li kosik prazdny - format vstupu je stejny jako format vystupu * trida Demo spustitelna z prikazove radky - vytvoreni instance kosiku - nacteni obsahu kosiku ze souboru zadaneho jako parametr metody main() - demonstrace pouziti vsech metod ze tridy ShoppingCart (kazda alespon 1x) - soucasti demonstrace by mely byt prehledne vypisy toho, co se deje - ulozeni obsahu kosiku na standarni vystup