Class ItemInfoCacheImpl
- java.lang.Object
-
- org.apache.jackrabbit.spi.commons.ItemInfoCacheImpl
-
- All Implemented Interfaces:
ItemInfoCache
public class ItemInfoCacheImpl extends Object implements ItemInfoCache
This implementation ofItemInfoCache
has a default size of 5000 items. Item infos are put into the cache after they have been read from theRepositoryService
. If the cache is full, the oldest item is discarded. Reading items removes them from the cache. The underlying idea here is, thatItemInfo
s which are supplied by theRepositoryService
but not immediately needed are put into the cache to avoid further round trips toRepositoryService
. When they are needed later, they are read from the cache. There is no need to keep them in this cache after that point since they are present in the hierarchy from then on.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.jackrabbit.spi.ItemInfoCache
ItemInfoCache.Entry<T extends ItemInfo>
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_CACHE_SIZE
Default size of the cache.
-
Constructor Summary
Constructors Constructor Description ItemInfoCacheImpl()
Create a new instance with the default cache size.ItemInfoCacheImpl(int cacheSize)
Create a new instance with a given cache size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
dispose()
Clear the cache and dispose all entries.ItemInfoCache.Entry<NodeInfo>
getNodeInfo(NodeId nodeId)
This implementation removes the item from the cache if it is present.ItemInfoCache.Entry<PropertyInfo>
getPropertyInfo(PropertyId propertyId)
This implementation removes the item from the cache if it is present.void
put(ItemInfo info, long generation)
This implementation cached the item by its id and if the id is uuid based but has no path, also by its path.
-
-
-
Field Detail
-
DEFAULT_CACHE_SIZE
public static final int DEFAULT_CACHE_SIZE
Default size of the cache.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ItemInfoCacheImpl
public ItemInfoCacheImpl()
Create a new instance with the default cache size.- See Also:
DEFAULT_CACHE_SIZE
-
ItemInfoCacheImpl
public ItemInfoCacheImpl(int cacheSize)
Create a new instance with a given cache size.- Parameters:
cacheSize
-
-
-
Method Detail
-
getNodeInfo
public ItemInfoCache.Entry<NodeInfo> getNodeInfo(NodeId nodeId)
This implementation removes the item from the cache if it is present. Furthermore if thenodeId
id uuid based, and no item is found by thenodeId
a second lookup is done by the path.- Specified by:
getNodeInfo
in interfaceItemInfoCache
- Parameters:
nodeId
- id of the entry to lookup.- Returns:
- a
Entry<NodeInfo>
instance ornull
if not found.
-
getPropertyInfo
public ItemInfoCache.Entry<PropertyInfo> getPropertyInfo(PropertyId propertyId)
This implementation removes the item from the cache if it is present. Furthermore if thepropertyId
id uuid based, and no item is found by thepropertyId
a second lookup is done by the path.- Specified by:
getPropertyInfo
in interfaceItemInfoCache
- Parameters:
propertyId
- id of the entry to lookup.- Returns:
- a
Entry<PropertyInfo>
instance ornull
if not found.
-
put
public void put(ItemInfo info, long generation)
This implementation cached the item by its id and if the id is uuid based but has no path, also by its path.- Specified by:
put
in interfaceItemInfoCache
-
dispose
public void dispose()
Description copied from interface:ItemInfoCache
Clear the cache and dispose all entries.- Specified by:
dispose
in interfaceItemInfoCache
-
-