Class BitSetENTCacheImpl
- java.lang.Object
-
- org.apache.jackrabbit.core.nodetype.BitSetENTCacheImpl
-
- All Implemented Interfaces:
Cloneable,EffectiveNodeTypeCache
public class BitSetENTCacheImpl extends Object implements EffectiveNodeTypeCache
Implements an effective node type cache that uses a bit set for storing the information about participating node types in a set.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.jackrabbit.core.nodetype.EffectiveNodeTypeCache
EffectiveNodeTypeCache.Key
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Objectclone()booleancontains(EffectiveNodeTypeCache.Key key)Checks if the effective node type for the given key exists.EffectiveNodeTypeCache.KeyfindBest(EffectiveNodeTypeCache.Key key)Searches the best key k for which the givenkeyis a super set, i.e.EffectiveNodeTypeget(EffectiveNodeTypeCache.Key key)Returns the effective node type for the given key ornullif the desired node type is not cached.EffectiveNodeTypeCache.KeygetKey(Name[] ntNames)Returns a key for an effective node type that consists of the given node type names.voidinvalidate(Name name)Removes all effective node types that are aggregated with the node type of the given name.voidput(EffectiveNodeType ent)Puts an effective node type to the cache.voidput(EffectiveNodeTypeCache.Key key, EffectiveNodeType ent)Puts an effective node type to the cache for the given key.StringtoString()
-
-
-
Method Detail
-
getKey
public EffectiveNodeTypeCache.Key getKey(Name[] ntNames)
Returns a key for an effective node type that consists of the given node type names.- Specified by:
getKeyin interfaceEffectiveNodeTypeCache- Parameters:
ntNames- the array of node type names for the effective node type- Returns:
- the key to an effective node type.
-
put
public void put(EffectiveNodeType ent)
Puts an effective node type to the cache. The key is internally generated from the set of merged node types.- Specified by:
putin interfaceEffectiveNodeTypeCache- Parameters:
ent- the effective node type to put to the cache
-
put
public void put(EffectiveNodeTypeCache.Key key, EffectiveNodeType ent)
Puts an effective node type to the cache for the given key.- Specified by:
putin interfaceEffectiveNodeTypeCache- Parameters:
key- the key for the effective node typeent- the effective node type to put to the cache
-
findBest
public EffectiveNodeTypeCache.Key findBest(EffectiveNodeTypeCache.Key key)
Searches the best key k for which the givenkeyis a super set, i.e. for whichEffectiveNodeTypeCache.Key.contains(Key)} returnstrue. If an already cached effective node type matches the key it is returned.- Specified by:
findBestin interfaceEffectiveNodeTypeCache- Parameters:
key- the key for which the subkey is to be searched- Returns:
- the best key or
nullif no key could be found.
-
invalidate
public void invalidate(Name name)
Removes all effective node types that are aggregated with the node type of the given name.- Specified by:
invalidatein interfaceEffectiveNodeTypeCache- Parameters:
name- the name of the node type.
-
contains
public boolean contains(EffectiveNodeTypeCache.Key key)
Checks if the effective node type for the given key exists.- Specified by:
containsin interfaceEffectiveNodeTypeCache- Parameters:
key- the key to check- Returns:
trueif the effective node type is cached;falseotherwise.
-
get
public EffectiveNodeType get(EffectiveNodeTypeCache.Key key)
Returns the effective node type for the given key ornullif the desired node type is not cached.- Specified by:
getin interfaceEffectiveNodeTypeCache- Parameters:
key- the key for the effective node type.- Returns:
- the effective node type or
null
-
clone
public Object clone()
- Specified by:
clonein interfaceEffectiveNodeTypeCache- Overrides:
clonein classObject
-
-