GestioneFlotta.java
Created with JBuilder |
class GestioneFlotta {
private Aereo[] elencoAerei;
private int numeroAerei;
public GestioneFlotta(int numeroMaxAerei) {
elencoAerei = new Aereo[numeroMaxAerei];
numeroAerei = 0;
}
public boolean aggiungiAereo(Aereo a) {
if (numeroAerei < elencoAerei.length) {
elencoAerei[numeroAerei] = a;
++numeroAerei;
return true;
} else {
return false;
}
}
public boolean dismettiAereo(Aereo a) {
int i = this.ricercaPerCodiceInterno(a);
if (i >= 0) {
elencoAerei[i] = elencoAerei[numeroAerei - 1];
--numeroAerei;
return true;
} else {
return false;
}
}
public boolean revisionaAereo(Aereo a, int anno) {
int i = this.ricercaPerCodiceInterno(a);
if (i >= 0) {
elencoAerei[i].eliminaVoli();
elencoAerei[i].impostaUltimaRevisione(anno);
return true;
} else {
return false;
}
}
public Aereo ricercaPerCodice(Aereo a) {
int i = this.ricercaPerCodiceInterno(a);
if (i >= 0) {
return elencoAerei[i];
} else {
return null;
}
}
public Aereo[] ricercaPerModello(String modello) {
Aereo[] risultato = new Aereo[numeroAerei];
int posizione = 0;
for(int i = 0; i < numeroAerei; ++i) {
if (modello.equals(elencoAerei[i].restituisciModello())) {
risultato[posizione] = elencoAerei[i];
++posizione;
}
}
return risultato;
}
public Aereo[] ricercaAereiDaRevisionare() {
Aereo[] risultato = new Aereo[numeroAerei];
int posizione = 0;
for (int i = 0; i < numeroAerei; ++i) {
boolean daRevisionare =
(elencoAerei[i].calcolaVoliConDurataMaggioreDi(10) > 500) ||
(elencoAerei[i].calcolaVoliDiTipo(Volo.INTERCONTINENTALE) > 200) ||
(elencoAerei[i].calcolaOreVolate() > 5000);
if (daRevisionare) {
risultato[posizione] = elencoAerei[i];
++posizione;
}
}
return risultato;
}
public Aereo[] ricercaAereiConRevisionePosterioreDi(int anni) {
Aereo[] risultato = new Aereo[numeroAerei];
int posizione = 0;
for (int i = 0; i < numeroAerei; ++i) {
if ((elencoAerei[i].restituisciMessaInServizio() + anni) <
elencoAerei[i].restituisciUltimaRevisione()) {
risultato[posizione] = elencoAerei[i];
++posizione;
}
}
return risultato;
}
private int ricercaPerCodiceInterno(Aereo a) {
String codice = a.restituisciCodice();
for (int i = 0; i < numeroAerei; ++i) {
if (codice.equals(elencoAerei[i].restituisciCodice())) {
return i;
}
}
return -1;
}
}
GestioneFlotta.java
Created with JBuilder |