FINERACT-2267: proper not null annotations. Remove jetbrains notnull, all services use non-null
This commit is contained in:
@@ -100,6 +100,14 @@
|
||||
<property name="forbiddenImportsRegexp" value="com.google.common.base.Charsets" />
|
||||
<property name="forbiddenImportsExcludesRegexp" value="" />
|
||||
<message key="forbid.certain.imports" value="Use ''java.nio.charset.StandardCharsets'' instead of ''{0}''" />
|
||||
</module>
|
||||
<!-- Forbid JetBrains annotations in Java sources; prefer Jakarta or Spring annotations -->
|
||||
<module name="com.github.sevntu.checkstyle.checks.coding.ForbidCertainImportsCheck">
|
||||
<property name="packageNameRegexp" value=".*" />
|
||||
<property name="forbiddenImportsRegexp" value="org.jetbrains.annotations(\..*)?" />
|
||||
<property name="forbiddenImportsExcludesRegexp" value="" />
|
||||
<message key="forbid.certain.imports"
|
||||
value="Use 'jakarta.validation.constraints.NotNull' (API/DTO) or 'org.springframework.lang.NonNull' (services) instead of JetBrains annotations: ''{0}''" />
|
||||
</module>
|
||||
<module name="OneStatementPerLine"/>
|
||||
<module name="EmptyStatement"/>
|
||||
|
||||
+8
-8
@@ -20,7 +20,6 @@ package org.apache.fineract.infrastructure.core.service;
|
||||
|
||||
import static java.time.temporal.ChronoUnit.DAYS;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
@@ -41,6 +40,7 @@ import org.apache.fineract.infrastructure.core.data.ApiParameterError;
|
||||
import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenant;
|
||||
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
||||
import org.apache.fineract.infrastructure.core.serialization.JsonParserHelper;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
public final class DateUtils {
|
||||
|
||||
@@ -86,8 +86,8 @@ public final class DateUtils {
|
||||
return truncate == null ? now : now.truncatedTo(truncate);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static OffsetDateTime getOffsetDateTimeOfTenantFromLocalDate(@NotNull final LocalDate date) {
|
||||
@NonNull
|
||||
public static OffsetDateTime getOffsetDateTimeOfTenantFromLocalDate(@NonNull final LocalDate date) {
|
||||
return OffsetDateTime.of(date.atStartOfDay(), getOffsetDateTimeOfTenant().getOffset());
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ public final class DateUtils {
|
||||
return compare(first, second, null, false);
|
||||
}
|
||||
|
||||
public static int compareWithNullsLast(@NotNull Optional<OffsetDateTime> first, @NotNull Optional<OffsetDateTime> second) {
|
||||
public static int compareWithNullsLast(@NonNull Optional<OffsetDateTime> first, @NonNull Optional<OffsetDateTime> second) {
|
||||
return compareWithNullsLast(first.orElse(null), second.orElse(null));
|
||||
}
|
||||
|
||||
@@ -302,14 +302,14 @@ public final class DateUtils {
|
||||
return isAfter(first, second) || isEqual(first, second);
|
||||
}
|
||||
|
||||
public static long getDifference(LocalDate first, LocalDate second, @NotNull ChronoUnit unit) {
|
||||
public static long getDifference(LocalDate first, LocalDate second, @NonNull ChronoUnit unit) {
|
||||
if (first == null || second == null) {
|
||||
throw new IllegalArgumentException("Dates must not be null to get difference");
|
||||
}
|
||||
return unit.between(first, second);
|
||||
}
|
||||
|
||||
public static int getExactDifference(LocalDate first, LocalDate second, @NotNull ChronoUnit unit) {
|
||||
public static int getExactDifference(LocalDate first, LocalDate second, @NonNull ChronoUnit unit) {
|
||||
return Math.toIntExact(getDifference(first, second, unit));
|
||||
}
|
||||
|
||||
@@ -413,7 +413,7 @@ public final class DateUtils {
|
||||
return fromDate != null && DateUtils.isAfter(targetDate, fromDate) && !DateUtils.isAfter(targetDate, toDate);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
private static DateTimeFormatter getDateFormatter(String format, Locale locale) {
|
||||
DateTimeFormatter formatter = DEFAULT_DATE_FORMATTER;
|
||||
if (format != null || locale != null) {
|
||||
@@ -425,7 +425,7 @@ public final class DateUtils {
|
||||
return formatter;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
private static DateTimeFormatter getDateTimeFormatter(String format, Locale locale) {
|
||||
DateTimeFormatter formatter = DEFAULT_DATETIME_FORMATTER;
|
||||
if (format != null || locale != null) {
|
||||
|
||||
+5
-5
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
+7
-7
@@ -20,7 +20,6 @@ package org.apache.fineract.infrastructure.core.service.database;
|
||||
|
||||
import static java.lang.String.format;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.math.BigInteger;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Collection;
|
||||
@@ -35,6 +34,7 @@ import org.apache.logging.log4j.util.Strings;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.jdbc.datasource.DataSourceUtils;
|
||||
import org.springframework.jdbc.support.GeneratedKeyHolder;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@@ -96,7 +96,7 @@ public class DatabaseSpecificSQLGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
public String countLastExecutedQueryResult(@NotNull String sql) {
|
||||
public String countLastExecutedQueryResult(@NonNull String sql) {
|
||||
if (databaseTypeResolver.isMySQL()) {
|
||||
return "SELECT FOUND_ROWS()";
|
||||
} else {
|
||||
@@ -104,7 +104,7 @@ public class DatabaseSpecificSQLGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
public String countQueryResult(@NotNull String sql) {
|
||||
public String countQueryResult(@NonNull String sql) {
|
||||
// Needs to remove the limit and offset
|
||||
sql = sql.replaceAll("LIMIT \\d+", "").replaceAll("OFFSET \\d+", "").trim();
|
||||
return format("SELECT COUNT(*) FROM (%s) AS temp", sql);
|
||||
@@ -201,7 +201,7 @@ public class DatabaseSpecificSQLGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
public String alias(@NotNull String field, String alias) {
|
||||
public String alias(@NonNull String field, String alias) {
|
||||
return Strings.isEmpty(alias) ? field : (alias + '.') + field;
|
||||
}
|
||||
|
||||
@@ -227,7 +227,7 @@ public class DatabaseSpecificSQLGenerator {
|
||||
return from + escape(definition) + (Strings.isEmpty(alias) ? "" : (" " + alias));
|
||||
}
|
||||
|
||||
public String buildJoin(@NotNull String definition, String alias, @NotNull String fkCol, String refAlias, @NotNull String refCol,
|
||||
public String buildJoin(@NonNull String definition, String alias, @NonNull String fkCol, String refAlias, @NonNull String refCol,
|
||||
String joinType) {
|
||||
String join = Strings.isEmpty(joinType) ? "JOIN" : (joinType + " JOIN");
|
||||
alias = Strings.isEmpty(alias) ? "" : (" " + alias);
|
||||
@@ -246,7 +246,7 @@ public class DatabaseSpecificSQLGenerator {
|
||||
.collect(Collectors.joining(", "));
|
||||
}
|
||||
|
||||
public String buildInsert(@NotNull String definition, List<String> fields, Map<String, ResultsetColumnHeaderData> headers) {
|
||||
public String buildInsert(@NonNull String definition, List<String> fields, Map<String, ResultsetColumnHeaderData> headers) {
|
||||
if (fields == null || fields.isEmpty()) {
|
||||
return "";
|
||||
}
|
||||
@@ -254,7 +254,7 @@ public class DatabaseSpecificSQLGenerator {
|
||||
+ ") VALUES (" + fields.stream().map(e -> decoratePlaceHolder(headers, e, "?")).collect(Collectors.joining(", ")) + ")";
|
||||
}
|
||||
|
||||
public String buildUpdate(@NotNull String definition, List<String> fields, Map<String, ResultsetColumnHeaderData> headers) {
|
||||
public String buildUpdate(@NonNull String definition, List<String> fields, Map<String, ResultsetColumnHeaderData> headers) {
|
||||
if (fields == null || fields.isEmpty()) {
|
||||
return "";
|
||||
}
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
+29
-29
@@ -19,10 +19,10 @@
|
||||
package org.apache.fineract.infrastructure.core.service.database;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
import java.sql.JDBCType;
|
||||
import org.apache.fineract.infrastructure.core.exception.PlatformServiceUnavailableException;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
public enum JdbcJavaType {
|
||||
|
||||
@@ -30,14 +30,14 @@ public enum JdbcJavaType {
|
||||
BIT(JavaType.BOOLEAN, new DialectType(JDBCType.BIT), new DialectType(JDBCType.BIT, true)) { //
|
||||
|
||||
@Override
|
||||
public Object toJdbcValueImpl(@NotNull DatabaseType dialect, Object value) {
|
||||
public Object toJdbcValueImpl(@NonNull DatabaseType dialect, Object value) {
|
||||
return value == null ? null : (Boolean.TRUE.equals(value) ? 1 : 0);
|
||||
}
|
||||
},
|
||||
BOOLEAN(JavaType.BOOLEAN, new DialectType(JDBCType.BIT), new DialectType(JDBCType.BOOLEAN, null, "BOOL")) { //
|
||||
|
||||
@Override
|
||||
public Object toJdbcValueImpl(@NotNull DatabaseType dialect, Object value) {
|
||||
public Object toJdbcValueImpl(@NonNull DatabaseType dialect, Object value) {
|
||||
return (value != null && dialect.isMySql()) ? (Boolean.TRUE.equals(value) ? 1 : 0) : super.toJdbcValueImpl(dialect, value);
|
||||
}
|
||||
},
|
||||
@@ -45,7 +45,7 @@ public enum JdbcJavaType {
|
||||
TINYINT(JavaType.SHORT, new DialectType(JDBCType.TINYINT, true), new DialectType(JDBCType.SMALLINT)) { //
|
||||
|
||||
@Override
|
||||
public Object toJdbcValueImpl(@NotNull DatabaseType dialect, Object value) {
|
||||
public Object toJdbcValueImpl(@NonNull DatabaseType dialect, Object value) {
|
||||
return dialect.isMySql() && value instanceof Boolean ? (Boolean.TRUE.equals(value) ? 1 : 0)
|
||||
: super.toJdbcValueImpl(dialect, value);
|
||||
}
|
||||
@@ -113,21 +113,21 @@ public enum JdbcJavaType {
|
||||
|
||||
private static final String PLACEHOLDER_TYPE = "{type}";
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
private final JavaType javaType;
|
||||
private final ImmutableList<DialectType> dialectTypes;
|
||||
|
||||
JdbcJavaType(@NotNull JavaType javaType, DialectType... dialectTypes) {
|
||||
JdbcJavaType(@NonNull JavaType javaType, DialectType... dialectTypes) {
|
||||
this.javaType = javaType;
|
||||
this.dialectTypes = ImmutableList.copyOf(dialectTypes);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
public JavaType getJavaType() {
|
||||
return javaType;
|
||||
}
|
||||
|
||||
public static JdbcJavaType getByTypeName(@NotNull DatabaseType dialect, String name, boolean check) {
|
||||
public static JdbcJavaType getByTypeName(@NonNull DatabaseType dialect, String name, boolean check) {
|
||||
if (name == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -161,8 +161,8 @@ public enum JdbcJavaType {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private DialectType getDialectType(@NotNull DatabaseType dialect) {
|
||||
@NonNull
|
||||
private DialectType getDialectType(@NonNull DatabaseType dialect) {
|
||||
DialectType dialectType = dialectTypes.get(dialect.ordinal());
|
||||
if (dialectType == null) {
|
||||
throw new PlatformServiceUnavailableException("error.msg.database.dialect.not.allowed",
|
||||
@@ -175,7 +175,7 @@ public enum JdbcJavaType {
|
||||
return getJavaType().isBooleanType();
|
||||
}
|
||||
|
||||
public boolean canBooleanType(@NotNull DatabaseType dialect) {
|
||||
public boolean canBooleanType(@NonNull DatabaseType dialect) {
|
||||
return isBooleanType() || (dialect.isMySql() && this == TINYINT);
|
||||
}
|
||||
|
||||
@@ -251,33 +251,33 @@ public enum JdbcJavaType {
|
||||
return getJavaType().isBinaryType();
|
||||
}
|
||||
|
||||
public boolean hasPrecision(@NotNull DatabaseType dialect) {
|
||||
public boolean hasPrecision(@NonNull DatabaseType dialect) {
|
||||
return getDialectType(dialect).precision;
|
||||
}
|
||||
|
||||
public boolean hasScale(@NotNull DatabaseType dialect) {
|
||||
public boolean hasScale(@NonNull DatabaseType dialect) {
|
||||
return getDialectType(dialect).scale;
|
||||
}
|
||||
|
||||
public String getJdbcName(@NotNull DatabaseType dialect) {
|
||||
public String getJdbcName(@NonNull DatabaseType dialect) {
|
||||
DialectType dialectType = getDialectType(dialect);
|
||||
return dialectType.getNameResolved();
|
||||
}
|
||||
|
||||
public String formatSql(@NotNull DatabaseType dialect, Integer precision) {
|
||||
public String formatSql(@NonNull DatabaseType dialect, Integer precision) {
|
||||
return formatSql(dialect, precision, null);
|
||||
}
|
||||
|
||||
public String formatSql(@NotNull DatabaseType dialect) {
|
||||
public String formatSql(@NonNull DatabaseType dialect) {
|
||||
return formatSql(dialect, null, null);
|
||||
}
|
||||
|
||||
public String formatSql(@NotNull DatabaseType dialect, Integer precision, Integer scale) {
|
||||
public String formatSql(@NonNull DatabaseType dialect, Integer precision, Integer scale) {
|
||||
DialectType dialectType = getDialectType(dialect);
|
||||
return dialectType.formatSql(precision, scale);
|
||||
}
|
||||
|
||||
public Object toJdbcValue(@NotNull DatabaseType dialect, Object value, boolean check) {
|
||||
public Object toJdbcValue(@NonNull DatabaseType dialect, Object value, boolean check) {
|
||||
if (value != null && check && !javaType.getObjectType().matchType(value.getClass(), false)) {
|
||||
throw new PlatformServiceUnavailableException("error.msg.database.type.not.valid",
|
||||
"Data type of parameter " + value + " does not match " + this);
|
||||
@@ -285,22 +285,22 @@ public enum JdbcJavaType {
|
||||
return toJdbcValueImpl(dialect, value);
|
||||
}
|
||||
|
||||
public Object toJdbcValueImpl(@NotNull DatabaseType dialect, Object value) {
|
||||
public Object toJdbcValueImpl(@NonNull DatabaseType dialect, Object value) {
|
||||
return value;
|
||||
}
|
||||
|
||||
@com.google.errorprone.annotations.Immutable
|
||||
private static final class DialectType implements Serializable {
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
private final JDBCType jdbcType;
|
||||
@NotNull
|
||||
@NonNull
|
||||
private final String name;
|
||||
private final boolean precision;
|
||||
private final boolean scale;
|
||||
private final ImmutableList<String> alterNames;
|
||||
|
||||
private DialectType(@NotNull JDBCType jdbcType, String name, boolean precision, boolean scale, String... alterNames) {
|
||||
private DialectType(@NonNull JDBCType jdbcType, String name, boolean precision, boolean scale, String... alterNames) {
|
||||
this.jdbcType = jdbcType;
|
||||
this.name = name == null ? jdbcType.getName() : name;
|
||||
this.precision = precision;
|
||||
@@ -308,27 +308,27 @@ public enum JdbcJavaType {
|
||||
this.alterNames = ImmutableList.copyOf(alterNames);
|
||||
}
|
||||
|
||||
private DialectType(@NotNull JDBCType jdbcType, String name, boolean precision, String... alterNames) {
|
||||
private DialectType(@NonNull JDBCType jdbcType, String name, boolean precision, String... alterNames) {
|
||||
this(jdbcType, name, precision, false, alterNames);
|
||||
}
|
||||
|
||||
private DialectType(@NotNull JDBCType jdbcType, String name, boolean precision) {
|
||||
private DialectType(@NonNull JDBCType jdbcType, String name, boolean precision) {
|
||||
this(jdbcType, name, precision, false);
|
||||
}
|
||||
|
||||
private DialectType(@NotNull JDBCType jdbcType, String name, String... alterNames) {
|
||||
private DialectType(@NonNull JDBCType jdbcType, String name, String... alterNames) {
|
||||
this(jdbcType, name, false, false, alterNames);
|
||||
}
|
||||
|
||||
private DialectType(@NotNull JDBCType jdbcType, boolean precision, boolean scale) {
|
||||
private DialectType(@NonNull JDBCType jdbcType, boolean precision, boolean scale) {
|
||||
this(jdbcType, null, precision, scale);
|
||||
}
|
||||
|
||||
private DialectType(@NotNull JDBCType jdbcType, boolean precision) {
|
||||
private DialectType(@NonNull JDBCType jdbcType, boolean precision) {
|
||||
this(jdbcType, null, precision, false);
|
||||
}
|
||||
|
||||
private DialectType(@NotNull JDBCType jdbcType) {
|
||||
private DialectType(@NonNull JDBCType jdbcType) {
|
||||
this(jdbcType, null, false, false);
|
||||
}
|
||||
|
||||
@@ -346,7 +346,7 @@ public enum JdbcJavaType {
|
||||
}
|
||||
}
|
||||
|
||||
private String addSqlPrecisionScale(@NotNull String name, Integer precision, Integer scale) {
|
||||
private String addSqlPrecisionScale(@NonNull String name, Integer precision, Integer scale) {
|
||||
if (!this.precision || precision == null) {
|
||||
return name;
|
||||
}
|
||||
|
||||
+14
-14
@@ -20,13 +20,13 @@ package org.apache.fineract.infrastructure.core.service.database;
|
||||
|
||||
import static java.lang.String.format;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import org.apache.fineract.infrastructure.core.exception.PlatformServiceUnavailableException;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
@@ -41,7 +41,7 @@ public enum SqlOperator {
|
||||
LIKE("LIKE") { //
|
||||
|
||||
@Override
|
||||
public String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
public String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
String... values) {
|
||||
return format("%s %s %s", definition, getSymbol(), sqlGenerator.formatValue(columnType, "%" + values[0] + "%"));
|
||||
}
|
||||
@@ -54,7 +54,7 @@ public enum SqlOperator {
|
||||
NLIKE("NOT LIKE") { //
|
||||
|
||||
@Override
|
||||
public String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
public String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
String... values) {
|
||||
return format("%s %s %s", definition, getSymbol(), sqlGenerator.formatValue(columnType, "%" + values[0] + "%"));
|
||||
}
|
||||
@@ -67,7 +67,7 @@ public enum SqlOperator {
|
||||
BTW("BETWEEN", 2) { //
|
||||
|
||||
@Override
|
||||
public String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
public String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
String... values) {
|
||||
return format("%s %s %s AND %s", definition, getSymbol(), sqlGenerator.formatValue(columnType, values[0]),
|
||||
sqlGenerator.formatValue(columnType, values[1]));
|
||||
@@ -81,7 +81,7 @@ public enum SqlOperator {
|
||||
NBTW("NOT BETWEEN", 2) { //
|
||||
|
||||
@Override
|
||||
public String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
public String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
String... values) {
|
||||
return format("%s %s %s AND %s", definition, getSymbol(), sqlGenerator.formatValue(columnType, values[0]),
|
||||
sqlGenerator.formatValue(columnType, values[1]));
|
||||
@@ -95,7 +95,7 @@ public enum SqlOperator {
|
||||
IN("IN", -1) { //
|
||||
|
||||
@Override
|
||||
public String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
public String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
String... values) {
|
||||
return format("%s %s (%s)", definition, getSymbol(),
|
||||
Arrays.stream(values).map(e -> sqlGenerator.formatValue(columnType, e)).collect(Collectors.joining(", ")));
|
||||
@@ -114,7 +114,7 @@ public enum SqlOperator {
|
||||
NIN("NOT IN", -1) { //
|
||||
|
||||
@Override
|
||||
public String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
public String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
String... values) {
|
||||
return format("%s %s (%s)", definition, getSymbol(),
|
||||
Arrays.stream(values).map(e -> sqlGenerator.formatValue(columnType, e)).collect(Collectors.joining(", ")));
|
||||
@@ -153,24 +153,24 @@ public enum SqlOperator {
|
||||
return paramCount < 0;
|
||||
}
|
||||
|
||||
public String formatSql(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition, String alias,
|
||||
public String formatSql(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition, String alias,
|
||||
List<String> values) {
|
||||
return formatSql(sqlGenerator, columnType, definition, alias, values == null ? null : values.toArray(String[]::new));
|
||||
}
|
||||
|
||||
public String formatSql(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition, String alias,
|
||||
public String formatSql(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition, String alias,
|
||||
String... values) {
|
||||
validateValues(values);
|
||||
return formatImpl(sqlGenerator, columnType, sqlGenerator.alias(sqlGenerator.escape(definition), alias), values);
|
||||
}
|
||||
|
||||
protected String formatImpl(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
protected String formatImpl(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, JdbcJavaType columnType, String definition,
|
||||
String... values) {
|
||||
return paramCount == 0 ? format("%s %s", definition, symbol)
|
||||
: format("%s %s %s", definition, symbol, sqlGenerator.formatValue(columnType, values[0]));
|
||||
}
|
||||
|
||||
public String formatNamedParam(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, String definition, int paramCount, String alias) {
|
||||
public String formatNamedParam(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, String definition, int paramCount, String alias) {
|
||||
validateParamCount(paramCount);
|
||||
if (paramCount > 1) {
|
||||
throw new PlatformServiceUnavailableException("error.msg.database.operator.named.invalid",
|
||||
@@ -183,11 +183,11 @@ public enum SqlOperator {
|
||||
return formatPlaceholderImpl(definition, paramCount, namedParam);
|
||||
}
|
||||
|
||||
public String formatPlaceholder(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, String definition, int paramCount, String alias) {
|
||||
public String formatPlaceholder(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, String definition, int paramCount, String alias) {
|
||||
return formatPlaceholder(sqlGenerator, definition, paramCount, alias, "?");
|
||||
}
|
||||
|
||||
public String formatPlaceholder(@NotNull DatabaseSpecificSQLGenerator sqlGenerator, String definition, int paramCount, String alias,
|
||||
public String formatPlaceholder(@NonNull DatabaseSpecificSQLGenerator sqlGenerator, String definition, int paramCount, String alias,
|
||||
String placeholder) {
|
||||
validateParamCount(paramCount);
|
||||
return formatPlaceholderImpl(sqlGenerator.alias(sqlGenerator.escape(definition), alias), paramCount, placeholder);
|
||||
@@ -212,7 +212,7 @@ public enum SqlOperator {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
public static SqlOperator forName(String name) {
|
||||
return name == null ? getDefault() : SqlOperator.valueOf(name.toUpperCase());
|
||||
}
|
||||
|
||||
+7
-7
@@ -19,7 +19,6 @@
|
||||
package org.apache.fineract.infrastructure.dataqueries.service;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import org.apache.fineract.infrastructure.core.service.PagedLocalRequest;
|
||||
@@ -28,6 +27,7 @@ import org.apache.fineract.infrastructure.dataqueries.data.EntityTables;
|
||||
import org.apache.fineract.infrastructure.dataqueries.data.GenericResultsetData;
|
||||
import org.apache.fineract.portfolio.search.data.AdvancedQueryData;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
public interface DatatableReadService {
|
||||
|
||||
@@ -35,14 +35,14 @@ public interface DatatableReadService {
|
||||
|
||||
DatatableData retrieveDatatable(String datatable);
|
||||
|
||||
List<JsonObject> queryDataTable(@NotNull String datatable, @NotNull String columnName, String columnValue,
|
||||
@NotNull String resultColumns);
|
||||
List<JsonObject> queryDataTable(@NonNull String datatable, @NonNull String columnName, String columnValue,
|
||||
@NonNull String resultColumns);
|
||||
|
||||
Page<JsonObject> queryDataTableAdvanced(@NotNull String datatable, @NotNull PagedLocalRequest<AdvancedQueryData> pagedRequest);
|
||||
Page<JsonObject> queryDataTableAdvanced(@NonNull String datatable, @NonNull PagedLocalRequest<AdvancedQueryData> pagedRequest);
|
||||
|
||||
boolean buildDataQueryEmbedded(@NotNull EntityTables entityTable, @NotNull String datatable, @NotNull AdvancedQueryData request,
|
||||
@NotNull List<String> selectColumns, @NotNull StringBuilder select, @NotNull StringBuilder from, @NotNull StringBuilder where,
|
||||
@NotNull List<Object> params, String mainAlias, String alias, String dateFormat, String dateTimeFormat, Locale locale);
|
||||
boolean buildDataQueryEmbedded(@NonNull EntityTables entityTable, @NonNull String datatable, @NonNull AdvancedQueryData request,
|
||||
@NonNull List<String> selectColumns, @NonNull StringBuilder select, @NonNull StringBuilder from, @NonNull StringBuilder where,
|
||||
@NonNull List<Object> params, String mainAlias, String alias, String dateFormat, String dateTimeFormat, Locale locale);
|
||||
|
||||
GenericResultsetData retrieveDataTableGenericResultSet(String datatable, Long appTableId, String order, Long id);
|
||||
|
||||
|
||||
+5
-5
@@ -18,25 +18,25 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.jobs.service;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.infrastructure.core.api.IdTypeResolver;
|
||||
import org.apache.fineract.infrastructure.core.service.Page;
|
||||
import org.apache.fineract.infrastructure.core.service.SearchParameters;
|
||||
import org.apache.fineract.infrastructure.jobs.data.JobDetailData;
|
||||
import org.apache.fineract.infrastructure.jobs.data.JobDetailHistoryData;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
public interface SchedulerJobRunnerReadService {
|
||||
|
||||
List<JobDetailData> findAllJobDetails();
|
||||
|
||||
JobDetailData retrieveOne(@NotNull IdTypeResolver.IdType idType, String identifier);
|
||||
JobDetailData retrieveOne(@NonNull IdTypeResolver.IdType idType, String identifier);
|
||||
|
||||
Page<JobDetailHistoryData> retrieveJobHistory(@NotNull IdTypeResolver.IdType idType, String identifier,
|
||||
Page<JobDetailHistoryData> retrieveJobHistory(@NonNull IdTypeResolver.IdType idType, String identifier,
|
||||
SearchParameters searchParameters);
|
||||
|
||||
@NotNull
|
||||
Long retrieveId(@NotNull IdTypeResolver.IdType idType, String identifier);
|
||||
@NonNull
|
||||
Long retrieveId(@NonNull IdTypeResolver.IdType idType, String identifier);
|
||||
|
||||
boolean isUpdatesAllowed();
|
||||
}
|
||||
|
||||
+2
-2
@@ -64,7 +64,6 @@ import org.apache.fineract.portfolio.loanaccount.domain.Loan;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanSummary;
|
||||
import org.apache.fineract.portfolio.loanaccount.service.LoanJournalEntryPoster;
|
||||
import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
@@ -81,6 +80,7 @@ import org.mockito.Mockito;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class LoanAccountOwnerTransferBusinessStepTest {
|
||||
@@ -574,7 +574,7 @@ public class LoanAccountOwnerTransferBusinessStepTest {
|
||||
assertEquals("Execute external asset owner transfer", actualEnumName);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
private ArgumentCaptor<BusinessEvent<?>> verifyBusinessEvents(int expectedBusinessEvents) {
|
||||
@SuppressWarnings("unchecked")
|
||||
ArgumentCaptor<BusinessEvent<?>> businessEventArgumentCaptor = ArgumentCaptor.forClass(BusinessEvent.class);
|
||||
|
||||
+2
-2
@@ -51,7 +51,6 @@ import org.apache.fineract.organisation.monetary.domain.MoneyHelper;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanSummary;
|
||||
import org.apache.fineract.portfolio.loanaccount.service.LoanJournalEntryPoster;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -68,6 +67,7 @@ import org.mockito.Mockito;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class LoanAccountOwnerTransferServiceTest {
|
||||
@@ -240,7 +240,7 @@ public class LoanAccountOwnerTransferServiceTest {
|
||||
return Stream.of(Arguments.of(ExternalTransferStatus.BUYBACK_INTERMEDIATE), Arguments.of(ExternalTransferStatus.BUYBACK));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
private ArgumentCaptor<BusinessEvent<?>> verifyBusinessEvents(int expectedBusinessEvents) {
|
||||
@SuppressWarnings("unchecked")
|
||||
ArgumentCaptor<BusinessEvent<?>> businessEventArgumentCaptor = ArgumentCaptor.forClass(BusinessEvent.class);
|
||||
|
||||
+4
-4
@@ -23,7 +23,6 @@ import static org.apache.fineract.portfolio.delinquency.validator.DelinquencyAct
|
||||
import static org.apache.fineract.portfolio.delinquency.validator.DelinquencyActionParameters.START_DATE;
|
||||
|
||||
import com.google.gson.JsonElement;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -39,6 +38,7 @@ import org.apache.fineract.portfolio.delinquency.domain.DelinquencyAction;
|
||||
import org.apache.fineract.portfolio.delinquency.domain.LoanDelinquencyAction;
|
||||
import org.apache.fineract.portfolio.delinquency.helper.DelinquencyEffectivePauseHelper;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@@ -48,7 +48,7 @@ public class DelinquencyActionParseAndValidator extends ParseAndValidator {
|
||||
private final FromJsonHelper jsonHelper;
|
||||
private final DelinquencyEffectivePauseHelper delinquencyEffectivePauseHelper;
|
||||
|
||||
public LoanDelinquencyAction validateAndParseUpdate(@NotNull final JsonCommand command, Loan loan,
|
||||
public LoanDelinquencyAction validateAndParseUpdate(@NonNull final JsonCommand command, Loan loan,
|
||||
List<LoanDelinquencyAction> savedDelinquencyActions, LocalDate businessDate) {
|
||||
List<LoanDelinquencyActionData> effectiveDelinquencyList = delinquencyEffectivePauseHelper
|
||||
.calculateEffectiveDelinquencyList(savedDelinquencyActions);
|
||||
@@ -183,8 +183,8 @@ public class DelinquencyActionParseAndValidator extends ParseAndValidator {
|
||||
|| (parsed.getStartDate().isEqual(existing.getStartDate()) && parsed.getEndDate().isEqual(existing.getEndDate()));
|
||||
}
|
||||
|
||||
@org.jetbrains.annotations.NotNull
|
||||
private LoanDelinquencyAction parseCommand(@org.jetbrains.annotations.NotNull JsonCommand command) {
|
||||
@NonNull
|
||||
private LoanDelinquencyAction parseCommand(@NonNull JsonCommand command) {
|
||||
LoanDelinquencyAction parsedDelinquencyAction = new LoanDelinquencyAction();
|
||||
parsedDelinquencyAction.setAction(extractAction(command.parsedJson()));
|
||||
parsedDelinquencyAction.setStartDate(extractStartDate(command.parsedJson()));
|
||||
|
||||
+5
-5
@@ -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);
|
||||
}
|
||||
|
||||
+8
-9
@@ -18,7 +18,6 @@
|
||||
*/
|
||||
package org.apache.fineract.portfolio.loanaccount.service;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.infrastructure.core.exception.MultiException;
|
||||
@@ -28,22 +27,22 @@ import org.springframework.lang.NonNull;
|
||||
|
||||
public interface LoanAccrualsProcessingService {
|
||||
|
||||
void addPeriodicAccruals(@NotNull LocalDate tillDate) throws MultiException;
|
||||
void addPeriodicAccruals(@NonNull LocalDate tillDate) throws MultiException;
|
||||
|
||||
void addPeriodicAccruals(@NotNull LocalDate tillDate, @NotNull Loan loan) throws MultiException;
|
||||
void addPeriodicAccruals(@NonNull LocalDate tillDate, @NonNull Loan loan) throws MultiException;
|
||||
|
||||
void addAccruals(@NotNull LocalDate tillDate) throws MultiException;
|
||||
void addAccruals(@NonNull LocalDate tillDate) throws MultiException;
|
||||
|
||||
void reprocessExistingAccruals(@NotNull Loan loan, boolean addEvent);
|
||||
void reprocessExistingAccruals(@NonNull Loan loan, boolean addEvent);
|
||||
|
||||
void processAccrualsOnInterestRecalculation(@NotNull Loan loan, boolean isInterestRecalculationEnabled, boolean addJournal);
|
||||
void processAccrualsOnInterestRecalculation(@NonNull Loan loan, boolean isInterestRecalculationEnabled, boolean addJournal);
|
||||
|
||||
void addIncomePostingAndAccruals(Long loanId) throws Exception;
|
||||
|
||||
void processIncomePostingAndAccruals(@NotNull Loan loan, boolean addEvent);
|
||||
void processIncomePostingAndAccruals(@NonNull Loan loan, boolean addEvent);
|
||||
|
||||
void processAccrualsOnLoanClosure(@NonNull Loan loan, boolean addJournal);
|
||||
|
||||
void processAccrualsOnLoanForeClosure(@NotNull Loan loan, @NotNull LocalDate foreClosureDate,
|
||||
@NotNull List<LoanTransaction> newAccrualTransactions);
|
||||
void processAccrualsOnLoanForeClosure(@NonNull Loan loan, @NonNull LocalDate foreClosureDate,
|
||||
@NonNull List<LoanTransaction> newAccrualTransactions);
|
||||
}
|
||||
|
||||
+2
-2
@@ -18,7 +18,6 @@
|
||||
*/
|
||||
package org.apache.fineract.portfolio.loanaccount.service;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -44,6 +43,7 @@ import org.apache.fineract.portfolio.loanaccount.loanschedule.data.LoanScheduleD
|
||||
import org.apache.fineract.portfolio.loanaccount.loanschedule.data.OverdueLoanScheduleData;
|
||||
import org.apache.fineract.portfolio.loanaccount.loanschedule.domain.LoanScheduleType;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
public interface LoanReadPlatformService {
|
||||
|
||||
@@ -57,7 +57,7 @@ public interface LoanReadPlatformService {
|
||||
|
||||
Collection<LoanTransactionData> retrieveLoanTransactions(Long loanId);
|
||||
|
||||
org.springframework.data.domain.Page<LoanTransactionData> retrieveLoanTransactions(@NotNull Long loanId,
|
||||
org.springframework.data.domain.Page<LoanTransactionData> retrieveLoanTransactions(@NonNull Long loanId,
|
||||
Set<LoanTransactionType> excludedTransactionTypes, Pageable pageable);
|
||||
|
||||
LoanAccountData retrieveTemplateWithClientAndProductDetails(Long clientId, Long productId);
|
||||
|
||||
+3
-3
@@ -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);
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
+2
-2
@@ -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)) {
|
||||
|
||||
+7
-7
@@ -23,7 +23,6 @@ import static org.apache.fineract.infrastructure.core.service.database.SqlOperat
|
||||
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.gson.JsonObject;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
@@ -48,6 +47,7 @@ import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.support.PageableExecutionUtils;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.support.rowset.SqlRowSet;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Slf4j
|
||||
@@ -126,8 +126,8 @@ public class DatatableReadServiceImpl implements DatatableReadService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JsonObject> queryDataTable(@NotNull String datatable, @NotNull String columnName, String columnValueString,
|
||||
@NotNull String resultColumnsString) {
|
||||
public List<JsonObject> queryDataTable(@NonNull String datatable, @NonNull String columnName, String columnValueString,
|
||||
@NonNull String resultColumnsString) {
|
||||
datatable = datatableUtil.validateDatatableRegistered(datatable);
|
||||
Map<String, ResultsetColumnHeaderData> headersByName = searchUtil
|
||||
.mapHeadersToName(genericDataService.fillResultsetColumnHeaders(datatable));
|
||||
@@ -149,7 +149,7 @@ public class DatatableReadServiceImpl implements DatatableReadService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<JsonObject> queryDataTableAdvanced(@NotNull String datatable, @NotNull PagedLocalRequest<AdvancedQueryData> pagedRequest) {
|
||||
public Page<JsonObject> queryDataTableAdvanced(@NonNull String datatable, @NonNull PagedLocalRequest<AdvancedQueryData> pagedRequest) {
|
||||
datatable = datatableUtil.validateDatatableRegistered(datatable);
|
||||
context.authenticatedUser().validateHasDatatableReadPermission(datatable);
|
||||
|
||||
@@ -219,9 +219,9 @@ public class DatatableReadServiceImpl implements DatatableReadService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean buildDataQueryEmbedded(@NotNull EntityTables entityTable, @NotNull String datatable, @NotNull AdvancedQueryData request,
|
||||
@NotNull List<String> selectColumns, @NotNull StringBuilder select, @NotNull StringBuilder from, @NotNull StringBuilder where,
|
||||
@NotNull List<Object> params, String mainAlias, String alias, String dateFormat, String dateTimeFormat, Locale locale) {
|
||||
public boolean buildDataQueryEmbedded(@NonNull EntityTables entityTable, @NonNull String datatable, @NonNull AdvancedQueryData request,
|
||||
@NonNull List<String> selectColumns, @NonNull StringBuilder select, @NonNull StringBuilder from, @NonNull StringBuilder where,
|
||||
@NonNull List<Object> params, String mainAlias, String alias, String dateFormat, String dateTimeFormat, Locale locale) {
|
||||
List<String> resultColumns = request.getResultColumns();
|
||||
List<ColumnFilterData> columnFilters = request.getColumnFilters();
|
||||
if ((resultColumns == null || resultColumns.isEmpty()) && (columnFilters == null || columnFilters.isEmpty())) {
|
||||
|
||||
+4
-4
@@ -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();
|
||||
|
||||
+4
-4
@@ -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 "";
|
||||
|
||||
+2
-2
@@ -18,7 +18,6 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.dataqueries.service;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
@@ -47,6 +46,7 @@ import org.apache.fineract.portfolio.savings.data.SavingsProductData;
|
||||
import org.apache.fineract.portfolio.savings.service.SavingsProductReadPlatformService;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.core.RowMapper;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@@ -78,7 +78,7 @@ public class EntityDatatableChecksReadPlatformServiceImpl implements EntityDatat
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<EntityDataTableChecksData> retrieveAll(@NotNull SearchParameters searchParameters, final Integer status,
|
||||
public Page<EntityDataTableChecksData> retrieveAll(@NonNull SearchParameters searchParameters, final Integer status,
|
||||
final String entity, final Long productId) {
|
||||
final StringBuilder sqlBuilder = new StringBuilder(200);
|
||||
sqlBuilder.append("select ").append(sqlGenerator.calcFoundRows()).append(" ").append(this.entityDataTableChecksMapper.schema());
|
||||
|
||||
+6
-6
@@ -18,7 +18,6 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.jobs.service;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Date;
|
||||
@@ -38,6 +37,7 @@ import org.apache.fineract.infrastructure.security.utils.ColumnValidator;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.core.RowMapper;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -71,7 +71,7 @@ public class SchedulerJobRunnerReadServiceImpl implements SchedulerJobRunnerRead
|
||||
}
|
||||
|
||||
@Override
|
||||
public JobDetailData retrieveOne(@NotNull IdTypeResolver.IdType idType, String identifier) {
|
||||
public JobDetailData retrieveOne(@NonNull IdTypeResolver.IdType idType, String identifier) {
|
||||
JobDetailData jobDetail = switch (idType) {
|
||||
case ID -> jobDetailRepository.getDataById(Long.valueOf(identifier));
|
||||
case SHORT_NAME -> jobDetailRepository.getDataByShortName(identifier);
|
||||
@@ -84,7 +84,7 @@ public class SchedulerJobRunnerReadServiceImpl implements SchedulerJobRunnerRead
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<JobDetailHistoryData> retrieveJobHistory(@NotNull IdTypeResolver.IdType idType, String identifier,
|
||||
public Page<JobDetailHistoryData> retrieveJobHistory(@NonNull IdTypeResolver.IdType idType, String identifier,
|
||||
SearchParameters searchParameters) {
|
||||
if (!isJobExist(idType, identifier)) {
|
||||
throw new JobNotFoundException(idType, identifier);
|
||||
@@ -127,8 +127,8 @@ public class SchedulerJobRunnerReadServiceImpl implements SchedulerJobRunnerRead
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public Long retrieveId(@NotNull IdTypeResolver.IdType idType, String identifier) {
|
||||
@NonNull
|
||||
public Long retrieveId(@NonNull IdTypeResolver.IdType idType, String identifier) {
|
||||
return switch (idType) {
|
||||
case ID -> Long.valueOf(identifier);
|
||||
case SHORT_NAME ->
|
||||
@@ -149,7 +149,7 @@ public class SchedulerJobRunnerReadServiceImpl implements SchedulerJobRunnerRead
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean isJobExist(@NotNull IdTypeResolver.IdType idType, @NotNull String jobId) {
|
||||
private boolean isJobExist(@NonNull IdTypeResolver.IdType idType, @NonNull String jobId) {
|
||||
return switch (idType) {
|
||||
case ID -> jobDetailRepository.existsById(Long.valueOf(jobId));
|
||||
case SHORT_NAME -> jobDetailRepository.existsByShortName(jobId);
|
||||
|
||||
+33
-33
@@ -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);
|
||||
}
|
||||
|
||||
+34
-34
@@ -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;
|
||||
}
|
||||
|
||||
+39
-40
@@ -28,7 +28,6 @@ import static org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionTy
|
||||
import static org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionType.ACCRUAL_ADJUSTMENT;
|
||||
import static org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionType.INCOME_POSTING;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
@@ -121,7 +120,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void addPeriodicAccruals(@NotNull LocalDate tillDate) throws JobExecutionException {
|
||||
public void addPeriodicAccruals(@NonNull LocalDate tillDate) throws JobExecutionException {
|
||||
List<Loan> loans = loanRepositoryWrapper.findLoansForPeriodicAccrual(AccountingRuleType.ACCRUAL_PERIODIC, tillDate,
|
||||
!isChargeOnDueDate());
|
||||
List<Throwable> errors = new ArrayList<>();
|
||||
@@ -143,7 +142,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void addPeriodicAccruals(@NotNull final LocalDate tillDate, @NotNull final Loan loan) {
|
||||
public void addPeriodicAccruals(@NonNull final LocalDate tillDate, @NonNull final Loan loan) {
|
||||
if (loan.isClosed() || loan.getStatus().isOverpaid()) {
|
||||
return;
|
||||
}
|
||||
@@ -156,7 +155,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void addAccruals(@NotNull LocalDate tillDate) throws JobExecutionException {
|
||||
public void addAccruals(@NonNull LocalDate tillDate) throws JobExecutionException {
|
||||
final boolean chargeOnDueDate = isChargeOnDueDate();
|
||||
List<Loan> loans = loanRepositoryWrapper.findLoansForAddAccrual(AccountingRuleType.ACCRUAL_PERIODIC, tillDate, !chargeOnDueDate);
|
||||
|
||||
@@ -203,7 +202,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
* reschedule
|
||||
*/
|
||||
@Override
|
||||
public void reprocessExistingAccruals(@NotNull final Loan loan, final boolean addEvent) {
|
||||
public void reprocessExistingAccruals(@NonNull final Loan loan, final boolean addEvent) {
|
||||
List<LoanTransaction> accrualTransactions = retrieveListOfAccrualTransactions(loan);
|
||||
if (!accrualTransactions.isEmpty()) {
|
||||
if (loan.isPeriodicAccrualAccountingEnabledOnLoanProduct()) {
|
||||
@@ -219,7 +218,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void processAccrualsOnInterestRecalculation(@NotNull Loan loan, boolean isInterestRecalculationEnabled, boolean addJournal) {
|
||||
public void processAccrualsOnInterestRecalculation(@NonNull Loan loan, boolean isInterestRecalculationEnabled, boolean addJournal) {
|
||||
if (isProgressiveAccrual(loan)) {
|
||||
return;
|
||||
}
|
||||
@@ -254,7 +253,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
* method calculates accruals for loan with interest recalculation and compounding to be posted as income
|
||||
*/
|
||||
@Override
|
||||
public void processIncomePostingAndAccruals(@NotNull final Loan loan, final boolean addEvent) {
|
||||
public void processIncomePostingAndAccruals(@NonNull final Loan loan, final boolean addEvent) {
|
||||
if (isProgressiveAccrual(loan)) {
|
||||
return;
|
||||
}
|
||||
@@ -298,8 +297,8 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
* method calculates accruals for loan on loan fore closure
|
||||
*/
|
||||
@Override
|
||||
public void processAccrualsOnLoanForeClosure(@NotNull Loan loan, @NotNull LocalDate foreClosureDate,
|
||||
@NotNull List<LoanTransaction> newAccrualTransactions) {
|
||||
public void processAccrualsOnLoanForeClosure(@NonNull Loan loan, @NonNull LocalDate foreClosureDate,
|
||||
@NonNull List<LoanTransaction> newAccrualTransactions) {
|
||||
// TODO implement progressive accrual case
|
||||
if (loan.isPeriodicAccrualAccountingEnabledOnLoanProduct()
|
||||
&& (loan.getAccruedTill() == null || !DateUtils.isEqual(foreClosureDate, loan.getAccruedTill()))) {
|
||||
@@ -323,7 +322,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
|
||||
// PeriodicAccruals
|
||||
|
||||
private void addAccruals(@NotNull final Loan loan, @NotNull LocalDate tillDate, final boolean periodic, final boolean isFinal,
|
||||
private void addAccruals(@NonNull final Loan loan, @NonNull LocalDate tillDate, final boolean periodic, final boolean isFinal,
|
||||
final boolean addJournal, final boolean chargeOnDueDate) {
|
||||
if ((!isFinal && !loan.isOpen()) || loan.isNpa() || loan.isChargedOff() || !loan.isPeriodicAccrualAccountingEnabledOnLoanProduct()
|
||||
|| loan.isContractTermination()) {
|
||||
@@ -436,7 +435,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
return loan.getLoanCharges(t -> t.isActive() && DateUtils.isEqual(t.getDueDate(), accrualDate)).isEmpty();
|
||||
}
|
||||
|
||||
private AccrualPeriodsData calculateAccrualAmounts(@NotNull final Loan loan, @NotNull final LocalDate tillDate, final boolean periodic,
|
||||
private AccrualPeriodsData calculateAccrualAmounts(@NonNull final Loan loan, @NonNull final LocalDate tillDate, final boolean periodic,
|
||||
final boolean isFinal, final boolean chargeOnDueDate) {
|
||||
final LoanProductRelatedDetail productDetail = loan.getLoanProductRelatedDetail();
|
||||
final MonetaryCurrency currency = productDetail.getCurrency();
|
||||
@@ -455,8 +454,8 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
return accrualPeriods;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private List<LoanRepaymentScheduleInstallment> getInstallmentsToAccrue(@NotNull final Loan loan, @NotNull final LocalDate tillDate,
|
||||
@NonNull
|
||||
private List<LoanRepaymentScheduleInstallment> getInstallmentsToAccrue(@NonNull final Loan loan, @NonNull final LocalDate tillDate,
|
||||
final boolean periodic, final boolean chargeOnDueDate) {
|
||||
final LocalDate organisationStartDate = this.configurationDomainService.retrieveOrganisationStartDate();
|
||||
final int firstInstallmentNumber = fetchFirstNormalInstallmentNumber(loan.getRepaymentScheduleInstallments());
|
||||
@@ -466,9 +465,9 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
&& !isAfterPeriod(organisationStartDate, i));
|
||||
}
|
||||
|
||||
private void addInterestAccrual(@NotNull final Loan loan, @NotNull final LocalDate tillDate,
|
||||
final LoanScheduleGenerator scheduleGenerator, @NotNull final LoanRepaymentScheduleInstallment installment,
|
||||
@NotNull final AccrualPeriodsData accrualPeriods) {
|
||||
private void addInterestAccrual(@NonNull final Loan loan, @NonNull final LocalDate tillDate,
|
||||
final LoanScheduleGenerator scheduleGenerator, @NonNull final LoanRepaymentScheduleInstallment installment,
|
||||
@NonNull final AccrualPeriodsData accrualPeriods) {
|
||||
if (installment.isAdditional() || installment.isReAged()) {
|
||||
return;
|
||||
}
|
||||
@@ -506,9 +505,9 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
period.setInterestAccrued(accrued);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private BigDecimal calcInterestTransactionWaivedAmount(@NotNull LoanRepaymentScheduleInstallment installment,
|
||||
@NotNull LocalDate tillDate) {
|
||||
@NonNull
|
||||
private BigDecimal calcInterestTransactionWaivedAmount(@NonNull LoanRepaymentScheduleInstallment installment,
|
||||
@NonNull LocalDate tillDate) {
|
||||
Predicate<LoanTransaction> transactionPredicate = t -> !t.isReversed() && t.isInterestWaiver()
|
||||
&& !DateUtils.isAfter(t.getTransactionDate(), tillDate);
|
||||
return installment.getLoanTransactionToRepaymentScheduleMappings().stream()
|
||||
@@ -516,9 +515,9 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
.map(LoanTransactionToRepaymentScheduleMapping::getInterestPortion).reduce(BigDecimal.ZERO, MathUtil::add);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private BigDecimal calcInterestUnrecognizedWaivedAmount(@NotNull LoanRepaymentScheduleInstallment installment,
|
||||
@NotNull AccrualPeriodsData accrualPeriods, @NotNull LocalDate tillDate) {
|
||||
@NonNull
|
||||
private BigDecimal calcInterestUnrecognizedWaivedAmount(@NonNull LoanRepaymentScheduleInstallment installment,
|
||||
@NonNull AccrualPeriodsData accrualPeriods, @NonNull LocalDate tillDate) {
|
||||
// unrecognized amount of the transaction is not mapped to installments
|
||||
LocalDate dueDate = installment.getDueDate();
|
||||
LocalDate toDate = DateUtils.isBefore(dueDate, tillDate) ? dueDate : tillDate;
|
||||
@@ -532,9 +531,9 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
return MathUtil.min(installment.getInterestWaived(), MathUtil.subtractToZero(totalUnrecognized, prevUnrecognized), false);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private BigDecimal calcInterestAccruedAmount(@NotNull LoanRepaymentScheduleInstallment installment,
|
||||
@NotNull AccrualPeriodsData accrualPeriods, @NotNull LocalDate tillDate) {
|
||||
@NonNull
|
||||
private BigDecimal calcInterestAccruedAmount(@NonNull LoanRepaymentScheduleInstallment installment,
|
||||
@NonNull AccrualPeriodsData accrualPeriods, @NonNull LocalDate tillDate) {
|
||||
Loan loan = installment.getLoan();
|
||||
if (isProgressiveAccrual(loan)) {
|
||||
BigDecimal totalAccrued = loanTransactionRepository.findTotalInterestAccruedAmount(loan);
|
||||
@@ -550,8 +549,8 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
}
|
||||
}
|
||||
|
||||
private void addChargeAccrual(@NotNull final Loan loan, @NotNull final LocalDate tillDate, final boolean chargeOnDueDate,
|
||||
@NotNull final LoanRepaymentScheduleInstallment installment, @NotNull final AccrualPeriodsData accrualPeriods) {
|
||||
private void addChargeAccrual(@NonNull final Loan loan, @NonNull final LocalDate tillDate, final boolean chargeOnDueDate,
|
||||
@NonNull final LoanRepaymentScheduleInstallment installment, @NonNull final AccrualPeriodsData accrualPeriods) {
|
||||
final AccrualPeriodData period = accrualPeriods.getPeriodByInstallmentNumber(installment.getInstallmentNumber());
|
||||
final LocalDate dueDate = installment.getDueDate();
|
||||
final Collection<LoanCharge> loanCharges = loan
|
||||
@@ -564,8 +563,8 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
}
|
||||
}
|
||||
|
||||
private void addChargeAccrual(@NotNull final LoanCharge loanCharge, @NotNull final LocalDate tillDate, final boolean chargeOnDueDate,
|
||||
@NotNull final LoanRepaymentScheduleInstallment installment, @NotNull final AccrualPeriodsData accrualPeriods) {
|
||||
private void addChargeAccrual(@NonNull final LoanCharge loanCharge, @NonNull final LocalDate tillDate, final boolean chargeOnDueDate,
|
||||
@NonNull final LoanRepaymentScheduleInstallment installment, @NonNull final AccrualPeriodsData accrualPeriods) {
|
||||
final MonetaryCurrency currency = accrualPeriods.getCurrency();
|
||||
final Integer firstInstallmentNumber = accrualPeriods.getFirstInstallmentNumber();
|
||||
final boolean installmentFee = loanCharge.isInstalmentFee();
|
||||
@@ -617,16 +616,16 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
duePeriod.addCharge(chargeData);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private BigDecimal calcChargeWaivedAmount(@NotNull final Collection<LoanChargePaidBy> loanChargePaidBy,
|
||||
@NotNull final LocalDate tillDate) {
|
||||
@NonNull
|
||||
private BigDecimal calcChargeWaivedAmount(@NonNull final Collection<LoanChargePaidBy> loanChargePaidBy,
|
||||
@NonNull final LocalDate tillDate) {
|
||||
return loanChargePaidBy.stream().filter(pb -> {
|
||||
final LoanTransaction t = pb.getLoanTransaction();
|
||||
return !t.isReversed() && t.isWaiveCharge() && !DateUtils.isAfter(t.getTransactionDate(), tillDate);
|
||||
}).map(LoanChargePaidBy::getAmount).reduce(BigDecimal.ZERO, MathUtil::add);
|
||||
}
|
||||
|
||||
private boolean isChargeDue(@NotNull final LoanCharge loanCharge, @NotNull final LocalDate tillDate, boolean chargeOnDueDate,
|
||||
private boolean isChargeDue(@NonNull final LoanCharge loanCharge, @NonNull final LocalDate tillDate, boolean chargeOnDueDate,
|
||||
final LoanRepaymentScheduleInstallment installment, final boolean isFirstPeriod) {
|
||||
final LocalDate fromDate = installment.getFromDate();
|
||||
final LocalDate dueDate = installment.getDueDate();
|
||||
@@ -636,7 +635,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
: isInPeriod(loanCharge.getSubmittedOnDate(), fromDate, toDate, isFirstPeriod);
|
||||
}
|
||||
|
||||
private LoanTransaction createOrMergeAccrualTransaction(@NotNull final Loan loan, LoanTransaction transaction,
|
||||
private LoanTransaction createOrMergeAccrualTransaction(@NonNull final Loan loan, LoanTransaction transaction,
|
||||
final LocalDate transactionDate, final AccrualPeriodData accrualPeriod, final List<LoanTransaction> accrualTransactions,
|
||||
final Money interest, final Money fee, final Money penalty, final boolean adjustment) {
|
||||
if (transaction == null) {
|
||||
@@ -650,7 +649,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
return transaction;
|
||||
}
|
||||
|
||||
private LoanTransaction addAccrualTransaction(@NotNull Loan loan, @NotNull LocalDate transactionDate, AccrualPeriodData accrualPeriod,
|
||||
private LoanTransaction addAccrualTransaction(@NonNull Loan loan, @NonNull LocalDate transactionDate, AccrualPeriodData accrualPeriod,
|
||||
Money interestPortion, Money feePortion, Money penaltyPortion, boolean adjustment) {
|
||||
interestPortion = MathUtil.negativeToZero(interestPortion);
|
||||
BigDecimal interest = MathUtil.toBigDecimal(interestPortion);
|
||||
@@ -673,7 +672,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
return savedTransaction;
|
||||
}
|
||||
|
||||
private void mergeAccrualTransaction(@NotNull final LoanTransaction transaction, final AccrualPeriodData accrualPeriod,
|
||||
private void mergeAccrualTransaction(@NonNull final LoanTransaction transaction, final AccrualPeriodData accrualPeriod,
|
||||
Money interestPortion, Money feePortion, Money penaltyPortion, final boolean adjustment) {
|
||||
interestPortion = MathUtil.negativeToZero(interestPortion);
|
||||
feePortion = MathUtil.negativeToZero(feePortion);
|
||||
@@ -687,7 +686,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
addTransactionMappings(transaction, accrualPeriod, adjustment);
|
||||
}
|
||||
|
||||
private void addTransactionMappings(@NotNull final LoanTransaction transaction, final AccrualPeriodData accrualPeriod,
|
||||
private void addTransactionMappings(@NonNull final LoanTransaction transaction, final AccrualPeriodData accrualPeriod,
|
||||
final boolean adjustment) {
|
||||
if (accrualPeriod == null) {
|
||||
return;
|
||||
@@ -700,7 +699,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
addPaidByMappings(transaction, installment, accrualPeriod, adjustment);
|
||||
}
|
||||
|
||||
private void addPaidByMappings(@NotNull final LoanTransaction transaction, final LoanRepaymentScheduleInstallment installment,
|
||||
private void addPaidByMappings(@NonNull final LoanTransaction transaction, final LoanRepaymentScheduleInstallment installment,
|
||||
final AccrualPeriodData accrualPeriod, final boolean adjustment) {
|
||||
final Loan loan = installment.getLoan();
|
||||
final MonetaryCurrency currency = loan.getCurrency();
|
||||
@@ -725,7 +724,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isFullPeriod(@NotNull final LocalDate tillDate, @NotNull final LoanRepaymentScheduleInstallment installment) {
|
||||
private boolean isFullPeriod(@NonNull final LocalDate tillDate, @NonNull final LoanRepaymentScheduleInstallment installment) {
|
||||
return isAfterPeriod(tillDate, installment) || DateUtils.isEqual(tillDate, installment.getDueDate());
|
||||
}
|
||||
|
||||
@@ -1280,7 +1279,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
};
|
||||
}
|
||||
|
||||
public boolean isProgressiveAccrual(@NotNull Loan loan) {
|
||||
public boolean isProgressiveAccrual(@NonNull Loan loan) {
|
||||
return loan.isProgressiveSchedule();
|
||||
}
|
||||
}
|
||||
|
||||
+3
-4
@@ -42,7 +42,6 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRelationT
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRepository;
|
||||
import org.apache.fineract.portfolio.loanaccount.repository.LoanCapitalizedIncomeBalanceRepository;
|
||||
import org.apache.fineract.portfolio.loanaccount.util.CapitalizedIncomeAmortizationUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -60,7 +59,7 @@ public class LoanCapitalizedIncomeAmortizationProcessingServiceImpl implements L
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void processCapitalizedIncomeAmortizationOnLoanClosure(@NotNull final Loan loan, final boolean addJournal) {
|
||||
public void processCapitalizedIncomeAmortizationOnLoanClosure(@NonNull final Loan loan, final boolean addJournal) {
|
||||
final LocalDate transactionDate = getFinalCapitalizedIncomeAmortizationTransactionDate(loan);
|
||||
final Optional<LoanTransaction> amortizationTransaction = createCapitalizedIncomeAmortizationTransaction(loan, transactionDate,
|
||||
false, null);
|
||||
@@ -80,7 +79,7 @@ public class LoanCapitalizedIncomeAmortizationProcessingServiceImpl implements L
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void processCapitalizedIncomeAmortizationOnLoanChargeOff(@NotNull final Loan loan,
|
||||
public void processCapitalizedIncomeAmortizationOnLoanChargeOff(@NonNull final Loan loan,
|
||||
@NonNull final LoanTransaction chargeOffTransaction) {
|
||||
LocalDate transactionDate = loan.getChargedOffOnDate();
|
||||
if (transactionDate == null) {
|
||||
@@ -148,7 +147,7 @@ public class LoanCapitalizedIncomeAmortizationProcessingServiceImpl implements L
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void processCapitalizedIncomeAmortizationOnLoanUndoChargeOff(@NotNull final LoanTransaction loanTransaction) {
|
||||
public void processCapitalizedIncomeAmortizationOnLoanUndoChargeOff(@NonNull final LoanTransaction loanTransaction) {
|
||||
final Loan loan = loanTransaction.getLoan();
|
||||
|
||||
loan.getLoanTransactions().stream().filter(LoanTransaction::isCapitalizedIncomeAmortization)
|
||||
|
||||
+3
-3
@@ -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())) {
|
||||
|
||||
+3
-3
@@ -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();
|
||||
|
||||
+2
-2
@@ -18,7 +18,6 @@
|
||||
*/
|
||||
package org.apache.fineract.portfolio.savings.service;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.MathContext;
|
||||
import java.time.LocalDate;
|
||||
@@ -48,6 +47,7 @@ import org.apache.fineract.portfolio.savings.domain.SavingsHelper;
|
||||
import org.apache.fineract.portfolio.savings.domain.interest.PostingPeriod;
|
||||
import org.apache.fineract.portfolio.tax.data.TaxComponentData;
|
||||
import org.apache.fineract.portfolio.tax.service.TaxUtils;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountInterestPostingService {
|
||||
@@ -346,7 +346,7 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI
|
||||
return savingsAccountData.getSavingsAccountTransactionData();
|
||||
}
|
||||
|
||||
private SavingsAccountTransactionData retrieveLastTransaction(@NotNull SavingsAccountData savingsAccountData) {
|
||||
private SavingsAccountTransactionData retrieveLastTransaction(@NonNull SavingsAccountData savingsAccountData) {
|
||||
List<SavingsAccountTransactionData> transactions = savingsAccountData.getSavingsAccountTransactionData();
|
||||
if (transactions == null || transactions.isEmpty()) {
|
||||
return savingsAccountData.getLastSavingsAccountTransaction(); // what is this?
|
||||
|
||||
+8
-8
@@ -22,7 +22,6 @@ import static org.apache.fineract.infrastructure.core.domain.AuditableFieldsCons
|
||||
import static org.apache.fineract.portfolio.savings.SavingsApiConstants.SAVINGS_ACCOUNT_RESOURCE_NAME;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -50,13 +49,14 @@ import org.apache.fineract.portfolio.search.data.ColumnFilterData;
|
||||
import org.apache.fineract.portfolio.search.data.TableQueryData;
|
||||
import org.apache.fineract.portfolio.search.data.TransactionSearchRequest;
|
||||
import org.apache.fineract.portfolio.search.service.SearchUtil;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.support.PageableExecutionUtils;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.support.rowset.SqlRowSet;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
@@ -72,8 +72,8 @@ public class SavingsAccountTransactionsSearchServiceImpl implements SavingsAccou
|
||||
private final SearchUtil searchUtil;
|
||||
|
||||
@Override
|
||||
public Page<SavingsAccountTransactionData> searchTransactions(@NotNull Long savingsId,
|
||||
@NotNull TransactionSearchRequest searchParameters) {
|
||||
public Page<SavingsAccountTransactionData> searchTransactions(@NonNull Long savingsId,
|
||||
@NonNull TransactionSearchRequest searchParameters) {
|
||||
context.authenticatedUser().validateHasReadPermission(SAVINGS_ACCOUNT_RESOURCE_NAME);
|
||||
|
||||
String apptable = EntityTables.SAVINGS_TRANSACTION.getApptableName();
|
||||
@@ -130,8 +130,8 @@ public class SavingsAccountTransactionsSearchServiceImpl implements SavingsAccou
|
||||
return PageableExecutionUtils.getPage(results, pageable, () -> totalElements);
|
||||
}
|
||||
|
||||
private static void addFromToFilter(@NotNull String column, String fromValue, String toValue,
|
||||
@NotNull List<ColumnFilterData> columnFilters) {
|
||||
private static void addFromToFilter(@NonNull String column, String fromValue, String toValue,
|
||||
@NonNull List<ColumnFilterData> columnFilters) {
|
||||
if (fromValue != null) {
|
||||
columnFilters.add(toValue == null ? ColumnFilterData.create(column, SqlOperator.GTE, fromValue)
|
||||
: ColumnFilterData.btw(column, fromValue, toValue));
|
||||
@@ -141,7 +141,7 @@ public class SavingsAccountTransactionsSearchServiceImpl implements SavingsAccou
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static Boolean addTransactionTypesFilter(@NotNull TransactionSearchRequest searchParameters,
|
||||
private static Boolean addTransactionTypesFilter(@NonNull TransactionSearchRequest searchParameters,
|
||||
List<ColumnFilterData> columnFilters) {
|
||||
Predicate<SavingsAccountTransactionType> filter = null;
|
||||
Boolean credit = searchParameters.getCredit();
|
||||
@@ -178,7 +178,7 @@ public class SavingsAccountTransactionsSearchServiceImpl implements SavingsAccou
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<JsonObject> queryAdvanced(@NotNull Long savingsId, @NotNull PagedLocalRequest<AdvancedQueryRequest> pagedRequest) {
|
||||
public Page<JsonObject> queryAdvanced(@NonNull Long savingsId, @NonNull PagedLocalRequest<AdvancedQueryRequest> pagedRequest) {
|
||||
context.authenticatedUser().validateHasReadPermission(SAVINGS_ACCOUNT_RESOURCE_NAME);
|
||||
String apptable = EntityTables.SAVINGS_TRANSACTION.getApptableName();
|
||||
|
||||
|
||||
+2
-2
@@ -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);
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
|
||||
+3
-3
@@ -19,16 +19,16 @@
|
||||
package org.apache.fineract.portfolio.savings.service.search;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import org.apache.fineract.infrastructure.core.service.PagedLocalRequest;
|
||||
import org.apache.fineract.portfolio.savings.data.SavingsAccountTransactionData;
|
||||
import org.apache.fineract.portfolio.search.data.AdvancedQueryRequest;
|
||||
import org.apache.fineract.portfolio.search.data.TransactionSearchRequest;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
public interface SavingsAccountTransactionSearchService {
|
||||
|
||||
Page<SavingsAccountTransactionData> searchTransactions(@NotNull Long savingsId, @NotNull TransactionSearchRequest searchParameters);
|
||||
Page<SavingsAccountTransactionData> searchTransactions(@NonNull Long savingsId, @NonNull TransactionSearchRequest searchParameters);
|
||||
|
||||
Page<JsonObject> queryAdvanced(@NotNull Long savingsId, @NotNull PagedLocalRequest<AdvancedQueryRequest> pagedRequest);
|
||||
Page<JsonObject> queryAdvanced(@NonNull Long savingsId, @NonNull PagedLocalRequest<AdvancedQueryRequest> pagedRequest);
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
+2
-2
@@ -36,9 +36,9 @@ import org.apache.fineract.integrationtests.common.Utils;
|
||||
import org.apache.fineract.integrationtests.common.accounting.Account;
|
||||
import org.apache.fineract.integrationtests.common.products.DelinquencyBucketsHelper;
|
||||
import org.apache.fineract.integrationtests.common.system.CodeHelper;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
public class LoanProductChargeOffReasonMappingsTest extends BaseLoanIntegrationTest {
|
||||
|
||||
@@ -225,7 +225,7 @@ public class LoanProductChargeOffReasonMappingsTest extends BaseLoanIntegrationT
|
||||
.allowPartialPeriodInterestCalcualtion(false);//
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
private static List<PostChargeOffReasonToExpenseAccountMappings> createPostChargeOffReasonToExpenseAccountMappings(
|
||||
Long chargeOffReasonId, Long glAccountId) {
|
||||
List<PostChargeOffReasonToExpenseAccountMappings> chargeOffReasonToExpenseAccountMappings = new ArrayList<>();
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
+2
-2
@@ -25,7 +25,7 @@ import org.apache.fineract.client.models.IsCatchUpRunningDTO;
|
||||
import org.apache.fineract.client.models.OldestCOBProcessedLoanDTO;
|
||||
import org.apache.fineract.client.util.Calls;
|
||||
import org.apache.fineract.integrationtests.common.FineractClientHelper;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.lang.NonNull;
|
||||
import retrofit2.Response;
|
||||
|
||||
@Slf4j
|
||||
@@ -38,7 +38,7 @@ public class LoanCOBCatchUpHelper {
|
||||
return Boolean.TRUE.equals(Objects.requireNonNull(response.body()).getCatchUpRunning());
|
||||
}
|
||||
|
||||
public boolean isLoanCOBCatchUpFinishedFor(@NotNull LocalDate cobBusinessDate) {
|
||||
public boolean isLoanCOBCatchUpFinishedFor(@NonNull LocalDate cobBusinessDate) {
|
||||
Response<IsCatchUpRunningDTO> response = executeGetLoanCatchUpStatus();
|
||||
IsCatchUpRunningDTO isCatchUpRunningResponse = Objects.requireNonNull(response.body());
|
||||
OldestCOBProcessedLoanDTO getOldestCOBProcessedLoanResponse = executeRetrieveOldestCOBProcessedLoan();
|
||||
|
||||
+2
-2
@@ -78,11 +78,11 @@ import org.apache.fineract.integrationtests.common.savings.SavingsAccountHelper;
|
||||
import org.apache.fineract.integrationtests.common.savings.SavingsProductHelper;
|
||||
import org.apache.fineract.integrationtests.common.savings.SavingsStatusChecker;
|
||||
import org.apache.fineract.integrationtests.common.system.DatatableHelper;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
public class DatatableAdvancedQueryTest {
|
||||
|
||||
@@ -344,7 +344,7 @@ public class DatatableAdvancedQueryTest {
|
||||
return datatable;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
private HashMap<String, Object> createDatatableEntry(String datatable, Integer apptableId, LocalDate dateValue, Boolean boolValue,
|
||||
Integer intValue, BigDecimal decValue) {
|
||||
final HashMap<String, Object> request = new HashMap<>();
|
||||
|
||||
+3
-3
@@ -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"));
|
||||
|
||||
+3
-3
@@ -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"));
|
||||
|
||||
+3
-3
@@ -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"));
|
||||
|
||||
Reference in New Issue
Block a user