/**
   * Accept Programs if rating fits
   *
   * @param program check this program
   * @return true, if rating fits
   */
  public boolean accept(Program program) {
    Rating rating = TVRaterPlugin.getInstance().getRating(program);

    if (rating == null) {
      return false;
    }

    if (mBest
        && rating.getOverallRating() >= mAcceptValues[TVRaterFilterAllCategories.OVERALL_INDEX]
        && rating.getActionRating() >= mAcceptValues[TVRaterFilterAllCategories.ACTION_INDEX]
        && rating.getFunRating() >= mAcceptValues[TVRaterFilterAllCategories.FUN_INDEX]
        && rating.getEroticRating() >= mAcceptValues[TVRaterFilterAllCategories.EROTIC_INDEX]
        && rating.getTensionRating() >= mAcceptValues[TVRaterFilterAllCategories.TENSION_INDEX]
        && rating.getEntitlementRating()
            >= mAcceptValues[TVRaterFilterAllCategories.ENTITLEMENT_INDEX]) {
      return true;
    } else if (!mBest
        && rating.getOverallRating() <= mAcceptValues[TVRaterFilterAllCategories.OVERALL_INDEX]
        && rating.getActionRating() <= mAcceptValues[TVRaterFilterAllCategories.ACTION_INDEX]
        && rating.getFunRating() <= mAcceptValues[TVRaterFilterAllCategories.FUN_INDEX]
        && rating.getEroticRating() <= mAcceptValues[TVRaterFilterAllCategories.EROTIC_INDEX]
        && rating.getTensionRating() <= mAcceptValues[TVRaterFilterAllCategories.TENSION_INDEX]
        && rating.getEntitlementRating()
            <= mAcceptValues[TVRaterFilterAllCategories.ENTITLEMENT_INDEX]) {
      return true;
    }
    return false;
  }