/** * <p> * Clears cached recommendations for the given user. * </p> * * @param userID * clear cached data associated with this user ID */ public void clear(final long userID) { log.debug("Clearing recommendations for user ID '{}'", userID); recommendationCache.remove(userID); estimatedPrefCache.removeKeysMatching(new Cache.MatchPredicate<LongPair>() { @Override public boolean matches(LongPair userItemPair) { return userItemPair.getFirst() == userID; } }); }
@Test public void testMixedUsage() throws TasteException { Random random = RandomUtils.getRandom(); Retriever<Object,Object> retriever = new IdentityRetriever(); Cache<Object,Object> cache = new Cache<Object,Object>(retriever, 1000); for (int i = 0; i < 1000000; i++) { double r = random.nextDouble(); if (r < 0.01) { cache.clear(); } else if (r < 0.1) { cache.remove(r - 100); } else { assertEquals(i, cache.get(i)); } } }
/** * <p> * Clears cached recommendations for the given user. * </p> * * @param userID * clear cached data associated with this user ID */ public void clear(final long userID) { log.debug("Clearing recommendations for user ID '{}'", userID); recommendationCache.remove(userID); estimatedPrefCache.removeKeysMatching(new Cache.MatchPredicate<LongPair>() { @Override public boolean matches(LongPair userItemPair) { return userItemPair.getFirst() == userID; } }); }
/** * <p> * Clears cached recommendations for the given user. * </p> * * @param userID * clear cached data associated with this user ID */ public void clear(final long userID) { log.debug("Clearing recommendations for user ID '{}'", userID); recommendationCache.remove(userID); estimatedPrefCache.removeKeysMatching(new Cache.MatchPredicate<LongPair>() { @Override public boolean matches(LongPair userItemPair) { return userItemPair.getFirst() == userID; } }); }