FINERACT-2267: Use the proper not-null annotation in Fineract code base

This commit is contained in:
a7med3del1973
2025-05-27 20:21:19 +02:00
committed by Adam Saghy
parent 8d7d8ca7ef
commit d71c0bd204
44 changed files with 138 additions and 140 deletions
@@ -22,13 +22,13 @@ import java.util.Set;
import java.util.TreeMap;
import org.apache.fineract.cob.data.BusinessStepNameAndOrder;
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
import org.jetbrains.annotations.NotNull;
import org.springframework.lang.NonNull;
public interface COBBusinessStepService {
<T extends COBBusinessStep<S>, S extends AbstractPersistableCustom<Long>> S run(TreeMap<Long, String> executionMap, S item);
@NotNull
@NonNull
<T extends COBBusinessStep<S>, S extends AbstractPersistableCustom<Long>> Set<BusinessStepNameAndOrder> getCOBBusinessSteps(
Class<T> businessStepClass, String cobJobName);
}
@@ -36,9 +36,9 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
import org.apache.fineract.infrastructure.core.domain.ActionContext;
import org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil;
import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Service;
@Service
@@ -92,7 +92,7 @@ public class COBBusinessStepServiceImpl implements COBBusinessStepService {
return item;
}
@NotNull
@NonNull
@Override
public <T extends COBBusinessStep<S>, S extends AbstractPersistableCustom<Long>> Set<BusinessStepNameAndOrder> getCOBBusinessSteps(
Class<T> businessStepClass, String cobJobName) {
@@ -30,11 +30,11 @@ import org.apache.fineract.infrastructure.core.domain.ActionContext;
import org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil;
import org.apache.fineract.useradministration.domain.AppUser;
import org.apache.fineract.useradministration.domain.AppUserRepositoryWrapper;
import org.jetbrains.annotations.NotNull;
import org.springframework.batch.core.StepContribution;
import org.springframework.batch.core.scope.context.ChunkContext;
import org.springframework.batch.core.step.tasklet.Tasklet;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.lang.NonNull;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder;
@@ -48,7 +48,7 @@ public class InitialisationTasklet implements Tasklet {
private final AppUserRepositoryWrapper userRepository;
@Override
public RepeatStatus execute(@NotNull StepContribution contribution, @NotNull ChunkContext chunkContext) throws Exception {
public RepeatStatus execute(@NonNull StepContribution contribution, @NonNull ChunkContext chunkContext) throws Exception {
HashMap<BusinessDateType, LocalDate> businessDates = ThreadLocalContextUtil.getBusinessDates();
AppUser user = userRepository.fetchSystemUser();
UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(user, user.getPassword(), user.getAuthorities());
@@ -22,18 +22,18 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.fineract.infrastructure.core.domain.ActionContext;
import org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil;
import org.jetbrains.annotations.NotNull;
import org.springframework.batch.core.StepContribution;
import org.springframework.batch.core.scope.context.ChunkContext;
import org.springframework.batch.core.step.tasklet.Tasklet;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.lang.NonNull;
@Slf4j
@RequiredArgsConstructor
public class ResetContextTasklet implements Tasklet {
@Override
public RepeatStatus execute(@NotNull StepContribution contribution, @NotNull ChunkContext chunkContext) throws Exception {
public RepeatStatus execute(@NonNull StepContribution contribution, @NonNull ChunkContext chunkContext) throws Exception {
ThreadLocalContextUtil.setActionContext(ActionContext.DEFAULT);
return RepeatStatus.FINISHED;
}
@@ -30,7 +30,6 @@ import org.apache.fineract.cob.loan.LoanLockingService;
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
import org.apache.fineract.infrastructure.core.serialization.ThrowableSerialization;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.jetbrains.annotations.NotNull;
import org.springframework.batch.core.annotation.OnProcessError;
import org.springframework.batch.core.annotation.OnReadError;
import org.springframework.batch.core.annotation.OnSkipInProcess;
@@ -38,6 +37,7 @@ import org.springframework.batch.core.annotation.OnSkipInRead;
import org.springframework.batch.core.annotation.OnSkipInWrite;
import org.springframework.batch.core.annotation.OnWriteError;
import org.springframework.batch.item.Chunk;
import org.springframework.lang.NonNull;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
import org.springframework.transaction.support.TransactionTemplate;
@@ -55,7 +55,7 @@ public abstract class AbstractLoanItemListener {
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(@NotNull TransactionStatus status) {
protected void doInTransactionWithoutResult(@NonNull TransactionStatus status) {
for (Long loanId : loanIds) {
LoanAccountLock loanAccountLock = loanLockingService.findByLoanIdAndLockOwner(loanId, getLockOwner());
if (loanAccountLock != null) {
@@ -77,13 +77,13 @@ public abstract class AbstractLoanItemListener {
}
@OnProcessError
public void onProcessError(@NotNull Loan item, Exception e) {
public void onProcessError(@NonNull Loan item, Exception e) {
log.warn("Error was triggered during processing of Loan (id={}) due to: {}", item.getId(), ThrowableSerialization.serialize(e));
updateAccountLockWithError(List.of(item.getId()), "Loan (id: %d) processing is failed", e);
}
@OnWriteError
public void onWriteError(Exception e, @NotNull Chunk<? extends Loan> items) {
public void onWriteError(Exception e, @NonNull Chunk<? extends Loan> items) {
List<Long> loanIds = items.getItems().stream().map(AbstractPersistableCustom::getId).toList();
log.warn("Error was triggered during writing of Loans (ids={}) due to: {}", loanIds, ThrowableSerialization.serialize(e));
@@ -91,17 +91,17 @@ public abstract class AbstractLoanItemListener {
}
@OnSkipInRead
public void onSkipInRead(@NotNull Throwable e) {
public void onSkipInRead(@NonNull Throwable e) {
log.warn("Skipping was triggered during read!");
}
@OnSkipInProcess
public void onSkipInProcess(@NotNull Loan item, @NotNull Throwable e) {
public void onSkipInProcess(@NonNull Loan item, @NonNull Throwable e) {
log.warn("Skipping was triggered during processing of Loan (id={})", item.getId());
}
@OnSkipInWrite
public void onSkipInWrite(@NotNull Loan item, @NotNull Throwable e) {
public void onSkipInWrite(@NonNull Loan item, @NonNull Throwable e) {
log.warn("Skipping was triggered during writing of Loan (id={})", item.getId());
}
@@ -32,12 +32,12 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.fineract.cob.COBBusinessStepService;
import org.apache.fineract.cob.data.BusinessStepNameAndOrder;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.jetbrains.annotations.NotNull;
import org.springframework.batch.core.ExitStatus;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.core.annotation.AfterStep;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.lang.NonNull;
@RequiredArgsConstructor
@Slf4j
@@ -51,7 +51,7 @@ public abstract class AbstractLoanItemProcessor implements ItemProcessor<Loan, L
@SuppressWarnings({ "unchecked" })
@Override
public Loan process(@NotNull Loan item) throws Exception {
public Loan process(@NonNull Loan item) throws Exception {
Set<BusinessStepNameAndOrder> businessSteps = (Set<BusinessStepNameAndOrder>) executionContext.get(LoanCOBConstant.BUSINESS_STEPS);
if (businessSteps == null) {
throw new IllegalStateException("No business steps found in the execution context");
@@ -70,7 +70,7 @@ public abstract class AbstractLoanItemProcessor implements ItemProcessor<Loan, L
}
@AfterStep
public ExitStatus afterStep(@NotNull StepExecution stepExecution) {
public ExitStatus afterStep(@NonNull StepExecution stepExecution) {
return ExitStatus.COMPLETED;
}
@@ -27,11 +27,11 @@ import org.apache.fineract.cob.exceptions.LoanReadException;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepository;
import org.apache.fineract.portfolio.loanaccount.exception.LoanNotFoundException;
import org.jetbrains.annotations.NotNull;
import org.springframework.batch.core.ExitStatus;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.core.annotation.AfterStep;
import org.springframework.batch.item.ItemReader;
import org.springframework.lang.NonNull;
@Slf4j
@RequiredArgsConstructor
@@ -56,7 +56,7 @@ public abstract class AbstractLoanItemReader implements ItemReader<Loan> {
}
@AfterStep
public ExitStatus afterStep(@NotNull StepExecution stepExecution) {
public ExitStatus afterStep(@NonNull StepExecution stepExecution) {
return ExitStatus.COMPLETED;
}
@@ -24,9 +24,9 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.fineract.cob.domain.LockOwner;
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.jetbrains.annotations.NotNull;
import org.springframework.batch.item.Chunk;
import org.springframework.batch.item.data.RepositoryItemWriter;
import org.springframework.lang.NonNull;
@Slf4j
@RequiredArgsConstructor
@@ -35,7 +35,7 @@ public abstract class AbstractLoanItemWriter extends RepositoryItemWriter<Loan>
private final LoanLockingService loanLockingService;
@Override
public void write(@NotNull Chunk<? extends Loan> items) throws Exception {
public void write(@NonNull Chunk<? extends Loan> items) throws Exception {
if (!items.isEmpty()) {
super.write(items);
List<Long> loanIds = items.getItems().stream().map(AbstractPersistableCustom::getId).toList();
@@ -34,12 +34,12 @@ import org.apache.fineract.cob.domain.LoanAccountLock;
import org.apache.fineract.cob.domain.LockOwner;
import org.apache.fineract.cob.exceptions.LoanLockCannotBeAppliedException;
import org.apache.fineract.infrastructure.core.config.FineractProperties;
import org.jetbrains.annotations.NotNull;
import org.springframework.batch.core.StepContribution;
import org.springframework.batch.core.scope.context.ChunkContext;
import org.springframework.batch.core.step.tasklet.Tasklet;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.lang.NonNull;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
import org.springframework.transaction.support.TransactionTemplate;
@@ -57,7 +57,7 @@ public class ApplyLoanLockTasklet implements Tasklet {
@Override
@SuppressFBWarnings("SLF4J_SIGN_ONLY_FORMAT")
public RepeatStatus execute(@NotNull StepContribution contribution, @NotNull ChunkContext chunkContext)
public RepeatStatus execute(@NonNull StepContribution contribution, @NonNull ChunkContext chunkContext)
throws LoanLockCannotBeAppliedException {
ExecutionContext executionContext = contribution.getStepExecution().getExecutionContext();
long numberOfExecutions = contribution.getStepExecution().getCommitCount();
@@ -102,7 +102,7 @@ public class ApplyLoanLockTasklet implements Tasklet {
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(@NotNull TransactionStatus status) {
protected void doInTransactionWithoutResult(@NonNull TransactionStatus status) {
loanLockingService.applyLock(toBeProcessedLoanIds, LockOwner.LOAN_COB_CHUNK_PROCESSING);
}
});
@@ -21,10 +21,10 @@ package org.apache.fineract.cob.loan;
import java.util.List;
import java.util.concurrent.LinkedBlockingQueue;
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepository;
import org.jetbrains.annotations.NotNull;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.core.annotation.BeforeStep;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.lang.NonNull;
public class InlineCOBLoanItemReader extends AbstractLoanItemReader {
@@ -34,7 +34,7 @@ public class InlineCOBLoanItemReader extends AbstractLoanItemReader {
@BeforeStep
@SuppressWarnings({ "unchecked" })
public void beforeStep(@NotNull StepExecution stepExecution) {
public void beforeStep(@NonNull StepExecution stepExecution) {
ExecutionContext executionContext = stepExecution.getJobExecution().getExecutionContext();
List<Long> loanIds = (List<Long>) executionContext.get(LoanCOBConstant.LOAN_COB_PARAMETER);
setRemainingData(new LinkedBlockingQueue<>(loanIds));
@@ -33,7 +33,6 @@ import org.apache.fineract.cob.data.LoanCOBParameter;
import org.apache.fineract.cob.data.LoanCOBPartition;
import org.apache.fineract.infrastructure.jobs.service.JobName;
import org.apache.fineract.infrastructure.springbatch.PropertyService;
import org.jetbrains.annotations.NotNull;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.explore.JobExplorer;
import org.springframework.batch.core.launch.JobExecutionNotRunningException;
@@ -42,6 +41,7 @@ import org.springframework.batch.core.launch.NoSuchJobExecutionException;
import org.springframework.batch.core.partition.support.Partitioner;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.lang.NonNull;
import org.springframework.util.StopWatch;
@Slf4j
@@ -65,7 +65,7 @@ public class LoanCOBPartitioner implements Partitioner {
@Setter
private Boolean isCatchUp;
@NotNull
@NonNull
@Override
public Map<String, ExecutionContext> partition(int gridSize) {
int partitionSize = propertyService.getPartitionSize(LoanCOBConstant.JOB_NAME);
@@ -29,10 +29,10 @@ import org.apache.fineract.cob.data.LoanCOBParameter;
import org.apache.fineract.cob.domain.LoanAccountLock;
import org.apache.fineract.cob.domain.LockOwner;
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepository;
import org.jetbrains.annotations.NotNull;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.core.annotation.BeforeStep;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.lang.NonNull;
@Slf4j
public class LoanItemReader extends AbstractLoanItemReader {
@@ -51,7 +51,7 @@ public class LoanItemReader extends AbstractLoanItemReader {
@BeforeStep
@SuppressWarnings({ "unchecked" })
public void beforeStep(@NotNull StepExecution stepExecution) {
public void beforeStep(@NonNull StepExecution stepExecution) {
ExecutionContext executionContext = stepExecution.getExecutionContext();
LoanCOBParameter loanCOBParameter = (LoanCOBParameter) executionContext.get(LoanCOBConstant.LOAN_COB_PARAMETER);
List<Long> loanIds;
@@ -60,7 +60,6 @@ import org.apache.fineract.infrastructure.jobs.exception.JobNotFoundException;
import org.apache.fineract.infrastructure.jobs.service.InlineExecutorService;
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import org.apache.fineract.infrastructure.springbatch.SpringBatchJobConstants;
import org.jetbrains.annotations.NotNull;
import org.springframework.batch.core.BatchStatus;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecution;
@@ -72,6 +71,7 @@ import org.springframework.batch.core.explore.JobExplorer;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.batch.core.launch.NoSuchJobException;
import org.springframework.context.annotation.Conditional;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Propagation;
@@ -221,7 +221,7 @@ public class InlineLoanCOBExecutorServiceImpl implements InlineExecutorService<L
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(@NotNull TransactionStatus status) {
protected void doInTransactionWithoutResult(@NonNull TransactionStatus status) {
List<LoanAccountLock> loanAccountLocks = getLoanAccountLocks(loanIds, businessDate);
loanAccountLocks.forEach(loanAccountLock -> {
try {
@@ -19,7 +19,6 @@
package org.apache.fineract.infrastructure.core.auditing;
import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom;
import org.jetbrains.annotations.NotNull;
import org.springframework.data.auditing.AuditableBeanWrapper;
import org.springframework.data.auditing.AuditingHandler;
import org.springframework.data.auditing.DateTimeProvider;
@@ -28,6 +27,7 @@ import org.springframework.data.mapping.PersistentEntity;
import org.springframework.data.mapping.PersistentProperty;
import org.springframework.data.mapping.context.MappingContext;
import org.springframework.data.mapping.context.PersistentEntities;
import org.springframework.lang.NonNull;
import org.springframework.util.Assert;
public class CustomAuditingHandler extends AuditingHandler {
@@ -73,9 +73,8 @@ public class CustomAuditingHandler extends AuditingHandler {
* @param source
* must not be {@literal null}.
*/
@NotNull
@Override
public <T> T markCreated(@NotNull T source) {
public <T> T markCreated(@NonNull T source) {
Assert.notNull(source, "Source entity must not be null");
setDateTimeProvider(fetchDateTimeProvider(source));
return super.markCreated(source);
@@ -87,9 +86,8 @@ public class CustomAuditingHandler extends AuditingHandler {
* @param source
* must not be {@literal null}.
*/
@NotNull
@Override
public <T> T markModified(@NotNull T source) {
public <T> T markModified(@NonNull T source) {
Assert.notNull(source, "Source entity must not be null");
setDateTimeProvider(fetchDateTimeProvider(source));
return super.markModified(source);
@@ -18,10 +18,10 @@
*/
package org.apache.fineract.infrastructure.core.auditing;
import jakarta.validation.constraints.NotNull;
import java.time.temporal.TemporalAccessor;
import java.util.Optional;
import org.apache.fineract.infrastructure.core.service.DateUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.data.auditing.DateTimeProvider;
public enum CustomDateTimeProvider implements DateTimeProvider {
@@ -48,11 +48,11 @@ import org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnHeader
import org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnValueData;
import org.apache.fineract.infrastructure.dataqueries.data.ResultsetRowData;
import org.apache.fineract.infrastructure.dataqueries.exception.DatatableNotFoundException;
import org.jetbrains.annotations.NotNull;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import org.springframework.jdbc.support.rowset.SqlRowSetMetaData;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Service;
@Service
@@ -134,14 +134,14 @@ public class GenericDataServiceImpl implements GenericDataService {
return columnHeaders;
}
@NotNull
@NonNull
@Override
public List<ResultsetRowData> fillResultsetRowData(final String sql, List<ResultsetColumnHeaderData> columnHeaders) {
final SqlRowSet rs = jdbcTemplate.queryForRowSet(sql); // NOSONAR
return fillResultsetRowData(rs, columnHeaders);
}
@NotNull
@NonNull
private static List<ResultsetRowData> fillResultsetRowData(SqlRowSet rs, List<ResultsetColumnHeaderData> columnHeaders) {
final SqlRowSetMetaData rsmd = rs.getMetaData();
final List<ResultsetRowData> resultsetDataRows = new ArrayList<>();
@@ -23,7 +23,7 @@ import java.util.Map;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.fineract.infrastructure.core.service.DateUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.lang.NonNull;
public final class DatatableExportUtil {
@@ -70,7 +70,7 @@ public final class DatatableExportUtil {
}
}
@NotNull
@NonNull
private static String generateReportFileName(int maxLength, String folder, String extension, String reportName,
Map<String, String> reportParams) {
String extensionWithDot = extension.startsWith(".") ? extension : "." + extension;
@@ -19,9 +19,9 @@
package org.apache.fineract.infrastructure.springbatch;
import org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil;
import org.jetbrains.annotations.NotNull;
import org.springframework.batch.integration.async.StepExecutionInterceptor;
import org.springframework.batch.integration.partition.StepExecutionRequest;
import org.springframework.lang.NonNull;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.support.GenericMessage;
@@ -29,7 +29,7 @@ import org.springframework.messaging.support.GenericMessage;
public class OutputChannelInterceptor extends StepExecutionInterceptor {
@Override
public Message<?> preSend(Message<?> message, @NotNull MessageChannel channel) {
public Message<?> preSend(Message<?> message, @NonNull MessageChannel channel) {
StepExecutionRequest stepExecutionRequest = (StepExecutionRequest) message.getPayload();
ContextualMessage contextualMessage = new ContextualMessage();
contextualMessage.setStepExecutionRequest(stepExecutionRequest);
@@ -90,7 +90,7 @@ import org.apache.fineract.portfolio.loanaccount.exception.LoanRepaymentSchedule
import org.apache.fineract.portfolio.loanaccount.loanschedule.domain.LoanScheduleType;
import org.apache.fineract.portfolio.loanaccount.service.LoanUtilService;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
import org.jetbrains.annotations.NotNull;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
@Component("loanTransactionValidator")
@@ -912,7 +912,7 @@ public final class LoanTransactionValidatorImpl implements LoanTransactionValida
}
}
private static @NotNull BigDecimal collectTotalCollateral(Set<LoanCollateralManagement> loanCollateralManagements) {
private static @NonNull BigDecimal collectTotalCollateral(Set<LoanCollateralManagement> loanCollateralManagements) {
BigDecimal totalCollateral = BigDecimal.ZERO;
for (LoanCollateralManagement loanCollateralManagement : loanCollateralManagements) {
@@ -924,7 +924,7 @@ public final class LoanTransactionValidatorImpl implements LoanTransactionValida
return totalCollateral;
}
private static @NotNull Set<String> getDisbursementParameters(boolean isAccountTransfer) {
private static @NonNull Set<String> getDisbursementParameters(boolean isAccountTransfer) {
Set<String> disbursementParameters;
if (isAccountTransfer) {
@@ -142,13 +142,13 @@ import org.apache.fineract.portfolio.paymentdetail.data.PaymentDetailData;
import org.apache.fineract.portfolio.paymenttype.data.PaymentTypeData;
import org.apache.fineract.portfolio.paymenttype.service.PaymentTypeReadPlatformService;
import org.apache.fineract.useradministration.domain.AppUser;
import org.jetbrains.annotations.NotNull;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.data.domain.Pageable;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.ResultSetExtractor;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.lang.NonNull;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -1316,7 +1316,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService, Loa
}
@Override
public LoanScheduleData extractData(@NotNull final ResultSet rs) throws SQLException, DataAccessException {
public LoanScheduleData extractData(@NonNull final ResultSet rs) throws SQLException, DataAccessException {
BigDecimal waivedChargeAmount = BigDecimal.ZERO;
for (DisbursementData disbursementDetail : disbursementData) {
waivedChargeAmount = waivedChargeAmount.add(disbursementDetail.getWaivedChargeAmount());
@@ -67,10 +67,10 @@ import org.apache.fineract.portfolio.loanproduct.domain.LoanSupportedInterestRef
import org.apache.fineract.portfolio.loanproduct.exception.LoanProductNotFoundException;
import org.apache.fineract.portfolio.rate.data.RateData;
import org.apache.fineract.portfolio.rate.service.RateReadService;
import org.jetbrains.annotations.NotNull;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.lang.NonNull;
@RequiredArgsConstructor
public class LoanProductReadPlatformServiceImpl implements LoanProductReadPlatformService {
@@ -310,7 +310,7 @@ public class LoanProductReadPlatformServiceImpl implements LoanProductReadPlatfo
}
@Override
public LoanProductData mapRow(@NotNull final ResultSet rs, @SuppressWarnings("unused") final int rowNum) throws SQLException {
public LoanProductData mapRow(@NonNull final ResultSet rs, @SuppressWarnings("unused") final int rowNum) throws SQLException {
final Long id = JdbcSupport.getLong(rs, "id");
final String name = rs.getString("name");
@@ -832,7 +832,7 @@ public class LoanProductReadPlatformServiceImpl implements LoanProductReadPlatfo
}
@Override
public LoanProductData mapRow(@NotNull final ResultSet rs, @SuppressWarnings("unused") final int rowNum) throws SQLException {
public LoanProductData mapRow(@NonNull final ResultSet rs, @SuppressWarnings("unused") final int rowNum) throws SQLException {
final Long id = JdbcSupport.getLong(rs, "id");
final String name = rs.getString("name");