From a790300c6f42bbbf409592bd9f3d606cb300cf48 Mon Sep 17 00:00:00 2001 From: orange Date: Thu, 29 Dec 2016 17:36:27 +0100 Subject: [PATCH] add callbacks --- src/Museo/Archivio.java | 23 ++++++++++++++++------- src/Museo/FiltroAutore.java | 6 ++++++ src/Museo/FiltroStringa.java | 3 +++ src/Museo/FiltroTitolo.java | 6 ++++++ src/Museo/Test.java | 10 +++++++++- 5 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 src/Museo/FiltroAutore.java create mode 100644 src/Museo/FiltroStringa.java create mode 100644 src/Museo/FiltroTitolo.java diff --git a/src/Museo/Archivio.java b/src/Museo/Archivio.java index 39138f9..5329efc 100644 --- a/src/Museo/Archivio.java +++ b/src/Museo/Archivio.java @@ -42,14 +42,23 @@ public class Archivio{ } } - public Archivio filtroAutore(String autore){ - Set nuovoSet = new HashSet(); - for(Opera o: archivio) - if(o.getAutore().equals(autore)) - nuovoSet.add(o); + public Archivio filtroStringa(FiltroStringa fs, String stringa){ + Set nuovoSet = new HashSet(); + for(Opera o: archivio) + if(fs.getString(o).equals(stringa)) + nuovoSet.add(o); - return new Archivio(nuovoSet); - } + return new Archivio(nuovoSet); + } + + public Archivio filtroAnno(int anno){ + Set nuovoSet = new HashSet(); + for(Opera o: archivio) + if(o.getAnno()==anno) + nuovoSet.add(o); + + return new Archivio(nuovoSet); + } private Set archivio; } \ No newline at end of file diff --git a/src/Museo/FiltroAutore.java b/src/Museo/FiltroAutore.java new file mode 100644 index 0000000..dfc999b --- /dev/null +++ b/src/Museo/FiltroAutore.java @@ -0,0 +1,6 @@ +public class FiltroAutore implements FiltroStringa{ + + public String getString(Object obj){ + return ((Opera) obj).getAutore(); + } +} \ No newline at end of file diff --git a/src/Museo/FiltroStringa.java b/src/Museo/FiltroStringa.java new file mode 100644 index 0000000..602fe5a --- /dev/null +++ b/src/Museo/FiltroStringa.java @@ -0,0 +1,3 @@ +public interface FiltroStringa{ + String getString(Object obj); +} \ No newline at end of file diff --git a/src/Museo/FiltroTitolo.java b/src/Museo/FiltroTitolo.java new file mode 100644 index 0000000..ee21b3e --- /dev/null +++ b/src/Museo/FiltroTitolo.java @@ -0,0 +1,6 @@ +public class FiltroTitolo implements FiltroStringa{ + + public String getString(Object obj){ + return ((Opera) obj).getTitolo(); + } +} \ No newline at end of file diff --git a/src/Museo/Test.java b/src/Museo/Test.java index fed30d9..0ad14ac 100644 --- a/src/Museo/Test.java +++ b/src/Museo/Test.java @@ -9,6 +9,14 @@ public class Test{ Archivio arch=new Archivio(scMult, scLibri, scStampe); - arch.filtroAutore("Autore1").print(System.out); + arch.filtroStringa(new FiltroTitolo(), "Titolo1").print(System.out); + + System.out.println("****"); + + arch.filtroStringa(new FiltroAutore(), "Autore1").print(System.out); + + System.out.println("****"); + + arch.filtroAnno(2000).print(System.out); } } \ No newline at end of file