code: @Override
      public void printRanking(final Long user, final List<Pair<Long, Double>> scoredItems, final PrintStream out, final OUTPUT_FORMAT format) {
          final Set<Long> relItems = new HashSet<Long>();
          for (Long i : getTest().getUserItems(user)) {
              if (getTest().getUserItemPreference(user, i) >= getThreshold()) {
                  relItems.add(i);
              }
          }
          final Map<Long, Double> relScores = new HashMap<Long, Double>();
          final Map<Long, Double> notRelScores = new HashMap<Long, Double>();
          for (Pair<Long, Double> p : scoredItems) {
              if (relItems.contains(p.getFirst())) {
                  relScores.put(p.getFirst(), p.getSecond());
              } else {
                  notRelScores.put(p.getFirst(), p.getSecond());
              }
          }
          for (Entry<Long, Double> e : relScores.entrySet()) {
              Long r = e.getKey();
              Map<Long, Double> m = new HashMap<Long, Double>(notRelScores);
              m.put(r, e.getValue());
              printRanking(user + "_" + r, m, out, format);
          }
      }
docs: {@inheritDoc}