diff --git a/.idea/checkstyle-idea.xml b/.idea/checkstyle-idea.xml
new file mode 100644
index 0000000..3218000
--- /dev/null
+++ b/.idea/checkstyle-idea.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/dbnavigator.xml b/.idea/dbnavigator.xml
new file mode 100644
index 0000000..dad027a
--- /dev/null
+++ b/.idea/dbnavigator.xml
@@ -0,0 +1,466 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/org/eidecker/mapreduce/DistanceCounter.java b/src/org/eidecker/mapreduce/DistanceCounter.java
new file mode 100644
index 0000000..f299d28
--- /dev/null
+++ b/src/org/eidecker/mapreduce/DistanceCounter.java
@@ -0,0 +1,57 @@
+package org.eidecker.mapreduce;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+import org.junit.jupiter.api.Test;
+
+/**
+ * @author seidecke.
+ */
+public class DistanceCounter {
+
+ private static Integer komplizierteBerechnungMitRestCall(Integer strecke, Integer strecke2) {
+ return strecke2 - strecke;
+ }
+
+ @Test
+ public void testDistanceSum() {
+ assertEquals(55, distanceSum(orte()));
+ }
+
+ private Integer distanceSum(List orte) {
+ Optional distanceSum = orte.stream()
+ .map(Stopp::getWichtigeDingeZurBerechnung)
+ .reduce(DistanceCounter::komplizierteBerechnungMitRestCall);
+
+ return distanceSum.orElse(0);
+ }
+
+
+
+
+
+ private List orte() {
+ return IntStream.rangeClosed(1,10).boxed().map(Stopp::new).collect(Collectors.toList());
+ }
+
+// private BinaryOperator distanceAdder = (ort, ort2) -> ort2.getWert() - ort.getWert();
+//
+// private BiFunction distanceAdder = (ort, ort2) -> ort2.getWert() - ort.getWert();
+
+ class Stopp {
+ Integer wert;
+
+ public Stopp(Integer wert) {
+ this.wert = wert;
+ }
+
+ public Integer getWichtigeDingeZurBerechnung() {
+ return wert;
+ }
+ }
+
+}
diff --git a/src/org/eidecker/oca8lernen/general/CastExceptions.java b/src/org/eidecker/oca8lernen/general/CastExceptions.java
new file mode 100644
index 0000000..f491790
--- /dev/null
+++ b/src/org/eidecker/oca8lernen/general/CastExceptions.java
@@ -0,0 +1,46 @@
+package org.eidecker.oca8lernen.general;
+
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+import org.junit.jupiter.api.Test;
+
+/**
+ * @author seidecke.
+ */
+public class CastExceptions {
+
+ @Test
+ public void testCastExceptions() {
+
+ OberCast eigentlichUnter = new UnterCast();
+ OberCast wirklichOber = new OberCast();
+ UnterCast purUnter = new UnterCast();
+
+ Außerhalb außerhalb = new Außerhalb();
+
+ OberCast ober = purUnter;
+
+ UnterCast unter = (UnterCast) eigentlichUnter;
+
+ // Runtime-Exception, da innerhalb der Typenhierarchie
+ assertThrows(ClassCastException.class, () -> {
+ UnterCast unter3 = (UnterCast) wirklichOber;
+ });
+
+ // Compilefehler, da Versuch des Casts außerhalb der Typenhierarchie
+ // UnterCast unter2 = (UnterCast) außerhalb;
+
+ }
+}
+
+class OberCast {
+
+}
+
+class UnterCast extends OberCast {
+
+}
+
+class Außerhalb {
+
+}
diff --git a/src/org/eidecker/oca8lernen/general/Interfaces.java b/src/org/eidecker/oca8lernen/general/Interfaces.java
index 0390702..7d7db10 100644
--- a/src/org/eidecker/oca8lernen/general/Interfaces.java
+++ b/src/org/eidecker/oca8lernen/general/Interfaces.java
@@ -1,8 +1,6 @@
package org.eidecker.oca8lernen.general;
-import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;
import java.io.IOException;
-import java.nio.file.AccessDeniedException;
import org.junit.jupiter.api.Test;
class TestInterfaces {
diff --git a/src/org/eidecker/oca8lernen/general/Overloading.java b/src/org/eidecker/oca8lernen/general/Overloading.java
index 53b09be..67403c8 100644
--- a/src/org/eidecker/oca8lernen/general/Overloading.java
+++ b/src/org/eidecker/oca8lernen/general/Overloading.java
@@ -1,14 +1,18 @@
package org.eidecker.oca8lernen.general;
-import org.junit.jupiter.api.Test;
+import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_BYTE;
+import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_CHAR;
+import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_CHARACTER;
+import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_INT;
+import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_INTEGER;
+import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_LONG_PRIMITIVE;
+import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_LONG_WRAPPER;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
-
-import static org.eidecker.oca8lernen.general.PrimitiveOverloading.*;
-import static org.eidecker.oca8lernen.general.Overloading.*;
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.junit.jupiter.api.Test;
class OverloadingTester {
@@ -21,6 +25,9 @@ class OverloadingTester {
SubOverloading subOverloading = new SubOverloading();
System.out.println(subOverloading.staticString);
System.out.println(subOverloading.overrideStatic());
+
+ List l = null;
+ subOverloading.overloadMe(l);
}
}
diff --git a/src/org/eidecker/oca8lernen/general/StringIndex.java b/src/org/eidecker/oca8lernen/general/StringIndex.java
new file mode 100644
index 0000000..5df9bde
--- /dev/null
+++ b/src/org/eidecker/oca8lernen/general/StringIndex.java
@@ -0,0 +1,67 @@
+package org.eidecker.oca8lernen.general;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+import org.junit.jupiter.api.Test;
+
+/**
+ * @author seidecke.
+ */
+public class StringIndex {
+
+ private static String testString = "1234567890";
+
+ @Test
+ public void testSomeStrings() {
+ assertEquals('3', testString.charAt(2));
+ assertEquals("67890", testString.substring(5));
+ assertEquals("67", testString.substring(5,7));
+ assertEquals("", testString.substring(5,5));
+ assertEquals(10, testString.length());
+ assertThrows(IndexOutOfBoundsException.class, () -> testString.substring(-1));
+ assertThrows(IndexOutOfBoundsException.class, () -> testString.substring(5,4));
+ assertThrows(IndexOutOfBoundsException.class, () -> testString.substring(5,11));
+
+ String s = "123456";
+ assertEquals("1234567", s += "7");
+ }
+
+ @Test
+ public void testSomeStringBuilders() {
+ StringBuilder testStringBuilder = new StringBuilder("1234567890");
+
+ assertEquals('3', testStringBuilder.charAt(2));
+ testStringBuilder = new StringBuilder("1234567890");
+ assertEquals("67890", testStringBuilder.substring(5));
+ testStringBuilder = new StringBuilder("1234567890");
+ assertEquals("67", testStringBuilder.substring(5,7));
+ testStringBuilder = new StringBuilder("1234567890");
+ assertEquals("", testStringBuilder.substring(5,5));
+ testStringBuilder = new StringBuilder("1234567890");
+ assertEquals(10, testStringBuilder.length());
+ testStringBuilder = new StringBuilder("1234567890");
+ assertThrows(IndexOutOfBoundsException.class, () -> new StringBuilder("1234567890").substring(-1));
+ testStringBuilder = new StringBuilder("1234567890");
+ assertThrows(IndexOutOfBoundsException.class, () -> new StringBuilder("1234567890").substring(5,4));
+ testStringBuilder = new StringBuilder("1234567890");
+ assertThrows(IndexOutOfBoundsException.class, () -> new StringBuilder("1234567890").substring(5,11));
+
+ testStringBuilder = new StringBuilder("1234567890");
+ assertThrows(IndexOutOfBoundsException.class, () -> new StringBuilder("1234567890").delete(13,1));
+ testStringBuilder = new StringBuilder("1234567890");
+ assertThrows(IndexOutOfBoundsException.class, () -> new StringBuilder("1234567890").insert(11,"Hallo"));
+
+ // null direkt nicht moeglich, da ueberladene Methode nicht bestimmt werden kann
+ // testStringBuilder.insert(1, null);
+
+ testStringBuilder = new StringBuilder("1234567890");
+ assertEquals("12345890", testStringBuilder.delete(5,7).toString());
+ testStringBuilder = new StringBuilder("1234567890");
+ assertEquals("71234567890", testStringBuilder.insert(0,7).toString());
+ testStringBuilder = new StringBuilder("1234567890");
+ assertEquals("1true234567890", testStringBuilder.insert(1,true).toString());
+ }
+
+
+}
diff --git a/src/org/eidecker/test/OptionalAPI.java b/src/org/eidecker/test/OptionalAPI.java
new file mode 100644
index 0000000..21d16e7
--- /dev/null
+++ b/src/org/eidecker/test/OptionalAPI.java
@@ -0,0 +1,30 @@
+package org.eidecker.test;
+
+import java.util.Optional;
+import org.junit.jupiter.api.Test;
+
+/**
+ * @author seidecke.
+ */
+public class OptionalAPI {
+
+ @Test
+ public void testOptionalMapping() {
+
+
+
+
+ }
+
+}
+
+
+class DataHolder {
+ public Optional value;
+
+ public DataHolder() {
+ value = Optional.empty();
+ }
+
+
+}