cz.muni.fi.pb162.ishop
Interface Order


public interface Order

Toto rozhrani reprezentuje objednavku. Soucasti objednavky je zakaznik, ktery objednavku ucinil, seznam objednadnych vyrobku a pocty kusu.

Author:
Jan Pomikalek <xpomikal@fi.muni.cz>

Method Summary
 void addItems(Product... products)
          Prida polozky na objednavku.
 void addItems(Product product, int count)
          Prida polozky na objednavku.
 Customer getCustomer()
          Vrati informace o zakaznikovi.
 Map<Product,Integer> getItems()
          Vrati objednane polozky.
 double getTotalPrice()
          Vrati celkovou cenu objednavky.
 void print(OutputStream os)
          Vypise objednavku do vystupniho proudu.
 

Method Detail

addItems

void addItems(Product... products)
Prida polozky na objednavku.

Parameters:
products - seznam vyrobku, ktere se maji pridat na objednavku
Throws:
NullPointerException - pokud pole products obsahuje prvek s hodnotou null

addItems

void addItems(Product product,
              int count)
Prida polozky na objednavku.

Parameters:
product - typ vyrobku, ktery se ma pridat na objednavku
count - pocet kusu vyrobku, ktery se ma pridat na objednavku
Throws:
NullPointerException - pokud ma parametr product hodnotu null
IllegalArgumentException - pokud parametr count neobsahuje kladnou hodnotu

getCustomer

Customer getCustomer()
Vrati informace o zakaznikovi.

Returns:
zakaznik, ktery objednavku ucinil

getItems

Map<Product,Integer> getItems()
Vrati objednane polozky.

Returns:
map: vyrobek -> pocet objednanych kusu

getTotalPrice

double getTotalPrice()
Vrati celkovou cenu objednavky. Vypocte se jako suma cen vsech polozek, kde cena polozky se vypocte jako soucin ceny vyrobku a poctu objednanych kusu.

Returns:
celkova cena objednavky

print

void print(OutputStream os)
           throws IOException
Vypise objednavku do vystupniho proudu. V nasledujicim formatu:
 jmeno_zakaznika
 adresa_zakaznika
 
 id_vyrobku_1 nazev_vyrobku_1 cena_za_kus_1 pocet_kusu_1 celkova_cena_1
 id_vyrobku_2 nazev_vyrobku_2 cena_za_kus_2 pocet_kusu_2 celkova_cena_2
 ...
 id_vyrobku_n nazev_vyrobku_n cena_za_kus_n pocet_kusu_n celkova_cena_n
 
 celkova_cena_objednavky
 
Polozky jsou ve vypisu razeny abecedne podle nazvu vyrobku.

Parameters:
os - vystupni proud
Throws:
IOException