cz.muni.fi.pb162.ishop
Interface Stock


public interface Stock

Toto rozhrani reprezentuje sklad vyrobku. Do skladu lze vyrobky pridavat a zase je z nej odebirat.

Sklad ma omezenou kapacitu. Pro kazdou ze tri moznych velikosti vyrobku (SMALL, MEDIUM, LARGE) existuje ve skladu prostor, kam se ukladaji pouze vyrobky teto velikosti. Kapacita kazde z techto tri prostor oblasti je dana maximalnim poctem vyrobku, ktere sem lze ulozit. V pripade, ze se naplni prostor pro male vyrobky, nelze uz tedy dalsi maly vyrobek do skladu ulozit, prestoze by v prostoru pro velke vyrobky jeste bylo misto.

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

Method Summary
 void addProduct(Product product)
          Vlozi do skladu jeden kus vyrobku.
 void addProduct(Product product, int count)
          Vlozi do skladu count kusu vyrobku.
 int getProductCount(Product product)
          Vrati informaci o poctu daneho typu vyrobku na sklade.
 int getSpaceLeft(Product.Size size)
          Vrati informaci o volnem miste ve skladu.
 void removeProduct(Product product)
          Odstrani ze skladu jeden kus vyrobku.
 void removeProduct(Product product, int count)
          Odstrani ze skladu count kusu vyrobku.
 

Method Detail

addProduct

void addProduct(Product product)
Vlozi do skladu jeden kus vyrobku.

Parameters:
product - vyrobek, ktery se ma uskladnit
Throws:
cz.muni.fi.pb162.school.StockFullException - pokud ve skladu jiz neni misto pro vyrobek dane velikosti
NullPointerException - pokud ma parametr product hodnotu null

addProduct

void addProduct(Product product,
                int count)
Vlozi do skladu count kusu vyrobku.

Parameters:
product - typ vyrobku, ktery se ma uskladnit
count - pocet kusu vyrobku, ktere se maji uskladnit
Throws:
cz.muni.fi.pb162.school.StockFullException - pokud ve skladu jiz neni misto pro dany pocet vyrobku dane velikosti
NullPointerException - pokud ma parametr product hodnotu null
IllegalArgumentException - pokud parametr count neobsahuje kladnou hodnotu

getProductCount

int getProductCount(Product product)
Vrati informaci o poctu daneho typu vyrobku na sklade.

Parameters:
product - vyrobek, jehoz stav na sklade se zjistuje
Returns:
pocet kusu vyrobku na sklade
Throws:
NullPointerException - pokud ma parametr product hodnotu null

getSpaceLeft

int getSpaceLeft(Product.Size size)
Vrati informaci o volnem miste ve skladu.

Parameters:
size - velikost vyrobku urcujici oblast skladu, jejiz kapacita se zjistuje
Returns:
pocet kusu vyrobku dane velikosti, ktere lze do skladu jeste umistit
Throws:
NullPointerException - pokud ma parametr size hodnotu null

removeProduct

void removeProduct(Product product)
Odstrani ze skladu jeden kus vyrobku.

Parameters:
product - vyrobek, ktery se ma odstranit ze skladu
Throws:
cz.muni.fi.pb162.school.NotEnoughProductsException - pokud na sklade dany vyrobek neni k dispozici
NullPointerException - pokud ma parametr product hodnotu null

removeProduct

void removeProduct(Product product,
                   int count)
Odstrani ze skladu count kusu vyrobku.

Parameters:
product - typ vyrobku, ktery se ma odstranit ze skladu
count - pocet kusu vyrobku, ktere se maji odstranit ze skladu
Throws:
cz.muni.fi.pb162.school.NotEnoughProductsException - pokud na sklade neni k dispozici dany pocet daneho vyrobku
NullPointerException - pokud ma parametr product hodnotu null
IllegalArgumentException - pokud parametr count neobsahuje kladnou hodnotu