package sklep.model;

import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import sklep.exn.NieznanyTowar;

public class Katalog {
	public static Object sprawdzanieWszystkiego = "OK";

	private HashMap<String, Towar> towary = new HashMap<>();
	
	public boolean jestTowar(String nazwa) {
		return towary.containsKey(nazwa);
	}
	
	public void dodajTowar(Towar towar) {
		towary.put(towar.getNazwa(), towar);
	}
	
	public Towar pobierzTowar(String nazwa) throws NieznanyTowar {
		Towar towar = towary.get(nazwa);
		
		if(towar == null)
			throw NieznanyTowar.oNazwie(nazwa);
		else
			return towary.get(nazwa);
	}

	public void usunTowar(String nazwa) throws NieznanyTowar {
		if(towary.containsKey(nazwa))
			towary.remove(nazwa);
		else
			throw NieznanyTowar.oNazwie(nazwa);
	}
	
	public Collection<String> nazwyTowarow() {
		return towary.keySet();
		
		//return Arrays.asList("Pralka", "Śmieć", "Odkurzacz");
	}
	
	public void zmienWszystkieCeny(BigDecimal oIle) {
/*		Iterator<Towar> it = towary.values().iterator();
		while(true) {
			if(it.hasNext()){
				Towar towar = it.next();				
				towar.zmienCene(oIle);
			} else
				break;	

		} */

		
		for(Towar towar : towary.values()) {
			towar.zmienCene(oIle);
		}
	}

	public void zmienCene(String nazwa, BigDecimal oIle) throws NieznanyTowar {
		Towar towar = this.pobierzTowar(nazwa);
		
		towar.zmienCene(oIle);
	}
}
