Class CacheImpl<T extends io.fabric8.kubernetes.api.model.HasMetadata>
- java.lang.Object
-
- io.fabric8.kubernetes.client.informers.impl.cache.CacheImpl<T>
-
- Type Parameters:
T- type for cache object
- All Implemented Interfaces:
io.fabric8.kubernetes.client.informers.cache.Cache<T>,io.fabric8.kubernetes.client.informers.cache.Indexer<T>,io.fabric8.kubernetes.client.informers.cache.Store<T>
public class CacheImpl<T extends io.fabric8.kubernetes.api.model.HasMetadata> extends Object implements io.fabric8.kubernetes.client.informers.cache.Cache<T>
It basically saves and indexes all the entries.
Index readsbyIndex(String, String),indexKeys(String, String),index(String, HasMetadata)are not globally locked and thus may not be fully consistent with the current state
-
-
Field Summary
Fields Modifier and Type Field Description static StringNAMESPACE_INDEX
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddIndexers(Map<String,Function<T,List<String>>> indexersNew)CacheImpl<T>addIndexFunc(String indexName, Function<T,List<String>> indexFunc)Add index func.List<T>byIndex(String indexName, String indexKey)By index listTget(T obj)Get objectTgetByKey(String key)Gets get by key.Map<String,Function<T,List<String>>>getIndexers()Returns the indexers registered with the cache.StringgetKey(T obj)Get the key for the given objectObjectgetLockObject()List<T>index(String indexName, T obj)Get objectsList<String>indexKeys(String indexName, String indexKey)Index keys listbooleanisFullState()List<T>list()List all objects in the cache.List<String>listKeys()List keysstatic List<String>metaNamespaceIndexFunc(Object obj)It is a default index function that indexes based on an object's namespacestatic StringmetaNamespaceKeyFunc(Object obj)It's is a convenient default KeyFunc which know show to make keys for API objects which implement HasMetadata interface.static StringnamespaceKeyFunc(String objectNamespace, String objectName)Default index function that indexes based on an object's namespace and name.Tput(T obj)Update the object.Tremove(T obj)Delete the object.voidremoveIndexer(String name)voidsetItemStore(io.fabric8.kubernetes.client.informers.cache.ItemStore<T> items)
-
-
-
Field Detail
-
NAMESPACE_INDEX
public static final String NAMESPACE_INDEX
- See Also:
- Constant Field Values
-
-
Method Detail
-
setItemStore
public void setItemStore(io.fabric8.kubernetes.client.informers.cache.ItemStore<T> items)
-
getIndexers
public Map<String,Function<T,List<String>>> getIndexers()
Returns the indexers registered with the cache.- Specified by:
getIndexersin interfaceio.fabric8.kubernetes.client.informers.cache.Indexer<T extends io.fabric8.kubernetes.api.model.HasMetadata>- Returns:
- registered indexers
-
addIndexers
public void addIndexers(Map<String,Function<T,List<String>>> indexersNew)
- Specified by:
addIndexersin interfaceio.fabric8.kubernetes.client.informers.cache.Indexer<T extends io.fabric8.kubernetes.api.model.HasMetadata>
-
listKeys
public List<String> listKeys()
List keys- Specified by:
listKeysin interfaceio.fabric8.kubernetes.client.informers.cache.Store<T extends io.fabric8.kubernetes.api.model.HasMetadata>- Returns:
- the list of keys
-
get
public T get(T obj)
Get object- Specified by:
getin interfaceio.fabric8.kubernetes.client.informers.cache.Store<T extends io.fabric8.kubernetes.api.model.HasMetadata>- Parameters:
obj- the object- Returns:
- the object
-
getKey
public String getKey(T obj)
Get the key for the given object- Specified by:
getKeyin interfaceio.fabric8.kubernetes.client.informers.cache.Store<T extends io.fabric8.kubernetes.api.model.HasMetadata>
-
list
public List<T> list()
List all objects in the cache.- Specified by:
listin interfaceio.fabric8.kubernetes.client.informers.cache.Store<T extends io.fabric8.kubernetes.api.model.HasMetadata>- Returns:
- the list
-
getByKey
public T getByKey(String key)
Gets get by key.- Specified by:
getByKeyin interfaceio.fabric8.kubernetes.client.informers.cache.Store<T extends io.fabric8.kubernetes.api.model.HasMetadata>- Parameters:
key- specific key- Returns:
- the get by key
-
index
public List<T> index(String indexName, T obj)
Get objects- Specified by:
indexin interfaceio.fabric8.kubernetes.client.informers.cache.Indexer<T extends io.fabric8.kubernetes.api.model.HasMetadata>- Parameters:
indexName- specific indexing functionobj- object- Returns:
- the list
-
indexKeys
public List<String> indexKeys(String indexName, String indexKey)
Index keys list- Specified by:
indexKeysin interfaceio.fabric8.kubernetes.client.informers.cache.Indexer<T extends io.fabric8.kubernetes.api.model.HasMetadata>- Parameters:
indexName- specific indexing functionindexKey- specific index key- Returns:
- the list
-
byIndex
public List<T> byIndex(String indexName, String indexKey)
By index list- Specified by:
byIndexin interfaceio.fabric8.kubernetes.client.informers.cache.Indexer<T extends io.fabric8.kubernetes.api.model.HasMetadata>- Parameters:
indexName- specific indexing functionindexKey- specific index key- Returns:
- the list
-
addIndexFunc
public CacheImpl<T> addIndexFunc(String indexName, Function<T,List<String>> indexFunc)
Add index func.- Parameters:
indexName- the index nameindexFunc- the index func
-
metaNamespaceKeyFunc
public static String metaNamespaceKeyFunc(Object obj)
It's is a convenient default KeyFunc which know show to make keys for API objects which implement HasMetadata interface. The key uses the format namespace/name unless namespace is empty, then it's just name- Parameters:
obj- specific object- Returns:
- the key
-
namespaceKeyFunc
public static String namespaceKeyFunc(String objectNamespace, String objectName)
Default index function that indexes based on an object's namespace and name.- See Also:
metaNamespaceKeyFunc(java.lang.Object)
-
metaNamespaceIndexFunc
public static List<String> metaNamespaceIndexFunc(Object obj)
It is a default index function that indexes based on an object's namespace- Parameters:
obj- the specific object- Returns:
- the indexed value
-
removeIndexer
public void removeIndexer(String name)
- Specified by:
removeIndexerin interfaceio.fabric8.kubernetes.client.informers.cache.Indexer<T extends io.fabric8.kubernetes.api.model.HasMetadata>
-
isFullState
public boolean isFullState()
-
getLockObject
public Object getLockObject()
-
-