code: public static <KEY extends Comparable<KEY>, VALUE> CachingTemplate<KEY, VALUE> with(Cache<KEY, VALUE> cache) {
      return new CachingTemplate<>(cache);
    }
docs: Factory method used to construct a new instance of the {@link CachingTemplate}
  initialized with the given {@link Cache}.
  
  @param <KEY> {@link Class type} of the {@link Cache} entry key.
  @param <VALUE> {@link Class type} of the {@link Cache} entry value.
  @param cache {@link Cache} used to initialize the new {@link CachingTemplate}.
  @return a new {@link CachingTemplate} initialized with the given {@link Cache}.
  @throws IllegalArgumentException if the {@link Cache} is {@literal null}.
  @see org.cp.elements.data.caching.Cache
  @see #CachingTemplate(Cache)