From a06d23a833fa99b83a89a51ee6c6f6e7269d41b1 Mon Sep 17 00:00:00 2001
From: Gregor Kleen <gkleen@yggdrasil.li>
Date: Tue, 15 Dec 2015 10:54:53 +0100
Subject: EiP - 08

---
 ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Hund.java    | 11 +++++
 .../blaetter/08/de/lmu/ifi/tcs/Hundeschule.java    | 20 +++++++++
 .../08/de/lmu/ifi/tcs/HundeschuleKorrekt.java      | 52 ++++++++++++++++++++++
 ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Katze.java   | 12 +++++
 ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Tier.java    |  8 ++++
 .../eip/blaetter/08/de/lmu/ifi/tcs/TierDemo.java   | 30 +++++++++++++
 .../eip/blaetter/08/de/lmu/ifi/tcs/TierSchule.java | 13 ++++++
 7 files changed, 146 insertions(+)
 create mode 100644 ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Hund.java
 create mode 100644 ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Hundeschule.java
 create mode 100644 ws2015/eip/blaetter/08/de/lmu/ifi/tcs/HundeschuleKorrekt.java
 create mode 100644 ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Katze.java
 create mode 100644 ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Tier.java
 create mode 100644 ws2015/eip/blaetter/08/de/lmu/ifi/tcs/TierDemo.java
 create mode 100644 ws2015/eip/blaetter/08/de/lmu/ifi/tcs/TierSchule.java

(limited to 'ws2015/eip/blaetter/08/de/lmu/ifi')

diff --git a/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Hund.java b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Hund.java
new file mode 100644
index 0000000..8e86ace
--- /dev/null
+++ b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Hund.java
@@ -0,0 +1,11 @@
+package de.lmu.ifi.tcs;
+
+/**
+ * Created by jost on 08.12.15.
+ */
+public class Hund implements Tier {
+    @Override
+    public String gibLaut() {
+        return "Wau! Wau!";
+    }
+}
diff --git a/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Hundeschule.java b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Hundeschule.java
new file mode 100644
index 0000000..e802c6a
--- /dev/null
+++ b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Hundeschule.java
@@ -0,0 +1,20 @@
+package de.lmu.ifi.tcs;
+
+import java.util.ArrayList;
+
+/**
+ * Ein Beispiel, wie man es _nicht_ machen sollte!
+ *
+ * Created by jost on 08.12.15.
+ */
+public class Hundeschule extends ArrayList<Tier> {
+
+    @Override
+    public boolean add(Tier t){
+        if (t.gibLaut().equals("Wau! Wau!"))
+            return super.add(t);
+        else
+            return false;
+    }
+
+}
diff --git a/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/HundeschuleKorrekt.java b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/HundeschuleKorrekt.java
new file mode 100644
index 0000000..6fb527f
--- /dev/null
+++ b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/HundeschuleKorrekt.java
@@ -0,0 +1,52 @@
+package de.lmu.ifi.tcs;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+class HundeschuleKorrekt {
+    private ArrayList<Tier> roster;
+
+    public HundeschuleKorrekt()
+    {
+        roster = new ArrayList<Tier>();
+    }
+
+    private static boolean isAdmissable(Tier tier)
+    {
+        if (tier.getClass().equals(Hund.class))
+            return true;
+        return false;
+    }
+
+    public boolean add(Tier tier)
+    {
+        if (! isAdmissable(tier))
+            return false;
+        return roster.add(tier);
+    }
+    
+    public boolean addAll(ArrayList<Tier> tiere)
+    { // Ugh.
+        Iterator<Tier> it = roster.iterator();
+        ArrayList<Tier> admissable = new ArrayList<Tier>();
+
+        while (it.hasNext())
+            {
+                Tier tier = it.next();
+                if (isAdmissable(tier))
+                    admissable.add(tier);
+            }
+
+        return roster.addAll(admissable);
+    }
+
+    public boolean remove(Tier tier)
+    {
+        return roster.remove(tier);
+    }
+
+    public ArrayList<Tier> getTiere()
+    {
+        return roster;
+    }
+}
diff --git a/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Katze.java b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Katze.java
new file mode 100644
index 0000000..0e20b72
--- /dev/null
+++ b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Katze.java
@@ -0,0 +1,12 @@
+package de.lmu.ifi.tcs;
+
+/**
+ * Created by jost on 08.12.15.
+ */
+public class Katze implements Tier {
+
+    @Override
+    public String gibLaut() {
+        return "Miau!";
+    }
+}
diff --git a/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Tier.java b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Tier.java
new file mode 100644
index 0000000..fabd990
--- /dev/null
+++ b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/Tier.java
@@ -0,0 +1,8 @@
+package de.lmu.ifi.tcs;
+
+/**
+ * Created by jost on 08.12.15.
+ */
+public interface Tier {
+    String gibLaut();
+}
diff --git a/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/TierDemo.java b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/TierDemo.java
new file mode 100644
index 0000000..3a3adfa
--- /dev/null
+++ b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/TierDemo.java
@@ -0,0 +1,30 @@
+package de.lmu.ifi.tcs;
+
+import java.util.ArrayList;
+
+public class TierDemo {
+
+    public static void main(String[] args) {
+        ArrayList<Tier> tiere = new ArrayList<Tier> ();
+        tiere.add(new Katze());
+        tiere.add(new Hund());
+        Hundeschule hundeschule = new Hundeschule();
+        hundeschule.add(new Hund());
+        hundeschule.add(new Katze());
+        hundeschule.addAll(tiere);
+        for (Tier t : hundeschule) {
+            System.out.println(t.gibLaut());
+        }
+        System.out.println("Test Teil 2:");
+        HundeschuleKorrekt schule = new HundeschuleKorrekt();
+        schule.add(new Hund());
+        schule.add(new Katze());
+        schule.add(new Hund());
+        schule.add(new Katze());
+        schule.addAll(tiere);
+        for (Tier t : schule.getTiere()) {
+            System.out.println(t.gibLaut());
+        }
+  }
+  
+}
diff --git a/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/TierSchule.java b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/TierSchule.java
new file mode 100644
index 0000000..0d25738
--- /dev/null
+++ b/ws2015/eip/blaetter/08/de/lmu/ifi/tcs/TierSchule.java
@@ -0,0 +1,13 @@
+package de.lmu.ifi.tcs;
+
+import java.util.ArrayList;
+
+/**
+ * Created by jost on 08.12.15.
+ */
+public interface TierSchule {
+    boolean add(Tier tier);
+    boolean remove(Tier tier);
+    boolean addAll(ArrayList<Tier> tiere);
+    ArrayList<Tier> getTiere();
+}
-- 
cgit v1.2.3