package com.gmail.dpierron.calibre.datamodel.filter; import com.gmail.dpierron.calibre.datamodel.Book; import com.gmail.dpierron.calibre.datamodel.BookRating; import com.gmail.dpierron.tools.Helper; public class RatingFilter implements BookFilter { private final char rating; private final char comparator; public RatingFilter(char comparator, char rating) { this.rating = rating; this.comparator = comparator; } public boolean didBookPassThroughFilter(Book book) { if (book == null) return false; if (Helper.isNullOrEmpty(rating)) return true; if (Helper.isNullOrEmpty(comparator)) return true; char bookRating = '0'; BookRating rating1 = book.getRating(); if (rating1 != null && rating1 != BookRating.NOTRATED) bookRating = rating1.getCharEquivalent(); switch (comparator) { case '=': return bookRating == rating; case '<': return bookRating < rating; case '>': return bookRating > rating; default: return false; } } }