FINERACT-2267: Use the proper not-null annotation in Fineract code base
This commit is contained in:
committed by
Adam Saghy
parent
8d7d8ca7ef
commit
d71c0bd204
+5
-5
@@ -57,9 +57,9 @@ import org.apache.fineract.infrastructure.core.filters.BatchCallHandler;
|
||||
import org.apache.fineract.infrastructure.core.filters.BatchFilter;
|
||||
import org.apache.fineract.infrastructure.core.filters.BatchRequestPreprocessor;
|
||||
import org.apache.fineract.infrastructure.core.persistence.ExtendedJpaTransactionManager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.dao.ConcurrencyFailureException;
|
||||
import org.springframework.dao.NonTransientDataAccessException;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.transaction.TransactionException;
|
||||
@@ -288,8 +288,8 @@ public class BatchApiServiceImpl implements BatchApiService {
|
||||
* the current request node
|
||||
* @return {@code BatchResponse} list of the generated batch responses
|
||||
*/
|
||||
private List<BatchResponse> parentRequestFailedRecursive(@NotNull BatchRequest request, @NotNull BatchRequestNode requestNode,
|
||||
@NotNull BatchResponse response, Long parentId) {
|
||||
private List<BatchResponse> parentRequestFailedRecursive(@NonNull BatchRequest request, @NonNull BatchRequestNode requestNode,
|
||||
@NonNull BatchResponse response, Long parentId) {
|
||||
List<BatchResponse> responseList = new ArrayList<>();
|
||||
if (parentId == null) { // root
|
||||
BatchRequestContextHolder.getEnclosingTransaction().ifPresent(TransactionExecution::setRollbackOnly);
|
||||
@@ -339,8 +339,8 @@ public class BatchApiServiceImpl implements BatchApiService {
|
||||
return response;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private List<BatchResponse> buildErrorResponses(Throwable ex, @NotNull List<BatchResponse> responseList) {
|
||||
@NonNull
|
||||
private List<BatchResponse> buildErrorResponses(Throwable ex, @NonNull List<BatchResponse> responseList) {
|
||||
BatchResponse response = responseList.isEmpty() ? null
|
||||
: responseList.stream().filter(e -> e.getStatusCode() == null || e.getStatusCode() != SC_OK).findFirst()
|
||||
.orElse(responseList.get(responseList.size() - 1));
|
||||
|
||||
+9
-9
@@ -39,7 +39,7 @@ import org.apache.fineract.infrastructure.core.exception.GeneralPlatformDomainRu
|
||||
import org.apache.fineract.infrastructure.core.exception.IdempotentCommandProcessUnderProcessingException;
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.orm.jpa.JpaSystemException;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Isolation;
|
||||
@@ -63,19 +63,19 @@ public class CommandSourceService {
|
||||
private final ErrorHandler errorHandler;
|
||||
private final FromJsonHelper fromApiJsonHelper;
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
@Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.REPEATABLE_READ)
|
||||
public CommandSource saveInitialNewTransaction(CommandWrapper wrapper, JsonCommand jsonCommand, AppUser maker, String idempotencyKey) {
|
||||
return saveInitial(wrapper, jsonCommand, maker, idempotencyKey);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
@Transactional(propagation = Propagation.REQUIRED)
|
||||
public CommandSource saveInitialSameTransaction(CommandWrapper wrapper, JsonCommand jsonCommand, AppUser maker, String idempotencyKey) {
|
||||
return saveInitial(wrapper, jsonCommand, maker, idempotencyKey);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
private CommandSource saveInitial(CommandWrapper wrapper, JsonCommand jsonCommand, AppUser maker, String idempotencyKey) {
|
||||
try {
|
||||
CommandSource initialCommandSource = getInitialCommandSource(wrapper, jsonCommand, maker, idempotencyKey);
|
||||
@@ -90,17 +90,17 @@ public class CommandSourceService {
|
||||
}
|
||||
|
||||
@Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.REPEATABLE_READ)
|
||||
public CommandSource saveResultNewTransaction(@NotNull CommandSource commandSource) {
|
||||
public CommandSource saveResultNewTransaction(@NonNull CommandSource commandSource) {
|
||||
return saveResult(commandSource);
|
||||
}
|
||||
|
||||
@Transactional(propagation = Propagation.REQUIRED)
|
||||
public CommandSource saveResultSameTransaction(@NotNull CommandSource commandSource) {
|
||||
public CommandSource saveResultSameTransaction(@NonNull CommandSource commandSource) {
|
||||
return saveResult(commandSource);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private CommandSource saveResult(@NotNull CommandSource commandSource) {
|
||||
@NonNull
|
||||
private CommandSource saveResult(@NonNull CommandSource commandSource) {
|
||||
return commandSourceRepository.saveAndFlush(commandSource);
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ public class CommandSourceService {
|
||||
return result;
|
||||
}
|
||||
|
||||
private void sanitizeJson(@NotNull CommandSource commandSource, Set<String> sanitizeKeys) {
|
||||
private void sanitizeJson(@NonNull CommandSource commandSource, Set<String> sanitizeKeys) {
|
||||
if (sanitizeKeys == null || sanitizeKeys.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
+3
-3
@@ -32,7 +32,7 @@ import org.apache.commons.lang3.mutable.MutableObject;
|
||||
import org.apache.fineract.commands.service.SynchronousCommandProcessingService;
|
||||
import org.apache.fineract.infrastructure.core.config.FineractProperties;
|
||||
import org.apache.fineract.infrastructure.core.domain.FineractRequestContextHolder;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.web.filter.OncePerRequestFilter;
|
||||
import org.springframework.web.util.ContentCachingResponseWrapper;
|
||||
|
||||
@@ -45,8 +45,8 @@ public class IdempotencyStoreFilter extends OncePerRequestFilter {
|
||||
private final FineractProperties fineractProperties;
|
||||
|
||||
@Override
|
||||
protected void doFilterInternal(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response,
|
||||
@NotNull FilterChain filterChain) throws ServletException, IOException {
|
||||
protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response,
|
||||
@NonNull FilterChain filterChain) throws ServletException, IOException {
|
||||
Mutable<ContentCachingResponseWrapper> wrapper = new MutableObject<>();
|
||||
if (helper.isAllowedContentTypeRequest(request)) {
|
||||
wrapper.setValue(new ContentCachingResponseWrapper(response));
|
||||
|
||||
+24
-24
@@ -26,7 +26,6 @@ import static org.apache.fineract.infrastructure.dataqueries.api.DataTableApiCon
|
||||
import static org.apache.fineract.portfolio.search.SearchConstants.API_PARAM_COLUMN;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.Date;
|
||||
import java.sql.Timestamp;
|
||||
@@ -56,6 +55,7 @@ import org.apache.fineract.infrastructure.security.service.SqlValidator;
|
||||
import org.apache.fineract.portfolio.search.data.ColumnFilterData;
|
||||
import org.apache.fineract.portfolio.search.data.FilterData;
|
||||
import org.springframework.jdbc.support.rowset.SqlRowSet;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Slf4j
|
||||
@@ -69,18 +69,18 @@ public class SearchUtil {
|
||||
|
||||
private final SqlValidator sqlValidator;
|
||||
|
||||
@NotNull
|
||||
public Map<String, ResultsetColumnHeaderData> mapHeadersToName(@NotNull Collection<ResultsetColumnHeaderData> columnHeaders) {
|
||||
@NonNull
|
||||
public Map<String, ResultsetColumnHeaderData> mapHeadersToName(@NonNull Collection<ResultsetColumnHeaderData> columnHeaders) {
|
||||
return columnHeaders.stream().collect(Collectors.toMap(ResultsetColumnHeaderData::getColumnName, e -> e));
|
||||
}
|
||||
|
||||
public ResultsetColumnHeaderData findFiltered(@NotNull Collection<ResultsetColumnHeaderData> columnHeaders,
|
||||
@NotNull Predicate<ResultsetColumnHeaderData> filter) {
|
||||
public ResultsetColumnHeaderData findFiltered(@NonNull Collection<ResultsetColumnHeaderData> columnHeaders,
|
||||
@NonNull Predicate<ResultsetColumnHeaderData> filter) {
|
||||
return columnHeaders.stream().filter(filter).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
public ResultsetColumnHeaderData getFiltered(@NotNull Collection<ResultsetColumnHeaderData> columnHeaders,
|
||||
@NotNull Predicate<ResultsetColumnHeaderData> filter) {
|
||||
public ResultsetColumnHeaderData getFiltered(@NonNull Collection<ResultsetColumnHeaderData> columnHeaders,
|
||||
@NonNull Predicate<ResultsetColumnHeaderData> filter) {
|
||||
ResultsetColumnHeaderData filtered = findFiltered(columnHeaders, filter);
|
||||
if (filtered == null) {
|
||||
throw new PlatformDataIntegrityException("error.msg.column.not.exists", "Column filtered does not exist");
|
||||
@@ -88,8 +88,8 @@ public class SearchUtil {
|
||||
return filtered;
|
||||
}
|
||||
|
||||
public void extractJsonResult(@NotNull SqlRowSet rowSet, @NotNull List<String> selectColumns, @NotNull List<String> resultColumns,
|
||||
@NotNull List<JsonObject> results) {
|
||||
public void extractJsonResult(@NonNull SqlRowSet rowSet, @NonNull List<String> selectColumns, @NonNull List<String> resultColumns,
|
||||
@NonNull List<JsonObject> results) {
|
||||
JsonObject json = new JsonObject();
|
||||
for (int i = 0; i < selectColumns.size(); i++) {
|
||||
Object rowValue = rowSet.getObject(selectColumns.get(i));
|
||||
@@ -120,14 +120,14 @@ public class SearchUtil {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
public List<String> validateToJdbcColumnNames(List<String> columns, Map<String, ResultsetColumnHeaderData> headersByName,
|
||||
boolean allowEmpty) {
|
||||
List<ResultsetColumnHeaderData> columnHeaders = validateToJdbcColumns(columns, headersByName, allowEmpty);
|
||||
return columnHeaders.stream().map(e -> e == null ? null : e.getColumnName()).toList();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@NonNull
|
||||
public List<ResultsetColumnHeaderData> validateToJdbcColumns(List<String> columns, Map<String, ResultsetColumnHeaderData> headersByName,
|
||||
boolean allowEmpty) {
|
||||
final List<ApiParameterError> errors = new ArrayList<>();
|
||||
@@ -151,7 +151,7 @@ public class SearchUtil {
|
||||
return columnHeader == null ? null : columnHeader.getColumnName();
|
||||
}
|
||||
|
||||
public ResultsetColumnHeaderData validateToJdbcColumn(String column, @NotNull Map<String, ResultsetColumnHeaderData> headersByName,
|
||||
public ResultsetColumnHeaderData validateToJdbcColumn(String column, @NonNull Map<String, ResultsetColumnHeaderData> headersByName,
|
||||
boolean allowEmpty) {
|
||||
final List<ApiParameterError> errors = new ArrayList<>();
|
||||
ResultsetColumnHeaderData columnHeader = validateToJdbcColumnImpl(column, headersByName, errors, allowEmpty);
|
||||
@@ -161,8 +161,8 @@ public class SearchUtil {
|
||||
return columnHeader;
|
||||
}
|
||||
|
||||
private ResultsetColumnHeaderData validateToJdbcColumnImpl(String column, @NotNull Map<String, ResultsetColumnHeaderData> headersByName,
|
||||
@NotNull List<ApiParameterError> errors, boolean allowEmpty) {
|
||||
private ResultsetColumnHeaderData validateToJdbcColumnImpl(String column, @NonNull Map<String, ResultsetColumnHeaderData> headersByName,
|
||||
@NonNull List<ApiParameterError> errors, boolean allowEmpty) {
|
||||
if (!allowEmpty && column == null) {
|
||||
errors.add(parameterErrorWithValue("error.msg.column.empty", "Column filter is empty", API_PARAM_COLUMN, null));
|
||||
}
|
||||
@@ -179,9 +179,9 @@ public class SearchUtil {
|
||||
return columnHeader;
|
||||
}
|
||||
|
||||
public boolean buildQueryCondition(List<ColumnFilterData> columnFilters, @NotNull StringBuilder where, @NotNull List<Object> params,
|
||||
public boolean buildQueryCondition(List<ColumnFilterData> columnFilters, @NonNull StringBuilder where, @NonNull List<Object> params,
|
||||
String alias, Map<String, ResultsetColumnHeaderData> headersByName, String dateFormat, String dateTimeFormat, Locale locale,
|
||||
boolean embedded, @NotNull DatabaseSpecificSQLGenerator sqlGenerator) {
|
||||
boolean embedded, @NonNull DatabaseSpecificSQLGenerator sqlGenerator) {
|
||||
if (columnFilters == null) {
|
||||
return false;
|
||||
}
|
||||
@@ -198,9 +198,9 @@ public class SearchUtil {
|
||||
return added;
|
||||
}
|
||||
|
||||
public boolean buildFilterCondition(ColumnFilterData columnFilter, @NotNull StringBuilder where, @NotNull List<Object> params,
|
||||
public boolean buildFilterCondition(ColumnFilterData columnFilter, @NonNull StringBuilder where, @NonNull List<Object> params,
|
||||
String alias, Map<String, ResultsetColumnHeaderData> headersByName, String dateFormat, String dateTimeFormat, Locale locale,
|
||||
boolean embedded, @NotNull DatabaseSpecificSQLGenerator sqlGenerator) {
|
||||
boolean embedded, @NonNull DatabaseSpecificSQLGenerator sqlGenerator) {
|
||||
String columnName = columnFilter.getColumn();
|
||||
List<FilterData> filters = columnFilter.getFilters();
|
||||
int size = filters.size();
|
||||
@@ -227,8 +227,8 @@ public class SearchUtil {
|
||||
return size > 0;
|
||||
}
|
||||
|
||||
public void buildCondition(@NotNull String definition, JdbcJavaType columnType, @NotNull SqlOperator operator, List<Object> values,
|
||||
@NotNull StringBuilder where, @NotNull List<Object> params, String alias, @NotNull DatabaseSpecificSQLGenerator sqlGenerator) {
|
||||
public void buildCondition(@NonNull String definition, JdbcJavaType columnType, @NonNull SqlOperator operator, List<Object> values,
|
||||
@NonNull StringBuilder where, @NonNull List<Object> params, String alias, @NonNull DatabaseSpecificSQLGenerator sqlGenerator) {
|
||||
int paramCount = values == null ? 0 : values.size();
|
||||
where.append(operator.formatPlaceholder(sqlGenerator, definition, paramCount, alias));
|
||||
if (values != null) {
|
||||
@@ -236,14 +236,14 @@ public class SearchUtil {
|
||||
}
|
||||
}
|
||||
|
||||
public Object parseJdbcColumnValue(@NotNull ResultsetColumnHeaderData columnHeader, String columnValue, String dateFormat,
|
||||
String dateTimeFormat, Locale locale, boolean strict, @NotNull DatabaseSpecificSQLGenerator sqlGenerator) {
|
||||
public Object parseJdbcColumnValue(@NonNull ResultsetColumnHeaderData columnHeader, String columnValue, String dateFormat,
|
||||
String dateTimeFormat, Locale locale, boolean strict, @NonNull DatabaseSpecificSQLGenerator sqlGenerator) {
|
||||
return columnHeader.getColumnType().toJdbcValue(sqlGenerator.getDialect(),
|
||||
parseColumnValue(columnHeader, columnValue, dateFormat, dateTimeFormat, locale, strict, sqlGenerator), false);
|
||||
}
|
||||
|
||||
public Object parseColumnValue(@NotNull ResultsetColumnHeaderData columnHeader, String columnValue, String dateFormat,
|
||||
String dateTimeFormat, Locale locale, boolean strict, @NotNull DatabaseSpecificSQLGenerator sqlGenerator) {
|
||||
public Object parseColumnValue(@NonNull ResultsetColumnHeaderData columnHeader, String columnValue, String dateFormat,
|
||||
String dateTimeFormat, Locale locale, boolean strict, @NonNull DatabaseSpecificSQLGenerator sqlGenerator) {
|
||||
JdbcJavaType colType = columnHeader.getColumnType();
|
||||
if (!colType.isStringType() || !columnHeader.isMandatory()) {
|
||||
columnValue = StringUtils.trimToNull(columnValue);
|
||||
|
||||
Reference in New Issue
Block a user