package ua.kpi.ecampus.util; import com.annimon.stream.Collectors; import com.annimon.stream.Stream; import com.annimon.stream.function.Predicate; import java.util.Collection; import java.util.Date; import java.util.List; import ua.kpi.ecampus.model.pojo.Bulletin; import ua.kpi.ecampus.model.pojo.Item; /** * Created by Administrator on 29.03.2016. */ public class BulletinPredicates { public static Predicate<Bulletin> isNotExpired(String date) { Date currentDate = DateUtil.convert(date); return p -> (currentDate != null && !currentDate.before(DateUtil.convert (p.getDateStart()))) && !currentDate.after(DateUtil.convert(p.getDateStop())); } public static Predicate<Bulletin> isMatchesProfile(List<Integer> profileIds) { return p -> Stream.of(profileIds).anyMatch(i -> i.equals(p .getProfileId())); } public static Predicate<Bulletin> isMatchesSubdivision(List<Integer> subdiv) { return p -> Stream.of(subdiv).anyMatch(i -> i.equals(p .getSubdivisionId())); } public static Predicate<Bulletin> isDeleted() { return p -> (p.getActuality() == false); } public static Predicate<Bulletin> isMatchesQuerySubject(String query) { return p -> p.getSubject().toLowerCase().contains(query); } public static List<Integer> getIdsCollection(List<Item> items) { return Stream.of(items).map(Item::getId).collect (Collectors.<Integer>toList()); } public static List<Bulletin> filterBulletins(Collection<Bulletin> bulletins, Predicate<Bulletin> predicate) { return Stream.of(bulletins) .filter(predicate) .collect(Collectors.<Bulletin>toList()); } }