EmployeeManager class files Livello 14 Edit

Employee e EmployeeManager

Employee

La classe Employee è utilizzata per rappresentare i dati di un impiegato aziendale e il suo stipendio. La classe è molto semplice; possiede solo i due attributi privati name (il nome dell’impiegato) e salary (lo stipendio dell’impiegato [double]). Entrambi gli attributi sono accessibili in sola lettura.

La classe Employee esporta pure il costruttore personalizzato che permette di inizializzare name e salary (in questo ordine).

Inoltre Employee esporta e il metodo boolean equals(Employee e) che ritorna true se i due impiegati confrontati posseggono lo stesso nome (ignora maiuscole e minuscole) e lo stesso stipendio.

EmployeeManager

Serve per caricare i dati riguardanti gli impiegati da un file CSV e per trovare la media degli stipendi.

I dati sono memorizzati nella lista di Employee employees (attributo privato List<Employee>).

La classe EmployeeManager esporta i seguenti metodi:

Costruttore

public EmployeeManager(String csvPath)

Il costruttore personalizzato permette di definire il percorso del file CSV.

loadEmployees

public void loadEmployees()

Carica i dati dal file CSV. Se non è possibile accedere o leggere il file, solleva una IOException. Le righe del file CSV che contengono dati non validi non vengono importate.

getEmployees

public List<Employee> getEmployees()

Ritorna la lista (employees ) degli impiegati.

getAverageSalary

public double getAverageSalary()

Ritorna lo stipendio medio (tra tutti quelli contenuti in employees). Se la lista è vuota ritorna -1.0.

Formato del file CSV

Su ogni riga del file CSV deve essere registrato un impiegato nel formato:

<salary>;<name>

Dove:

Tutte le righe che non rispettano questo formato sono considerate come non valide e vengono ignorate dal metodo loadEmployees.

Ad esempio un file CSV valido potrebbe contenere i dati seguenti:

1250.5;Mario
200;Alb
1000.5;Luigi
8230.25;Zorro
400;Pippo