package shoppingcart;

import java.util.ArrayList;

public class ShoppingCart implements KorpaZaKupovinu{
    
    private ArrayList<Stavka> korpa;

    public ShoppingCart() {
        korpa = new ArrayList<>();
    }

    @Override
    public void dodajStavku(Stavka stavka, int kolicina) throws NegativnaKolicinaStavki {
        
        if(kolicina<0){
            throw new NegativnaKolicinaStavki();
        }
        
        for(int i=0;i<kolicina;i++){
            korpa.add(stavka);
        }
    }

    @Override
    public void obrisiStavke(Stavka stavka, int kolicina) throws NegativnaKolicinaStavki, NepostojecaStavka {
        int s = brojStavki();
        int br = 0;
        
        if(s == 0){
            throw new ArrayIndexOutOfBoundsException();
        }
        
        if(kolicina<0){
            throw new NegativnaKolicinaStavki();
        }
        
        if(!korpa.contains(stavka)){
            throw new NepostojecaStavka();
        }
        
        for(Stavka st:korpa){
            if(st.equals(stavka)){
                br++;
            }
        }  
        if(kolicina>br){
            throw new RuntimeException();
        }
        
        for(int i=0;i<s && kolicina>0;i++){
            if(korpa.get(i).equals(stavka)){
                korpa.remove(i); 
                kolicina--;
            }
        }
    }

    @Override
    public int brojStavki() {
        return korpa.size();
    }
    
    public void reset(){
        korpa.removeAll(korpa);
    }

    public ArrayList<Stavka> getKorpa() {
        return korpa;
    }
  
}
