From 2304261a62ee43891baba6f320695f777272c323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wieland=20Sch=C3=B6bl?= Date: Mon, 12 Apr 2021 15:22:43 +0200 Subject: [PATCH] Refactor Gson saving to Kotlin --- .../config/ObjectInfoConfigHandler.java | 30 ------------------- .../registration/config/ObjectInfoData.java | 6 ++-- src/main/kotlin/extensions/Array.kt | 7 +++++ .../config/ObjectInfoConfigHandler.kt | 12 ++++++++ 4 files changed, 22 insertions(+), 33 deletions(-) delete mode 100644 src/main/java/org/hmcore/registration/config/ObjectInfoConfigHandler.java create mode 100644 src/main/kotlin/extensions/Array.kt create mode 100644 src/main/kotlin/org/hmcore/registration/config/ObjectInfoConfigHandler.kt diff --git a/src/main/java/org/hmcore/registration/config/ObjectInfoConfigHandler.java b/src/main/java/org/hmcore/registration/config/ObjectInfoConfigHandler.java deleted file mode 100644 index 97c4ed8..0000000 --- a/src/main/java/org/hmcore/registration/config/ObjectInfoConfigHandler.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.hmcore.registration.config; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import org.hmcore.modules.Module; - -public class ObjectInfoConfigHandler { - - public static String generateFreshJSON(Module[] modules) { - - ModuleInfo[] moduleInfos = new ModuleInfo[modules.length]; - - for (int i = 0; i < modules.length; i++) { - - Module module = modules[i]; - moduleInfos[i] = new ModuleInfo(module.getName(), - module.getObjectInfoArray()); - - } - - ObjectInfoConfig objectInfoConfig = new ObjectInfoConfig(moduleInfos); - - GsonBuilder builder = new GsonBuilder().setPrettyPrinting(); - Gson gson = builder.create(); - - return gson.toJson(objectInfoConfig); - - } - -} diff --git a/src/main/java/org/hmcore/registration/config/ObjectInfoData.java b/src/main/java/org/hmcore/registration/config/ObjectInfoData.java index 7602584..616f17e 100644 --- a/src/main/java/org/hmcore/registration/config/ObjectInfoData.java +++ b/src/main/java/org/hmcore/registration/config/ObjectInfoData.java @@ -5,12 +5,12 @@ import org.jetbrains.annotations.Nullable; public class ObjectInfoData { public final String objectName; - public final String objectInfoChoosen; + public final String objectInfoChosen; public final String _availableOptions; - public ObjectInfoData(String objectName, @Nullable String objectInfoChoosen, String availableOptions) { + public ObjectInfoData(String objectName, @Nullable String objectInfoChosen, String availableOptions) { this.objectName = objectName; - this.objectInfoChoosen = objectInfoChoosen == null ? "default" : objectInfoChoosen; + this.objectInfoChosen = objectInfoChosen == null ? "default" : objectInfoChosen; _availableOptions = availableOptions; } } diff --git a/src/main/kotlin/extensions/Array.kt b/src/main/kotlin/extensions/Array.kt new file mode 100644 index 0000000..ce9b3f4 --- /dev/null +++ b/src/main/kotlin/extensions/Array.kt @@ -0,0 +1,7 @@ +package extensions + +/** + * Map a Java array to another Java array + */ +inline fun Array.map(crossinline transform: (T) -> I) = + Array(size) { transform(this[it]) } \ No newline at end of file diff --git a/src/main/kotlin/org/hmcore/registration/config/ObjectInfoConfigHandler.kt b/src/main/kotlin/org/hmcore/registration/config/ObjectInfoConfigHandler.kt new file mode 100644 index 0000000..9e3cc1e --- /dev/null +++ b/src/main/kotlin/org/hmcore/registration/config/ObjectInfoConfigHandler.kt @@ -0,0 +1,12 @@ +@file:JvmName("ObjectInfoConfigHandler") + +package org.hmcore.registration.config + +import com.google.gson.GsonBuilder +import org.hmcore.modules.Module +import extensions.map + +private val GSON = GsonBuilder().setPrettyPrinting().create() + +fun Array>.generateFreshJSON(): String = + GSON.toJson(ObjectInfoConfig(map { ModuleInfo(it.name, it.objectInfoArray) })) \ No newline at end of file