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.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;
}

View File

@ -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){

View File

@ -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

View File

@ -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

View File

@ -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);
}
}