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