FINERACT-2267: proper not null annotations. Remove jetbrains notnull, all services use non-null

This commit is contained in:
Attila Budai
2025-09-03 12:24:37 +02:00
committed by Adam Saghy
parent 65538495aa
commit 7378aea0b2
42 changed files with 290 additions and 285 deletions
+8
View File
@@ -100,6 +100,14 @@
<property name="forbiddenImportsRegexp" value="com.google.common.base.Charsets" />
<property name="forbiddenImportsExcludesRegexp" value="" />
<message key="forbid.certain.imports" value="Use ''java.nio.charset.StandardCharsets'' instead of ''{0}''" />
</module>
<!-- Forbid JetBrains annotations in Java sources; prefer Jakarta or Spring annotations -->
<module name="com.github.sevntu.checkstyle.checks.coding.ForbidCertainImportsCheck">
<property name="packageNameRegexp" value=".*" />
<property name="forbiddenImportsRegexp" value="org.jetbrains.annotations(\..*)?" />
<property name="forbiddenImportsExcludesRegexp" value="" />
<message key="forbid.certain.imports"
value="Use 'jakarta.validation.constraints.NotNull' (API/DTO) or 'org.springframework.lang.NonNull' (services) instead of JetBrains annotations: ''{0}''" />
</module>
<module name="OneStatementPerLine"/>
<module name="EmptyStatement"/>
@@ -20,7 +20,6 @@ package org.apache.fineract.infrastructure.core.service;
import static java.time.temporal.ChronoUnit.DAYS;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -41,6 +40,7 @@ import org.apache.fineract.infrastructure.core.data.ApiParameterError;
import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenant;
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
import org.apache.fineract.infrastructure.core.serialization.JsonParserHelper;
import org.springframework.lang.NonNull;
public final class DateUtils {
@@ -86,8 +86,8 @@ public final class DateUtils {
return truncate == null ? now : now.truncatedTo(truncate);
}
@NotNull
public static OffsetDateTime getOffsetDateTimeOfTenantFromLocalDate(@NotNull final LocalDate date) {
@NonNull
public static OffsetDateTime getOffsetDateTimeOfTenantFromLocalDate(@NonNull final LocalDate date) {
return OffsetDateTime.of(date.atStartOfDay(), getOffsetDateTimeOfTenant().getOffset());
}
@@ -178,7 +178,7 @@ public final class DateUtils {
return compare(first, second, null, false);
}
public static int compareWithNullsLast(@NotNull Optional<OffsetDateTime> first, @NotNull Optional<OffsetDateTime> second) {
public static int compareWithNullsLast(@NonNull Optional<OffsetDateTime> first, @NonNull Optional<OffsetDateTime> second) {
return compareWithNullsLast(first.orElse(null), second.orElse(null));
}
@@ -302,14 +302,14 @@ public final class DateUtils {
return isAfter(first, second) || isEqual(first, second);
}
public static long getDifference(LocalDate first, LocalDate second, @NotNull ChronoUnit unit) {
public static long getDifference(LocalDate first, LocalDate second, @NonNull ChronoUnit unit) {
if (first == null || second == null) {
throw new IllegalArgumentException("Dates must not be null to get difference");
}
return unit.between(first, second);
}
public static int getExactDifference(LocalDate first, LocalDate second, @NotNull ChronoUnit unit) {
public static int getExactDifference(LocalDate first, LocalDate second, @NonNull ChronoUnit unit) {
return Math.toIntExact(getDifference(first, second, unit));
}
@@ -413,7 +413,7 @@ public final class DateUtils {
return fromDate != null && DateUtils.isAfter(targetDate, fromDate) && !DateUtils.isAfter(targetDate, toDate);
}
@NotNull
@NonNull
private static DateTimeFormatter getDateFormatter(String format, Locale locale) {
DateTimeFormatter formatter = DEFAULT_DATE_FORMATTER;
if (format != null || locale != null) {
@@ -425,7 +425,7 @@ public final class DateUtils {
return formatter;
}
@NotNull
@NonNull
private static DateTimeFormatter getDateTimeFormatter(String format, Locale locale) {
DateTimeFormatter formatter = DEFAULT_DATETIME_FORMATTER;
if (format != null || locale != null) {
@@ -18,12 +18,12 @@
*/
package org.apache.fineract.infrastructure.core.service;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.math.MathContext;
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
import org.apache.fineract.organisation.monetary.domain.Money;
import org.apache.fineract.organisation.monetary.domain.MoneyHelper;
import org.springframework.lang.NonNull;
public final class MathUtil {
@@ -303,7 +303,7 @@ public final class MathUtil {
/**
* @return BigDecimal with scale set to the 'digitsAfterDecimal' of the parameter currency
*/
public static BigDecimal normalizeAmount(BigDecimal amount, @NotNull MonetaryCurrency currency) {
public static BigDecimal normalizeAmount(BigDecimal amount, @NonNull MonetaryCurrency currency) {
return amount == null ? null : amount.setScale(currency.getDigitsAfterDecimal(), MoneyHelper.getRoundingMode());
}
@@ -321,7 +321,7 @@ public final class MathUtil {
return amount == null ? null : amount.toPlainString();
}
public static Money toMoney(BigDecimal amount, @NotNull MonetaryCurrency currency) {
public static Money toMoney(BigDecimal amount, @NonNull MonetaryCurrency currency) {
return amount == null ? null : Money.of(currency, amount);
}
@@ -331,11 +331,11 @@ public final class MathUtil {
return value == null ? null : value.getAmount();
}
public static Money nullToZero(Money value, @NotNull MonetaryCurrency currency) {
public static Money nullToZero(Money value, @NonNull MonetaryCurrency currency) {
return nullToDefault(value, Money.zero(currency));
}
public static Money nullToZero(Money value, @NotNull MonetaryCurrency currency, @NotNull MathContext mc) {
public static Money nullToZero(Money value, @NonNull MonetaryCurrency currency, @NonNull MathContext mc) {
return nullToDefault(value, Money.zero(currency, mc));
}
@@ -20,7 +20,6 @@ package org.apache.fineract.infrastructure.core.service.database;
import static java.lang.String.format;
import jakarta.validation.constraints.NotNull;
import java.math.BigInteger;
import java.sql.SQLException;
import java.util.Collection;
@@ -35,6 +34,7 @@ import org.apache.logging.log4j.util.Strings;
import org.springframework.data.domain.Sort;
import org.springframework.jdbc.datasource.DataSourceUtils;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
@Component
@@ -96,7 +96,7 @@ public class DatabaseSpecificSQLGenerator {
}
}
public String countLastExecutedQueryResult(@NotNull String sql) {
public String countLastExecutedQueryResult(@NonNull String sql) {
if (databaseTypeResolver.isMySQL()) {
return "SELECT FOUND_ROWS()";
} else {
@@ -104,7 +104,7 @@ public class DatabaseSpecificSQLGenerator {
}
}
public String countQueryResult(@NotNull String sql) {
public String countQueryResult(@NonNull String sql) {
// Needs to remove the limit and offset
sql = sql.replaceAll("LIMIT \\d+", "").replaceAll("OFFSET \\d+", "").trim();
return format("SELECT COUNT(*) FROM (%s) AS temp", sql);
@@ -201,7 +201,7 @@ public class DatabaseSpecificSQLGenerator {
}
}
public String alias(@NotNull String field, String alias) {
public String alias(@NonNull String field, String alias) {
return Strings.isEmpty(alias) ? field : (alias + '.') + field;
}
@@ -227,7 +227,7 @@ public class DatabaseSpecificSQLGenerator {
return from + escape(definition) + (Strings.isEmpty(alias) ? "" : (" " + alias));
}
public String buildJoin(@NotNull String definition, String alias, @NotNull String fkCol, String refAlias, @NotNull String refCol,
public String buildJoin(@NonNull String definition, String alias, @NonNull String fkCol, String refAlias, @NonNull String refCol,
String joinType) {
String join = Strings.isEmpty(joinType) ? "JOIN" : (joinType + " JOIN");
alias = Strings.isEmpty(alias) ? "" : (" " + alias);
@@ -246,7 +246,7 @@ public class DatabaseSpecificSQLGenerator {
.collect(Collectors.joining(", "));
}
public String buildInsert(@NotNull String definition, List<String> fields, Map<String, ResultsetColumnHeaderData> headers) {
public String buildInsert(@NonNull String definition, List<String> fields, Map<String, ResultsetColumnHeaderData> headers) {
if (fields == null || fields.isEmpty()) {
return "";
}
@@ -254,7 +254,7 @@ public class DatabaseSpecificSQLGenerator {
+ ") VALUES (" + fields.stream().map(e -> decoratePlaceHolder(headers, e, "?")).collect(Collectors.joining(", ")) + ")";
}
public String buildUpdate(@NotNull String definition, List<String> fields, Map<String, ResultsetColumnHeaderData> headers) {
public String buildUpdate(@NonNull String definition, List<String> fields, Map<String, ResultsetColumnHeaderData> headers) {
if (fields == null || fields.isEmpty()) {
return "";
}
@@ -18,7 +18,6 @@
*/
package org.apache.fineract.infrastructure.core.service.database;
import jakarta.validation.constraints.NotNull;
import java.io.InputStream;
import java.io.Reader;
import java.io.Serializable;
@@ -42,6 +41,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.fineract.infrastructure.core.exception.PlatformServiceUnavailableException;
import org.apache.fineract.organisation.monetary.domain.MoneyHelper;
import org.springframework.data.domain.Persistable;
import org.springframework.lang.NonNull;
public enum JavaType {
@@ -205,7 +205,7 @@ public enum JavaType {
};
}
@NotNull
@NonNull
public JavaType getObjectType() {
if (!isPrimitive()) {
return this;
@@ -227,7 +227,7 @@ public enum JavaType {
/**
* @return the field metadata type for the given class. First class objects are not recognized in this method.
*/
@NotNull
@NonNull
public static JavaType forType(Class<?> type) {
if (type == null) {
return OBJECT;
@@ -19,10 +19,10 @@
package org.apache.fineract.infrastructure.core.service.database;
import com.google.common.collect.ImmutableList;
import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
import java.sql.JDBCType;
import org.apache.fineract.infrastructure.core.exception.PlatformServiceUnavailableException;
import org.springframework.lang.NonNull;
public enum JdbcJavaType {
@@ -30,14 +30,14 @@ public enum JdbcJavaType {
BIT(JavaType.BOOLEAN, new DialectType(JDBCType.BIT), new DialectType(JDBCType.BIT, true)) { //
@Override
public Object toJdbcValueImpl(@NotNull DatabaseType dialect, Object value) {
public Object toJdbcValueImpl(@NonNull DatabaseType dialect, Object value) {
return value == null ? null : (Boolean.TRUE.equals(value) ? 1 : 0);
}
},
BOOLEAN(JavaType.BOOLEAN, new DialectType(JDBCType.BIT), new DialectType(JDBCType.BOOLEAN, null, "BOOL")) { //
@Override
public Object toJdbcValueImpl(@NotNull DatabaseType dialect, Object value) {
public Object toJdbcValueImpl(@NonNull DatabaseType dialect, Object value) {
return (value != null && dialect.isMySql()) ? (Boolean.TRUE.equals(value) ? 1 : 0) : super.toJdbcValueImpl(dialect, value);
}
},
@@ -45,7 +45,7 @@ public enum JdbcJavaType {
TINYINT(JavaType.SHORT, new DialectType(JDBCType.TINYINT, true), new DialectType(JDBCType.SMALLINT)) { //
@Override
public Object toJdbcValueImpl(@NotNull DatabaseType dialect, Object value) {
public Object toJdbcValueImpl(@NonNull DatabaseType dialect, Object value) {
return dialect.isMySql() && value instanceof Boolean ? (Boolean.TRUE.equals(value) ? 1 : 0)
: super.toJdbcValueImpl(dialect, value);
}
@@ -113,21 +113,21 @@ public enum JdbcJavaType {
private static final String PLACEHOLDER_TYPE = "{type}";
@NotNull
@NonNull
private final JavaType javaType;
private final ImmutableList<DialectType> dialectTypes;
JdbcJavaType(@NotNull JavaType javaType, DialectType... dialectTypes) {
JdbcJavaType(@NonNull JavaType javaType, DialectType... dialectTypes) {
this.javaType = javaType;
this.dialectTypes = ImmutableList.copyOf(dialectTypes);
}
@NotNull
@NonNull
public JavaType getJavaType() {
return javaType;
}
public static JdbcJavaType getByTypeName(@NotNull DatabaseType dialect, String name, boolean check) {
public static JdbcJavaType getByTypeName(@NonNull DatabaseType dialect, String name, boolean check) {
if (name == null) {
return null;
}
@@ -161,8 +161,8 @@ public enum JdbcJavaType {
return null;
}
@NotNull
private DialectType getDialectType(@NotNull DatabaseType dialect) {
@NonNull
private DialectType getDialectType(@NonNull DatabaseType dialect) {
DialectType dialectType = dialectTypes.get(dialect.ordinal());
if (dialectType == null) {
throw new PlatformServiceUnavailableException("error.msg.database.dialect.not.allowed",
@@ -175,7 +175,7 @@ public enum JdbcJavaType {
return getJavaType().isBooleanType();
}
public boolean canBooleanType(@NotNull DatabaseType dialect) {
public boolean canBooleanType(@NonNull DatabaseType dialect) {
return isBooleanType() || (dialect.isMySql() && this == TINYINT);
}
@@ -251,33 +251,33 @@ public enum JdbcJavaType {
return getJavaType().isBinaryType();
}
public boolean hasPrecision(@NotNull DatabaseType dialect) {
public boolean hasPrecision(@NonNull DatabaseType dialect) {
return getDialectType(dialect).precision;
}
public boolean hasScale(@NotNull DatabaseType dialect) {
public boolean hasScale(@NonNull DatabaseType dialect) {
return getDialectType(dialect).scale;
}
public String getJdbcName(@NotNull DatabaseType dialect) {
public String getJdbcName(@NonNull DatabaseType dialect) {
DialectType dialectType = getDialectType(dialect);
return dialectType.getNameResolved();
}
public String formatSql(@NotNull DatabaseType dialect, Integer precision) {
public String formatSql(@NonNull DatabaseType dialect, Integer precision) {
return formatSql(dialect, precision, null);
}
public String formatSql(@NotNull DatabaseType dialect) {
public String formatSql(@NonNull DatabaseType dialect) {
return formatSql(dialect, null, null);
}
public String formatSql(@NotNull DatabaseType dialect, Integer precision, Integer scale) {
public String formatSql(@NonNull DatabaseType dialect, Integer precision, Integer scale) {
DialectType dialectType = getDialectType(dialect);
return dialectType.formatSql(precision, scale);
}
public Object toJdbcValue(@NotNull DatabaseType dialect, Object value, boolean check) {
public Object toJdbcValue(@NonNull DatabaseType dialect, Object value, boolean check) {
if (value != null && check && !javaType.getObjectType().matchType(value.getClass(), false)) {
throw new PlatformServiceUnavailableException("error.msg.database.type.not.valid",
"Data type of parameter " + value + " does not match " + this);
@@ -285,22 +285,22 @@ public enum JdbcJavaType {
return toJdbcValueImpl(dialect, value);
}
public Object toJdbcValueImpl(@NotNull DatabaseType dialect, Object value) {
public Object toJdbcValueImpl(@NonNull DatabaseType dialect, Object value) {
return value;
}
@com.google.errorprone.annotations.Immutable
private static final class DialectType implements Serializable {
@NotNull
@NonNull
private final JDBCType jdbcType;
@NotNull
@NonNull
private final String name;
private final boolean precision;
private final boolean scale;
private final ImmutableList<String> alterNames;
private DialectType(@NotNull JDBCType jdbcType, String name, boolean precision, boolean scale, String... alterNames) {
private DialectType(@NonNull JDBCType jdbcType, String name, boolean precision, boolean scale, String... alterNames) {
this.jdbcType = jdbcType;
this.name = name == null ? jdbcType.getName() : name;
this.precision = precision;
@@ -308,27 +308,27 @@ public enum JdbcJavaType {
this.alterNames = ImmutableList.copyOf(alterNames);
}
private DialectType(@NotNull JDBCType jdbcType, String name, boolean precision, String... alterNames) {
private DialectType(@NonNull JDBCType jdbcType, String name, boolean precision, String... alterNames) {
this(jdbcType, name, precision, false, alterNames);
}
private DialectType(@NotNull JDBCType jdbcType, String name, boolean precision) {
private DialectType(@NonNull JDBCType jdbcType, String name, boolean precision) {
this(jdbcType, name, precision, false);
}
private DialectType(@NotNull JDBCType jdbcType, String name, String... alterNames) {
private DialectType(@NonNull JDBCType jdbcType, String name, String... alterNames) {
this(jdbcType, name, false, false, alterNames);
}
private DialectType(@NotNull JDBCType jdbcType, boolean precision, boolean scale) {
private DialectType(@NonNull JDBCType jdbcType, boolean precision, boolean scale) {
this(jdbcType, null, precision, scale);
}
private DialectType(@NotNull JDBCType jdbcType, boolean precision) {
private DialectType(@NonNull JDBCType jdbcType, boolean precision) {
this(jdbcType, null, precision, false);
}
private DialectType(@NotNull JDBCType jdbcType) {
private DialectType(@NonNull JDBCType jdbcType) {
this(jdbcType, null, false, false);
}
@@ -346,7 +346,7 @@ public enum JdbcJavaType {
}
}
private String addSqlPrecisionScale(@NotNull String name, Integer precision, Integer scale) {
private String addSqlPrecisionScale(@NonNull String name, Integer precision, Integer scale) {
if (!this.precision || precision == null) {
return name;
}
@@ -20,13 +20,13 @@ package org.apache.fineract.infrastructure.core.service.database;
import static java.lang.String.format;
import jakarta.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.fineract.infrastructure.core.exception.PlatformServiceUnavailableException;
import org.springframework.lang.NonNull;
@AllArgsConstructor
@Getter
@@ -41,7 +41,7 @@ public enum SqlOperator {
LIKE("LIKE") { //
@Override
public String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
public String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
String... values) {
return format("%s %s %s", definition, getSymbol(), sqlGenerator.formatValue(columnType, "%" + values[0] + "%"));
}
@@ -54,7 +54,7 @@ public enum SqlOperator {
NLIKE("NOT LIKE") { //
@Override
public String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
public String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
String... values) {
return format("%s %s %s", definition, getSymbol(), sqlGenerator.formatValue(columnType, "%" + values[0] + "%"));
}
@@ -67,7 +67,7 @@ public enum SqlOperator {
BTW("BETWEEN", 2) { //
@Override
public String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
public String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
String... values) {
return format("%s %s %s AND %s", definition, getSymbol(), sqlGenerator.formatValue(columnType, values[0]),
sqlGenerator.formatValue(columnType, values[1]));
@@ -81,7 +81,7 @@ public enum SqlOperator {
NBTW("NOT BETWEEN", 2) { //
@Override
public String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
public String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
String... values) {
return format("%s %s %s AND %s", definition, getSymbol(), sqlGenerator.formatValue(columnType, values[0]),
sqlGenerator.formatValue(columnType, values[1]));
@@ -95,7 +95,7 @@ public enum SqlOperator {
IN("IN", -1) { //
@Override
public String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
public String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
String... values) {
return format("%s %s (%s)", definition, getSymbol(),
Arrays.stream(values).map(e -> sqlGenerator.formatValue(columnType, e)).collect(Collectors.joining(", ")));
@@ -114,7 +114,7 @@ public enum SqlOperator {
NIN("NOT IN", -1) { //
@Override
public String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
public String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
String... values) {
return format("%s %s (%s)", definition, getSymbol(),
Arrays.stream(values).map(e -> sqlGenerator.formatValue(columnType, e)).collect(Collectors.joining(", ")));
@@ -153,24 +153,24 @@ public enum SqlOperator {
return paramCount < 0;
}
public String formatSql(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition, String alias,
public String formatSql(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition, String alias,
List<String> values) {
return formatSql(sqlGenerator, columnType, definition, alias, values == null ? null : values.toArray(String[]::new));
}
public String formatSql(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition, String alias,
public String formatSql(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition, String alias,
String... values) {
validateValues(values);
return formatImpl(sqlGenerator, columnType, sqlGenerator.alias(sqlGenerator.escape(definition), alias), values);
}
protected String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
protected String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
String... values) {
return paramCount == 0 ? format("%s %s", definition, symbol)
: format("%s %s %s", definition, symbol, sqlGenerator.formatValue(columnType, values[0]));
}
public String formatNamedParam(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, String definition, int paramCount, String alias) {
public String formatNamedParam(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, String definition, int paramCount, String alias) {
validateParamCount(paramCount);
if (paramCount > 1) {
throw new PlatformServiceUnavailableException("error.msg.database.operator.named.invalid",
@@ -183,11 +183,11 @@ public enum SqlOperator {
return formatPlaceholderImpl(definition, paramCount, namedParam);
}
public String formatPlaceholder(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, String definition, int paramCount, String alias) {
public String formatPlaceholder(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, String definition, int paramCount, String alias) {
return formatPlaceholder(sqlGenerator, definition, paramCount, alias, "?");
}
public String formatPlaceholder(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, String definition, int paramCount, String alias,
public String formatPlaceholder(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, String definition, int paramCount, String alias,
String placeholder) {
validateParamCount(paramCount);
return formatPlaceholderImpl(sqlGenerator.alias(sqlGenerator.escape(definition), alias), paramCount, placeholder);
@@ -212,7 +212,7 @@ public enum SqlOperator {
}
}
@NotNull
@NonNull
public static SqlOperator forName(String name) {
return name == null ? getDefault() : SqlOperator.valueOf(name.toUpperCase());
}
@@ -19,7 +19,6 @@
package org.apache.fineract.infrastructure.dataqueries.service;
import com.google.gson.JsonObject;
import jakarta.validation.constraints.NotNull;
import java.util.List;
import java.util.Locale;
import org.apache.fineract.infrastructure.core.service.PagedLocalRequest;
@@ -28,6 +27,7 @@ import org.apache.fineract.infrastructure.dataqueries.data.EntityTables;
import org.apache.fineract.infrastructure.dataqueries.data.GenericResultsetData;
import org.apache.fineract.portfolio.search.data.AdvancedQueryData;
import org.springframework.data.domain.Page;
import org.springframework.lang.NonNull;
public interface DatatableReadService {
@@ -35,14 +35,14 @@ public interface DatatableReadService {
DatatableData retrieveDatatable(String datatable);
List<JsonObject> queryDataTable(@NotNull String datatable, @NotNull String columnName, String columnValue,
@NotNull String resultColumns);
List<JsonObject> queryDataTable(@NonNull String datatable, @NonNull String columnName, String columnValue,
@NonNull String resultColumns);
Page<JsonObject> queryDataTableAdvanced(@NotNull String datatable, @NotNull PagedLocalRequest<AdvancedQueryData> pagedRequest);
Page<JsonObject> queryDataTableAdvanced(@NonNull String datatable, @NonNull PagedLocalRequest<AdvancedQueryData> pagedRequest);
boolean buildDataQueryEmbedded(@NotNull EntityTables entityTable, @NotNull String datatable, @NotNull AdvancedQueryData request,
@NotNull List<String> selectColumns, @NotNull StringBuilder select, @NotNull StringBuilder from, @NotNull StringBuilder where,
@NotNull List<Object> params, String mainAlias, String alias, String dateFormat, String dateTimeFormat, Locale locale);
boolean buildDataQueryEmbedded(@NonNull EntityTables entityTable, @NonNull String datatable, @NonNull AdvancedQueryData request,
@NonNull List<String> selectColumns, @NonNull StringBuilder select, @NonNull StringBuilder from, @NonNull StringBuilder where,
@NonNull List<Object> params, String mainAlias, String alias, String dateFormat, String dateTimeFormat, Locale locale);
GenericResultsetData retrieveDataTableGenericResultSet(String datatable, Long appTableId, String order, Long id);
@@ -18,25 +18,25 @@
*/
package org.apache.fineract.infrastructure.jobs.service;
import jakarta.validation.constraints.NotNull;
import java.util.List;
import org.apache.fineract.infrastructure.core.api.IdTypeResolver;
import org.apache.fineract.infrastructure.core.service.Page;
import org.apache.fineract.infrastructure.core.service.SearchParameters;
import org.apache.fineract.infrastructure.jobs.data.JobDetailData;
import org.apache.fineract.infrastructure.jobs.data.JobDetailHistoryData;
import org.springframework.lang.NonNull;
public interface SchedulerJobRunnerReadService {
List<JobDetailData> findAllJobDetails();
JobDetailData retrieveOne(@NotNull IdTypeResolver.IdType idType, String identifier);
JobDetailData retrieveOne(@NonNull IdTypeResolver.IdType idType, String identifier);
Page<JobDetailHistoryData> retrieveJobHistory(@NotNull IdTypeResolver.IdType idType, String identifier,
Page<JobDetailHistoryData> retrieveJobHistory(@NonNull IdTypeResolver.IdType idType, String identifier,
SearchParameters searchParameters);
@NotNull
Long retrieveId(@NotNull IdTypeResolver.IdType idType, String identifier);
@NonNull
Long retrieveId(@NonNull IdTypeResolver.IdType idType, String identifier);
boolean isUpdatesAllowed();
}
@@ -64,7 +64,6 @@ import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.apache.fineract.portfolio.loanaccount.domain.LoanSummary;
import org.apache.fineract.portfolio.loanaccount.service.LoanJournalEntryPoster;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
@@ -81,6 +80,7 @@ import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.lang.NonNull;
@ExtendWith(MockitoExtension.class)
public class LoanAccountOwnerTransferBusinessStepTest {
@@ -574,7 +574,7 @@ public class LoanAccountOwnerTransferBusinessStepTest {
assertEquals("Execute external asset owner transfer", actualEnumName);
}
@NotNull
@NonNull
private ArgumentCaptor<BusinessEvent<?>> verifyBusinessEvents(int expectedBusinessEvents) {
@SuppressWarnings("unchecked")
ArgumentCaptor<BusinessEvent<?>> businessEventArgumentCaptor = ArgumentCaptor.forClass(BusinessEvent.class);
@@ -51,7 +51,6 @@ import org.apache.fineract.organisation.monetary.domain.MoneyHelper;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.apache.fineract.portfolio.loanaccount.domain.LoanSummary;
import org.apache.fineract.portfolio.loanaccount.service.LoanJournalEntryPoster;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
@@ -68,6 +67,7 @@ import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.lang.NonNull;
@ExtendWith(MockitoExtension.class)
public class LoanAccountOwnerTransferServiceTest {
@@ -240,7 +240,7 @@ public class LoanAccountOwnerTransferServiceTest {
return Stream.of(Arguments.of(ExternalTransferStatus.BUYBACK_INTERMEDIATE), Arguments.of(ExternalTransferStatus.BUYBACK));
}
@NotNull
@NonNull
private ArgumentCaptor<BusinessEvent<?>> verifyBusinessEvents(int expectedBusinessEvents) {
@SuppressWarnings("unchecked")
ArgumentCaptor<BusinessEvent<?>> businessEventArgumentCaptor = ArgumentCaptor.forClass(BusinessEvent.class);
@@ -23,7 +23,6 @@ import static org.apache.fineract.portfolio.delinquency.validator.DelinquencyAct
import static org.apache.fineract.portfolio.delinquency.validator.DelinquencyActionParameters.START_DATE;
import com.google.gson.JsonElement;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.List;
import lombok.RequiredArgsConstructor;
@@ -39,6 +38,7 @@ import org.apache.fineract.portfolio.delinquency.domain.DelinquencyAction;
import org.apache.fineract.portfolio.delinquency.domain.LoanDelinquencyAction;
import org.apache.fineract.portfolio.delinquency.helper.DelinquencyEffectivePauseHelper;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
@RequiredArgsConstructor
@@ -48,7 +48,7 @@ public class DelinquencyActionParseAndValidator extends ParseAndValidator {
private final FromJsonHelper jsonHelper;
private final DelinquencyEffectivePauseHelper delinquencyEffectivePauseHelper;
public LoanDelinquencyAction validateAndParseUpdate(@NotNull final JsonCommand command, Loan loan,
public LoanDelinquencyAction validateAndParseUpdate(@NonNull final JsonCommand command, Loan loan,
List<LoanDelinquencyAction> savedDelinquencyActions, LocalDate businessDate) {
List<LoanDelinquencyActionData> effectiveDelinquencyList = delinquencyEffectivePauseHelper
.calculateEffectiveDelinquencyList(savedDelinquencyActions);
@@ -183,8 +183,8 @@ public class DelinquencyActionParseAndValidator extends ParseAndValidator {
|| (parsed.getStartDate().isEqual(existing.getStartDate()) && parsed.getEndDate().isEqual(existing.getEndDate()));
}
@org.jetbrains.annotations.NotNull
private LoanDelinquencyAction parseCommand(@org.jetbrains.annotations.NotNull JsonCommand command) {
@NonNull
private LoanDelinquencyAction parseCommand(@NonNull JsonCommand command) {
LoanDelinquencyAction parsedDelinquencyAction = new LoanDelinquencyAction();
parsedDelinquencyAction.setAction(extractAction(command.parsedJson()));
parsedDelinquencyAction.setStartDate(extractStartDate(command.parsedJson()));
@@ -18,21 +18,21 @@
*/
package org.apache.fineract.portfolio.loanaccount.service;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.springframework.lang.NonNull;
import org.springframework.transaction.annotation.Transactional;
public interface LoanAccrualActivityProcessingService {
@Transactional
void makeAccrualActivityTransaction(@NotNull Long loanId, @NotNull LocalDate currentDate);
void makeAccrualActivityTransaction(@NonNull Long loanId, @NonNull LocalDate currentDate);
void makeAccrualActivityTransaction(@NotNull Loan loan, @NotNull LocalDate currentDate);
void makeAccrualActivityTransaction(@NonNull Loan loan, @NonNull LocalDate currentDate);
@Transactional
void processAccrualActivityForLoanClosure(@NotNull Loan loan);
void processAccrualActivityForLoanClosure(@NonNull Loan loan);
@Transactional
void processAccrualActivityForLoanReopen(@NotNull Loan loan);
void processAccrualActivityForLoanReopen(@NonNull Loan loan);
}
@@ -18,7 +18,6 @@
*/
package org.apache.fineract.portfolio.loanaccount.service;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.List;
import org.apache.fineract.infrastructure.core.exception.MultiException;
@@ -28,22 +27,22 @@ import org.springframework.lang.NonNull;
public interface LoanAccrualsProcessingService {
void addPeriodicAccruals(@NotNull LocalDate tillDate) throws MultiException;
void addPeriodicAccruals(@NonNull LocalDate tillDate) throws MultiException;
void addPeriodicAccruals(@NotNull LocalDate tillDate, @NotNull Loan loan) throws MultiException;
void addPeriodicAccruals(@NonNull LocalDate tillDate, @NonNull Loan loan) throws MultiException;
void addAccruals(@NotNull LocalDate tillDate) throws MultiException;
void addAccruals(@NonNull LocalDate tillDate) throws MultiException;
void reprocessExistingAccruals(@NotNull Loan loan, boolean addEvent);
void reprocessExistingAccruals(@NonNull Loan loan, boolean addEvent);
void processAccrualsOnInterestRecalculation(@NotNull Loan loan, boolean isInterestRecalculationEnabled, boolean addJournal);
void processAccrualsOnInterestRecalculation(@NonNull Loan loan, boolean isInterestRecalculationEnabled, boolean addJournal);
void addIncomePostingAndAccruals(Long loanId) throws Exception;
void processIncomePostingAndAccruals(@NotNull Loan loan, boolean addEvent);
void processIncomePostingAndAccruals(@NonNull Loan loan, boolean addEvent);
void processAccrualsOnLoanClosure(@NonNull Loan loan, boolean addJournal);
void processAccrualsOnLoanForeClosure(@NotNull Loan loan, @NotNull LocalDate foreClosureDate,
@NotNull List<LoanTransaction> newAccrualTransactions);
void processAccrualsOnLoanForeClosure(@NonNull Loan loan, @NonNull LocalDate foreClosureDate,
@NonNull List<LoanTransaction> newAccrualTransactions);
}
@@ -18,7 +18,6 @@
*/
package org.apache.fineract.portfolio.loanaccount.service;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.Collection;
import java.util.List;
@@ -44,6 +43,7 @@ import org.apache.fineract.portfolio.loanaccount.loanschedule.data.LoanScheduleD
import org.apache.fineract.portfolio.loanaccount.loanschedule.data.OverdueLoanScheduleData;
import org.apache.fineract.portfolio.loanaccount.loanschedule.domain.LoanScheduleType;
import org.springframework.data.domain.Pageable;
import org.springframework.lang.NonNull;
public interface LoanReadPlatformService {
@@ -57,7 +57,7 @@ public interface LoanReadPlatformService {
Collection<LoanTransactionData> retrieveLoanTransactions(Long loanId);
org.springframework.data.domain.Page<LoanTransactionData> retrieveLoanTransactions(@NotNull Long loanId,
org.springframework.data.domain.Page<LoanTransactionData> retrieveLoanTransactions(@NonNull Long loanId,
Set<LoanTransactionType> excludedTransactionTypes, Pageable pageable);
LoanAccountData retrieveTemplateWithClientAndProductDetails(Long clientId, Long productId);
@@ -47,12 +47,12 @@ import org.apache.fineract.portfolio.loanaccount.serialization.LoanChargeValidat
import org.apache.fineract.portfolio.loanaccount.service.LoanBalanceService;
import org.apache.fineract.portfolio.loanaccount.service.LoanChargeService;
import org.apache.fineract.portfolio.loanaccount.service.LoanTransactionProcessingService;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.MockedStatic;
import org.springframework.lang.NonNull;
public class SingleLoanChargeRepaymentScheduleProcessingWrapperTest {
@@ -139,7 +139,7 @@ public class SingleLoanChargeRepaymentScheduleProcessingWrapperTest {
penaltyChargesWrittenOff.getValue().getAmount().setScale(1, RoundingMode.UNNECESSARY));
}
@NotNull
@NonNull
private LoanCharge createCharge(boolean penalty) {
Charge charge = mock(Charge.class);
when(charge.getId()).thenReturn(1L);
@@ -153,7 +153,7 @@ public class SingleLoanChargeRepaymentScheduleProcessingWrapperTest {
ChargeCalculationType.FLAT, LocalDate.of(2023, 1, 15), ChargePaymentMode.REGULAR, 1, null, null);
}
@NotNull
@NonNull
private LoanRepaymentScheduleInstallment createPeriod(int periodId, LocalDate start, LocalDate end) {
LoanRepaymentScheduleInstallment period = mock(LoanRepaymentScheduleInstallment.class);
MathContext mc = new MathContext(12, RoundingMode.HALF_EVEN);
@@ -22,7 +22,6 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.InstanceCreator;
import com.google.gson.ToNumberPolicy;
import jakarta.validation.constraints.NotNull;
import java.math.MathContext;
import java.time.LocalDate;
import lombok.RequiredArgsConstructor;
@@ -37,6 +36,7 @@ import org.apache.fineract.portfolio.loanproduct.calc.data.InterestPeriod;
import org.apache.fineract.portfolio.loanproduct.calc.data.ProgressiveLoanInterestScheduleModel;
import org.apache.fineract.portfolio.loanproduct.calc.data.RepaymentPeriod;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProductMinimumRepaymentScheduleRelatedDetail;
import org.springframework.lang.NonNull;
@Slf4j
@RequiredArgsConstructor
@@ -68,13 +68,13 @@ public class ProgressiveLoanInterestScheduleModelParserServiceGsonImpl implement
}
@Override
public String toJson(@NotNull ProgressiveLoanInterestScheduleModel model) {
public String toJson(@NonNull ProgressiveLoanInterestScheduleModel model) {
return gsonSerializer.toJson(model);
}
@Override
public ProgressiveLoanInterestScheduleModel fromJson(String s,
@NotNull LoanProductMinimumRepaymentScheduleRelatedDetail loanProductRelatedDetail, @NotNull MathContext mc,
@NonNull LoanProductMinimumRepaymentScheduleRelatedDetail loanProductRelatedDetail, @NonNull MathContext mc,
Integer installmentAmountInMultipliesOf) {
if (s == null) {
return null;
@@ -28,7 +28,6 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import jakarta.annotation.Nullable;
import jakarta.validation.constraints.NotNull;
import java.io.File;
import java.io.IOException;
import java.net.HttpURLConnection;
@@ -67,6 +66,7 @@ import org.apache.fineract.infrastructure.creditbureau.domain.TokenRepositoryWra
import org.apache.fineract.infrastructure.creditbureau.serialization.CreditBureauTokenCommandFromApiJsonDeserializer;
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -88,7 +88,7 @@ public class ThitsaWorksCreditBureauIntegrationWritePlatformServiceImpl implemen
@Transactional
@Override
public String okHttpConnectionMethod(String userName, String password, String subscriptionKey, String subscriptionId, String url,
String token, File file, FormDataContentDisposition fileData, Long uniqueId, String nrcId, @NotNull String process) {
String token, File file, FormDataContentDisposition fileData, Long uniqueId, String nrcId, @NonNull String process) {
String responseMessage = null;
if (StringUtils.isBlank(url)) {
@@ -23,7 +23,6 @@ import static org.apache.fineract.infrastructure.core.service.database.SqlOperat
import com.google.common.base.Splitter;
import com.google.gson.JsonObject;
import jakarta.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
@@ -48,6 +47,7 @@ import org.springframework.data.domain.Sort;
import org.springframework.data.support.PageableExecutionUtils;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import org.springframework.lang.NonNull;
import org.springframework.transaction.annotation.Transactional;
@Slf4j
@@ -126,8 +126,8 @@ public class DatatableReadServiceImpl implements DatatableReadService {
}
@Override
public List<JsonObject> queryDataTable(@NotNull String datatable, @NotNull String columnName, String columnValueString,
@NotNull String resultColumnsString) {
public List<JsonObject> queryDataTable(@NonNull String datatable, @NonNull String columnName, String columnValueString,
@NonNull String resultColumnsString) {
datatable = datatableUtil.validateDatatableRegistered(datatable);
Map<String, ResultsetColumnHeaderData> headersByName = searchUtil
.mapHeadersToName(genericDataService.fillResultsetColumnHeaders(datatable));
@@ -149,7 +149,7 @@ public class DatatableReadServiceImpl implements DatatableReadService {
}
@Override
public Page<JsonObject> queryDataTableAdvanced(@NotNull String datatable, @NotNull PagedLocalRequest<AdvancedQueryData> pagedRequest) {
public Page<JsonObject> queryDataTableAdvanced(@NonNull String datatable, @NonNull PagedLocalRequest<AdvancedQueryData> pagedRequest) {
datatable = datatableUtil.validateDatatableRegistered(datatable);
context.authenticatedUser().validateHasDatatableReadPermission(datatable);
@@ -219,9 +219,9 @@ public class DatatableReadServiceImpl implements DatatableReadService {
}
@Override
public boolean buildDataQueryEmbedded(@NotNull EntityTables entityTable, @NotNull String datatable, @NotNull AdvancedQueryData request,
@NotNull List<String> selectColumns, @NotNull StringBuilder select, @NotNull StringBuilder from, @NotNull StringBuilder where,
@NotNull List<Object> params, String mainAlias, String alias, String dateFormat, String dateTimeFormat, Locale locale) {
public boolean buildDataQueryEmbedded(@NonNull EntityTables entityTable, @NonNull String datatable, @NonNull AdvancedQueryData request,
@NonNull List<String> selectColumns, @NonNull StringBuilder select, @NonNull StringBuilder from, @NonNull StringBuilder where,
@NonNull List<Object> params, String mainAlias, String alias, String dateFormat, String dateTimeFormat, Locale locale) {
List<String> resultColumns = request.getResultColumns();
List<ColumnFilterData> columnFilters = request.getColumnFilters();
if ((resultColumns == null || resultColumns.isEmpty()) && (columnFilters == null || columnFilters.isEmpty())) {
@@ -23,7 +23,6 @@ import static org.apache.fineract.infrastructure.dataqueries.api.DataTableApiCon
import static org.apache.fineract.infrastructure.dataqueries.api.DataTableApiConstant.TABLE_FIELD_ID;
import static org.apache.fineract.infrastructure.dataqueries.api.DataTableApiConstant.TABLE_REGISTERED_TABLE;
import jakarta.validation.constraints.NotNull;
import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -45,6 +44,7 @@ import org.apache.fineract.portfolio.search.service.SearchUtil;
import org.apache.fineract.useradministration.domain.AppUser;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Service;
@Slf4j
@@ -96,7 +96,7 @@ public class DatatableUtil {
return entityTable;
}
@NotNull
@NonNull
public EntityTables queryForApplicationEntity(final String datatable) {
sqlValidator.validate(datatable);
final String sql = "SELECT application_table_name FROM x_registered_table where registered_table_name = ?";
@@ -111,7 +111,7 @@ public class DatatableUtil {
return resolveEntity(applicationTableName);
}
public CommandProcessingResult checkMainResourceExistsWithinScope(@NotNull EntityTables entityTable, final Long appTableId) {
public CommandProcessingResult checkMainResourceExistsWithinScope(@NonNull EntityTables entityTable, final Long appTableId) {
final String sql = dataScopedSQL(entityTable, appTableId);
log.debug("data scoped sql: {}", sql);
final SqlRowSet rs = this.jdbcTemplate.queryForRowSet(sql);
@@ -140,7 +140,7 @@ public class DatatableUtil {
.build();
}
public String dataScopedSQL(@NotNull EntityTables entityTable, final Long appTableId) {
public String dataScopedSQL(@NonNull EntityTables entityTable, final Long appTableId) {
// unfortunately have to, one way or another, be able to restrict data to the users office hierarchy. Here, a
// few key tables are done. But if additional fields are needed on other tables the same pattern applies
final AppUser currentUser = this.context.authenticatedUser();
@@ -54,7 +54,6 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import jakarta.persistence.PersistenceException;
import jakarta.validation.constraints.NotNull;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.sql.PreparedStatement;
@@ -112,6 +111,7 @@ import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.lang.NonNull;
import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.transaction.annotation.Transactional;
@@ -1199,7 +1199,7 @@ public class DatatableWriteServiceImpl implements DatatableWriteService {
});
}
private static boolean isUserInsertable(@NotNull EntityTables entityTable, @NotNull ResultsetColumnHeaderData columnHeader) {
private static boolean isUserInsertable(@NonNull EntityTables entityTable, @NonNull ResultsetColumnHeaderData columnHeader) {
String columnName = columnHeader.getColumnName();
return !columnHeader.getIsColumnPrimaryKey() && !CREATEDAT_FIELD_NAME.equals(columnName) && !UPDATEDAT_FIELD_NAME.equals(columnName)
&& !entityTable.getForeignKeyColumnNameOnDatatable().equals(columnName);
@@ -1298,7 +1298,7 @@ public class DatatableWriteServiceImpl implements DatatableWriteService {
.with(changes).build();
}
private static boolean isUserUpdatable(@NotNull EntityTables entityTable, @NotNull ResultsetColumnHeaderData columnHeader) {
private static boolean isUserUpdatable(@NonNull EntityTables entityTable, @NonNull ResultsetColumnHeaderData columnHeader) {
return isUserInsertable(entityTable, columnHeader);
}
@@ -1369,7 +1369,7 @@ public class DatatableWriteServiceImpl implements DatatableWriteService {
// --- DbUtils ---
@NotNull
@NonNull
private String mapApiTypeToDbType(String apiType, Integer length) {
if (StringUtils.isEmpty(apiType)) {
return "";
@@ -18,7 +18,6 @@
*/
package org.apache.fineract.infrastructure.dataqueries.service;
import jakarta.validation.constraints.NotNull;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
@@ -47,6 +46,7 @@ import org.apache.fineract.portfolio.savings.data.SavingsProductData;
import org.apache.fineract.portfolio.savings.service.SavingsProductReadPlatformService;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Service;
@Service
@@ -78,7 +78,7 @@ public class EntityDatatableChecksReadPlatformServiceImpl implements EntityDatat
}
@Override
public Page<EntityDataTableChecksData> retrieveAll(@NotNull SearchParameters searchParameters, final Integer status,
public Page<EntityDataTableChecksData> retrieveAll(@NonNull SearchParameters searchParameters, final Integer status,
final String entity, final Long productId) {
final StringBuilder sqlBuilder = new StringBuilder(200);
sqlBuilder.append("select ").append(sqlGenerator.calcFoundRows()).append(" ").append(this.entityDataTableChecksMapper.schema());
@@ -18,7 +18,6 @@
*/
package org.apache.fineract.infrastructure.jobs.service;
import jakarta.validation.constraints.NotNull;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
@@ -38,6 +37,7 @@ import org.apache.fineract.infrastructure.security.utils.ColumnValidator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -71,7 +71,7 @@ public class SchedulerJobRunnerReadServiceImpl implements SchedulerJobRunnerRead
}
@Override
public JobDetailData retrieveOne(@NotNull IdTypeResolver.IdType idType, String identifier) {
public JobDetailData retrieveOne(@NonNull IdTypeResolver.IdType idType, String identifier) {
JobDetailData jobDetail = switch (idType) {
case ID -> jobDetailRepository.getDataById(Long.valueOf(identifier));
case SHORT_NAME -> jobDetailRepository.getDataByShortName(identifier);
@@ -84,7 +84,7 @@ public class SchedulerJobRunnerReadServiceImpl implements SchedulerJobRunnerRead
}
@Override
public Page<JobDetailHistoryData> retrieveJobHistory(@NotNull IdTypeResolver.IdType idType, String identifier,
public Page<JobDetailHistoryData> retrieveJobHistory(@NonNull IdTypeResolver.IdType idType, String identifier,
SearchParameters searchParameters) {
if (!isJobExist(idType, identifier)) {
throw new JobNotFoundException(idType, identifier);
@@ -127,8 +127,8 @@ public class SchedulerJobRunnerReadServiceImpl implements SchedulerJobRunnerRead
}
@Override
@NotNull
public Long retrieveId(@NotNull IdTypeResolver.IdType idType, String identifier) {
@NonNull
public Long retrieveId(@NonNull IdTypeResolver.IdType idType, String identifier) {
return switch (idType) {
case ID -> Long.valueOf(identifier);
case SHORT_NAME ->
@@ -149,7 +149,7 @@ public class SchedulerJobRunnerReadServiceImpl implements SchedulerJobRunnerRead
return true;
}
private boolean isJobExist(@NotNull IdTypeResolver.IdType idType, @NotNull String jobId) {
private boolean isJobExist(@NonNull IdTypeResolver.IdType idType, @NonNull String jobId) {
return switch (idType) {
case ID -> jobDetailRepository.existsById(Long.valueOf(jobId));
case SHORT_NAME -> jobDetailRepository.existsByShortName(jobId);
@@ -18,7 +18,6 @@
*/
package org.apache.fineract.interoperation.service;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime;
import org.apache.fineract.infrastructure.core.api.JsonCommand;
import org.apache.fineract.interoperation.data.InteropAccountData;
@@ -30,58 +29,59 @@ import org.apache.fineract.interoperation.data.InteropTransactionRequestResponse
import org.apache.fineract.interoperation.data.InteropTransactionsData;
import org.apache.fineract.interoperation.data.InteropTransferResponseData;
import org.apache.fineract.interoperation.domain.InteropIdentifierType;
import org.springframework.lang.NonNull;
public interface InteropService {
@NotNull
InteropIdentifiersResponseData getAccountIdentifiers(@NotNull String accountId);
@NonNull
InteropIdentifiersResponseData getAccountIdentifiers(@NonNull String accountId);
@NotNull
InteropAccountData getAccountDetails(@NotNull String accountId);
@NonNull
InteropAccountData getAccountDetails(@NonNull String accountId);
@NotNull
InteropTransactionsData getAccountTransactions(@NotNull String accountId, boolean debit, boolean credit, LocalDateTime transactionsFrom,
@NonNull
InteropTransactionsData getAccountTransactions(@NonNull String accountId, boolean debit, boolean credit, LocalDateTime transactionsFrom,
LocalDateTime transactionsTo);
@NotNull
InteropIdentifierAccountResponseData getAccountByIdentifier(@NotNull InteropIdentifierType idType, @NotNull String idValue,
@NonNull
InteropIdentifierAccountResponseData getAccountByIdentifier(@NonNull InteropIdentifierType idType, @NonNull String idValue,
String subIdOrType);
@NotNull
InteropIdentifierAccountResponseData registerAccountIdentifier(@NotNull InteropIdentifierType idType, @NotNull String idValue,
String subIdOrType, @NotNull JsonCommand command);
@NonNull
InteropIdentifierAccountResponseData registerAccountIdentifier(@NonNull InteropIdentifierType idType, @NonNull String idValue,
String subIdOrType, @NonNull JsonCommand command);
@NotNull
InteropIdentifierAccountResponseData deleteAccountIdentifier(@NotNull InteropIdentifierType idType, @NotNull String idValue,
@NonNull
InteropIdentifierAccountResponseData deleteAccountIdentifier(@NonNull InteropIdentifierType idType, @NonNull String idValue,
String subIdOrType);
InteropTransactionRequestResponseData getTransactionRequest(@NotNull String transactionCode, @NotNull String requestCode);
InteropTransactionRequestResponseData getTransactionRequest(@NonNull String transactionCode, @NonNull String requestCode);
@NotNull
InteropTransactionRequestResponseData createTransactionRequest(@NotNull JsonCommand command);
@NonNull
InteropTransactionRequestResponseData createTransactionRequest(@NonNull JsonCommand command);
InteropQuoteResponseData getQuote(@NotNull String transactionCode, @NotNull String quoteCode);
InteropQuoteResponseData getQuote(@NonNull String transactionCode, @NonNull String quoteCode);
@NotNull
InteropQuoteResponseData createQuote(@NotNull JsonCommand command);
@NonNull
InteropQuoteResponseData createQuote(@NonNull JsonCommand command);
InteropTransferResponseData getTransfer(@NotNull String transactionCode, @NotNull String transferCode);
InteropTransferResponseData getTransfer(@NonNull String transactionCode, @NonNull String transferCode);
@NotNull
InteropTransferResponseData prepareTransfer(@NotNull JsonCommand command);
@NonNull
InteropTransferResponseData prepareTransfer(@NonNull JsonCommand command);
@NotNull
InteropTransferResponseData commitTransfer(@NotNull JsonCommand command);
@NonNull
InteropTransferResponseData commitTransfer(@NonNull JsonCommand command);
@NotNull
InteropTransferResponseData releaseTransfer(@NotNull JsonCommand command);
@NonNull
InteropTransferResponseData releaseTransfer(@NonNull JsonCommand command);
@NotNull
InteropKycResponseData getKyc(@NotNull String accountId);
@NonNull
InteropKycResponseData getKyc(@NonNull String accountId);
@NotNull
String disburseLoan(@NotNull String accountId, String apiRequestBodyAsJson);
@NonNull
String disburseLoan(@NonNull String accountId, String apiRequestBodyAsJson);
@NotNull
String loanRepayment(@NotNull String accountId, String apiRequestBodyAsJson);
@NonNull
String loanRepayment(@NonNull String accountId, String apiRequestBodyAsJson);
}
@@ -27,7 +27,6 @@ import static org.apache.fineract.portfolio.savings.SavingsAccountTransactionTyp
import static org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction.releaseAmount;
import jakarta.persistence.PersistenceException;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -112,6 +111,7 @@ import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.lang.NonNull;
import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.transaction.annotation.Transactional;
@@ -191,17 +191,17 @@ public class InteropServiceImpl implements InteropService {
}
}
@NotNull
@NonNull
@Override
@Transactional
public InteropAccountData getAccountDetails(@NotNull String accountId) {
public InteropAccountData getAccountDetails(@NonNull String accountId) {
return InteropAccountData.build(validateAndGetSavingAccount(accountId));
}
@NotNull
@NonNull
@Override
@Transactional
public InteropTransactionsData getAccountTransactions(@NotNull String accountId, boolean debit, boolean credit,
public InteropTransactionsData getAccountTransactions(@NonNull String accountId, boolean debit, boolean credit,
java.time.LocalDateTime transactionsFrom, java.time.LocalDateTime transactionsTo) {
SavingsAccount savingsAccount = validateAndGetSavingAccount(accountId);
@@ -242,18 +242,18 @@ public class InteropServiceImpl implements InteropService {
return interopTransactionsData;
}
@NotNull
@NonNull
@Override
@Transactional
public InteropIdentifiersResponseData getAccountIdentifiers(@NotNull String accountId) {
public InteropIdentifiersResponseData getAccountIdentifiers(@NonNull String accountId) {
SavingsAccount savingsAccount = validateAndGetSavingAccount(accountId);
return InteropIdentifiersResponseData.build(savingsAccount);
}
@NotNull
@NonNull
@Transactional
@Override
public InteropIdentifierAccountResponseData getAccountByIdentifier(@NotNull InteropIdentifierType idType, @NotNull String idValue,
public InteropIdentifierAccountResponseData getAccountByIdentifier(@NonNull InteropIdentifierType idType, @NonNull String idValue,
String subIdOrType) {
InteropIdentifier identifier = findIdentifier(idType, idValue, subIdOrType);
if (identifier == null) {
@@ -263,11 +263,11 @@ public class InteropServiceImpl implements InteropService {
return InteropIdentifierAccountResponseData.build(identifier.getId(), identifier.getAccount().getExternalId().getValue());
}
@NotNull
@NonNull
@Transactional
@Override
public InteropIdentifierAccountResponseData registerAccountIdentifier(@NotNull InteropIdentifierType idType, @NotNull String idValue,
String subIdOrType, @NotNull JsonCommand command) {
public InteropIdentifierAccountResponseData registerAccountIdentifier(@NonNull InteropIdentifierType idType, @NonNull String idValue,
String subIdOrType, @NonNull JsonCommand command) {
InteropIdentifierRequestData request = dataValidator.validateAndParseCreateIdentifier(idType, idValue, subIdOrType, command);
// TODO: error handling
SavingsAccount savingsAccount = validateAndGetSavingAccount(request.getAccountId());
@@ -291,10 +291,10 @@ public class InteropServiceImpl implements InteropService {
}
}
@NotNull
@NonNull
@Transactional
@Override
public InteropIdentifierAccountResponseData deleteAccountIdentifier(@NotNull InteropIdentifierType idType, @NotNull String idValue,
public InteropIdentifierAccountResponseData deleteAccountIdentifier(@NonNull InteropIdentifierType idType, @NonNull String idValue,
String subIdOrType) {
InteropIdentifier identifier = findIdentifier(idType, idValue, subIdOrType);
if (identifier == null) {
@@ -310,15 +310,15 @@ public class InteropServiceImpl implements InteropService {
}
@Override
public InteropTransactionRequestResponseData getTransactionRequest(@NotNull String transactionCode, @NotNull String requestCode) {
public InteropTransactionRequestResponseData getTransactionRequest(@NonNull String transactionCode, @NonNull String requestCode) {
// always REJECTED until request info is stored
return InteropTransactionRequestResponseData.build(transactionCode, InteropActionState.REJECTED, requestCode);
}
@Override
@NotNull
@NonNull
@Transactional
public InteropTransactionRequestResponseData createTransactionRequest(@NotNull JsonCommand command) {
public InteropTransactionRequestResponseData createTransactionRequest(@NonNull JsonCommand command) {
// only when Payee request transaction from Payer, so here role must be
// always Payer
InteropTransactionRequestData request = dataValidator.validateAndParseCreateRequest(command);
@@ -331,14 +331,14 @@ public class InteropServiceImpl implements InteropService {
}
@Override
public InteropQuoteResponseData getQuote(@NotNull String transactionCode, @NotNull String quoteCode) {
public InteropQuoteResponseData getQuote(@NonNull String transactionCode, @NonNull String quoteCode) {
return null;
}
@Override
@NotNull
@NonNull
@Transactional
public InteropQuoteResponseData createQuote(@NotNull JsonCommand command) {
public InteropQuoteResponseData createQuote(@NonNull JsonCommand command) {
InteropQuoteRequestData request = dataValidator.validateAndParseCreateQuote(command);
SavingsAccount savingsAccount = validateAndGetSavingAccount(request);
@@ -361,14 +361,14 @@ public class InteropServiceImpl implements InteropService {
}
@Override
public InteropTransferResponseData getTransfer(@NotNull String transactionCode, @NotNull String transferCode) {
public InteropTransferResponseData getTransfer(@NonNull String transactionCode, @NonNull String transferCode) {
return null;
}
@Override
@NotNull
@NonNull
@Transactional
public InteropTransferResponseData prepareTransfer(@NotNull JsonCommand command) {
public InteropTransferResponseData prepareTransfer(@NonNull JsonCommand command) {
InteropTransferRequestData request = dataValidator.validateAndParseTransferRequest(command);
String transferCode = request.getTransferCode();
LocalDate transactionDate = DateUtils.getBusinessLocalDate();
@@ -409,9 +409,9 @@ public class InteropServiceImpl implements InteropService {
}
@Override
@NotNull
@NonNull
@Transactional
public InteropTransferResponseData commitTransfer(@NotNull JsonCommand command) {
public InteropTransferResponseData commitTransfer(@NonNull JsonCommand command) {
InteropTransferRequestData request = dataValidator.validateAndParseTransferRequest(command);
boolean isDebit = request.getTransactionRole().getTransactionType().isDebit();
SavingsAccount savingsAccount = validateAndGetSavingAccount(request);
@@ -474,7 +474,7 @@ public class InteropServiceImpl implements InteropService {
@Override
@Transactional
public @NotNull InteropTransferResponseData releaseTransfer(@NotNull JsonCommand command) {
public @NonNull InteropTransferResponseData releaseTransfer(@NonNull JsonCommand command) {
InteropTransferRequestData request = dataValidator.validateAndParseTransferRequest(command);
SavingsAccount savingsAccount = validateAndGetSavingAccount(request);
@@ -504,7 +504,7 @@ public class InteropServiceImpl implements InteropService {
}
@Override
public @NotNull InteropKycResponseData getKyc(@NotNull @NotNull String accountId) {
public @NonNull InteropKycResponseData getKyc(@NonNull String accountId) {
SavingsAccount savingsAccount = validateAndGetSavingAccount(accountId);
Long clientId = savingsAccount.getClient().getId();
@@ -522,7 +522,7 @@ public class InteropServiceImpl implements InteropService {
}
@Override
public @NotNull String disburseLoan(@NotNull String accountId, String apiRequestBodyAsJson) {
public @NonNull String disburseLoan(@NonNull String accountId, String apiRequestBodyAsJson) {
Loan loan = validateAndGetLoan(accountId);
Long loanId = loan.getId();
@@ -535,7 +535,7 @@ public class InteropServiceImpl implements InteropService {
}
@Override
public @NotNull String loanRepayment(@NotNull String accountId, String apiRequestBodyAsJson) {
public @NonNull String loanRepayment(@NonNull String accountId, String apiRequestBodyAsJson) {
Loan loan = validateAndGetLoan(accountId);
Long loanId = loan.getId();
@@ -563,7 +563,7 @@ public class InteropServiceImpl implements InteropService {
return loan;
}
private SavingsAccount validateAndGetSavingAccount(@NotNull InteropRequestData request) {
private SavingsAccount validateAndGetSavingAccount(@NonNull InteropRequestData request) {
// TODO: error handling
SavingsAccount savingsAccount = validateAndGetSavingAccount(request.getAccountId());
savingsAccount.setHelpers(savingsAccountTransactionSummaryWrapper, savingsHelper);
@@ -583,7 +583,7 @@ public class InteropServiceImpl implements InteropService {
return savingsAccount;
}
private BigDecimal calculateTotalTransferAmount(@NotNull InteropTransferRequestData request, @NotNull SavingsAccount savingsAccount) {
private BigDecimal calculateTotalTransferAmount(@NonNull InteropTransferRequestData request, @NonNull SavingsAccount savingsAccount) {
BigDecimal total = request.getAmount().getAmount();
MoneyData requestFee = request.getFspFee();
if (requestFee != null) {
@@ -604,7 +604,7 @@ public class InteropServiceImpl implements InteropService {
return total;
}
private DateTimeFormatter getDateTimeFormatter(@NotNull JsonCommand command) {
private DateTimeFormatter getDateTimeFormatter(@NonNull JsonCommand command) {
Locale locale = command.extractLocale();
if (locale == null) {
locale = DEFAULT_LOCALE;
@@ -637,7 +637,7 @@ public class InteropServiceImpl implements InteropService {
}).findFirst().orElse(null);
}
public InteropIdentifier findIdentifier(@NotNull InteropIdentifierType idType, @NotNull String idValue, String subIdOrType) {
public InteropIdentifier findIdentifier(@NonNull InteropIdentifierType idType, @NonNull String idValue, String subIdOrType) {
return identifierRepository.findOneByTypeAndValueAndSubType(idType, idValue, subIdOrType);
}
@@ -657,7 +657,7 @@ public class InteropServiceImpl implements InteropService {
"Unknown data integrity issue with resource: " + realCause.getMessage());
}
@NotNull
@NonNull
String getRoutingCode() {
return DEFAULT_ROUTING_CODE;
}
@@ -28,7 +28,6 @@ import static org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionTy
import static org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionType.ACCRUAL_ADJUSTMENT;
import static org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionType.INCOME_POSTING;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
@@ -121,7 +120,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
*/
@Override
@Transactional
public void addPeriodicAccruals(@NotNull LocalDate tillDate) throws JobExecutionException {
public void addPeriodicAccruals(@NonNull LocalDate tillDate) throws JobExecutionException {
List<Loan> loans = loanRepositoryWrapper.findLoansForPeriodicAccrual(AccountingRuleType.ACCRUAL_PERIODIC, tillDate,
!isChargeOnDueDate());
List<Throwable> errors = new ArrayList<>();
@@ -143,7 +142,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
*/
@Override
@Transactional
public void addPeriodicAccruals(@NotNull final LocalDate tillDate, @NotNull final Loan loan) {
public void addPeriodicAccruals(@NonNull final LocalDate tillDate, @NonNull final Loan loan) {
if (loan.isClosed() || loan.getStatus().isOverpaid()) {
return;
}
@@ -156,7 +155,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
*/
@Override
@Transactional
public void addAccruals(@NotNull LocalDate tillDate) throws JobExecutionException {
public void addAccruals(@NonNull LocalDate tillDate) throws JobExecutionException {
final boolean chargeOnDueDate = isChargeOnDueDate();
List<Loan> loans = loanRepositoryWrapper.findLoansForAddAccrual(AccountingRuleType.ACCRUAL_PERIODIC, tillDate, !chargeOnDueDate);
@@ -203,7 +202,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
* reschedule
*/
@Override
public void reprocessExistingAccruals(@NotNull final Loan loan, final boolean addEvent) {
public void reprocessExistingAccruals(@NonNull final Loan loan, final boolean addEvent) {
List<LoanTransaction> accrualTransactions = retrieveListOfAccrualTransactions(loan);
if (!accrualTransactions.isEmpty()) {
if (loan.isPeriodicAccrualAccountingEnabledOnLoanProduct()) {
@@ -219,7 +218,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
*/
@Override
@Transactional
public void processAccrualsOnInterestRecalculation(@NotNull Loan loan, boolean isInterestRecalculationEnabled, boolean addJournal) {
public void processAccrualsOnInterestRecalculation(@NonNull Loan loan, boolean isInterestRecalculationEnabled, boolean addJournal) {
if (isProgressiveAccrual(loan)) {
return;
}
@@ -254,7 +253,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
* method calculates accruals for loan with interest recalculation and compounding to be posted as income
*/
@Override
public void processIncomePostingAndAccruals(@NotNull final Loan loan, final boolean addEvent) {
public void processIncomePostingAndAccruals(@NonNull final Loan loan, final boolean addEvent) {
if (isProgressiveAccrual(loan)) {
return;
}
@@ -298,8 +297,8 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
* method calculates accruals for loan on loan fore closure
*/
@Override
public void processAccrualsOnLoanForeClosure(@NotNull Loan loan, @NotNull LocalDate foreClosureDate,
@NotNull List<LoanTransaction> newAccrualTransactions) {
public void processAccrualsOnLoanForeClosure(@NonNull Loan loan, @NonNull LocalDate foreClosureDate,
@NonNull List<LoanTransaction> newAccrualTransactions) {
// TODO implement progressive accrual case
if (loan.isPeriodicAccrualAccountingEnabledOnLoanProduct()
&& (loan.getAccruedTill() == null || !DateUtils.isEqual(foreClosureDate, loan.getAccruedTill()))) {
@@ -323,7 +322,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
// PeriodicAccruals
private void addAccruals(@NotNull final Loan loan, @NotNull LocalDate tillDate, final boolean periodic, final boolean isFinal,
private void addAccruals(@NonNull final Loan loan, @NonNull LocalDate tillDate, final boolean periodic, final boolean isFinal,
final boolean addJournal, final boolean chargeOnDueDate) {
if ((!isFinal && !loan.isOpen()) || loan.isNpa() || loan.isChargedOff() || !loan.isPeriodicAccrualAccountingEnabledOnLoanProduct()
|| loan.isContractTermination()) {
@@ -436,7 +435,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
return loan.getLoanCharges(t -> t.isActive() && DateUtils.isEqual(t.getDueDate(), accrualDate)).isEmpty();
}
private AccrualPeriodsData calculateAccrualAmounts(@NotNull final Loan loan, @NotNull final LocalDate tillDate, final boolean periodic,
private AccrualPeriodsData calculateAccrualAmounts(@NonNull final Loan loan, @NonNull final LocalDate tillDate, final boolean periodic,
final boolean isFinal, final boolean chargeOnDueDate) {
final LoanProductRelatedDetail productDetail = loan.getLoanProductRelatedDetail();
final MonetaryCurrency currency = productDetail.getCurrency();
@@ -455,8 +454,8 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
return accrualPeriods;
}
@NotNull
private List<LoanRepaymentScheduleInstallment> getInstallmentsToAccrue(@NotNull final Loan loan, @NotNull final LocalDate tillDate,
@NonNull
private List<LoanRepaymentScheduleInstallment> getInstallmentsToAccrue(@NonNull final Loan loan, @NonNull final LocalDate tillDate,
final boolean periodic, final boolean chargeOnDueDate) {
final LocalDate organisationStartDate = this.configurationDomainService.retrieveOrganisationStartDate();
final int firstInstallmentNumber = fetchFirstNormalInstallmentNumber(loan.getRepaymentScheduleInstallments());
@@ -466,9 +465,9 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
&& !isAfterPeriod(organisationStartDate, i));
}
private void addInterestAccrual(@NotNull final Loan loan, @NotNull final LocalDate tillDate,
final LoanScheduleGenerator scheduleGenerator, @NotNull final LoanRepaymentScheduleInstallment installment,
@NotNull final AccrualPeriodsData accrualPeriods) {
private void addInterestAccrual(@NonNull final Loan loan, @NonNull final LocalDate tillDate,
final LoanScheduleGenerator scheduleGenerator, @NonNull final LoanRepaymentScheduleInstallment installment,
@NonNull final AccrualPeriodsData accrualPeriods) {
if (installment.isAdditional() || installment.isReAged()) {
return;
}
@@ -506,9 +505,9 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
period.setInterestAccrued(accrued);
}
@NotNull
private BigDecimal calcInterestTransactionWaivedAmount(@NotNull LoanRepaymentScheduleInstallment installment,
@NotNull LocalDate tillDate) {
@NonNull
private BigDecimal calcInterestTransactionWaivedAmount(@NonNull LoanRepaymentScheduleInstallment installment,
@NonNull LocalDate tillDate) {
Predicate<LoanTransaction> transactionPredicate = t -> !t.isReversed() && t.isInterestWaiver()
&& !DateUtils.isAfter(t.getTransactionDate(), tillDate);
return installment.getLoanTransactionToRepaymentScheduleMappings().stream()
@@ -516,9 +515,9 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
.map(LoanTransactionToRepaymentScheduleMapping::getInterestPortion).reduce(BigDecimal.ZERO, MathUtil::add);
}
@NotNull
private BigDecimal calcInterestUnrecognizedWaivedAmount(@NotNull LoanRepaymentScheduleInstallment installment,
@NotNull AccrualPeriodsData accrualPeriods, @NotNull LocalDate tillDate) {
@NonNull
private BigDecimal calcInterestUnrecognizedWaivedAmount(@NonNull LoanRepaymentScheduleInstallment installment,
@NonNull AccrualPeriodsData accrualPeriods, @NonNull LocalDate tillDate) {
// unrecognized amount of the transaction is not mapped to installments
LocalDate dueDate = installment.getDueDate();
LocalDate toDate = DateUtils.isBefore(dueDate, tillDate) ? dueDate : tillDate;
@@ -532,9 +531,9 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
return MathUtil.min(installment.getInterestWaived(), MathUtil.subtractToZero(totalUnrecognized, prevUnrecognized), false);
}
@NotNull
private BigDecimal calcInterestAccruedAmount(@NotNull LoanRepaymentScheduleInstallment installment,
@NotNull AccrualPeriodsData accrualPeriods, @NotNull LocalDate tillDate) {
@NonNull
private BigDecimal calcInterestAccruedAmount(@NonNull LoanRepaymentScheduleInstallment installment,
@NonNull AccrualPeriodsData accrualPeriods, @NonNull LocalDate tillDate) {
Loan loan = installment.getLoan();
if (isProgressiveAccrual(loan)) {
BigDecimal totalAccrued = loanTransactionRepository.findTotalInterestAccruedAmount(loan);
@@ -550,8 +549,8 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
}
}
private void addChargeAccrual(@NotNull final Loan loan, @NotNull final LocalDate tillDate, final boolean chargeOnDueDate,
@NotNull final LoanRepaymentScheduleInstallment installment, @NotNull final AccrualPeriodsData accrualPeriods) {
private void addChargeAccrual(@NonNull final Loan loan, @NonNull final LocalDate tillDate, final boolean chargeOnDueDate,
@NonNull final LoanRepaymentScheduleInstallment installment, @NonNull final AccrualPeriodsData accrualPeriods) {
final AccrualPeriodData period = accrualPeriods.getPeriodByInstallmentNumber(installment.getInstallmentNumber());
final LocalDate dueDate = installment.getDueDate();
final Collection<LoanCharge> loanCharges = loan
@@ -564,8 +563,8 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
}
}
private void addChargeAccrual(@NotNull final LoanCharge loanCharge, @NotNull final LocalDate tillDate, final boolean chargeOnDueDate,
@NotNull final LoanRepaymentScheduleInstallment installment, @NotNull final AccrualPeriodsData accrualPeriods) {
private void addChargeAccrual(@NonNull final LoanCharge loanCharge, @NonNull final LocalDate tillDate, final boolean chargeOnDueDate,
@NonNull final LoanRepaymentScheduleInstallment installment, @NonNull final AccrualPeriodsData accrualPeriods) {
final MonetaryCurrency currency = accrualPeriods.getCurrency();
final Integer firstInstallmentNumber = accrualPeriods.getFirstInstallmentNumber();
final boolean installmentFee = loanCharge.isInstalmentFee();
@@ -617,16 +616,16 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
duePeriod.addCharge(chargeData);
}
@NotNull
private BigDecimal calcChargeWaivedAmount(@NotNull final Collection<LoanChargePaidBy> loanChargePaidBy,
@NotNull final LocalDate tillDate) {
@NonNull
private BigDecimal calcChargeWaivedAmount(@NonNull final Collection<LoanChargePaidBy> loanChargePaidBy,
@NonNull final LocalDate tillDate) {
return loanChargePaidBy.stream().filter(pb -> {
final LoanTransaction t = pb.getLoanTransaction();
return !t.isReversed() && t.isWaiveCharge() && !DateUtils.isAfter(t.getTransactionDate(), tillDate);
}).map(LoanChargePaidBy::getAmount).reduce(BigDecimal.ZERO, MathUtil::add);
}
private boolean isChargeDue(@NotNull final LoanCharge loanCharge, @NotNull final LocalDate tillDate, boolean chargeOnDueDate,
private boolean isChargeDue(@NonNull final LoanCharge loanCharge, @NonNull final LocalDate tillDate, boolean chargeOnDueDate,
final LoanRepaymentScheduleInstallment installment, final boolean isFirstPeriod) {
final LocalDate fromDate = installment.getFromDate();
final LocalDate dueDate = installment.getDueDate();
@@ -636,7 +635,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
: isInPeriod(loanCharge.getSubmittedOnDate(), fromDate, toDate, isFirstPeriod);
}
private LoanTransaction createOrMergeAccrualTransaction(@NotNull final Loan loan, LoanTransaction transaction,
private LoanTransaction createOrMergeAccrualTransaction(@NonNull final Loan loan, LoanTransaction transaction,
final LocalDate transactionDate, final AccrualPeriodData accrualPeriod, final List<LoanTransaction> accrualTransactions,
final Money interest, final Money fee, final Money penalty, final boolean adjustment) {
if (transaction == null) {
@@ -650,7 +649,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
return transaction;
}
private LoanTransaction addAccrualTransaction(@NotNull Loan loan, @NotNull LocalDate transactionDate, AccrualPeriodData accrualPeriod,
private LoanTransaction addAccrualTransaction(@NonNull Loan loan, @NonNull LocalDate transactionDate, AccrualPeriodData accrualPeriod,
Money interestPortion, Money feePortion, Money penaltyPortion, boolean adjustment) {
interestPortion = MathUtil.negativeToZero(interestPortion);
BigDecimal interest = MathUtil.toBigDecimal(interestPortion);
@@ -673,7 +672,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
return savedTransaction;
}
private void mergeAccrualTransaction(@NotNull final LoanTransaction transaction, final AccrualPeriodData accrualPeriod,
private void mergeAccrualTransaction(@NonNull final LoanTransaction transaction, final AccrualPeriodData accrualPeriod,
Money interestPortion, Money feePortion, Money penaltyPortion, final boolean adjustment) {
interestPortion = MathUtil.negativeToZero(interestPortion);
feePortion = MathUtil.negativeToZero(feePortion);
@@ -687,7 +686,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
addTransactionMappings(transaction, accrualPeriod, adjustment);
}
private void addTransactionMappings(@NotNull final LoanTransaction transaction, final AccrualPeriodData accrualPeriod,
private void addTransactionMappings(@NonNull final LoanTransaction transaction, final AccrualPeriodData accrualPeriod,
final boolean adjustment) {
if (accrualPeriod == null) {
return;
@@ -700,7 +699,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
addPaidByMappings(transaction, installment, accrualPeriod, adjustment);
}
private void addPaidByMappings(@NotNull final LoanTransaction transaction, final LoanRepaymentScheduleInstallment installment,
private void addPaidByMappings(@NonNull final LoanTransaction transaction, final LoanRepaymentScheduleInstallment installment,
final AccrualPeriodData accrualPeriod, final boolean adjustment) {
final Loan loan = installment.getLoan();
final MonetaryCurrency currency = loan.getCurrency();
@@ -725,7 +724,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
}
}
private boolean isFullPeriod(@NotNull final LocalDate tillDate, @NotNull final LoanRepaymentScheduleInstallment installment) {
private boolean isFullPeriod(@NonNull final LocalDate tillDate, @NonNull final LoanRepaymentScheduleInstallment installment) {
return isAfterPeriod(tillDate, installment) || DateUtils.isEqual(tillDate, installment.getDueDate());
}
@@ -1280,7 +1279,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
};
}
public boolean isProgressiveAccrual(@NotNull Loan loan) {
public boolean isProgressiveAccrual(@NonNull Loan loan) {
return loan.isProgressiveSchedule();
}
}
@@ -42,7 +42,6 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRelationT
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRepository;
import org.apache.fineract.portfolio.loanaccount.repository.LoanCapitalizedIncomeBalanceRepository;
import org.apache.fineract.portfolio.loanaccount.util.CapitalizedIncomeAmortizationUtil;
import org.jetbrains.annotations.NotNull;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -60,7 +59,7 @@ public class LoanCapitalizedIncomeAmortizationProcessingServiceImpl implements L
@Override
@Transactional
public void processCapitalizedIncomeAmortizationOnLoanClosure(@NotNull final Loan loan, final boolean addJournal) {
public void processCapitalizedIncomeAmortizationOnLoanClosure(@NonNull final Loan loan, final boolean addJournal) {
final LocalDate transactionDate = getFinalCapitalizedIncomeAmortizationTransactionDate(loan);
final Optional<LoanTransaction> amortizationTransaction = createCapitalizedIncomeAmortizationTransaction(loan, transactionDate,
false, null);
@@ -80,7 +79,7 @@ public class LoanCapitalizedIncomeAmortizationProcessingServiceImpl implements L
@Override
@Transactional
public void processCapitalizedIncomeAmortizationOnLoanChargeOff(@NotNull final Loan loan,
public void processCapitalizedIncomeAmortizationOnLoanChargeOff(@NonNull final Loan loan,
@NonNull final LoanTransaction chargeOffTransaction) {
LocalDate transactionDate = loan.getChargedOffOnDate();
if (transactionDate == null) {
@@ -148,7 +147,7 @@ public class LoanCapitalizedIncomeAmortizationProcessingServiceImpl implements L
@Override
@Transactional
public void processCapitalizedIncomeAmortizationOnLoanUndoChargeOff(@NotNull final LoanTransaction loanTransaction) {
public void processCapitalizedIncomeAmortizationOnLoanUndoChargeOff(@NonNull final LoanTransaction loanTransaction) {
final Loan loan = loanTransaction.getLoan();
loan.getLoanTransactions().stream().filter(LoanTransaction::isCapitalizedIncomeAmortization)
@@ -25,7 +25,6 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Collection;
@@ -56,6 +55,7 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRepositor
import org.apache.fineract.portfolio.loanaccount.serialization.LoanChargeValidator;
import org.apache.fineract.portfolio.loanaccount.serialization.LoanDisbursementValidator;
import org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail;
import org.springframework.lang.NonNull;
@RequiredArgsConstructor
public class LoanDisbursementService {
@@ -117,8 +117,8 @@ public class LoanDisbursementService {
}
}
public Money adjustDisburseAmount(final Loan loan, @NotNull final JsonCommand command,
@NotNull final LocalDate actualDisbursementDate) {
public Money adjustDisburseAmount(final Loan loan, @NonNull final JsonCommand command,
@NonNull final LocalDate actualDisbursementDate) {
Money disburseAmount = loan.getLoanRepaymentScheduleDetail().getPrincipal().zero();
final BigDecimal principalDisbursed = command.bigDecimalValueOfParameterNamed(LoanApiConstants.principalDisbursedParameterName);
if (loan.getActualDisbursementDate() == null || DateUtils.isBefore(actualDisbursementDate, loan.getActualDisbursementDate())) {
@@ -18,7 +18,6 @@
*/
package org.apache.fineract.portfolio.loanaccount.service;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Map;
@@ -36,6 +35,7 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionType;
import org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail;
import org.apache.fineract.portfolio.paymentdetail.service.PaymentDetailWritePlatformService;
import org.springframework.lang.NonNull;
@RequiredArgsConstructor
public class LoanTransactionAssembler {
@@ -69,8 +69,8 @@ public class LoanTransactionAssembler {
txnExternalId, null);
}
public LoanTransaction assembleAccrualActivityTransaction(@NotNull Loan loan, @NotNull LoanRepaymentScheduleInstallment installment,
@NotNull LocalDate transactionDate) {
public LoanTransaction assembleAccrualActivityTransaction(@NonNull Loan loan, @NonNull LoanRepaymentScheduleInstallment installment,
@NonNull LocalDate transactionDate) {
ExternalId externalId = externalIdFactory.create();
BigDecimal interestPortion = installment.getInterestCharged();
@@ -18,7 +18,6 @@
*/
package org.apache.fineract.portfolio.savings.service;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.math.MathContext;
import java.time.LocalDate;
@@ -48,6 +47,7 @@ import org.apache.fineract.portfolio.savings.domain.SavingsHelper;
import org.apache.fineract.portfolio.savings.domain.interest.PostingPeriod;
import org.apache.fineract.portfolio.tax.data.TaxComponentData;
import org.apache.fineract.portfolio.tax.service.TaxUtils;
import org.springframework.lang.NonNull;
@RequiredArgsConstructor
public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountInterestPostingService {
@@ -346,7 +346,7 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI
return savingsAccountData.getSavingsAccountTransactionData();
}
private SavingsAccountTransactionData retrieveLastTransaction(@NotNull SavingsAccountData savingsAccountData) {
private SavingsAccountTransactionData retrieveLastTransaction(@NonNull SavingsAccountData savingsAccountData) {
List<SavingsAccountTransactionData> transactions = savingsAccountData.getSavingsAccountTransactionData();
if (transactions == null || transactions.isEmpty()) {
return savingsAccountData.getLastSavingsAccountTransaction(); // what is this?
@@ -22,7 +22,6 @@ import static org.apache.fineract.infrastructure.core.domain.AuditableFieldsCons
import static org.apache.fineract.portfolio.savings.SavingsApiConstants.SAVINGS_ACCOUNT_RESOURCE_NAME;
import com.google.gson.JsonObject;
import jakarta.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -50,13 +49,14 @@ import org.apache.fineract.portfolio.search.data.ColumnFilterData;
import org.apache.fineract.portfolio.search.data.TableQueryData;
import org.apache.fineract.portfolio.search.data.TransactionSearchRequest;
import org.apache.fineract.portfolio.search.service.SearchUtil;
import org.jetbrains.annotations.Nullable;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.support.PageableExecutionUtils;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
import org.springframework.transaction.annotation.Transactional;
@Transactional(readOnly = true)
@@ -72,8 +72,8 @@ public class SavingsAccountTransactionsSearchServiceImpl implements SavingsAccou
private final SearchUtil searchUtil;
@Override
public Page<SavingsAccountTransactionData> searchTransactions(@NotNull Long savingsId,
@NotNull TransactionSearchRequest searchParameters) {
public Page<SavingsAccountTransactionData> searchTransactions(@NonNull Long savingsId,
@NonNull TransactionSearchRequest searchParameters) {
context.authenticatedUser().validateHasReadPermission(SAVINGS_ACCOUNT_RESOURCE_NAME);
String apptable = EntityTables.SAVINGS_TRANSACTION.getApptableName();
@@ -130,8 +130,8 @@ public class SavingsAccountTransactionsSearchServiceImpl implements SavingsAccou
return PageableExecutionUtils.getPage(results, pageable, () -> totalElements);
}
private static void addFromToFilter(@NotNull String column, String fromValue, String toValue,
@NotNull List<ColumnFilterData> columnFilters) {
private static void addFromToFilter(@NonNull String column, String fromValue, String toValue,
@NonNull List<ColumnFilterData> columnFilters) {
if (fromValue != null) {
columnFilters.add(toValue == null ? ColumnFilterData.create(column, SqlOperator.GTE, fromValue)
: ColumnFilterData.btw(column, fromValue, toValue));
@@ -141,7 +141,7 @@ public class SavingsAccountTransactionsSearchServiceImpl implements SavingsAccou
}
@Nullable
private static Boolean addTransactionTypesFilter(@NotNull TransactionSearchRequest searchParameters,
private static Boolean addTransactionTypesFilter(@NonNull TransactionSearchRequest searchParameters,
List<ColumnFilterData> columnFilters) {
Predicate<SavingsAccountTransactionType> filter = null;
Boolean credit = searchParameters.getCredit();
@@ -178,7 +178,7 @@ public class SavingsAccountTransactionsSearchServiceImpl implements SavingsAccou
}
@Override
public Page<JsonObject> queryAdvanced(@NotNull Long savingsId, @NotNull PagedLocalRequest<AdvancedQueryRequest> pagedRequest) {
public Page<JsonObject> queryAdvanced(@NonNull Long savingsId, @NonNull PagedLocalRequest<AdvancedQueryRequest> pagedRequest) {
context.authenticatedUser().validateHasReadPermission(SAVINGS_ACCOUNT_RESOURCE_NAME);
String apptable = EntityTables.SAVINGS_TRANSACTION.getApptableName();
@@ -57,7 +57,6 @@ import org.apache.fineract.infrastructure.core.exception.IdempotentCommandProces
import org.apache.fineract.infrastructure.core.serialization.ToApiJsonSerializer;
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import org.apache.fineract.useradministration.domain.AppUser;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -67,6 +66,7 @@ import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.Spy;
import org.springframework.context.ApplicationContext;
import org.springframework.lang.NonNull;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@@ -454,7 +454,7 @@ public class SynchronousCommandProcessingServiceTest {
verify(commandSourceService).generateErrorInfo(runtimeException);
}
@NotNull
@NonNull
private static CommandWrapper getCommandWrapper() {
CommandWrapper commandWrapper = Mockito.mock(CommandWrapper.class);
when(commandWrapper.isDatatableResource()).thenReturn(false);
@@ -46,12 +46,12 @@ import org.apache.fineract.portfolio.delinquency.domain.LoanDelinquencyAction;
import org.apache.fineract.portfolio.delinquency.helper.DelinquencyEffectivePauseHelper;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.apache.fineract.portfolio.loanaccount.domain.LoanStatus;
import org.jetbrains.annotations.Nullable;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.function.Executable;
import org.mockito.Mockito;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
class DelinquencyActionParseAndValidatorTest {
@@ -19,16 +19,16 @@
package org.apache.fineract.portfolio.savings.service.search;
import com.google.gson.JsonObject;
import jakarta.validation.constraints.NotNull;
import org.apache.fineract.infrastructure.core.service.PagedLocalRequest;
import org.apache.fineract.portfolio.savings.data.SavingsAccountTransactionData;
import org.apache.fineract.portfolio.search.data.AdvancedQueryRequest;
import org.apache.fineract.portfolio.search.data.TransactionSearchRequest;
import org.springframework.data.domain.Page;
import org.springframework.lang.NonNull;
public interface SavingsAccountTransactionSearchService {
Page<SavingsAccountTransactionData> searchTransactions(@NotNull Long savingsId, @NotNull TransactionSearchRequest searchParameters);
Page<SavingsAccountTransactionData> searchTransactions(@NonNull Long savingsId, @NonNull TransactionSearchRequest searchParameters);
Page<JsonObject> queryAdvanced(@NotNull Long savingsId, @NotNull PagedLocalRequest<AdvancedQueryRequest> pagedRequest);
Page<JsonObject> queryAdvanced(@NonNull Long savingsId, @NonNull PagedLocalRequest<AdvancedQueryRequest> pagedRequest);
}
@@ -39,9 +39,9 @@ import org.apache.fineract.integrationtests.common.Utils;
import org.apache.fineract.portfolio.loanaccount.loanschedule.domain.LoanScheduleProcessingType;
import org.apache.fineract.portfolio.loanaccount.loanschedule.domain.LoanScheduleType;
import org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationType;
import org.jetbrains.annotations.Nullable;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.lang.Nullable;
@Slf4j
public class LoanChargebackWithCreditAllocationsIntegrationTests extends BaseLoanIntegrationTest {
@@ -36,9 +36,9 @@ import org.apache.fineract.integrationtests.common.Utils;
import org.apache.fineract.integrationtests.common.accounting.Account;
import org.apache.fineract.integrationtests.common.products.DelinquencyBucketsHelper;
import org.apache.fineract.integrationtests.common.system.CodeHelper;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.lang.NonNull;
public class LoanProductChargeOffReasonMappingsTest extends BaseLoanIntegrationTest {
@@ -225,7 +225,7 @@ public class LoanProductChargeOffReasonMappingsTest extends BaseLoanIntegrationT
.allowPartialPeriodInterestCalcualtion(false);//
}
@NotNull
@NonNull
private static List<PostChargeOffReasonToExpenseAccountMappings> createPostChargeOffReasonToExpenseAccountMappings(
Long chargeOffReasonId, Long glAccountId) {
List<PostChargeOffReasonToExpenseAccountMappings> chargeOffReasonToExpenseAccountMappings = new ArrayList<>();
@@ -59,10 +59,10 @@ import org.apache.fineract.integrationtests.common.loans.LoanApplicationTestBuil
import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder;
import org.apache.fineract.integrationtests.common.loans.LoanStatusChecker;
import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.springframework.lang.NonNull;
@SuppressWarnings("rawtypes")
@Slf4j
@@ -214,7 +214,7 @@ public class CobPartitioningTest extends BaseLoanIntegrationTest {
globalConfigurationHelper.manageConfigurations(GlobalConfigurationConstants.ENABLE_AUTO_GENERATED_EXTERNAL_ID, false);
}
@NotNull
@NonNull
private Integer createClient() {
final Integer clientID = ClientHelper.createClient(REQUEST_SPEC, RESPONSE_SPEC);
Assertions.assertNotNull(clientID);
@@ -231,7 +231,7 @@ public class CobPartitioningTest extends BaseLoanIntegrationTest {
return loanProductID;
}
@NotNull
@NonNull
private Integer createLoanForClient(Integer clientID, Integer loanProductID) {
HashMap loanStatusHashMap;
@@ -25,7 +25,7 @@ import org.apache.fineract.client.models.IsCatchUpRunningDTO;
import org.apache.fineract.client.models.OldestCOBProcessedLoanDTO;
import org.apache.fineract.client.util.Calls;
import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.jetbrains.annotations.NotNull;
import org.springframework.lang.NonNull;
import retrofit2.Response;
@Slf4j
@@ -38,7 +38,7 @@ public class LoanCOBCatchUpHelper {
return Boolean.TRUE.equals(Objects.requireNonNull(response.body()).getCatchUpRunning());
}
public boolean isLoanCOBCatchUpFinishedFor(@NotNull LocalDate cobBusinessDate) {
public boolean isLoanCOBCatchUpFinishedFor(@NonNull LocalDate cobBusinessDate) {
Response<IsCatchUpRunningDTO> response = executeGetLoanCatchUpStatus();
IsCatchUpRunningDTO isCatchUpRunningResponse = Objects.requireNonNull(response.body());
OldestCOBProcessedLoanDTO getOldestCOBProcessedLoanResponse = executeRetrieveOldestCOBProcessedLoan();
@@ -78,11 +78,11 @@ import org.apache.fineract.integrationtests.common.savings.SavingsAccountHelper;
import org.apache.fineract.integrationtests.common.savings.SavingsProductHelper;
import org.apache.fineract.integrationtests.common.savings.SavingsStatusChecker;
import org.apache.fineract.integrationtests.common.system.DatatableHelper;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.lang.NonNull;
public class DatatableAdvancedQueryTest {
@@ -344,7 +344,7 @@ public class DatatableAdvancedQueryTest {
return datatable;
}
@NotNull
@NonNull
private HashMap<String, Object> createDatatableEntry(String datatable, Integer apptableId, LocalDate dateValue, Boolean boolValue,
Integer intValue, BigDecimal decValue) {
final HashMap<String, Object> request = new HashMap<>();
@@ -70,10 +70,10 @@ import org.apache.fineract.integrationtests.common.loans.LoanApplicationTestBuil
import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder;
import org.apache.fineract.integrationtests.common.loans.LoanStatusChecker;
import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.springframework.lang.NonNull;
@SuppressWarnings("rawtypes")
public class ExternalAssetOwnerTransferCancelTest extends BaseLoanIntegrationTest {
@@ -288,14 +288,14 @@ public class ExternalAssetOwnerTransferCancelTest extends BaseLoanIntegrationTes
new PutGlobalConfigurationsRequest().enabled(false));
}
@NotNull
@NonNull
private Integer createClient() {
final Integer clientID = ClientHelper.createClient(REQUEST_SPEC, RESPONSE_SPEC);
Assertions.assertNotNull(clientID);
return clientID;
}
@NotNull
@NonNull
private Integer createLoanForClient(Integer clientID) {
Integer overdueFeeChargeId = ChargesHelper.createCharges(REQUEST_SPEC, RESPONSE_SPEC,
ChargesHelper.getLoanOverdueFeeJSONWithCalculationTypePercentage("1"));
@@ -66,9 +66,9 @@ import org.apache.fineract.integrationtests.common.loans.LoanApplicationTestBuil
import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder;
import org.apache.fineract.integrationtests.common.loans.LoanStatusChecker;
import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.springframework.lang.NonNull;
@Slf4j
public class ExternalAssetOwnerTransferTest extends BaseLoanIntegrationTest {
@@ -177,14 +177,14 @@ public class ExternalAssetOwnerTransferTest extends BaseLoanIntegrationTest {
globalConfigurationHelper.manageConfigurations(GlobalConfigurationConstants.ENABLE_AUTO_GENERATED_EXTERNAL_ID, false);
}
@NotNull
@NonNull
protected Integer createClient() {
final Integer clientID = ClientHelper.createClient(REQUEST_SPEC, RESPONSE_SPEC);
Assertions.assertNotNull(clientID);
return clientID;
}
@NotNull
@NonNull
protected Integer createLoanForClient(Integer clientID, String transactionDate) {
Integer overdueFeeChargeId = ChargesHelper.createCharges(REQUEST_SPEC, RESPONSE_SPEC,
ChargesHelper.getLoanOverdueFeeJSONWithCalculationTypePercentage("1"));
@@ -100,11 +100,11 @@ import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
import org.apache.fineract.integrationtests.common.report.ReportHelper;
import org.apache.fineract.portfolio.loanaccount.domain.LoanStatus;
import org.hamcrest.Matchers;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.lang.NonNull;
@SuppressWarnings("rawtypes")
@ExtendWith({ ExternalEventsExtension.class })
@@ -1312,14 +1312,14 @@ public class InitiateExternalAssetOwnerTransferTest extends BaseLoanIntegrationT
globalConfigurationHelper.manageConfigurations(GlobalConfigurationConstants.ENABLE_AUTO_GENERATED_EXTERNAL_ID, false);
}
@NotNull
@NonNull
private Integer createClient() {
final Integer clientID = ClientHelper.createClient(REQUEST_SPEC, RESPONSE_SPEC);
Assertions.assertNotNull(clientID);
return clientID;
}
@NotNull
@NonNull
private Integer createLoanForClient(Integer clientID) {
Integer overdueFeeChargeId = ChargesHelper.createCharges(REQUEST_SPEC, RESPONSE_SPEC,
ChargesHelper.getLoanOverdueFeeJSONWithCalculationTypePercentage("1"));