import java.util.Scanner; import java.util.ArrayList; import java.io.PrintStream; public class Concessionaria{ public Concessionaria(Scanner scNuove, Scanner scUsate) throws Exception{ auto = new ArrayList(); Auto a = AutoNuova.read(scNuove); while(a!=null){ auto.add(a); a=AutoNuova.read(scNuove); } a=AutoUsata.read(scUsate); while(a!=null){ auto.add(a); a=AutoUsata.read(scUsate); } } private Concessionaria(ArrayList auto){ this.auto=auto; } public void print(PrintStream ps){ for(Auto a: auto){ if(a instanceof AutoNuova) ps.print("Auto Nuova: "); else ps.print("Auto Usata: "); ps.println(a.toString()); } } public boolean swap(int i){ Auto tmp=auto.get(i); auto.set(i, auto.get(i+1)); auto.set(i+1, tmp); return false; } public Concessionaria sortDecrescente(){ boolean ordinato; int j=auto.size()-1; do{ ordinato=true; for(int i=0; i1 && !ordinato); return new Concessionaria(auto); } public Concessionaria sortCrescente(){ boolean ordinato; int j=auto.size()-1; do{ ordinato=true; for(int i=0; iauto.get(i+1).getPrezzo()) ordinato=swap(i); }while(j-->1 && !ordinato); return new Concessionaria(auto); } public Concessionaria filtroUsato(){ ArrayList autoFilter = new ArrayList(); for(Auto a: auto) if(a instanceof AutoUsata) autoFilter.add(a); return new Concessionaria(autoFilter); } public Concessionaria filtroNuovo(){ ArrayList autoFilter = new ArrayList(); for(Auto a: auto) if(a instanceof AutoNuova) autoFilter.add(a); return new Concessionaria(autoFilter); } public Concessionaria filtroPrezzoMinore(double prezzo){ ArrayList autoFilter = new ArrayList(); for(Auto a: auto) if(a.getPrezzoFinale() autoFilter = new ArrayList(); for(Auto a: auto) if(a.getPrezzoFinale()>=prezzo) autoFilter.add(a); return new Concessionaria(autoFilter); } public Concessionaria filtroModello(String modello){ ArrayList autoFilter = new ArrayList(); for(Auto a: auto) if(a.getModello().equals(modello)) autoFilter.add(a); return new Concessionaria(autoFilter); } public Concessionaria filtroCostruttore(String costruttore){ ArrayList autoFilter = new ArrayList(); for(Auto a: auto) if(a.getCostruttore().equals(costruttore)) autoFilter.add(a); return new Concessionaria(autoFilter); } public Concessionaria filtroColore(String colore){ ArrayList autoFilter = new ArrayList(); for(Auto a: auto) if(a.getColore().equals(colore)) autoFilter.add(a); return new Concessionaria(autoFilter); } public Concessionaria filtroProprietario(String codiceProprietario){ ArrayList autoFilter = new ArrayList(); for(Auto a: auto) if(a instanceof AutoUsata && ((AutoUsata) a).getCodiceProprietario().equals(codiceProprietario)) autoFilter.add(a); return new Concessionaria(autoFilter); } public Concessionaria filtroAnnoImmatricolazione(int annoImmatricolazione){ ArrayList autoFilter = new ArrayList(); for(Auto a: auto) if(a instanceof AutoUsata && ((AutoUsata) a).getAnnoImmatricolazione()==annoImmatricolazione) autoFilter.add(a); return new Concessionaria(autoFilter); } private ArrayList auto; }