package org.geogebra.common.move.ggtapi.models; import org.geogebra.common.util.StringUtil; public abstract class MaterialFilter { public abstract boolean check(Material m); public static MaterialFilter getUniversalFilter() { return new MaterialFilter() { @Override public boolean check(Material m) { return true; } }; } /** * searches for "query" in: title and description of material * * @param query * String * @return {@link MaterialFilter} */ public static MaterialFilter getSearchFilter(final String query) { return new MaterialFilter() { @Override public boolean check(Material m) { boolean ret = false; if (m.getTitle() != null) { ret |= StringUtil.toLowerCase(m.getTitle()) .contains(StringUtil.toLowerCase(query)); } if (m.getDescription() != null) { ret |= StringUtil.toLowerCase(m.getDescription()) .contains(StringUtil.toLowerCase(query)); } return ret; } }; } /** * Filter materials from specific user * * @param author * String * @return {@link MaterialFilter} */ /* * public static MaterialFilter getAuthorFilter(final String author) { * return new MaterialFilter() { * * @Override public boolean check(Material m) { return * m.getAuthor().equals(author); } }; } */ }