FINERACT-2081: Support for string type primary keys - refactor existing enums
This commit is contained in:
committed by
Adam Saghy
parent
009e9ded01
commit
b482fbd447
+16
-10
@@ -20,16 +20,21 @@ package org.apache.fineract.accounting.common;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import lombok.Getter;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
import org.apache.fineract.infrastructure.core.data.StringEnumOptionData;
|
||||
|
||||
@Getter
|
||||
public enum AccountingRuleType {
|
||||
|
||||
NONE(1, "accountingRuleType.none"), //
|
||||
CASH_BASED(2, "accountingRuleType.cash"), //
|
||||
ACCRUAL_PERIODIC(3, "accountingRuleType.accrual.periodic"), //
|
||||
ACCRUAL_UPFRONT(4, "accountingRuleType.accrual.upfront"); //
|
||||
NONE(1, "accountingRuleType.none", "No accounting"), //
|
||||
CASH_BASED(2, "accountingRuleType.cash", "Cash based accounting"), //
|
||||
ACCRUAL_PERIODIC(3, "accountingRuleType.accrual.periodic", "Periodic accrual accounting"), //
|
||||
ACCRUAL_UPFRONT(4, "accountingRuleType.accrual.upfront", "Upfront accrual accounting"); //
|
||||
|
||||
private final Integer value;
|
||||
private final String code;
|
||||
private final String description;
|
||||
|
||||
private static final Map<Integer, AccountingRuleType> intToEnumMap = new HashMap<>();
|
||||
|
||||
@@ -44,21 +49,22 @@ public enum AccountingRuleType {
|
||||
return type;
|
||||
}
|
||||
|
||||
AccountingRuleType(final Integer value, final String code) {
|
||||
AccountingRuleType(final Integer value, final String code, final String description) {
|
||||
this.value = value;
|
||||
this.code = code;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return name().toString().replaceAll("_", " ");
|
||||
return name().replaceAll("_", " ");
|
||||
}
|
||||
|
||||
public Integer getValue() {
|
||||
return this.value;
|
||||
public EnumOptionData toEnumOptionData() {
|
||||
return new EnumOptionData((long) getValue(), getCode(), getDescription());
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return this.code;
|
||||
public StringEnumOptionData toStringEnumOptionData() {
|
||||
return new StringEnumOptionData(name(), getCode(), getDescription());
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -130,7 +130,7 @@ public enum EntityTables {
|
||||
|
||||
@NotNull
|
||||
public static List<Integer> getCheckStatusCodes(String name) {
|
||||
return getCheckStatuses(name).stream().map(StatusEnum::getCode).toList();
|
||||
return getCheckStatuses(name).stream().map(StatusEnum::getValue).toList();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+32
-65
@@ -18,88 +18,55 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.dataqueries.data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
|
||||
public enum StatusEnum {
|
||||
|
||||
CREATE("create", 100), APPROVE("approve", 200), ACTIVATE("activate", 300), WITHDRAWN("withdraw", 400), REJECTED("reject", 500), CLOSE(
|
||||
"close", 600), WRITE_OFF("write off", 601), RESCHEDULE("reschedule", 602), OVERPAY("overpay", 700), DISBURSE("disburse", 800);
|
||||
CREATE("statusEnum.create", 100), //
|
||||
APPROVE("statusEnum.approve", 200), //
|
||||
ACTIVATE("statusEnum.activate", 300), //
|
||||
WITHDRAWN("statusEnum.withdraw", 400), //
|
||||
REJECTED("statusEnum.reject", 500), //
|
||||
CLOSE("statusEnum.close", 600), //
|
||||
WRITE_OFF("statusEnum.write off", 601), //
|
||||
RESCHEDULE("statusEnum.reschedule", 602), //
|
||||
OVERPAY("statusEnum.overpay", 700), //
|
||||
DISBURSE("statusEnum.disburse", 800), //
|
||||
;
|
||||
|
||||
private final String name;
|
||||
private static final StatusEnum[] VALUES = values();
|
||||
|
||||
private final Integer code;
|
||||
private static final Map<Integer, StatusEnum> BY_ID = Arrays.stream(VALUES).collect(Collectors.toMap(StatusEnum::getValue, v -> v));
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
private final String code;
|
||||
|
||||
private final Integer value;
|
||||
|
||||
public Integer getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
StatusEnum(String name, Integer code) {
|
||||
|
||||
this.name = name;
|
||||
StatusEnum(String code, Integer value) {
|
||||
this.code = code;
|
||||
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static List<DatatableCheckStatusData> getStatusList() {
|
||||
|
||||
List<DatatableCheckStatusData> data = new ArrayList<DatatableCheckStatusData>();
|
||||
|
||||
for (StatusEnum status : StatusEnum.values()) {
|
||||
data.add(new DatatableCheckStatusData(status.name, status.code));
|
||||
}
|
||||
|
||||
return data;
|
||||
|
||||
public static StatusEnum fromInt(final Integer value) {
|
||||
return BY_ID.get(value);
|
||||
}
|
||||
|
||||
public static StatusEnum fromInt(final Integer code) {
|
||||
StatusEnum ret = null;
|
||||
switch (code) {
|
||||
case 100:
|
||||
ret = StatusEnum.CREATE;
|
||||
break;
|
||||
case 200:
|
||||
ret = StatusEnum.APPROVE;
|
||||
break;
|
||||
case 300:
|
||||
ret = StatusEnum.ACTIVATE;
|
||||
break;
|
||||
case 400:
|
||||
ret = StatusEnum.WITHDRAWN;
|
||||
break;
|
||||
case 500:
|
||||
ret = StatusEnum.REJECTED;
|
||||
break;
|
||||
case 600:
|
||||
ret = StatusEnum.CLOSE;
|
||||
break;
|
||||
case 601:
|
||||
ret = StatusEnum.WRITE_OFF;
|
||||
break;
|
||||
case 602:
|
||||
ret = StatusEnum.RESCHEDULE;
|
||||
break;
|
||||
case 700:
|
||||
ret = StatusEnum.OVERPAY;
|
||||
break;
|
||||
case 800:
|
||||
ret = StatusEnum.DISBURSE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
public static EnumOptionData toEnumOptionData(final Integer id) {
|
||||
return toEnumOptionData(StatusEnum.fromInt(id));
|
||||
}
|
||||
|
||||
public static EnumOptionData statusTypeEnum(final Integer id) {
|
||||
return statusType(StatusEnum.fromInt(id));
|
||||
public static EnumOptionData toEnumOptionData(final StatusEnum statusType) {
|
||||
return statusType == null ? null : statusType.toEnumOptionData();
|
||||
}
|
||||
|
||||
public static EnumOptionData statusType(final StatusEnum statusType) {
|
||||
final EnumOptionData optionData = new EnumOptionData(statusType.getCode().longValue(), statusType.name(), statusType.name());
|
||||
return optionData;
|
||||
public EnumOptionData toEnumOptionData() {
|
||||
return new EnumOptionData(getValue().longValue(), code, name());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+2
-1
@@ -56,7 +56,8 @@ public enum JobName {
|
||||
LOAN_DELINQUENCY_CLASSIFICATION("Loan Delinquency Classification"), //
|
||||
SEND_ASYNCHRONOUS_EVENTS("Send Asynchronous Events"), //
|
||||
PURGE_EXTERNAL_EVENTS("Purge External Events"), //
|
||||
PURGE_PROCESSED_COMMANDS("Purge Processed Commands");
|
||||
PURGE_PROCESSED_COMMANDS("Purge Processed Commands"), //
|
||||
;
|
||||
|
||||
private final String name;
|
||||
|
||||
|
||||
+18
-11
@@ -18,26 +18,25 @@
|
||||
*/
|
||||
package org.apache.fineract.portfolio;
|
||||
|
||||
import lombok.Getter;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
import org.apache.fineract.infrastructure.core.data.StringEnumOptionData;
|
||||
|
||||
@Getter
|
||||
public enum TransactionEntryType {
|
||||
|
||||
CREDIT(1, "transactionEntryType.credit"), //
|
||||
DEBIT(2, "transactionEntryType.debit"), //
|
||||
CREDIT(1, "transactionEntryType.credit", "Credit transaction"), //
|
||||
DEBIT(2, "transactionEntryType.debit", "Debit transaction"), //
|
||||
;
|
||||
|
||||
private final Integer value;
|
||||
private final String code;
|
||||
private final String description;
|
||||
|
||||
TransactionEntryType(final Integer value, final String code) {
|
||||
TransactionEntryType(final Integer value, final String code, final String description) {
|
||||
this.value = value;
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public Integer getValue() {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return this.code;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public boolean isCredit() {
|
||||
@@ -51,4 +50,12 @@ public enum TransactionEntryType {
|
||||
public TransactionEntryType getReversal() {
|
||||
return this == CREDIT ? DEBIT : CREDIT;
|
||||
}
|
||||
|
||||
public EnumOptionData toEnumOptionData() {
|
||||
return new EnumOptionData((long) getValue(), getCode(), getDescription());
|
||||
}
|
||||
|
||||
public StringEnumOptionData toStringEnumOptionData() {
|
||||
return new StringEnumOptionData(name(), getCode(), getDescription());
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -22,7 +22,8 @@ public enum PortfolioAccountType {
|
||||
|
||||
INVALID(0, "accountType.invalid"), //
|
||||
LOAN(1, "accountType.loan"), //
|
||||
SAVINGS(2, "accountType.savings");
|
||||
SAVINGS(2, "accountType.savings"), //
|
||||
;
|
||||
|
||||
private final Integer value;
|
||||
private final String code;
|
||||
|
||||
+11
-1
@@ -18,6 +18,11 @@
|
||||
*/
|
||||
package org.apache.fineract.portfolio.accountdetails.domain;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
import org.apache.fineract.portfolio.accountdetails.service.AccountEnumerations;
|
||||
|
||||
/**
|
||||
* Enum representation of account types .
|
||||
*/
|
||||
@@ -27,7 +32,8 @@ public enum AccountType {
|
||||
INDIVIDUAL(1, "accountType.individual"), //
|
||||
GROUP(2, "accountType.group"), //
|
||||
JLG(3, "accountType.jlg"), // JLG account given in group context
|
||||
GLIM(4, "accountType.glim"), GSIM(5, "accountType.gsim");
|
||||
GLIM(4, "accountType.glim"), //
|
||||
GSIM(5, "accountType.gsim");
|
||||
|
||||
private final Integer value;
|
||||
private final String code;
|
||||
@@ -71,6 +77,10 @@ public enum AccountType {
|
||||
return accountType;
|
||||
}
|
||||
|
||||
public static List<EnumOptionData> toEnumOptionData() {
|
||||
return Arrays.stream(values()).sequential().map(AccountEnumerations::loanType).toList();
|
||||
}
|
||||
|
||||
public Integer getValue() {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
@@ -75,6 +75,14 @@ public enum NoteType {
|
||||
return BY_API.get(url);
|
||||
}
|
||||
|
||||
public static EnumOptionData toEnumOptionData(final Integer id) {
|
||||
return toEnumOptionData(NoteType.fromInt(id));
|
||||
}
|
||||
|
||||
public static EnumOptionData toEnumOptionData(final NoteType noteType) {
|
||||
return noteType == null ? null : noteType.toEnumOptionData();
|
||||
}
|
||||
|
||||
public EnumOptionData toEnumOptionData() {
|
||||
return new EnumOptionData(getValue().longValue(), getCode(), getDescription());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user