diff --git a/src/listaspesa/Alimentare.java b/src/listaspesa/Alimentare.java index c7e957f..e3b982b 100644 --- a/src/listaspesa/Alimentare.java +++ b/src/listaspesa/Alimentare.java @@ -4,6 +4,7 @@ */ package listaspesa; +import java.text.SimpleDateFormat; import java.util.Date; /** @@ -12,6 +13,8 @@ import java.util.Date; */ public class Alimentare extends Prodotto { Date dataScadenza; + String datePattern = "dd/MM/yyyy"; + SimpleDateFormat sdf = new SimpleDateFormat(datePattern); public Alimentare(String p_nome, float p_prezzo, float p_qta, float p_scontoFidelityCard, Date p_dataScadenza, String p_descrizione) { super(p_nome, p_prezzo, p_qta, p_scontoFidelityCard, p_descrizione); @@ -44,4 +47,11 @@ public class Alimentare extends Prodotto { public void invalida() { super.invalida(); } + + public boolean isEqual(Alimentare p_Alimentare) { + boolean ritorno = super.isEqual(p_Alimentare) + && this.sdf.format(p_Alimentare.dataScadenza).equals(this.sdf.format(this.dataScadenza)); + + return ritorno; + } } \ No newline at end of file diff --git a/src/listaspesa/NonAlimentare.java b/src/listaspesa/NonAlimentare.java index eacebf5..3d028f7 100644 --- a/src/listaspesa/NonAlimentare.java +++ b/src/listaspesa/NonAlimentare.java @@ -21,8 +21,16 @@ public class NonAlimentare extends Prodotto { super(p_NonAlimentare); this.tipoMateriale = p_NonAlimentare.tipoMateriale; } + public void stampaDati() { super.stampaDati(); System.out.println("Tipo materiale: " + tipoMateriale); } + + public boolean isEqual(NonAlimentare p_NonAlimentare) { + boolean ritorno = super.isEqual(p_NonAlimentare) + && p_NonAlimentare.tipoMateriale.equals(this.tipoMateriale); + + return ritorno; + } } \ No newline at end of file diff --git a/src/listaspesa/Prodotto.java b/src/listaspesa/Prodotto.java index 3a720a7..4ad39e1 100644 --- a/src/listaspesa/Prodotto.java +++ b/src/listaspesa/Prodotto.java @@ -24,7 +24,7 @@ public class Prodotto { this.descrizione = p_descrizione; } - public Prodotto(Prodotto p_Prodotto) { //copyProdotto, ma è costruttore quindi il nome rimane così + public Prodotto(Prodotto p_Prodotto) { // copyProdotto, ma è costruttore quindi il nome rimane così this.nome = p_Prodotto.nome; this.prezzo = p_Prodotto.prezzo; this.qta = p_Prodotto.qta; @@ -84,4 +84,14 @@ public class Prodotto { public void invalida() { this.nome = null; } + + public boolean isEqual(Prodotto p_prodotto) { + boolean ritorno = p_prodotto.nome.equals(this.nome) && + p_prodotto.descrizione.equals(this.descrizione) && + p_prodotto.prezzo == this.prezzo && + p_prodotto.qta == this.qta && + p_prodotto.scontoFidelityCard == this.scontoFidelityCard; + + return ritorno; + } } \ No newline at end of file diff --git a/src/listaspesa/listaSpesa.java b/src/listaspesa/listaSpesa.java index 48aa872..1968fd7 100644 --- a/src/listaspesa/listaSpesa.java +++ b/src/listaspesa/listaSpesa.java @@ -477,7 +477,7 @@ public class listaSpesa { for (int i = 0; i < magazzino.length && !exit; i++) { if (magazzino[i] != null) { - if (magazzino[i].hashCode() == p_prodotto.hashCode()) { + if (magazzino[i].isEqual(p_prodotto)) { ritorno = i; exit = true; } @@ -497,7 +497,7 @@ public class listaSpesa { for (int i = 0; i < scontrino.length && !exit; i++) { if (scontrino[i] != null) { - if (scontrino[i].hashCode() == p_prodotto.hashCode()) { + if (scontrino[i].isEqual(p_prodotto)) { ritorno = i; exit = true; }