Altri filtri

This commit is contained in:
Orange_Dugongo 2016-11-03 16:43:09 +01:00
parent ea9373bad1
commit 5afd838b08
5 changed files with 193 additions and 17 deletions

View File

@ -2,9 +2,15 @@ import java.util.ArrayList;
import java.util.Scanner; import java.util.Scanner;
import java.io.PrintStream; import java.io.PrintStream;
import java.io.File; import java.io.File;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Azienda{ public class Azienda{
//COSTRUTTORI
public Azienda(String srcSedi, String srcImpiegati) throws Exception{ public Azienda(String srcSedi, String srcImpiegati) throws Exception{
sedi = new ArrayList<Sede>(); sedi = new ArrayList<Sede>();
ArrayList<Impiegato> impiegati = new ArrayList<Impiegato>(); ArrayList<Impiegato> impiegati = new ArrayList<Impiegato>();
@ -33,6 +39,12 @@ public class Azienda{
this.sedi=sedi; this.sedi=sedi;
} }
//I/O
public void print(PrintStream ps){ public void print(PrintStream ps){
ps.println("*****"); ps.println("*****");
for(Sede s: sedi){ for(Sede s: sedi){
@ -44,6 +56,12 @@ public class Azienda{
} }
} }
//FILTRI SEDI
public Azienda filtroSedeId(String id){ public Azienda filtroSedeId(String id){
boolean trovato = false; boolean trovato = false;
int j=0; int j=0;
@ -61,6 +79,46 @@ public class Azienda{
return new Azienda(sediFilter); 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){ public Azienda filtroNome(String nome){
ArrayList<Sede> sediFilter = new ArrayList<Sede>(); ArrayList<Sede> sediFilter = new ArrayList<Sede>();
ArrayList<Impiegato> impiegatiFilter; ArrayList<Impiegato> impiegatiFilter;
@ -83,5 +141,98 @@ public class Azienda{
return new Azienda(sediFilter); 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; private ArrayList<Sede> sedi;
} }

View File

@ -58,7 +58,7 @@ public class Impiegato{
public String toString(){ public String toString(){
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 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){ public void print(PrintStream ps){

View File

@ -1,3 +1,10 @@
codice1 nome1 cognome1 sedeid1 livello1 89 12/01/1990 GFYDFG67J15A789M Paperino Duck PP01 Base 12000 12/01/1970
codice2 nome cognome2 sedeid2 livello2 90 13/02/1222 GDRSFG67B12Y456Y Pippo Goofy TP01 Base 12000 13/02/1972
codice3 nome cognome3 sedeid1 livello3 91 14/01/1234 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

View File

@ -1,8 +1,16 @@
sedeid1 TP01
via delle streghe Via del Papero
Benevento Topolinia
ita US
sedeid2 PP01
via a caso Via del Topo
Milano Paperopoli
ita US
PP02
Via del Gatto
Paperopoli
US
IG01
Isola Del Genio
Isola Del Genio
Isola Del Genio

View File

@ -1,10 +1,20 @@
import java.util.Scanner; import java.io.PrintStream;
public class Test{ public class Test{
public static void main(String [] args) throws Exception{ public static void main(String [] args) throws Exception{
Azienda azienda1 = new Azienda("Sedi.dati", "Personale.dati"); Azienda azienda = new Azienda("Sedi.dati", "Personale.dati");
//azienda1.print(System.out); PrintStream ps = System.out;
//azienda1.filtroSedeId("sedeid2").print(System.out);
azienda1.filtroNome("nome").print(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);
} }
} }