From 9e12e3b1cd5331fa6465719900b68ecb6ec11605 Mon Sep 17 00:00:00 2001 From: a7med3del1973 Date: Sun, 1 Jun 2025 23:50:20 +0300 Subject: [PATCH] FINERACT-2181: Refactor code quality --- .../service/AcmeNoteReadPlatformService.java | 3 ++- .../starter/AcmeNoteServiceStepDefinitions.java | 2 +- .../AccrualAccountingApiResourceSwagger.java | 2 +- .../closure/api/GLClosuresApiResource.java | 2 +- ...ntWritePlatformServiceJpaRepositoryImpl.java | 17 ++++++++--------- .../ProductToGLAccountMappingHelper.java | 4 ++-- ...visioningEntriesReadPlatformServiceImpl.java | 2 +- .../rule/api/AccountingRuleJsonInputParams.java | 2 +- .../rule/data/AccountingRuleData.java | 4 ++-- .../accounting/rule/domain/AccountingRule.java | 7 +++---- .../AccountingRuleInvalidException.java | 12 ++++++------ ...leWritePlatformServiceJpaRepositoryImpl.java | 4 ++-- .../journalentry/JournalEntryBusinessEvent.java | 2 +- 13 files changed, 31 insertions(+), 32 deletions(-) diff --git a/custom/acme/note/service/src/main/java/com/acme/fineract/portfolio/note/service/AcmeNoteReadPlatformService.java b/custom/acme/note/service/src/main/java/com/acme/fineract/portfolio/note/service/AcmeNoteReadPlatformService.java index fbfcced48..32cd4be01 100644 --- a/custom/acme/note/service/src/main/java/com/acme/fineract/portfolio/note/service/AcmeNoteReadPlatformService.java +++ b/custom/acme/note/service/src/main/java/com/acme/fineract/portfolio/note/service/AcmeNoteReadPlatformService.java @@ -18,6 +18,7 @@ */ package com.acme.fineract.portfolio.note.service; +import java.util.Collections; import java.util.List; import lombok.extern.slf4j.Slf4j; import org.apache.fineract.portfolio.note.data.NoteData; @@ -43,6 +44,6 @@ public class AcmeNoteReadPlatformService implements NoteReadPlatformService, Ini @Override public List retrieveNotesByResource(Long resourceId, Integer noteTypeId) { - return null; + return Collections.emptyList(); } } diff --git a/custom/acme/note/starter/src/test/java/com/acme/fineract/portfolio/note/starter/AcmeNoteServiceStepDefinitions.java b/custom/acme/note/starter/src/test/java/com/acme/fineract/portfolio/note/starter/AcmeNoteServiceStepDefinitions.java index 5807e0b80..b3242cf91 100644 --- a/custom/acme/note/starter/src/test/java/com/acme/fineract/portfolio/note/starter/AcmeNoteServiceStepDefinitions.java +++ b/custom/acme/note/starter/src/test/java/com/acme/fineract/portfolio/note/starter/AcmeNoteServiceStepDefinitions.java @@ -42,7 +42,7 @@ public class AcmeNoteServiceStepDefinitions implements En { }); When("/^The user retrieves the service of interface class (.*)$/", (String interfaceClassName) -> { - contextRunner.run((ctx) -> { + contextRunner.run(ctx -> { this.interfaceClass = Class.forName(interfaceClassName.trim()); assertThat(this.interfaceClass.isInterface()).isTrue(); diff --git a/fineract-accounting/src/main/java/org/apache/fineract/accounting/accrual/api/AccrualAccountingApiResourceSwagger.java b/fineract-accounting/src/main/java/org/apache/fineract/accounting/accrual/api/AccrualAccountingApiResourceSwagger.java index c18a55b90..568314ea3 100644 --- a/fineract-accounting/src/main/java/org/apache/fineract/accounting/accrual/api/AccrualAccountingApiResourceSwagger.java +++ b/fineract-accounting/src/main/java/org/apache/fineract/accounting/accrual/api/AccrualAccountingApiResourceSwagger.java @@ -40,7 +40,7 @@ final class AccrualAccountingApiResourceSwagger { public String locale; @Schema(example = "dd MMMM yyyy") public String dateFormat; - @Schema(example = "04 June 2014", description = "which specifies periodic accruals should happen till the given Date", required = true) + @Schema(example = "04 June 2014", description = "which specifies periodic accruals should happen till the given Date") public String tillDate; } diff --git a/fineract-accounting/src/main/java/org/apache/fineract/accounting/closure/api/GLClosuresApiResource.java b/fineract-accounting/src/main/java/org/apache/fineract/accounting/closure/api/GLClosuresApiResource.java index 818c7d91d..c40f5d067 100644 --- a/fineract-accounting/src/main/java/org/apache/fineract/accounting/closure/api/GLClosuresApiResource.java +++ b/fineract-accounting/src/main/java/org/apache/fineract/accounting/closure/api/GLClosuresApiResource.java @@ -126,7 +126,7 @@ public class GLClosuresApiResource { @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) @Operation(summary = "Update an Accounting closure", description = "Once an accounting closure is created, only the comments associated with it may be edited") - @RequestBody(content = @Content(schema = @Schema(implementation = GLClosuresApiResourceSwagger.PutGlClosuresRequest.class, required = true))) + @RequestBody(content = @Content(schema = @Schema(implementation = GLClosuresApiResourceSwagger.PutGlClosuresRequest.class))) @ApiResponses({ @ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = GLClosuresApiResourceSwagger.PutGlClosuresResponse.class))) }) public CommandProcessingResult updateGLClosure(@PathParam("glClosureId") @Parameter(description = "glClosureId") final Long glClosureId, diff --git a/fineract-accounting/src/main/java/org/apache/fineract/accounting/glaccount/service/GLAccountWritePlatformServiceJpaRepositoryImpl.java b/fineract-accounting/src/main/java/org/apache/fineract/accounting/glaccount/service/GLAccountWritePlatformServiceJpaRepositoryImpl.java index b08a59e02..155764269 100644 --- a/fineract-accounting/src/main/java/org/apache/fineract/accounting/glaccount/service/GLAccountWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-accounting/src/main/java/org/apache/fineract/accounting/glaccount/service/GLAccountWritePlatformServiceJpaRepositoryImpl.java @@ -59,6 +59,7 @@ import org.springframework.transaction.annotation.Transactional; public class GLAccountWritePlatformServiceJpaRepositoryImpl implements GLAccountWritePlatformService { private static final Logger LOG = LoggerFactory.getLogger(GLAccountWritePlatformServiceJpaRepositoryImpl.class); + private static final String GL_ACCOUNT = "glAccount"; private final GLAccountRepository glAccountRepository; private final JournalEntryRepository glJournalEntryRepository; @@ -146,13 +147,11 @@ public class GLAccountWritePlatformServiceJpaRepositoryImpl implements GLAccount /** * a detail account cannot be changed to a header account if transactions are already logged against it **/ - if (changesOnly.containsKey(GLAccountJsonInputParams.USAGE.getValue())) { - if (glAccount.isHeaderAccount()) { - final boolean journalEntriesForAccountExist = this.glJournalEntryRepository - .exists((root, query, criteriaBuilder) -> criteriaBuilder.equal(root.get("glAccount").get("id"), glAccountId)); - if (journalEntriesForAccountExist) { - throw new GLAccountInvalidUpdateException(GlAccountInvalidUpdateReason.TRANSANCTIONS_LOGGED, glAccountId); - } + if (changesOnly.containsKey(GLAccountJsonInputParams.USAGE.getValue()) && glAccount.isHeaderAccount()) { + final boolean journalEntriesForAccountExist = this.glJournalEntryRepository + .exists((root, query, criteriaBuilder) -> criteriaBuilder.equal(root.get(GL_ACCOUNT).get("id"), glAccountId)); + if (journalEntriesForAccountExist) { + throw new GLAccountInvalidUpdateException(GlAccountInvalidUpdateReason.TRANSANCTIONS_LOGGED, glAccountId); } } @@ -194,13 +193,13 @@ public class GLAccountWritePlatformServiceJpaRepositoryImpl implements GLAccount // does this account have transactions logged against it final boolean journalEntriesForAccountExist = this.glJournalEntryRepository - .exists((root, query, criteriaBuilder) -> criteriaBuilder.equal(root.get("glAccount").get("id"), glAccountId)); + .exists((root, query, criteriaBuilder) -> criteriaBuilder.equal(root.get(GL_ACCOUNT).get("id"), glAccountId)); if (journalEntriesForAccountExist) { throw new GLAccountInvalidDeleteException(GlAccountInvalidDeleteReason.TRANSACTIONS_LOGGED, glAccountId); } // does this account mapped to product final boolean accountMappingForAccountExists = this.productToGLAccountMappingRepository - .exists((root, query, criteriaBuilder) -> criteriaBuilder.equal(root.get("glAccount").get("id"), glAccountId)); + .exists((root, query, criteriaBuilder) -> criteriaBuilder.equal(root.get(GL_ACCOUNT).get("id"), glAccountId)); if (accountMappingForAccountExists) { throw new GLAccountInvalidDeleteException(GlAccountInvalidDeleteReason.PRODUCT_MAPPING, glAccountId); } diff --git a/fineract-accounting/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java b/fineract-accounting/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java index ca05950f1..bc92634c2 100644 --- a/fineract-accounting/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java +++ b/fineract-accounting/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java @@ -90,7 +90,7 @@ public class ProductToGLAccountMappingHelper { final ProductToGLAccountMapping accountMapping = this.accountMappingRepository.findCoreProductToFinAccountMapping(productId, portfolioProductType.getValue(), accountTypeId); if (accountMapping == null) { - ArrayList optionalProductToGLAccountMappingEntries = new ArrayList(); + ArrayList optionalProductToGLAccountMappingEntries = new ArrayList<>(); optionalProductToGLAccountMappingEntries.add(LoanProductAccountingParams.GOODWILL_CREDIT.getValue()); optionalProductToGLAccountMappingEntries.add(LoanProductAccountingParams.INCOME_FROM_CHARGE_OFF_INTEREST.getValue()); optionalProductToGLAccountMappingEntries.add(LoanProductAccountingParams.INCOME_FROM_CHARGE_OFF_FEES.getValue()); @@ -560,7 +560,7 @@ public class ProductToGLAccountMappingHelper { public void deleteProductToGLAccountMapping(final Long loanProductId, final PortfolioProductType portfolioProductType) { final List productToGLAccountMappings = this.accountMappingRepository .findByProductIdAndProductType(loanProductId, portfolioProductType.getValue()); - if (productToGLAccountMappings != null && productToGLAccountMappings.size() > 0) { + if (productToGLAccountMappings != null && !productToGLAccountMappings.isEmpty()) { this.accountMappingRepository.deleteAllInBatch(productToGLAccountMappings); } } diff --git a/fineract-accounting/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java b/fineract-accounting/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java index 7873e441f..bd2bf8ad6 100644 --- a/fineract-accounting/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java +++ b/fineract-accounting/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java @@ -262,7 +262,7 @@ public class ProvisioningEntriesReadPlatformServiceImpl implements ProvisioningE LoanProductProvisioningEntryRowMapper mapper = new LoanProductProvisioningEntryRowMapper(); final String sql = "select " + mapper.getSchema() + " where entry.criteria_id = ?"; Collection entries = this.jdbcTemplate.query(sql, mapper, criteriaId); // NOSONAR - if (entries != null && entries.size() > 0) { + if (entries != null && !entries.isEmpty()) { Long entryId = ((LoanProductProvisioningEntryData) entries.toArray()[0]).getHistoryId(); ProvisioningEntryDataMapper mapper1 = new ProvisioningEntryDataMapper(); final String sql1 = "select " + mapper1.getSchema() + " where entry.id = ?"; diff --git a/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/api/AccountingRuleJsonInputParams.java b/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/api/AccountingRuleJsonInputParams.java index de3db2c88..df4e12ab4 100644 --- a/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/api/AccountingRuleJsonInputParams.java +++ b/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/api/AccountingRuleJsonInputParams.java @@ -58,7 +58,7 @@ public enum AccountingRuleJsonInputParams { @Override public String toString() { - return name().toString().replace("_", " "); + return name().replace("_", " "); } public String getValue() { diff --git a/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/data/AccountingRuleData.java b/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/data/AccountingRuleData.java index 39c67d56d..630d4628d 100644 --- a/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/data/AccountingRuleData.java +++ b/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/data/AccountingRuleData.java @@ -52,9 +52,9 @@ public class AccountingRuleData { // template @SuppressWarnings("unused") - private List allowedOffices = new ArrayList(); + private List allowedOffices = new ArrayList<>(); @SuppressWarnings("unused") - private List allowedAccounts = new ArrayList(); + private List allowedAccounts = new ArrayList<>(); @SuppressWarnings("unused") private Collection allowedCreditTagOptions; @SuppressWarnings("unused") diff --git a/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/domain/AccountingRule.java b/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/domain/AccountingRule.java index 88127c622..7f968a616 100644 --- a/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/domain/AccountingRule.java +++ b/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/domain/AccountingRule.java @@ -138,10 +138,9 @@ public class AccountingRule extends AbstractPersistableCustom { if (this.accountToCredit == null) { this.allowMultipleCreditEntries = newValue; } - } else if (paramName.equals(AccountingRuleJsonInputParams.ALLOW_MULTIPLE_DEBIT_ENTRIES.getValue())) { - if (this.accountToDebit == null) { - this.allowMultipleDebitEntries = newValue; - } + } else if (paramName.equals(AccountingRuleJsonInputParams.ALLOW_MULTIPLE_DEBIT_ENTRIES.getValue()) + && this.accountToDebit == null) { + this.allowMultipleDebitEntries = newValue; } } } diff --git a/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/exception/AccountingRuleInvalidException.java b/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/exception/AccountingRuleInvalidException.java index ab4dc6d5e..2b21d4077 100644 --- a/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/exception/AccountingRuleInvalidException.java +++ b/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/exception/AccountingRuleInvalidException.java @@ -33,21 +33,21 @@ public class AccountingRuleInvalidException extends AbstractPlatformDomainRuleEx ACCOUNTING_CLOSED; // public String errorMessage() { - if (name().toString().equalsIgnoreCase("FUTURE_DATE")) { + if (name().equalsIgnoreCase("FUTURE_DATE")) { return "Accounting closures cannot be made for a future date"; - } else if (name().toString().equalsIgnoreCase("ACCOUNTING_CLOSED")) { + } else if (name().equalsIgnoreCase("ACCOUNTING_CLOSED")) { return "Accounting Closure for this branch has already been defined for a greater date"; } - return name().toString(); + return name(); } public String errorCode() { - if (name().toString().equalsIgnoreCase("FUTURE_DATE")) { + if (name().equalsIgnoreCase("FUTURE_DATE")) { return "error.msg.glclosure.invalid.future.date"; - } else if (name().toString().equalsIgnoreCase("ACCOUNTING_CLOSED")) { + } else if (name().equalsIgnoreCase("ACCOUNTING_CLOSED")) { return "error.msg.glclosure.invalid.accounting.closed"; } - return name().toString(); + return name(); } } diff --git a/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/service/AccountingRuleWritePlatformServiceJpaRepositoryImpl.java b/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/service/AccountingRuleWritePlatformServiceJpaRepositoryImpl.java index dd0c92313..eca3d1333 100644 --- a/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/service/AccountingRuleWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-accounting/src/main/java/org/apache/fineract/accounting/rule/service/AccountingRuleWritePlatformServiceJpaRepositoryImpl.java @@ -111,8 +111,8 @@ public class AccountingRuleWritePlatformServiceJpaRepositoryImpl implements Acco // get the GL Accounts or tags to Debit and Credit final String[] debitTags = command.arrayValueOfParameterNamed(AccountingRuleJsonInputParams.DEBIT_ACCOUNT_TAGS.getValue()); final String[] creditTags = command.arrayValueOfParameterNamed(AccountingRuleJsonInputParams.CREDIT_ACCOUNT_TAGS.getValue()); - final Set incomingDebitTags = debitTags == null ? new HashSet() : new HashSet<>(Arrays.asList(debitTags)); - final Set incomingCreditTags = creditTags == null ? new HashSet() : new HashSet<>(Arrays.asList(creditTags)); + final Set incomingDebitTags = debitTags == null ? new HashSet<>() : new HashSet<>(Arrays.asList(debitTags)); + final Set incomingCreditTags = creditTags == null ? new HashSet<>() : new HashSet<>(Arrays.asList(creditTags)); final Long accountToDebitId = command.longValueOfParameterNamed(AccountingRuleJsonInputParams.ACCOUNT_TO_DEBIT.getValue()); final Long accountToCreditId = command.longValueOfParameterNamed(AccountingRuleJsonInputParams.ACCOUNT_TO_CREDIT.getValue()); diff --git a/fineract-accounting/src/main/java/org/apache/fineract/infrastructure/event/business/domain/journalentry/JournalEntryBusinessEvent.java b/fineract-accounting/src/main/java/org/apache/fineract/infrastructure/event/business/domain/journalentry/JournalEntryBusinessEvent.java index 3aeaa7b3b..0309cfa7c 100644 --- a/fineract-accounting/src/main/java/org/apache/fineract/infrastructure/event/business/domain/journalentry/JournalEntryBusinessEvent.java +++ b/fineract-accounting/src/main/java/org/apache/fineract/infrastructure/event/business/domain/journalentry/JournalEntryBusinessEvent.java @@ -25,7 +25,7 @@ public abstract class JournalEntryBusinessEvent extends AbstractBusinessEvent