Advertisement
codeuniv

logging in default method of interface

Jan 31st, 2019
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.38 KB | None | 0 0
  1. package com.codeuniverse.jackpotalert.candidates.filtering;
  2.  
  3. import java.util.LinkedHashSet;
  4. import java.util.Set;
  5.  
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8.  
  9. import com.codeuniverse.jackpotalert.domain.Draw5x36;
  10.  
  11. // for logging in default method of CandidateFilter interface
  12. final class CandidateFilterLogHolder {
  13.     static final Logger logger = LoggerFactory.getLogger(CandidateFilter.class);
  14. }
  15.  
  16. /**
  17.  * to make array of pluggable methods to pre-screen candidate-draws-to-play
  18.  *
  19.  */
  20. public interface CandidateFilter {
  21.    
  22.  
  23.     boolean isBadCandidate(Draw5x36 candidateDraw);
  24.  
  25.     /**
  26.      * что это за фильтр и что он делает
  27.      *
  28.      * @return
  29.      */
  30.     String getFilterDescription();
  31.    
  32.    
  33.    
  34.      public default Set<Draw5x36> filterCandidates(Set<Draw5x36> candidates) {
  35.         Set<Draw5x36> candidatesCopy = new LinkedHashSet<>(candidates);
  36.         int removeCounterForLogging = 0;
  37.         for (Draw5x36 draw : candidates) {
  38.             if (isBadCandidate(draw)) {
  39.                 candidatesCopy.remove(draw);
  40.                 removeCounterForLogging++;
  41.             } else {
  42.                 continue;
  43.             }
  44.         }
  45.         CandidateFilterLogHolder.logger.debug("CandidatePreScreener.filterCandidates() by " + getFilterDescription() +  " got: " + candidates.size()
  46.                 + ", removed: " + removeCounterForLogging + " and returned: " + candidatesCopy.size()
  47.                 + " candidate-draws");
  48.  
  49.         return candidatesCopy;
  50.     }
  51.    
  52.    
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement