programmazione-java/src/Azienda/Azienda.java

205 lines
5.5 KiB
Java
Raw Normal View History

2016-11-03 10:21:06 +00:00
import java.util.ArrayList;
import java.util.Scanner;
import java.io.PrintStream;
import java.io.File;
2016-11-03 15:43:09 +00:00
import java.util.Date;
import java.text.SimpleDateFormat;
2016-11-03 10:21:06 +00:00
public class Azienda{
2016-11-03 15:43:09 +00:00
//COSTRUTTORI
2016-11-03 10:21:06 +00:00
public Azienda(String srcSedi, String srcImpiegati) throws Exception{
sedi = new ArrayList<Sede>();
ArrayList<Impiegato> impiegati = new ArrayList<Impiegato>();
Scanner scSedi = new Scanner(new File(srcSedi));
Scanner scImpiegati = new Scanner(new File(srcImpiegati));
Impiegato i = Impiegato.read(scImpiegati);
while(i!=null){
impiegati.add(i);
i = Impiegato.read(scImpiegati);
}
Sede s = Sede.read(scSedi);
while(s!=null){
for(Impiegato imp: impiegati){
if(s.getId().equals(imp.getSedeId()))
s.getImpiegati().add(imp);
imp=Impiegato.read(scImpiegati);
}
sedi.add(s);
s=Sede.read(scSedi);
}
}
private Azienda(ArrayList<Sede> sedi){
this.sedi=sedi;
}
2016-11-03 15:43:09 +00:00
//I/O
2016-11-03 10:21:06 +00:00
public void print(PrintStream ps){
ps.println("*****");
for(Sede s: sedi){
ps.println("SEDE:");
s.print(ps);
ps.println(" IMPIEGATI:");
for(Impiegato i: s.getImpiegati())
ps.println(" *"+i.toString());
}
}
2016-11-03 15:43:09 +00:00
//FILTRI SEDI
2016-11-03 10:21:06 +00:00
public Azienda filtroSedeId(String id){
boolean trovato = false;
2016-11-05 13:12:10 +00:00
int i=0;
2016-11-03 10:21:06 +00:00
ArrayList<Sede> sediFilter = new ArrayList<Sede>();
2016-11-05 13:12:10 +00:00
while(i<sedi.size() && !trovato){
if(sedi.get(i).getId().equals(id)) trovato = true;
else i++;
2016-11-03 10:21:06 +00:00
}
if(!trovato) return null;
2016-11-05 13:12:10 +00:00
sediFilter.add(sedi.get(i));
2016-11-03 10:21:06 +00:00
return new Azienda(sediFilter);
}
2016-11-03 15:43:09 +00:00
public Azienda filtroStato(String stato){
ArrayList<Sede> sediFilter = new ArrayList<Sede>();
for(Sede s: sedi)
if(s.getStato().equals(stato))
sediFilter.add(s);
return new Azienda(sediFilter);
}
//FILTRI DIPENDENTI
public Azienda filtroLivello(String livello){
ArrayList<Sede> sediFilter = new ArrayList<Sede>();
ArrayList<Impiegato> impiegatiFilter;
for(Sede s: sedi){
impiegatiFilter=new ArrayList<Impiegato>();
2016-11-05 13:31:21 +00:00
for(Impiegato i: s.getImpiegati())
2016-11-03 15:55:03 +00:00
if(i.getLivello().equals(livello))
2016-11-03 15:43:09 +00:00
impiegatiFilter.add(i);
2016-11-03 15:55:03 +00:00
if(impiegatiFilter.size()>0)
2016-11-03 15:43:09 +00:00
sediFilter.add(s.copySede(impiegatiFilter));
}
return new Azienda(sediFilter);
}
2016-11-03 10:21:06 +00:00
public Azienda filtroNome(String nome){
ArrayList<Sede> sediFilter = new ArrayList<Sede>();
ArrayList<Impiegato> impiegatiFilter;
for(Sede s: sedi){
impiegatiFilter=new ArrayList<Impiegato>();
2016-11-05 13:31:21 +00:00
for(Impiegato i: s.getImpiegati())
2016-11-03 15:55:03 +00:00
if(i.getNome().equals(nome))
2016-11-03 10:21:06 +00:00
impiegatiFilter.add(i);
2016-11-03 15:55:03 +00:00
if(impiegatiFilter.size()>0)
2016-11-03 10:21:06 +00:00
sediFilter.add(s.copySede(impiegatiFilter));
}
return new Azienda(sediFilter);
}
2016-11-03 15:43:09 +00:00
public Azienda filtroPagaMaggiore(double paga){
ArrayList<Sede> sediFilter = new ArrayList<Sede>();
ArrayList<Impiegato> impiegatiFilter;
for(Sede s: sedi){
impiegatiFilter=new ArrayList<Impiegato>();
2016-11-05 13:31:21 +00:00
for(Impiegato i: s.getImpiegati())
2016-11-03 15:55:03 +00:00
if(i.getPaga()>=paga)
2016-11-03 15:43:09 +00:00
impiegatiFilter.add(i);
2016-11-03 15:55:03 +00:00
if(impiegatiFilter.size()>0)
2016-11-03 15:43:09 +00:00
sediFilter.add(s.copySede(impiegatiFilter));
}
return new Azienda(sediFilter);
}
public Azienda filtroPagaMinore(double paga){
ArrayList<Sede> sediFilter = new ArrayList<Sede>();
ArrayList<Impiegato> impiegatiFilter;
for(Sede s: sedi){
impiegatiFilter=new ArrayList<Impiegato>();
2016-11-05 13:31:21 +00:00
for(Impiegato i: s.getImpiegati())
2016-11-03 15:55:03 +00:00
if(i.getPaga()<paga)
2016-11-03 15:43:09 +00:00
impiegatiFilter.add(i);
2016-11-03 15:55:03 +00:00
if(impiegatiFilter.size()>0)
2016-11-03 15:43:09 +00:00
sediFilter.add(s.copySede(impiegatiFilter));
}
return new Azienda(sediFilter);
}
public Azienda filtroNatoPrima(String dataString) throws Exception{
ArrayList<Sede> sediFilter = new ArrayList<Sede>();
ArrayList<Impiegato> impiegatiFilter;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date data = sdf.parse(dataString);
for(Sede s: sedi){
impiegatiFilter=new ArrayList<Impiegato>();
2016-11-05 13:31:21 +00:00
for(Impiegato i: s.getImpiegati())
2016-11-03 15:55:03 +00:00
if(i.getData().before(data))
2016-11-03 15:43:09 +00:00
impiegatiFilter.add(i);
2016-11-03 15:55:03 +00:00
if(impiegatiFilter.size()>0)
2016-11-03 15:43:09 +00:00
sediFilter.add(s.copySede(impiegatiFilter));
}
return new Azienda(sediFilter);
}
public Azienda filtroNatoDopo(String dataString) throws Exception{
ArrayList<Sede> sediFilter = new ArrayList<Sede>();
ArrayList<Impiegato> impiegatiFilter;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date data = sdf.parse(dataString);
for(Sede s: sedi){
impiegatiFilter=new ArrayList<Impiegato>();
2016-11-05 13:31:21 +00:00
for(Impiegato i: s.getImpiegati())
2016-11-03 15:55:03 +00:00
if(i.getData().after(data))
2016-11-03 15:43:09 +00:00
impiegatiFilter.add(i);
2016-11-03 15:55:03 +00:00
if(impiegatiFilter.size()>0)
2016-11-03 15:43:09 +00:00
sediFilter.add(s.copySede(impiegatiFilter));
}
return new Azienda(sediFilter);
}
2016-11-03 10:21:06 +00:00
private ArrayList<Sede> sedi;
}