[ https://issues.apache.org/jira/browse/RANGER-1419?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Qiang Zhang updated RANGER-1419: -------------------------------- Attachment: 0001-RANGER-1419-Do-some-code-improvement-in-Java-method-.patch > Do some code improvement in Java method XTrxLogService.searchXTrxLogs > --------------------------------------------------------------------- > > Key: RANGER-1419 > URL: https://issues.apache.org/jira/browse/RANGER-1419 > Project: Ranger > Issue Type: Improvement > Components: admin > Reporter: Qiang Zhang > Assignee: Qiang Zhang > Priority: Minor > Labels: patch > Attachments: > 0001-RANGER-1419-Do-some-code-improvement-in-Java-method-.patch, > AduitAdminSearch.jpg > > Original Estimate: 0.2h > Remaining Estimate: 0.2h > > In method searchXTrxLogs of class > \security-admin\src\main\java\org\apache\ranger\service\XTrxLogService.java, > there is some code can be improved: > 1.When search type is SearchField.SEARCH_TYPE.PARTIAL, stringPredicate > generated twice which first is redundant. > {code} > if(attr != null){ > stringPredicate = criteriaBuilder.equal(rootEntityType.get(attr), > paramValue); > if > (searchField.getSearchType().equals(SearchField.SEARCH_TYPE.PARTIAL)) { > String val = "%" + paramValue + "%"; > stringPredicate = > criteriaBuilder.like(rootEntityType.get(attr), val); > } > predicate = criteriaBuilder.and(predicate, stringPredicate); > } > {code} > 2."datePredicate = criteriaBuilder.equal(...)" is repeated, the first is > redundant and duplicated code. > {code} > if (searchField.getCustomCondition() == null) { > > datePredicate = criteriaBuilder.equal(rootEntityType.get(attr), > fieldValue); > if > (searchField.getSearchType().equals(SearchField.SEARCH_TYPE.LESS_THAN)) { > datePredicate = > criteriaBuilder.lessThan(rootEntityType.get(attr), fieldValue); > } else if > (searchField.getSearchType().equals(SearchField.SEARCH_TYPE.LESS_EQUAL_THAN)) > { > datePredicate = > criteriaBuilder.lessThanOrEqualTo(rootEntityType.get(attr), fieldValue); > } else if > (searchField.getSearchType().equals(SearchField.SEARCH_TYPE.GREATER_THAN)) { > datePredicate = > criteriaBuilder.greaterThan(rootEntityType.get(attr), fieldValue); > } else if > (searchField.getSearchType().equals(SearchField.SEARCH_TYPE.GREATER_EQUAL_THAN)) > { > datePredicate = > criteriaBuilder.greaterThanOrEqualTo(rootEntityType.get(attr), fieldValue); > } else { > datePredicate = criteriaBuilder.equal(rootEntityType.get(attr), > fieldValue); > } > predicate = criteriaBuilder.and(predicate, datePredicate); > } > {code} > 3.The following code is repated in Java method > XTrxLogService.searchXTrxLogsCount, it can be refactored to a method. > {code}for(String key : paramList.keySet()){...}{code} > 4.Do some other code improvement in Java method XTrxLogService.searchXTrxLogs > and related code. > Such as equal usage and local variable, etc. > 5.XTrxLogService.searchXTrxLogs is used in Audit Admin WebPage, > please refer screenshot > [AduitAdminSearch.jpg|https://issues.apache.org/jira/secure/attachment/12855809/AduitAdminSearch.jpg] > for more detail, > so it can be tested easily. -- This message was sent by Atlassian JIRA (v6.3.15#6346)