docs: def cache(self, CachableItem):
          """Updates caches area with latest item information returning
             ICachedItem if cache updates were required.
  
             Issues ICacheObjectCreatedEvent, and ICacheObjectModifiedEvent for
             ICacheArea/ICachableItem combo.
          """
          _cachedItem = self.get(CachableItem)
          if not _cachedItem:
              _cachedItem = self.mapper.get(CachableItem)
              self._add(_cachedItem)
              logger.debug("new cachable item added to Splunk KV cache area {id: %s, type: %s}", str(_cachedItem.getId()), str(_cachedItem.__class__))
              notify(CacheObjectCreatedEvent(_cachedItem, self))
              return _cachedItem
          else:
              _newCacheItem = self.mapper.get(CachableItem)
              if _cachedItem != _newCacheItem:
                  logger.debug("Cachable item modified in Splunk KV cache area {id: %s, type: %s}", str(_newCacheItem.getId()), str(_newCacheItem.__class__))
                  self._update(_newCacheItem)
                  notify(CacheObjectModifiedEvent(_newCacheItem, self))
                  return _newCacheItem
          return None