/** * @param filter the filter * @param element the element to match * @return true if the element is matched by the filer * @since 7.0M2 */ public static boolean matches(Filter filter, Object element) { // TODO: add support for more than String String filterValue = filter.getValue() != null ? String.valueOf(filter.getValue()) : null; String elementValue = element != null ? String.valueOf(element) : null; if (filter.getComparison() == COMPARISON.MATCH) { Pattern patternMatcher = createPatternMatcher(filterValue); if (matches(patternMatcher, filterValue)) { return true; } } else if (filter.getComparison() == COMPARISON.EQUAL) { if (elementValue != null && filterValue.toLowerCase().equals(elementValue.toLowerCase())) { return true; } } return false; }
/** * @param filter the filter * @param extension the extension to match * @return true if the extension is matched by the filer * @since 7.0M2 */ public static boolean matches(Filter filter, Extension extension) { Object value = extension.get(filter.getField()); if (value != null) { return matches(filter, value); } // Unknown field // FIXME: not sure if it's should be true or false in this case return true; }