Azienda implementazione base
This commit is contained in:
parent
9bf839d2af
commit
ea9373bad1
87
src/Azienda/Azienda.java
Normal file
87
src/Azienda/Azienda.java
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Scanner;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
public class Azienda{
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Azienda filtroSedeId(String id){
|
||||||
|
boolean trovato = false;
|
||||||
|
int j=0;
|
||||||
|
ArrayList<Sede> sediFilter = new ArrayList<Sede>();
|
||||||
|
|
||||||
|
while(j<sedi.size() && !trovato){
|
||||||
|
if(sedi.get(j).getId().equals(id))
|
||||||
|
trovato = true;
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!trovato) return null;
|
||||||
|
|
||||||
|
sediFilter.add(sedi.get(j-1));
|
||||||
|
return new Azienda(sediFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Azienda filtroNome(String nome){
|
||||||
|
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.getNome().equals(nome)){
|
||||||
|
impiegatiFilter.add(i);
|
||||||
|
almenoUno=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if(almenoUno)
|
||||||
|
sediFilter.add(s.copySede(impiegatiFilter));
|
||||||
|
|
||||||
|
}
|
||||||
|
return new Azienda(sediFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ArrayList<Sede> sedi;
|
||||||
|
}
|
108
src/Azienda/Impiegato.java
Normal file
108
src/Azienda/Impiegato.java
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
import java.util.Date;
|
||||||
|
import java.util.Scanner;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
public class Impiegato{
|
||||||
|
|
||||||
|
public Impiegato(String codiceFiscale, String nome, String cnome, String sedeId, String livello, double paga, Date data){
|
||||||
|
|
||||||
|
this.codiceFiscale=codiceFiscale;
|
||||||
|
this.nome=nome;
|
||||||
|
this.cnome=cnome;
|
||||||
|
this.sedeId=sedeId;
|
||||||
|
this.livello=livello;
|
||||||
|
this.paga=paga;
|
||||||
|
this.data=data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodiceFiscale(){
|
||||||
|
return codiceFiscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNome(){
|
||||||
|
return nome;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCnome(){
|
||||||
|
return cnome;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSedeId(){
|
||||||
|
return sedeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLivello(){
|
||||||
|
return livello;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getData(){
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getPaga(){
|
||||||
|
return paga;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPaga(double newPaga){
|
||||||
|
paga=newPaga;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLivello(String newLivello){
|
||||||
|
livello=newLivello;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSedeId(String newSedeId){
|
||||||
|
sedeId=newSedeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
return codiceFiscale+" "+nome+" "+cnome+" "+sdf.format(data)+" "+livello+" "+paga+"€.";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
ps.println(codiceFiscale);
|
||||||
|
ps.println(nome);
|
||||||
|
ps.println(cnome);
|
||||||
|
ps.println(sedeId);
|
||||||
|
ps.println(livello);
|
||||||
|
ps.println(paga);
|
||||||
|
ps.println(sdf.format(data));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Impiegato read(Scanner sc) throws Exception{
|
||||||
|
String codiceFiscale, nome, cnome, sedeId, livello;
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
Date data;
|
||||||
|
double paga;
|
||||||
|
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
codiceFiscale=sc.next();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
nome=sc.next();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
cnome=sc.next();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
sedeId=sc.next();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
livello=sc.next();
|
||||||
|
if(!sc.hasNextDouble()) return null;
|
||||||
|
paga=sc.nextDouble();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
data = sdf.parse(sc.next());
|
||||||
|
|
||||||
|
return new Impiegato(codiceFiscale, nome, cnome, sedeId, livello, paga, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private String codiceFiscale;
|
||||||
|
private String nome;
|
||||||
|
private String cnome;
|
||||||
|
private Date data;
|
||||||
|
private String livello;
|
||||||
|
private double paga;
|
||||||
|
private String sedeId;
|
||||||
|
|
||||||
|
}
|
3
src/Azienda/Personale.dati
Normal file
3
src/Azienda/Personale.dati
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
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
|
72
src/Azienda/Sede.java
Normal file
72
src/Azienda/Sede.java
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
import java.io.PrintStream;
|
||||||
|
import java.util.Scanner;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class Sede{
|
||||||
|
|
||||||
|
public Sede(String id, String via, String comune, String stato){
|
||||||
|
this.id=id;
|
||||||
|
this.via=via;
|
||||||
|
this.comune=comune;
|
||||||
|
this.stato=stato;
|
||||||
|
impiegati = new ArrayList<Impiegato>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId(){
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVia(){
|
||||||
|
return via;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getComune(){
|
||||||
|
return comune;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStato(){
|
||||||
|
return stato;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<Impiegato> getImpiegati(){
|
||||||
|
return impiegati;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Sede copySede(ArrayList<Impiegato> impiegati){
|
||||||
|
Sede sede = new Sede(getId(), getVia(), getComune(), getStato());
|
||||||
|
sede.impiegati=impiegati;
|
||||||
|
return sede;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
return id + " " + via + " " + comune + " " + stato + ".";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
ps.println(id);
|
||||||
|
ps.println(via);
|
||||||
|
ps.println(comune);
|
||||||
|
ps.println(stato);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Sede read(Scanner sc){
|
||||||
|
String id, via, comune, stato;
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
id=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
via=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
comune=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
stato=sc.nextLine();
|
||||||
|
|
||||||
|
return new Sede(id, via, comune, stato);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
private String via;
|
||||||
|
private String comune;
|
||||||
|
private String stato;
|
||||||
|
private ArrayList<Impiegato> impiegati;
|
||||||
|
}
|
8
src/Azienda/Sedi.dati
Normal file
8
src/Azienda/Sedi.dati
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
sedeid1
|
||||||
|
via delle streghe
|
||||||
|
Benevento
|
||||||
|
ita
|
||||||
|
sedeid2
|
||||||
|
via a caso
|
||||||
|
Milano
|
||||||
|
ita
|
10
src/Azienda/Test.java
Normal file
10
src/Azienda/Test.java
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user