Altri filtri
This commit is contained in:
parent
ea9373bad1
commit
5afd838b08
@ -2,9 +2,15 @@ import java.util.ArrayList;
|
||||
import java.util.Scanner;
|
||||
import java.io.PrintStream;
|
||||
import java.io.File;
|
||||
import java.util.Date;
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
public class Azienda{
|
||||
|
||||
|
||||
|
||||
//COSTRUTTORI
|
||||
|
||||
public Azienda(String srcSedi, String srcImpiegati) throws Exception{
|
||||
sedi = new ArrayList<Sede>();
|
||||
ArrayList<Impiegato> impiegati = new ArrayList<Impiegato>();
|
||||
@ -33,6 +39,12 @@ public class Azienda{
|
||||
this.sedi=sedi;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//I/O
|
||||
|
||||
public void print(PrintStream ps){
|
||||
ps.println("*****");
|
||||
for(Sede s: sedi){
|
||||
@ -44,6 +56,12 @@ public class Azienda{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//FILTRI SEDI
|
||||
|
||||
public Azienda filtroSedeId(String id){
|
||||
boolean trovato = false;
|
||||
int j=0;
|
||||
@ -61,6 +79,46 @@ public class Azienda{
|
||||
return new Azienda(sediFilter);
|
||||
}
|
||||
|
||||
public Azienda filtroStato(String stato){
|
||||
boolean trovato = false;
|
||||
int j=0;
|
||||
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;
|
||||
boolean almenoUno;
|
||||
|
||||
for(Sede s: sedi){
|
||||
almenoUno=false;
|
||||
impiegatiFilter=new ArrayList<Impiegato>();
|
||||
for(Impiegato i: s.getImpiegati()){
|
||||
if(i.getLivello().equals(livello)){
|
||||
impiegatiFilter.add(i);
|
||||
almenoUno=true;
|
||||
}
|
||||
|
||||
}
|
||||
if(almenoUno)
|
||||
sediFilter.add(s.copySede(impiegatiFilter));
|
||||
|
||||
}
|
||||
return new Azienda(sediFilter);
|
||||
}
|
||||
|
||||
public Azienda filtroNome(String nome){
|
||||
ArrayList<Sede> sediFilter = new ArrayList<Sede>();
|
||||
ArrayList<Impiegato> impiegatiFilter;
|
||||
@ -83,5 +141,98 @@ public class Azienda{
|
||||
return new Azienda(sediFilter);
|
||||
}
|
||||
|
||||
public Azienda filtroPagaMaggiore(double paga){
|
||||
ArrayList<Sede> sediFilter = new ArrayList<Sede>();
|
||||
ArrayList<Impiegato> impiegatiFilter;
|
||||
boolean almenoUno;
|
||||
|
||||
for(Sede s: sedi){
|
||||
almenoUno=false;
|
||||
impiegatiFilter=new ArrayList<Impiegato>();
|
||||
for(Impiegato i: s.getImpiegati()){
|
||||
if(i.getPaga()>=paga){
|
||||
impiegatiFilter.add(i);
|
||||
almenoUno=true;
|
||||
}
|
||||
|
||||
}
|
||||
if(almenoUno)
|
||||
sediFilter.add(s.copySede(impiegatiFilter));
|
||||
|
||||
}
|
||||
return new Azienda(sediFilter);
|
||||
}
|
||||
|
||||
public Azienda filtroPagaMinore(double paga){
|
||||
ArrayList<Sede> sediFilter = new ArrayList<Sede>();
|
||||
ArrayList<Impiegato> impiegatiFilter;
|
||||
boolean almenoUno;
|
||||
|
||||
for(Sede s: sedi){
|
||||
almenoUno=false;
|
||||
impiegatiFilter=new ArrayList<Impiegato>();
|
||||
for(Impiegato i: s.getImpiegati()){
|
||||
if(i.getPaga()<paga){
|
||||
impiegatiFilter.add(i);
|
||||
almenoUno=true;
|
||||
}
|
||||
|
||||
}
|
||||
if(almenoUno)
|
||||
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;
|
||||
boolean almenoUno;
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||
Date data = sdf.parse(dataString);
|
||||
|
||||
for(Sede s: sedi){
|
||||
almenoUno=false;
|
||||
impiegatiFilter=new ArrayList<Impiegato>();
|
||||
for(Impiegato i: s.getImpiegati()){
|
||||
if(i.getData().before(data)){
|
||||
impiegatiFilter.add(i);
|
||||
almenoUno=true;
|
||||
}
|
||||
|
||||
}
|
||||
if(almenoUno)
|
||||
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;
|
||||
boolean almenoUno;
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||
Date data = sdf.parse(dataString);
|
||||
|
||||
for(Sede s: sedi){
|
||||
almenoUno=false;
|
||||
impiegatiFilter=new ArrayList<Impiegato>();
|
||||
for(Impiegato i: s.getImpiegati()){
|
||||
|
||||
if(i.getData().after(data)){
|
||||
impiegatiFilter.add(i);
|
||||
almenoUno=true;
|
||||
}
|
||||
|
||||
}
|
||||
if(almenoUno)
|
||||
sediFilter.add(s.copySede(impiegatiFilter));
|
||||
|
||||
}
|
||||
return new Azienda(sediFilter);
|
||||
}
|
||||
|
||||
private ArrayList<Sede> sedi;
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ public class Impiegato{
|
||||
|
||||
public String toString(){
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||
return codiceFiscale+" "+nome+" "+cnome+" "+sdf.format(data)+" "+livello+" "+paga+"€.";
|
||||
return codiceFiscale+" "+nome+" "+cnome+" "+sdf.format(data)+" "+livello+" "+paga+".";
|
||||
}
|
||||
|
||||
public void print(PrintStream ps){
|
||||
|
@ -1,3 +1,10 @@
|
||||
codice1 nome1 cognome1 sedeid1 livello1 89 12/01/1990
|
||||
codice2 nome cognome2 sedeid2 livello2 90 13/02/1222
|
||||
codice3 nome cognome3 sedeid1 livello3 91 14/01/1234
|
||||
GFYDFG67J15A789M Paperino Duck PP01 Base 12000 12/01/1970
|
||||
GDRSFG67B12Y456Y Pippo Goofy TP01 Base 12000 13/02/1972
|
||||
HJKDTF34G11G134G Topolino Mouse TP01 Boss 60000 14/01/1974
|
||||
GFHHHH56U77U894G Pluto Pluto TP01 Base 12000 14/08/1976
|
||||
GSDHBG12H34H765F Eta Beta TP01 ET 100000 03/07/1276
|
||||
MFGTYG12F44H897Y Qui Duck PP01 Esperto 22000 15/09/1999
|
||||
MGRFGH16J0JU908M Quo Duck PP02 Esperto 22000 15/09/1999
|
||||
GSDHBG12H34H765F Qua Duck PP01 Esperto 22000 15/09/1999
|
||||
XDDHBG12Y84H767J Paperino Fauntleroy PP02 Pro 33000 12/01/1970
|
||||
GSDTGB12H31E764Y Goku Son IG01 Over9000 100000 05/03/1988
|
||||
|
@ -1,8 +1,16 @@
|
||||
sedeid1
|
||||
via delle streghe
|
||||
Benevento
|
||||
ita
|
||||
sedeid2
|
||||
via a caso
|
||||
Milano
|
||||
ita
|
||||
TP01
|
||||
Via del Papero
|
||||
Topolinia
|
||||
US
|
||||
PP01
|
||||
Via del Topo
|
||||
Paperopoli
|
||||
US
|
||||
PP02
|
||||
Via del Gatto
|
||||
Paperopoli
|
||||
US
|
||||
IG01
|
||||
Isola Del Genio
|
||||
Isola Del Genio
|
||||
Isola Del Genio
|
||||
|
@ -1,10 +1,20 @@
|
||||
import java.util.Scanner;
|
||||
import java.io.PrintStream;
|
||||
|
||||
public class Test{
|
||||
public static void main(String [] args) throws Exception{
|
||||
Azienda azienda1 = new Azienda("Sedi.dati", "Personale.dati");
|
||||
//azienda1.print(System.out);
|
||||
//azienda1.filtroSedeId("sedeid2").print(System.out);
|
||||
azienda1.filtroNome("nome").print(System.out);
|
||||
Azienda azienda = new Azienda("Sedi.dati", "Personale.dati");
|
||||
PrintStream ps = System.out;
|
||||
|
||||
ps.println("Stampa degli impiegati in US con paga minore di 20000");
|
||||
azienda.filtroStato("US").filtroPagaMinore(20000).print(ps);
|
||||
|
||||
ps.println("Stampa degli impiegati con paga compresa tra 50000 e 80000");
|
||||
azienda.filtroPagaMinore(80000).filtroPagaMaggiore(50000).print(ps);
|
||||
|
||||
ps.println("Stampa degli ilmpiegati nella sede PP01 nati dopo il 1990");
|
||||
azienda.filtroNatoDopo("31/12/1989").filtroSedeId("PP01").print(ps);
|
||||
|
||||
ps.println("Stampa degli impiegati di livello over9000");
|
||||
azienda.filtroLivello("Over9000").print(ps);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user