Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.codeuniverse.jackpotalert.candidates.filtering;
- import java.util.LinkedHashSet;
- import java.util.Set;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import com.codeuniverse.jackpotalert.domain.Draw5x36;
- // for logging in default method of CandidateFilter interface
- final class CandidateFilterLogHolder {
- static final Logger logger = LoggerFactory.getLogger(CandidateFilter.class);
- }
- /**
- * to make array of pluggable methods to pre-screen candidate-draws-to-play
- *
- */
- public interface CandidateFilter {
- boolean isBadCandidate(Draw5x36 candidateDraw);
- /**
- * что это за фильтр и что он делает
- *
- * @return
- */
- String getFilterDescription();
- public default Set<Draw5x36> filterCandidates(Set<Draw5x36> candidates) {
- Set<Draw5x36> candidatesCopy = new LinkedHashSet<>(candidates);
- int removeCounterForLogging = 0;
- for (Draw5x36 draw : candidates) {
- if (isBadCandidate(draw)) {
- candidatesCopy.remove(draw);
- removeCounterForLogging++;
- } else {
- continue;
- }
- }
- CandidateFilterLogHolder.logger.debug("CandidatePreScreener.filterCandidates() by " + getFilterDescription() + " got: " + candidates.size()
- + ", removed: " + removeCounterForLogging + " and returned: " + candidatesCopy.size()
- + " candidate-draws");
- return candidatesCopy;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement