Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package centroSportivo;
- import java.util.*;
- public class CentroSportivo {
- private ArrayList<Servizio> listaServizi;
- private ArrayList<Tesserato> listaTesserati;
- public CentroSportivo(ArrayList<Servizio> listaServizi, ArrayList<Tesserato> listaTesserati) {
- this.listaServizi = new ArrayList<>(listaServizi);
- this.listaTesserati = new ArrayList<>(listaTesserati);
- }// Costruttore
- private Tesserato trovaTesserato(String cf) {
- for (Tesserato t : listaTesserati)
- if (t.getCf().equals(cf))
- return t;
- return null;
- }// trovaTesserato
- private Servizio trovaServizio(int codice) {
- for (Servizio s : listaServizi)
- if (s.getCodice() == codice)
- return s;
- return null;
- }// trovaServizio
- public boolean aggiorna(String codiceFiscale, int codServizio, String mese, boolean[] settimane) {
- Tesserato t = trovaTesserato(codiceFiscale);
- if (t == null)
- return false;
- Servizio s = trovaServizio(codServizio);
- if (s == null || s.getNumPostiDisponibili() == 0)
- return false;
- s.incrementaPostiOccupati();
- // In alternativa:
- // if(s == null || !s.incrementaPostiOccupati()) return false;
- int indiceMese = Abbonamento.getIndiceMese(mese);
- if (indiceMese == -1)
- return false;
- boolean[][] mesiSettimane = new boolean[Abbonamento.MESI][Abbonamento.SETTIMANE];
- for (int i = 0; i < Abbonamento.MESI; i++)
- for (int j = 0; j < Abbonamento.SETTIMANE; j++)
- mesiSettimane[i][j] = false;
- for (int i = 0; i < settimane.length; i++)
- mesiSettimane[indiceMese][i] = settimane[i];
- // In alternativa:
- // mesiSettimane[indiceMese] = Arrays.copyOf(settimane, settimane.length);
- Abbonamento a = new Abbonamento(codServizio, mesiSettimane);
- t.aggiungiAbbonamento(a);
- return true;
- }// aggiorna
- public ArrayList<Servizio> serviziOrdinati() {
- ArrayList<Servizio> ret = new ArrayList<>(this.listaServizi);
- Collections.sort(ret);
- return ret;
- }// serviziOrdinati
- public HashMap<Integer, Integer> reportIscritti(String mese) {
- HashMap<Integer, Integer> report = new HashMap<>();
- for (Tesserato t : listaTesserati) {
- ArrayList<Abbonamento> listaAbbonamenti = t.getListaAbbonamenti();
- int totale = 0;
- for (Abbonamento a : listaAbbonamenti) {
- int sett = a.getSettimaneCoperte(mese);
- int codServizio = a.getCodiceServizio();
- int costoServizio = 0;
- for (Servizio s : listaServizi)
- if (s.getCodice() == codServizio) {
- costoServizio = s.getCostoSettimanale();
- break;
- } // if
- totale += costoServizio * sett;
- } // for
- report.put(t.getCodiceTessera(), totale);
- } // for
- return report;
- }// reportIscritti
- }// CentroSportivo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement