From 719c1b185a0be132e2d5f31ea6f7bb3d4a9ad8ac Mon Sep 17 00:00:00 2001
From: "Dr. Martin Goik" <goik@hdm-stuttgart.de>
Date: Thu, 20 Jan 2022 00:46:56 +0100
Subject: [PATCH] Enum correction in reflection code

---
 .../mi/sd1/test/ignore_me/ObjectWrapper.java        | 13 ++++++++++---
 .../mi/sd1/test/ignore_me/ObjectWrapper.java        | 13 ++++++++++---
 .../mi/sd1/test/ignore_me/ObjectWrapper.java        | 13 ++++++++++---
 .../mi/sd1/test/ignore_me/ObjectWrapper.java        | 13 ++++++++++---
 .../mi/sd1/test/ignore_me/ObjectWrapper.java        | 13 ++++++++++---
 .../mi/sd1/test/ignore_me/ObjectWrapper.java        | 13 ++++++++++---
 6 files changed, 60 insertions(+), 18 deletions(-)

diff --git a/Klausuren/Sd1/2020winter/First/Exam/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java b/Klausuren/Sd1/2020winter/First/Exam/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
index 3ea40e6af..2e67853e3 100644
--- a/Klausuren/Sd1/2020winter/First/Exam/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
+++ b/Klausuren/Sd1/2020winter/First/Exam/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
@@ -136,9 +136,16 @@ public class ObjectWrapper<T> {
       for (int i = 0; i < formalArgumentTypes.length; i++) {
         final Class parametersClass = parameter[i].getClass();
 
-        if (!formalArgumentTypes[i].equals(parametersClass) &&
-                !formalArgumentTypes[i].equals(getPrimitiveType(parametersClass))) {
-          return false;
+        final Class<?> formalArgumentType = formalArgumentTypes[i];
+
+        if (formalArgumentType.isPrimitive()) {
+          if (!formalArgumentType.equals(getPrimitiveType(parametersClass))) {
+            return false;
+          }
+        } else {
+          if (!formalArgumentType.isAssignableFrom(parametersClass)) {
+            return false;
+          }
         }
       }
     }
diff --git a/Klausuren/Sd1/2020winter/First/Solve/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java b/Klausuren/Sd1/2020winter/First/Solve/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
index 3ea40e6af..2e67853e3 100644
--- a/Klausuren/Sd1/2020winter/First/Solve/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
+++ b/Klausuren/Sd1/2020winter/First/Solve/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
@@ -136,9 +136,16 @@ public class ObjectWrapper<T> {
       for (int i = 0; i < formalArgumentTypes.length; i++) {
         final Class parametersClass = parameter[i].getClass();
 
-        if (!formalArgumentTypes[i].equals(parametersClass) &&
-                !formalArgumentTypes[i].equals(getPrimitiveType(parametersClass))) {
-          return false;
+        final Class<?> formalArgumentType = formalArgumentTypes[i];
+
+        if (formalArgumentType.isPrimitive()) {
+          if (!formalArgumentType.equals(getPrimitiveType(parametersClass))) {
+            return false;
+          }
+        } else {
+          if (!formalArgumentType.isAssignableFrom(parametersClass)) {
+            return false;
+          }
         }
       }
     }
diff --git a/Klausuren/Sd1/2020winter/Second/Exam/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java b/Klausuren/Sd1/2020winter/Second/Exam/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
index 3ea40e6af..2e67853e3 100644
--- a/Klausuren/Sd1/2020winter/Second/Exam/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
+++ b/Klausuren/Sd1/2020winter/Second/Exam/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
@@ -136,9 +136,16 @@ public class ObjectWrapper<T> {
       for (int i = 0; i < formalArgumentTypes.length; i++) {
         final Class parametersClass = parameter[i].getClass();
 
-        if (!formalArgumentTypes[i].equals(parametersClass) &&
-                !formalArgumentTypes[i].equals(getPrimitiveType(parametersClass))) {
-          return false;
+        final Class<?> formalArgumentType = formalArgumentTypes[i];
+
+        if (formalArgumentType.isPrimitive()) {
+          if (!formalArgumentType.equals(getPrimitiveType(parametersClass))) {
+            return false;
+          }
+        } else {
+          if (!formalArgumentType.isAssignableFrom(parametersClass)) {
+            return false;
+          }
         }
       }
     }
diff --git a/Klausuren/Sd1/2020winter/Second/Solve/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java b/Klausuren/Sd1/2020winter/Second/Solve/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
index 3ea40e6af..2e67853e3 100644
--- a/Klausuren/Sd1/2020winter/Second/Solve/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
+++ b/Klausuren/Sd1/2020winter/Second/Solve/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
@@ -136,9 +136,16 @@ public class ObjectWrapper<T> {
       for (int i = 0; i < formalArgumentTypes.length; i++) {
         final Class parametersClass = parameter[i].getClass();
 
-        if (!formalArgumentTypes[i].equals(parametersClass) &&
-                !formalArgumentTypes[i].equals(getPrimitiveType(parametersClass))) {
-          return false;
+        final Class<?> formalArgumentType = formalArgumentTypes[i];
+
+        if (formalArgumentType.isPrimitive()) {
+          if (!formalArgumentType.equals(getPrimitiveType(parametersClass))) {
+            return false;
+          }
+        } else {
+          if (!formalArgumentType.isAssignableFrom(parametersClass)) {
+            return false;
+          }
         }
       }
     }
diff --git a/Klausuren/Sd1/2021summer/Exam/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java b/Klausuren/Sd1/2021summer/Exam/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
index 9ffd35e49..2b8ef988a 100644
--- a/Klausuren/Sd1/2021summer/Exam/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
+++ b/Klausuren/Sd1/2021summer/Exam/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
@@ -137,9 +137,16 @@ public class ObjectWrapper<T> {
       for (int i = 0; i < formalArgumentTypes.length; i++) {
         final Class parametersClass = parameter[i].getClass();
 
-        if (!formalArgumentTypes[i].equals(parametersClass) &&
-                !formalArgumentTypes[i].equals(getPrimitiveType(parametersClass))) {
-          return false;
+        final Class<?> formalArgumentType = formalArgumentTypes[i];
+
+        if (formalArgumentType.isPrimitive()) {
+          if (!formalArgumentType.equals(getPrimitiveType(parametersClass))) {
+            return false;
+          }
+        } else {
+          if (!formalArgumentType.isAssignableFrom(parametersClass)) {
+            return false;
+          }
         }
       }
     }
diff --git a/Klausuren/Sd1/2021summer/Solve/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java b/Klausuren/Sd1/2021summer/Solve/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
index 9ffd35e49..2b8ef988a 100644
--- a/Klausuren/Sd1/2021summer/Solve/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
+++ b/Klausuren/Sd1/2021summer/Solve/src/test/java/de/hdm_stuttgart/mi/sd1/test/ignore_me/ObjectWrapper.java
@@ -137,9 +137,16 @@ public class ObjectWrapper<T> {
       for (int i = 0; i < formalArgumentTypes.length; i++) {
         final Class parametersClass = parameter[i].getClass();
 
-        if (!formalArgumentTypes[i].equals(parametersClass) &&
-                !formalArgumentTypes[i].equals(getPrimitiveType(parametersClass))) {
-          return false;
+        final Class<?> formalArgumentType = formalArgumentTypes[i];
+
+        if (formalArgumentType.isPrimitive()) {
+          if (!formalArgumentType.equals(getPrimitiveType(parametersClass))) {
+            return false;
+          }
+        } else {
+          if (!formalArgumentType.isAssignableFrom(parametersClass)) {
+            return false;
+          }
         }
       }
     }
-- 
GitLab