144 lines
4.3 KiB
Java
144 lines
4.3 KiB
Java
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>();
|
|
|
|
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> 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; i<j; i++)
|
|
if(auto.get(i).getPrezzo()<auto.get(i+1).getPrezzo())
|
|
ordinato=swap(i);
|
|
}while(j-->1 && !ordinato);
|
|
|
|
return new Concessionaria(auto);
|
|
}
|
|
|
|
public Concessionaria sortCrescente(){
|
|
boolean ordinato;
|
|
int j=auto.size()-1;
|
|
do{
|
|
ordinato=true;
|
|
for(int i=0; i<j; i++)
|
|
if(auto.get(i).getPrezzo()>auto.get(i+1).getPrezzo())
|
|
ordinato=swap(i);
|
|
}while(j-->1 && !ordinato);
|
|
|
|
return new Concessionaria(auto);
|
|
}
|
|
|
|
public Concessionaria filtroUsato(){
|
|
ArrayList<Auto> autoFilter = new ArrayList<Auto>();
|
|
for(Auto a: auto)
|
|
if(a instanceof AutoUsata)
|
|
autoFilter.add(a);
|
|
return new Concessionaria(autoFilter);
|
|
}
|
|
|
|
public Concessionaria filtroNuovo(){
|
|
ArrayList<Auto> autoFilter = new ArrayList<Auto>();
|
|
for(Auto a: auto)
|
|
if(a instanceof AutoNuova)
|
|
autoFilter.add(a);
|
|
return new Concessionaria(autoFilter);
|
|
}
|
|
|
|
public Concessionaria filtroPrezzoMinore(double prezzo){
|
|
ArrayList<Auto> autoFilter = new ArrayList<Auto>();
|
|
for(Auto a: auto)
|
|
if(a.getPrezzoFinale()<prezzo)
|
|
autoFilter.add(a);
|
|
return new Concessionaria(autoFilter);
|
|
}
|
|
|
|
public Concessionaria filtroPrezzoMaggiore(double prezzo){
|
|
ArrayList<Auto> autoFilter = new ArrayList<Auto>();
|
|
for(Auto a: auto)
|
|
if(a.getPrezzoFinale()>=prezzo)
|
|
autoFilter.add(a);
|
|
return new Concessionaria(autoFilter);
|
|
}
|
|
|
|
public Concessionaria filtroModello(String modello){
|
|
ArrayList<Auto> autoFilter = new ArrayList<Auto>();
|
|
for(Auto a: auto)
|
|
if(a.getModello().equals(modello))
|
|
autoFilter.add(a);
|
|
return new Concessionaria(autoFilter);
|
|
}
|
|
|
|
public Concessionaria filtroCostruttore(String costruttore){
|
|
ArrayList<Auto> autoFilter = new ArrayList<Auto>();
|
|
for(Auto a: auto)
|
|
if(a.getCostruttore().equals(costruttore))
|
|
autoFilter.add(a);
|
|
return new Concessionaria(autoFilter);
|
|
}
|
|
|
|
public Concessionaria filtroColore(String colore){
|
|
ArrayList<Auto> autoFilter = new ArrayList<Auto>();
|
|
for(Auto a: auto)
|
|
if(a.getColore().equals(colore))
|
|
autoFilter.add(a);
|
|
return new Concessionaria(autoFilter);
|
|
}
|
|
|
|
public Concessionaria filtroProprietario(String codiceProprietario){
|
|
ArrayList<Auto> autoFilter = new ArrayList<Auto>();
|
|
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<Auto> autoFilter = new ArrayList<Auto>();
|
|
for(Auto a: auto)
|
|
if(a instanceof AutoUsata && ((AutoUsata) a).getAnnoImmatricolazione()==annoImmatricolazione)
|
|
autoFilter.add(a);
|
|
return new Concessionaria(autoFilter);
|
|
}
|
|
|
|
|
|
private ArrayList<Auto> auto;
|
|
} |