From 30baec4990d0f2839557abe723bf93e2f8f930ed Mon Sep 17 00:00:00 2001 From: orange Date: Fri, 30 Dec 2016 13:52:33 +0100 Subject: [PATCH] add inner class --- src/Museo/FiltroAutore.java | 6 ------ src/Museo/FiltroStringa.java | 41 ++++++++++++++++++++++++++++++++++++ src/Museo/FiltroTitolo.java | 6 ------ src/Museo/OperaMult.java | 4 ++++ src/Museo/Stampa.java | 4 ++++ src/Museo/Test.java | 4 ++-- 6 files changed, 51 insertions(+), 14 deletions(-) delete mode 100644 src/Museo/FiltroAutore.java delete mode 100644 src/Museo/FiltroTitolo.java diff --git a/src/Museo/FiltroAutore.java b/src/Museo/FiltroAutore.java deleted file mode 100644 index dfc999b..0000000 --- a/src/Museo/FiltroAutore.java +++ /dev/null @@ -1,6 +0,0 @@ -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 index 602fe5a..63d292c 100644 --- a/src/Museo/FiltroStringa.java +++ b/src/Museo/FiltroStringa.java @@ -1,3 +1,44 @@ public interface FiltroStringa{ String getString(Object obj); +} + +class FiltroSupporto implements FiltroStringa{ + + public String getString(Object obj){ + if(obj instanceof OperaMult) + return ((OperaMult) obj).getSupporto(); + else + return ""; + } +} + +class FiltroTecnica implements FiltroStringa{ + + public String getString(Object obj){ + if(obj instanceof Stampa) + return ((Stampa) obj).getTecnica(); + else + return ""; + } +} + +class FiltroAutore implements FiltroStringa{ + + public String getString(Object obj){ + return ((Opera) obj).getAutore(); + } +} + +class FiltroTitolo implements FiltroStringa{ + + public String getString(Object obj){ + return ((Opera) obj).getTitolo(); + } +} + +class FiltroPosizione implements FiltroStringa{ + + public String getString(Object obj){ + return ((Opera) obj).getPos(); + } } \ No newline at end of file diff --git a/src/Museo/FiltroTitolo.java b/src/Museo/FiltroTitolo.java deleted file mode 100644 index ee21b3e..0000000 --- a/src/Museo/FiltroTitolo.java +++ /dev/null @@ -1,6 +0,0 @@ -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/OperaMult.java b/src/Museo/OperaMult.java index a06cff5..d426319 100644 --- a/src/Museo/OperaMult.java +++ b/src/Museo/OperaMult.java @@ -8,6 +8,10 @@ public class OperaMult extends Opera{ this.supporto=supporto; } + public String getSupporto(){ + return supporto; + } + public int hashCode(){ return super.hashCode()*supporto.hashCode(); } diff --git a/src/Museo/Stampa.java b/src/Museo/Stampa.java index 956cc5c..80984aa 100644 --- a/src/Museo/Stampa.java +++ b/src/Museo/Stampa.java @@ -8,6 +8,10 @@ public class Stampa extends Opera{ this.tecnica=tecnica; } + public String getTecnica(){ + return tecnica; + } + public int hashCode(){ return super.hashCode()*tecnica.hashCode(); } diff --git a/src/Museo/Test.java b/src/Museo/Test.java index 0ad14ac..8b054ee 100644 --- a/src/Museo/Test.java +++ b/src/Museo/Test.java @@ -13,10 +13,10 @@ public class Test{ System.out.println("****"); - arch.filtroStringa(new FiltroAutore(), "Autore1").print(System.out); + arch.filtroStringa(new FiltroAutore(), "Autore1").filtroStringa(new FiltroPosizione(), "4D").print(System.out); System.out.println("****"); - arch.filtroAnno(2000).print(System.out); + arch.filtroStringa(new FiltroTecnica(), "Pergamena").filtroAnno(1999).print(System.out); } } \ No newline at end of file