hai ragione......
dovrebbe essere questa la parte incriminata
package logistica;
import java.util.Collection;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
public class LogisticaManager implements LogisticManagerInterface {
Map veicoli = new HashMap();
private int numPerCodiceUnivoco1;
private int numPerCodiceUnivoco2;
// R1
/* (non-Javadoc)
* @see logistica.LogisticManagerInterface#addVeicolo(java .lang.String)
*/
public void addVeicolo(String targa) {
Veicolo v = new Veicolo(targa);
veicoli.put(targa, v);
}
/* (non-Javadoc)
* @see logistica.LogisticManagerInterface#elencoVeicoli()
*/
public String elencoVeicoli() {
String richiesti = " ";
Iterator iter = veicoli.values().iterator();
while (iter.hasNext()) {
richiesti = richiesti + ((Veicolo) iter.next()).toString() + '\n';
}
return richiesti;
}
// R2
/* (non-Javadoc)
* @see logistica.LogisticManagerInterface#addViaggioVeico lo(java.lang.String)
*/
public String addViaggioVeicolo(String targa) throws VeicoloNonEsiste {
if (!veicoli.containsKey(targa))
throw new VeicoloNonEsiste();
numPerCodiceUnivoco1++;
String codice = numPerCodiceUnivoco1 +"";//+ targa;
Veicolo veicolo = (Veicolo) veicoli.get(targa);
veicolo.addViaggio(codice);
return codice;
}
/* (non-Javadoc)
* @see logistica.LogisticManagerInterface#addViaggioTratt a(java.lang.String, int, int, int, int)
*/
public String addViaggioTratta(String codiceViaggio, int ordine,
int lunghezza, int durata, int consumo) throws ViaggioNonEsiste {
boolean found = false;
Iterator veicoloIterator = veicoli.values().iterator();
String targa = null;
while(veicoloIterator.hasNext()){
Veicolo veicolo =(Veicolo)veicoloIterator.next();
if ((veicolo).haveViaggio(codiceViaggio)){
found = true;
targa = veicolo.getTarga();
break;
}
}
if (!found) throw new ViaggioNonEsiste();
numPerCodiceUnivoco2++;
String codiceTratta = numPerCodiceUnivoco2+"" ;//+ codiceViaggio;
Veicolo veicolo = (Veicolo) veicoli.get(targa);
Viaggio viaggio = veicolo.getViaggio(codiceViaggio);
viaggio.addViaggioTratta(codiceTratta, ordine, lunghezza, durata, consumo);
return codiceTratta;
}
/* (non-Javadoc)
* @see logistica.LogisticManagerInterface#elencoViaggiTra tte(java.lang.String)
*/
public String elencoViaggiTratte(String targa) throws VeicoloNonEsiste {
if (!veicoli.containsKey(targa))
throw new VeicoloNonEsiste();
Veicolo veicolo = (Veicolo) veicoli.get(targa);
StringBuffer stringBuffer = new StringBuffer();
Iterator viaggoIterator = veicolo.listViaggi().iterator();
while(viaggoIterator.hasNext()){
Viaggio viaggio = (Viaggio) viaggoIterator.next();
Iterator trattaIterator = viaggio.listTratte().iterator();
stringBuffer.append("Viaggio " + viaggio.getCodice() + " ");
while(trattaIterator.hasNext()){
Tratta tratta = (Tratta)trattaIterator.next();
stringBuffer.append("Tratta " + tratta.getCodice() + " " + tratta.getLunghezza() + " " + tratta.getDurata() + " " + tratta.getConsumo() +"\n ");
}
stringBuffer.append("\n");
}
return stringBuffer.toString();
}
// R3
/* (non-Javadoc)
* @see logistica.LogisticManagerInterface#numeroViaggiVei colo(java.lang.String)
*/
public int numeroViaggiVeicolo(String targa) throws VeicoloNonEsiste {
if (veicoli.containsKey(targa)) {
return ((Veicolo) veicoli.get(targa)).listViaggi().size();
} else
throw new VeicoloNonEsiste();
}
/* (non-Javadoc)
* @see logistica.LogisticManagerInterface#viaggioPiuLungo Veicolo(java.lang.String)
*/
public String viaggioPiuLungoVeicolo(String targa) throws VeicoloNonEsiste{
if (!veicoli.containsKey(targa)) throw new VeicoloNonEsiste();
int max = 0, tmp = 0;
String code = null;
Veicolo veicolo = (Veicolo) veicoli.get(targa);
Iterator i = veicolo.listViaggi().iterator();
while (i.hasNext()){
Viaggio viaggio = (Viaggio) i.next();
tmp = viaggio.getLunghezzaTotale();
if(max < tmp){
max = tmp;
code = viaggio.getCodice();
}
}
return code;
}
/* (non-Javadoc)
* @see logistica.LogisticManagerInterface#consumoMedioVei colo(java.lang.String)
*/
public double consumoMedioVeicolo(String targa) throws VeicoloNonEsiste {
if (!veicoli.containsKey(targa)) throw new VeicoloNonEsiste();
Veicolo veicolo = (Veicolo) veicoli.get(targa);
int consumoTot = 0,lunghezzaTot = 0;
Iterator viaggIterator = veicolo.listViaggi().iterator();
while (viaggIterator.hasNext()){
Viaggio viaggio = (Viaggio) viaggIterator.next();
consumoTot =+ viaggio.getConsumoTotale();
lunghezzaTot =+ viaggio.getLunghezzaTotale();
}
return lunghezzaTot / consumoTot;
}
/* (non-Javadoc)
* @see logistica.LogisticManagerInterface#veicoloPiuViagg i()
*/
public String veicoloPiuViaggi() {
int max = 0, viaggiTmp = 0;
String targa = null;
Iterator i = veicoli.values().iterator();
while (i.hasNext()){
Veicolo veicolo = (Veicolo) i.next();
viaggiTmp = veicolo.listViaggi().size();
if(max < viaggiTmp){
max = viaggiTmp;
targa = veicolo.getTarga();
}else if(max == viaggiTmp){
targa = veicolo.getTarga().compareTo(targa)<0?veicolo.getT arga():targa;
}
}
return targa;
}
/* (non-Javadoc)
* @see logistica.LogisticManagerInterface#veicoloPiuKilom etri()
*/
public String veicoloPiuKilometri() {
int max = 0, chilometriTmp = 0, tratteTmp = 0;
String targa = null;
Iterator i = veicoli.values().iterator();
while (i.hasNext()){
Veicolo veicolo = (Veicolo) i.next();
chilometriTmp = veicolo.getTotaleChilometri();
if(max < chilometriTmp){
max = chilometriTmp;
targa = veicolo.getTarga();
tratteTmp = veicolo.getTotaleTratte();
}else if(max == chilometriTmp){
targa = veicolo.getTotaleTratte()>tratteTmp?veicolo.getTar ga():targa;
}
}
return targa;
}
}