Added cache clear method

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15778 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2009-08-18 08:58:53 +00:00
parent ba7d22e65d
commit ec7a10b7f8
2 changed files with 30 additions and 0 deletions

View File

@@ -621,6 +621,21 @@ public class EntityLookupCache<K extends Serializable, V extends Object, VK exte
cache.remove(valueCacheKey);
}
/**
* Cache-only operation: Remove all cache entries
* <p/>
* <b>NOTE:</b> This operation removes ALL entries for ALL cache regions.
*/
public void clear()
{
// Handle missing cache
if (cache == null)
{
return;
}
cache.clear();
}
/**
* Key-wrapper used to separate cache regions, allowing a single cache to be used for different
* purposes.<b/>

View File

@@ -213,6 +213,21 @@ public class EntityLookupCacheTest extends TestCase implements EntityLookupCallb
assertNull(database.get(id));
assertEquals(0, cache.getKeys().size());
}
public void testClear() throws Exception
{
TestValue valueOne = new TestValue(getName() + "-ONE");
Pair<Long, Object> entityPairOne = entityLookupCacheA.getOrCreateByValue(valueOne);
assertNotNull(entityPairOne);
Long id = entityPairOne.getFirst();
assertEquals(valueOne.val, database.get(id));
assertEquals(2, cache.getKeys().size());
// Clear it
entityLookupCacheA.clear();
assertEquals(valueOne.val, database.get(id)); // Must still be in database
assertEquals(0, cache.getKeys().size()); // ... but cache must be empty
}
/**
* Helper class to represent business object