Sono sempre stata una sega con i cicli for... infatti questo (pezzo di) metodo non lavora come mi aspetterei:
Il return 0 avviene solo quando l'offerta (importo) inserita e' inferiore al prezzo base (sarebbe il valore che in teoria è estratto da key.getOfferta()) ma se l'offerta e' inferiore ad un'offerta gia' inserita mi fa un return 1 che sarebbe in teoria il codice del tutto corretto, cioè offerta inserita correttamente. Ma mi sembra evidente che in realta' le offerte non le sta inserendo altrimenti non mi spiego come possa superare questo controllo (key.getOfferta() != null && key.getOfferta() >= importo).codice:for (Offerta key : offerte.values()) { if (key.getIdAsta() == idAsta) { //controllo se esistono gia' offerte per quell'asta if (key.getOfferta() != null && key.getOfferta() >= importo) { return 0; //l'offerta non e' superiore all'ultima inserita o al prezzo base } else { //se tutto corretto inserisco la nuova offerta ultimoId++; Offerta nuovaOfferta = new Offerta (ultimoId, offerente, importo, idAsta); offerte.put(ultimoId, nuovaOfferta); break; } } } db.commit(); db.close(); return 1;
Spero di essermi spiegata.
Dove sbaglio? Grazie.

Rispondi quotando