Programmare in Java una lista della spesa/Classe Lista

La classe Lista gestisce una java.util.List di classi Prodotto, instanziata tramite una java.util.ArrayList. Il costruttore della classe legge la lista della spesa contenuta nel file listaSpesa.csv e riempe l'ArrayList. Poi contiene metodi per aggiungere o rimuovere un prodotto dalla lista e per svuotare la lista. La classe Lista verrà instanziata nella classe che gestisce l'interfaccia grafica del programma o GUI . Tale classe si crea selezionando in Eclipse : File --> New --> Class e digitando il nome della classe Lista.

package lista_spesa;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Lista {

	private List<Prodotto> prodotti;

	//Costruttore
    public Lista()  {
		super();
		String str;
		prodotti = new ArrayList<Prodotto>();
		try {

			BufferedReader br =new BufferedReader(
				new FileReader("listaSpesa.csv"));


		while((str= br.readLine())!=null) {
			String[] a = str.split(",");
			prodotti.add(new Prodotto(a[0],a[2],a[3],a[1]));
		}


		}

		catch (FileNotFoundException fnfe)
		{
			FileWriter writer;
			try {
				writer = new FileWriter("listaSpesa.csv");
				writer.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}
		catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}


	protected List<Prodotto> getProdotti() {
    	return prodotti;
    }

    protected void add(Prodotto p) {
    	prodotti.add(p);
    }

    protected void remove (int index) {
    	prodotti.remove(index);
    }

    protected void svuotaLista () {
    	prodotti.clear();
    }
}