■ ■ ■ ■ ■ ■
src/main/java/com/nccgroup/loggerplusplus/filter/parser/FilterEvaluationVisitor.java
| skipped 6 lines |
7 | 7 | | import com.nccgroup.loggerplusplus.filterlibrary.FilterLibraryController; |
8 | 8 | | import com.nccgroup.loggerplusplus.logentry.LogEntry; |
9 | 9 | | import com.nccgroup.loggerplusplus.logentry.LogEntryField; |
| 10 | + | import org.apache.commons.lang3.StringUtils; |
10 | 11 | | import org.apache.commons.lang3.time.DateUtils; |
11 | 12 | | |
12 | 13 | | import java.math.BigDecimal; |
| skipped 148 lines |
161 | 162 | | if (leftString.equalsIgnoreCase(String.valueOf(item))) return true; |
162 | 163 | | } |
163 | 164 | | return false; |
164 | | - | } else if (op == ComparisonOperator.CONTAINS && Collection.class.isAssignableFrom(left.getClass())) { |
| 165 | + | } else if (op == ComparisonOperator.CONTAINS) { |
165 | 166 | | //Request.Parameters CONTAINS "A" |
166 | 167 | | Object finalRight = right; |
167 | | - | return ((Collection) left).stream().anyMatch(o -> String.valueOf(o).equalsIgnoreCase(String.valueOf(finalRight))); |
| 168 | + | if (Collection.class.isAssignableFrom(left.getClass())) { |
| 169 | + | return ((Collection) left).stream().anyMatch(o -> String.valueOf(o).equalsIgnoreCase(String.valueOf(finalRight))); |
| 170 | + | } else { |
| 171 | + | return StringUtils.containsIgnoreCase(String.valueOf(left), String.valueOf(right)); |
| 172 | + | } |
168 | 173 | | } else if (left instanceof String || right instanceof String) { //String comparison last. |
169 | | - | switch (op) { |
170 | | - | case EQUAL: |
171 | | - | return String.valueOf(left).equalsIgnoreCase(String.valueOf(right)); |
172 | | - | case NOT_EQUAL: |
173 | | - | return !String.valueOf(left).equalsIgnoreCase(String.valueOf(right)); |
174 | | - | case CONTAINS: |
175 | | - | return (String.valueOf(left).toLowerCase()).contains(String.valueOf(right).toLowerCase()); |
176 | | - | } |
| 174 | + | return String.valueOf(left).equalsIgnoreCase(String.valueOf(right)) ^ op != ComparisonOperator.EQUAL; |
177 | 175 | | } else { |
178 | 176 | | switch (op) { |
179 | 177 | | case EQUAL: |
| skipped 16 lines |