From d826913753c4e7a79d8748a78d01abdf2b1de839 Mon Sep 17 00:00:00 2001 From: Harsh-Srivastav123 <114308429+Harsh-Srivastav123@users.noreply.github.com> Date: Sun, 2 Mar 2025 15:34:35 +0530 Subject: [PATCH] This PR refactors the LoanStatus.fromInt method to replace the traditional switch-case statement with a modern switch expression, improving code readability and efficiency. --- .../loanaccount/domain/LoanStatus.java | 54 ++++++------------- 1 file changed, 17 insertions(+), 37 deletions(-) diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanStatus.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanStatus.java index 9482d67ad..db11f441f 100644 --- a/fineract-core/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanStatus.java +++ b/fineract-core/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanStatus.java @@ -40,44 +40,24 @@ public enum LoanStatus { private final String code; public static LoanStatus fromInt(final Integer statusValue) { - - LoanStatus enumeration = LoanStatus.INVALID; - switch (statusValue) { - case 100: - enumeration = LoanStatus.SUBMITTED_AND_PENDING_APPROVAL; - break; - case 200: - enumeration = LoanStatus.APPROVED; - break; - case 300: - enumeration = LoanStatus.ACTIVE; - break; - case 303: - enumeration = LoanStatus.TRANSFER_IN_PROGRESS; - break; - case 304: - enumeration = LoanStatus.TRANSFER_ON_HOLD; - break; - case 400: - enumeration = LoanStatus.WITHDRAWN_BY_CLIENT; - break; - case 500: - enumeration = LoanStatus.REJECTED; - break; - case 600: - enumeration = LoanStatus.CLOSED_OBLIGATIONS_MET; - break; - case 601: - enumeration = LoanStatus.CLOSED_WRITTEN_OFF; - break; - case 602: - enumeration = LoanStatus.CLOSED_RESCHEDULE_OUTSTANDING_AMOUNT; - break; - case 700: - enumeration = LoanStatus.OVERPAID; - break; + if (statusValue == null) { + return LoanStatus.INVALID; } - return enumeration; + + return switch (statusValue) { + case 100 -> LoanStatus.SUBMITTED_AND_PENDING_APPROVAL; + case 200 -> LoanStatus.APPROVED; + case 300 -> LoanStatus.ACTIVE; + case 303 -> LoanStatus.TRANSFER_IN_PROGRESS; + case 304 -> LoanStatus.TRANSFER_ON_HOLD; + case 400 -> LoanStatus.WITHDRAWN_BY_CLIENT; + case 500 -> LoanStatus.REJECTED; + case 600 -> LoanStatus.CLOSED_OBLIGATIONS_MET; + case 601 -> LoanStatus.CLOSED_WRITTEN_OFF; + case 602 -> LoanStatus.CLOSED_RESCHEDULE_OUTSTANDING_AMOUNT; + case 700 -> LoanStatus.OVERPAID; + default -> LoanStatus.INVALID; + }; } LoanStatus(final Integer value, final String code) {