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.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;
|
||||||
}
|
}
|
||||||
|
@ -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){
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user