package org.codehaus.groovy.runtime.memoize; /** * Represents a memoize cache with its essential methods * @param <K> type of the keys * @param <V> type of the values * * @author Vaclav Pech */ public interface MemoizeCache<K, V> { V put(K key, V value); V get(K key); /** * Invoked when some of the held SoftReferences have been evicted by the garbage collector and so should be removed from the cache. * The implementation must ensure that concurrent invocations of all methods on the cache may occur from other threads * and thus should protect any shared resources. */ void cleanUpNullReferences(); }