Salve ragazzi, qualcuno di voi sa dirmi cosa c'è di sbagliato in questo costruttore che prende 3 parametri ed il quarto (DataNotifica) se lo deve calcolare in base a quei 3:

codice:
class entry{
	
             String email = new String();
	GregorianCalendar data = new GregorianCalendar();
	int memorandumId;
	GregorianCalendar dataNotifica = new GregorianCalendar();


	/*!!! COSTRUTTORE !!!!*/
	public entry(String address, GregorianCalendar day, int id){
	data = day;
	email = address;
	memorandumId = id;

            /*!!! PARAMETRO CALCOLATO IN BASE AL MEMORANDUMID !!! */
	switch(memorandumId){
	case 2:
	dataNotifica = data;
	dataNotifica.add(GregorianCalendar.DAY_OF_MONTH,-7);
	break;
	case 3:
	dataNotifica = data;
	dataNotifica.add(GregorianCalendar.DAY_OF_MONTH,-2);

	break;
	case 4:
	dataNotifica = data;
	dataNotifica.add(GregorianCalendar.DAY_OF_MONTH,-1);
	break;
	
	}
	}
Il problema è che alla fine le DataNotifica sono tutte identiche alla corrispondente Data dell'oggetto quando invece io all'interno dello switch le ho esplicitamente cambiate