private boolean isCriteriaMatching(NotificationSubscriber notifSubscriber, ProductItem item) {
      List<Configuration> configurations = notifSubscriber.getCriteria();

      for (int i = 0; i < configurations.size(); i++) {
        Configuration config = configurations.get(i);

        String condition = config.getCondition();
        String attributeName = config.getAttributeName();
        String atrributeValue = config.getAttributeValue();

        if (attributeName.equalsIgnoreCase("listPrice")) {
          String itemListPrice = item.getList_price();
          if (itemListPrice == null) return false;

          if (condition.equals("=")) {
            return (Integer.parseInt(itemListPrice) == Integer.parseInt(atrributeValue));
          } else if (condition.equals(">=")) {
            return (Integer.parseInt(itemListPrice) >= Integer.parseInt(atrributeValue));
          } else if (condition.equals("<=")) {
            return (Integer.parseInt(itemListPrice) <= Integer.parseInt(atrributeValue));
          }

        } else if (attributeName.equalsIgnoreCase("releaseDate")) {
          String itemReleaseDate = item.getRelease_date();
          if (itemReleaseDate == null) return false;

          DateFormat formatter = new SimpleDateFormat("dd-MM-yy");
        } else if (attributeName.equalsIgnoreCase("title")) {
          String itemTitle = item.getTitle();
          if (itemTitle == null) return false;

          if (condition.equals("=") && !itemTitle.equals(atrributeValue)) {
            return false;
          } else if (condition.equals("!=") && itemTitle.equals(atrributeValue)) {
            return false;
          }

        } else if (attributeName.equalsIgnoreCase("authors")) {
          String itemAuthor = item.getAuthor();
          if (itemAuthor == null) return false;
          if (condition.equals("=") && !itemAuthor.equals(atrributeValue)) {
            return false;
          } else if (condition.equals("!=") && itemAuthor.equals(atrributeValue)) {
            return false;
          }

        } else if (attributeName.equalsIgnoreCase("publisher")) {
          String itemPublisher = item.getPublisher();
          if (itemPublisher == null) return false;
          if (condition.equals("=") && !itemPublisher.equals(atrributeValue)) {
            return false;
          } else if (condition.equals("!=") && itemPublisher.equals(atrributeValue)) {
            return false;
          }
        }
      }

      return true;
    }