This is an automated email from the ASF dual-hosted git repository.

adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new 009e9ded0 FINERACT-2095: Support for string type primary keys - enum 
options
009e9ded0 is described below

commit 009e9ded01b8c937f1490c468959eee1ad2fa148
Author: Marta Jankovics <[email protected]>
AuthorDate: Wed Jun 26 13:07:05 2024 +0200

    FINERACT-2095: Support for string type primary keys - enum options
---
 .../data/{EnumOptionData.java => BaseEnumOptionData.java}    |  8 ++++----
 .../fineract/infrastructure/core/data/EnumOptionData.java    | 12 ++++--------
 .../data/{EnumOptionData.java => StringEnumOptionData.java}  | 12 ++++--------
 .../interoperation/domain/InteropIdentifierType.java         |  5 +++++
 4 files changed, 17 insertions(+), 20 deletions(-)

diff --git 
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java
 
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/BaseEnumOptionData.java
similarity index 87%
copy from 
fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java
copy to 
fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/BaseEnumOptionData.java
index 6f2251e9f..ca81d716e 100644
--- 
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java
+++ 
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/BaseEnumOptionData.java
@@ -31,9 +31,9 @@ import lombok.Getter;
 @Getter
 @EqualsAndHashCode
 @AllArgsConstructor
-public class EnumOptionData implements Serializable {
+public abstract class BaseEnumOptionData<T> implements Serializable {
 
-    private final Long id;
-    private final String code;
-    private final String value;
+    protected T id;
+    protected final String code;
+    protected final String value;
 }
diff --git 
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java
 
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java
index 6f2251e9f..f3c027a84 100644
--- 
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java
+++ 
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java
@@ -19,8 +19,6 @@
 package org.apache.fineract.infrastructure.core.data;
 
 import java.io.Serializable;
-import lombok.AllArgsConstructor;
-import lombok.EqualsAndHashCode;
 import lombok.Getter;
 
 /**
@@ -29,11 +27,9 @@ import lombok.Getter;
  * </p>
  */
 @Getter
-@EqualsAndHashCode
-@AllArgsConstructor
-public class EnumOptionData implements Serializable {
+public class EnumOptionData extends BaseEnumOptionData<Long> implements 
Serializable {
 
-    private final Long id;
-    private final String code;
-    private final String value;
+    public EnumOptionData(Long id, String code, String description) {
+        super(id, code, description);
+    }
 }
diff --git 
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java
 
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/StringEnumOptionData.java
similarity index 80%
copy from 
fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java
copy to 
fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/StringEnumOptionData.java
index 6f2251e9f..ec5c152d7 100644
--- 
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java
+++ 
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/StringEnumOptionData.java
@@ -19,8 +19,6 @@
 package org.apache.fineract.infrastructure.core.data;
 
 import java.io.Serializable;
-import lombok.AllArgsConstructor;
-import lombok.EqualsAndHashCode;
 import lombok.Getter;
 
 /**
@@ -29,11 +27,9 @@ import lombok.Getter;
  * </p>
  */
 @Getter
-@EqualsAndHashCode
-@AllArgsConstructor
-public class EnumOptionData implements Serializable {
+public class StringEnumOptionData extends BaseEnumOptionData<String> 
implements Serializable {
 
-    private final Long id;
-    private final String code;
-    private final String value;
+    public StringEnumOptionData(String id, String code, String description) {
+        super(id, code, description);
+    }
 }
diff --git 
a/fineract-core/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifierType.java
 
b/fineract-core/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifierType.java
index 6cba22dc2..81b811271 100644
--- 
a/fineract-core/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifierType.java
+++ 
b/fineract-core/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifierType.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 import java.util.Map;
 import java.util.stream.Collectors;
 import lombok.Getter;
+import org.apache.fineract.infrastructure.core.data.StringEnumOptionData;
 
 @Getter
 public enum InteropIdentifierType {
@@ -65,4 +66,8 @@ public enum InteropIdentifierType {
         InteropIdentifierType idType = BY_ALIAS.get(name);
         return idType == null ? BY_NAME.get(name) : idType;
     }
+
+    public StringEnumOptionData toStringEnumOptionData() {
+        return new StringEnumOptionData(name(), getCode(), getDescription());
+    }
 }

Reply via email to