code: private <C, K, T> LRUCache<K, T> getCache(Map<C, LRUCache<K, T>> cacheMap, int capacity, C category) {
  		LRUCache<K, T> cache = cacheMap.get(category);
  		if (cache == null) {
  			cache = new LRUCache<K, T>(capacity);
  			cacheMap.put(category, cache);
  		}
  		return cache;
  	}
docs: Returns the LRU cache of the specified 'iterator', 'entity' or 'continuationlink' category.
  
  @param cacheMap either {@link #m_linkCache} or {@link #m_scalarCache}
  @param category 'iterator' category (for instance, 'Person.Message.Sender') in case of {@link #m_linkCache}
  'entity' category (for instance, 'Person[Name,Department]') in case of {@link #m_scalarCache}
  'continuationlink' category (for instance, 'Person.Message') in case of {@link #m_continuationlinkCache}
  @return         LRUCache<ObjectID, LinkList> cache in case of {@link #m_linkCache}
  LRUCache<String, Map<String, String>> cache in case of {@link #m_scalarCache}
  LRUCache<String, LinkList> cache in case of {@link #m_continuationlinkCache}