diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index 9634f88e7..ca876834d 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -100,6 +100,14 @@ + + + + + + + diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/DateUtils.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/DateUtils.java index 088a99ebc..3f5eadf16 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/DateUtils.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/DateUtils.java @@ -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 first, @NotNull Optional second) { + public static int compareWithNullsLast(@NonNull Optional first, @NonNull Optional 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) { diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/MathUtil.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/MathUtil.java index 8ce760217..bf56d652a 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/MathUtil.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/MathUtil.java @@ -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)); } diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/DatabaseSpecificSQLGenerator.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/DatabaseSpecificSQLGenerator.java index 81ff3a0fe..9d66e6821 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/DatabaseSpecificSQLGenerator.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/DatabaseSpecificSQLGenerator.java @@ -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 fields, Map headers) { + public String buildInsert(@NonNull String definition, List fields, Map 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 fields, Map headers) { + public String buildUpdate(@NonNull String definition, List fields, Map headers) { if (fields == null || fields.isEmpty()) { return ""; } diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JavaType.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JavaType.java index 3d1536c7b..193a0c99c 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JavaType.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JavaType.java @@ -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; diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JdbcJavaType.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JdbcJavaType.java index 971dbaecc..f6ee159c6 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JdbcJavaType.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JdbcJavaType.java @@ -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 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 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; } diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/SqlOperator.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/SqlOperator.java index 3a2e101c8..ec33b9c6d 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/SqlOperator.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/SqlOperator.java @@ -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 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()); } diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableReadService.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableReadService.java index f8c3d3e6b..095627643 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableReadService.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableReadService.java @@ -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 queryDataTable(@NotNull String datatable, @NotNull String columnName, String columnValue, - @NotNull String resultColumns); + List queryDataTable(@NonNull String datatable, @NonNull String columnName, String columnValue, + @NonNull String resultColumns); - Page queryDataTableAdvanced(@NotNull String datatable, @NotNull PagedLocalRequest pagedRequest); + Page queryDataTableAdvanced(@NonNull String datatable, @NonNull PagedLocalRequest pagedRequest); - boolean buildDataQueryEmbedded(@NotNull EntityTables entityTable, @NotNull String datatable, @NotNull AdvancedQueryData request, - @NotNull List selectColumns, @NotNull StringBuilder select, @NotNull StringBuilder from, @NotNull StringBuilder where, - @NotNull List params, String mainAlias, String alias, String dateFormat, String dateTimeFormat, Locale locale); + boolean buildDataQueryEmbedded(@NonNull EntityTables entityTable, @NonNull String datatable, @NonNull AdvancedQueryData request, + @NonNull List selectColumns, @NonNull StringBuilder select, @NonNull StringBuilder from, @NonNull StringBuilder where, + @NonNull List params, String mainAlias, String alias, String dateFormat, String dateTimeFormat, Locale locale); GenericResultsetData retrieveDataTableGenericResultSet(String datatable, Long appTableId, String order, Long id); diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/jobs/service/SchedulerJobRunnerReadService.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/jobs/service/SchedulerJobRunnerReadService.java index ba40b7deb..e8e0710a8 100755 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/jobs/service/SchedulerJobRunnerReadService.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/jobs/service/SchedulerJobRunnerReadService.java @@ -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 findAllJobDetails(); - JobDetailData retrieveOne(@NotNull IdTypeResolver.IdType idType, String identifier); + JobDetailData retrieveOne(@NonNull IdTypeResolver.IdType idType, String identifier); - Page retrieveJobHistory(@NotNull IdTypeResolver.IdType idType, String identifier, + Page 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(); } diff --git a/fineract-investor/src/test/java/org/apache/fineract/investor/cob/loan/LoanAccountOwnerTransferBusinessStepTest.java b/fineract-investor/src/test/java/org/apache/fineract/investor/cob/loan/LoanAccountOwnerTransferBusinessStepTest.java index 03b503080..a102ea639 100644 --- a/fineract-investor/src/test/java/org/apache/fineract/investor/cob/loan/LoanAccountOwnerTransferBusinessStepTest.java +++ b/fineract-investor/src/test/java/org/apache/fineract/investor/cob/loan/LoanAccountOwnerTransferBusinessStepTest.java @@ -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> verifyBusinessEvents(int expectedBusinessEvents) { @SuppressWarnings("unchecked") ArgumentCaptor> businessEventArgumentCaptor = ArgumentCaptor.forClass(BusinessEvent.class); diff --git a/fineract-investor/src/test/java/org/apache/fineract/investor/service/LoanAccountOwnerTransferServiceTest.java b/fineract-investor/src/test/java/org/apache/fineract/investor/service/LoanAccountOwnerTransferServiceTest.java index bbd251ec5..66e0e945a 100644 --- a/fineract-investor/src/test/java/org/apache/fineract/investor/service/LoanAccountOwnerTransferServiceTest.java +++ b/fineract-investor/src/test/java/org/apache/fineract/investor/service/LoanAccountOwnerTransferServiceTest.java @@ -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> verifyBusinessEvents(int expectedBusinessEvents) { @SuppressWarnings("unchecked") ArgumentCaptor> businessEventArgumentCaptor = ArgumentCaptor.forClass(BusinessEvent.class); diff --git a/fineract-loan/src/main/java/org/apache/fineract/portfolio/delinquency/validator/DelinquencyActionParseAndValidator.java b/fineract-loan/src/main/java/org/apache/fineract/portfolio/delinquency/validator/DelinquencyActionParseAndValidator.java index a9779d9b1..f7e7ebaa0 100644 --- a/fineract-loan/src/main/java/org/apache/fineract/portfolio/delinquency/validator/DelinquencyActionParseAndValidator.java +++ b/fineract-loan/src/main/java/org/apache/fineract/portfolio/delinquency/validator/DelinquencyActionParseAndValidator.java @@ -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 savedDelinquencyActions, LocalDate businessDate) { List 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())); diff --git a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualActivityProcessingService.java b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualActivityProcessingService.java index 6f7f67750..a3c233915 100644 --- a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualActivityProcessingService.java +++ b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualActivityProcessingService.java @@ -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); } diff --git a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualsProcessingService.java b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualsProcessingService.java index d92505c6d..be7e05a4a 100644 --- a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualsProcessingService.java +++ b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualsProcessingService.java @@ -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 newAccrualTransactions); + void processAccrualsOnLoanForeClosure(@NonNull Loan loan, @NonNull LocalDate foreClosureDate, + @NonNull List newAccrualTransactions); } diff --git a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformService.java b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformService.java index 87bedcb3a..7878ed215 100644 --- a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformService.java +++ b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformService.java @@ -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 retrieveLoanTransactions(Long loanId); - org.springframework.data.domain.Page retrieveLoanTransactions(@NotNull Long loanId, + org.springframework.data.domain.Page retrieveLoanTransactions(@NonNull Long loanId, Set excludedTransactionTypes, Pageable pageable); LoanAccountData retrieveTemplateWithClientAndProductDetails(Long clientId, Long productId); diff --git a/fineract-loan/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/SingleLoanChargeRepaymentScheduleProcessingWrapperTest.java b/fineract-loan/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/SingleLoanChargeRepaymentScheduleProcessingWrapperTest.java index 290b3e733..d4295bbe4 100644 --- a/fineract-loan/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/SingleLoanChargeRepaymentScheduleProcessingWrapperTest.java +++ b/fineract-loan/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/SingleLoanChargeRepaymentScheduleProcessingWrapperTest.java @@ -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); diff --git a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/ProgressiveLoanInterestScheduleModelParserServiceGsonImpl.java b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/ProgressiveLoanInterestScheduleModelParserServiceGsonImpl.java index 1b7d41ff8..c07b44040 100644 --- a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/ProgressiveLoanInterestScheduleModelParserServiceGsonImpl.java +++ b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/ProgressiveLoanInterestScheduleModelParserServiceGsonImpl.java @@ -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; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/ThitsaWorksCreditBureauIntegrationWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/ThitsaWorksCreditBureauIntegrationWritePlatformServiceImpl.java index 3a3a2abcf..1024dbb30 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/ThitsaWorksCreditBureauIntegrationWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/ThitsaWorksCreditBureauIntegrationWritePlatformServiceImpl.java @@ -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)) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableReadServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableReadServiceImpl.java index 6e93d3c4c..b7ee53911 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableReadServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableReadServiceImpl.java @@ -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 queryDataTable(@NotNull String datatable, @NotNull String columnName, String columnValueString, - @NotNull String resultColumnsString) { + public List queryDataTable(@NonNull String datatable, @NonNull String columnName, String columnValueString, + @NonNull String resultColumnsString) { datatable = datatableUtil.validateDatatableRegistered(datatable); Map headersByName = searchUtil .mapHeadersToName(genericDataService.fillResultsetColumnHeaders(datatable)); @@ -149,7 +149,7 @@ public class DatatableReadServiceImpl implements DatatableReadService { } @Override - public Page queryDataTableAdvanced(@NotNull String datatable, @NotNull PagedLocalRequest pagedRequest) { + public Page queryDataTableAdvanced(@NonNull String datatable, @NonNull PagedLocalRequest 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 selectColumns, @NotNull StringBuilder select, @NotNull StringBuilder from, @NotNull StringBuilder where, - @NotNull List 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 selectColumns, @NonNull StringBuilder select, @NonNull StringBuilder from, @NonNull StringBuilder where, + @NonNull List params, String mainAlias, String alias, String dateFormat, String dateTimeFormat, Locale locale) { List resultColumns = request.getResultColumns(); List columnFilters = request.getColumnFilters(); if ((resultColumns == null || resultColumns.isEmpty()) && (columnFilters == null || columnFilters.isEmpty())) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableUtil.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableUtil.java index 2cbfaa7b1..c19e3f93c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableUtil.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableUtil.java @@ -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(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableWriteServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableWriteServiceImpl.java index c9d9c595c..7caee5280 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableWriteServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/DatatableWriteServiceImpl.java @@ -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 ""; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/EntityDatatableChecksReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/EntityDatatableChecksReadPlatformServiceImpl.java index 6915940df..38d6deea8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/EntityDatatableChecksReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/EntityDatatableChecksReadPlatformServiceImpl.java @@ -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 retrieveAll(@NotNull SearchParameters searchParameters, final Integer status, + public Page 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()); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/SchedulerJobRunnerReadServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/SchedulerJobRunnerReadServiceImpl.java index 8f811e6b8..40a5c2839 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/SchedulerJobRunnerReadServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/SchedulerJobRunnerReadServiceImpl.java @@ -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 retrieveJobHistory(@NotNull IdTypeResolver.IdType idType, String identifier, + public Page 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); diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropService.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropService.java index 02f4e5660..a2e79a5dd 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropService.java @@ -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); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropServiceImpl.java index a911a64db..23157ed7e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropServiceImpl.java @@ -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; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualsProcessingServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualsProcessingServiceImpl.java index f6fe4cb99..4b004c9ab 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualsProcessingServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualsProcessingServiceImpl.java @@ -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 loans = loanRepositoryWrapper.findLoansForPeriodicAccrual(AccountingRuleType.ACCRUAL_PERIODIC, tillDate, !isChargeOnDueDate()); List 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 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 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 newAccrualTransactions) { + public void processAccrualsOnLoanForeClosure(@NonNull Loan loan, @NonNull LocalDate foreClosureDate, + @NonNull List 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 getInstallmentsToAccrue(@NotNull final Loan loan, @NotNull final LocalDate tillDate, + @NonNull + private List 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 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 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, - @NotNull final LocalDate tillDate) { + @NonNull + private BigDecimal calcChargeWaivedAmount(@NonNull final Collection 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 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(); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanCapitalizedIncomeAmortizationProcessingServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanCapitalizedIncomeAmortizationProcessingServiceImpl.java index 1fd36d238..e9ed6b495 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanCapitalizedIncomeAmortizationProcessingServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanCapitalizedIncomeAmortizationProcessingServiceImpl.java @@ -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 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) diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanDisbursementService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanDisbursementService.java index a23e07185..3ada0cf9d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanDisbursementService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanDisbursementService.java @@ -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())) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanTransactionAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanTransactionAssembler.java index cc8004727..d19984896 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanTransactionAssembler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanTransactionAssembler.java @@ -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(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingServiceImpl.java index 59d7e04da..b952b24a5 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingServiceImpl.java @@ -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 transactions = savingsAccountData.getSavingsAccountTransactionData(); if (transactions == null || transactions.isEmpty()) { return savingsAccountData.getLastSavingsAccountTransaction(); // what is this? diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionsSearchServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionsSearchServiceImpl.java index b954131df..e08aae878 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionsSearchServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionsSearchServiceImpl.java @@ -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 searchTransactions(@NotNull Long savingsId, - @NotNull TransactionSearchRequest searchParameters) { + public Page 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 columnFilters) { + private static void addFromToFilter(@NonNull String column, String fromValue, String toValue, + @NonNull List 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 columnFilters) { Predicate filter = null; Boolean credit = searchParameters.getCredit(); @@ -178,7 +178,7 @@ public class SavingsAccountTransactionsSearchServiceImpl implements SavingsAccou } @Override - public Page queryAdvanced(@NotNull Long savingsId, @NotNull PagedLocalRequest pagedRequest) { + public Page queryAdvanced(@NonNull Long savingsId, @NonNull PagedLocalRequest pagedRequest) { context.authenticatedUser().validateHasReadPermission(SAVINGS_ACCOUNT_RESOURCE_NAME); String apptable = EntityTables.SAVINGS_TRANSACTION.getApptableName(); diff --git a/fineract-provider/src/test/java/org/apache/fineract/commands/service/SynchronousCommandProcessingServiceTest.java b/fineract-provider/src/test/java/org/apache/fineract/commands/service/SynchronousCommandProcessingServiceTest.java index 4f45f8326..4e71ae795 100644 --- a/fineract-provider/src/test/java/org/apache/fineract/commands/service/SynchronousCommandProcessingServiceTest.java +++ b/fineract-provider/src/test/java/org/apache/fineract/commands/service/SynchronousCommandProcessingServiceTest.java @@ -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); diff --git a/fineract-provider/src/test/java/org/apache/fineract/portfolio/delinquency/validator/DelinquencyActionParseAndValidatorTest.java b/fineract-provider/src/test/java/org/apache/fineract/portfolio/delinquency/validator/DelinquencyActionParseAndValidatorTest.java index c013d2df3..89001fb1c 100644 --- a/fineract-provider/src/test/java/org/apache/fineract/portfolio/delinquency/validator/DelinquencyActionParseAndValidatorTest.java +++ b/fineract-provider/src/test/java/org/apache/fineract/portfolio/delinquency/validator/DelinquencyActionParseAndValidatorTest.java @@ -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 { diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionSearchService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionSearchService.java index 73e35bd55..d55a3278a 100644 --- a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionSearchService.java +++ b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionSearchService.java @@ -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 searchTransactions(@NotNull Long savingsId, @NotNull TransactionSearchRequest searchParameters); + Page searchTransactions(@NonNull Long savingsId, @NonNull TransactionSearchRequest searchParameters); - Page queryAdvanced(@NotNull Long savingsId, @NotNull PagedLocalRequest pagedRequest); + Page queryAdvanced(@NonNull Long savingsId, @NonNull PagedLocalRequest pagedRequest); } diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanChargebackWithCreditAllocationsIntegrationTests.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanChargebackWithCreditAllocationsIntegrationTests.java index 14a24c0ee..7a1fab153 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanChargebackWithCreditAllocationsIntegrationTests.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanChargebackWithCreditAllocationsIntegrationTests.java @@ -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 { diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanProductChargeOffReasonMappingsTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanProductChargeOffReasonMappingsTest.java index d06dc4228..ffd257a18 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanProductChargeOffReasonMappingsTest.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanProductChargeOffReasonMappingsTest.java @@ -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 createPostChargeOffReasonToExpenseAccountMappings( Long chargeOffReasonId, Long glAccountId) { List chargeOffReasonToExpenseAccountMappings = new ArrayList<>(); diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/cob/CobPartitioningTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/cob/CobPartitioningTest.java index 0d427700b..c511e303b 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/cob/CobPartitioningTest.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/cob/CobPartitioningTest.java @@ -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; diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/loans/LoanCOBCatchUpHelper.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/loans/LoanCOBCatchUpHelper.java index 1ee4ffc1d..de13172e2 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/loans/LoanCOBCatchUpHelper.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/loans/LoanCOBCatchUpHelper.java @@ -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 response = executeGetLoanCatchUpStatus(); IsCatchUpRunningDTO isCatchUpRunningResponse = Objects.requireNonNull(response.body()); OldestCOBProcessedLoanDTO getOldestCOBProcessedLoanResponse = executeRetrieveOldestCOBProcessedLoan(); diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/datatable/DatatableAdvancedQueryTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/datatable/DatatableAdvancedQueryTest.java index 82961ed2c..dd60c59f0 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/datatable/DatatableAdvancedQueryTest.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/datatable/DatatableAdvancedQueryTest.java @@ -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 createDatatableEntry(String datatable, Integer apptableId, LocalDate dateValue, Boolean boolValue, Integer intValue, BigDecimal decValue) { final HashMap request = new HashMap<>(); diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/ExternalAssetOwnerTransferCancelTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/ExternalAssetOwnerTransferCancelTest.java index 3bfddb93c..c38d91c51 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/ExternalAssetOwnerTransferCancelTest.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/ExternalAssetOwnerTransferCancelTest.java @@ -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")); diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/ExternalAssetOwnerTransferTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/ExternalAssetOwnerTransferTest.java index b89e4db5e..8eff86f30 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/ExternalAssetOwnerTransferTest.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/ExternalAssetOwnerTransferTest.java @@ -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")); diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/InitiateExternalAssetOwnerTransferTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/InitiateExternalAssetOwnerTransferTest.java index 86720e42e..7848cf6ad 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/InitiateExternalAssetOwnerTransferTest.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/InitiateExternalAssetOwnerTransferTest.java @@ -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"));