From 419c4d64f82a2f35ad401218fc276a416e54f378 Mon Sep 17 00:00:00 2001 From: sgiannopoulos Date: Tue, 17 Oct 2023 13:45:59 +0300 Subject: [PATCH] database enum handle implementation --- .../java/eu/eudat/commons/enums/EnumUtils.java | 16 ++++++++++++++++ .../eu/eudat/commons/enums/ProviderType.java | 8 +------- .../main/java/eu/eudat/commons/enums/Status.java | 8 +------- 3 files changed, 18 insertions(+), 14 deletions(-) create mode 100644 dmp-backend/core/src/main/java/eu/eudat/commons/enums/EnumUtils.java diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/enums/EnumUtils.java b/dmp-backend/core/src/main/java/eu/eudat/commons/enums/EnumUtils.java new file mode 100644 index 000000000..404660306 --- /dev/null +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/enums/EnumUtils.java @@ -0,0 +1,16 @@ +package eu.eudat.commons.enums; + +import eu.eudat.data.converters.enums.DatabaseEnum; + +import java.util.HashMap; +import java.util.Map; + +public class EnumUtils { + public static & DatabaseEnum, EnumValue> Map getEnumValueMap(Class enumType){ + HashMap map = new HashMap<>(); + for (EnumType v : enumType.getEnumConstants()) { + map.put(v.getValue(), v); + } + return map; + } +} diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/enums/ProviderType.java b/dmp-backend/core/src/main/java/eu/eudat/commons/enums/ProviderType.java index 8f93cde74..cf34c5045 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/enums/ProviderType.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/enums/ProviderType.java @@ -27,13 +27,7 @@ public enum ProviderType implements DatabaseEnum { public Integer getValue() { return this.value; } - private static final Map map; - static { - map = new HashMap<>(); - for (ProviderType v : ProviderType.values()) { - map.put(v.getValue(), v); - } - } + private static final Map map = EnumUtils.getEnumValueMap(ProviderType.class); public static ProviderType of(Integer i) { return map.get(i); } diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/enums/Status.java b/dmp-backend/core/src/main/java/eu/eudat/commons/enums/Status.java index a53b04b3a..406f65f77 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/enums/Status.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/enums/Status.java @@ -20,13 +20,7 @@ public enum Status implements DatabaseEnum { return value; } - private static final Map map; - static { - map = new HashMap<>(); - for (Status v : Status.values()) { - map.put(v.getValue(), v); - } - } + private static final Map map = EnumUtils.getEnumValueMap(Status.class); public static Status of(Integer i) { return map.get(i);