code: public <T> Future<T> putDataInCache(final Object cacheKey, final T data) throws CacheSavingException, CacheCreationException {
          return executeCommand(new PutDataInCacheCommand<T>(this, data, cacheKey));
      }
docs: Put some new data in cache using cache key <i>requestCacheKey</i>. This
  method doesn't perform any network processing, it just data in cache,
  erasing any previsouly saved date in cache using the same class and key.
  Don't call this method in the main thread because you could block it.
  Instead, use the asynchronous version of this method:
  {@link #putInCache(Class, Object, Object)}.
  @param cacheKey
  the key used to store and retrieve the result of the request
  in the cache
  @param data
  the data to be saved in cache.
  @return the data has it has been saved by an ObjectPersister in cache.
  @throws CacheLoadingException
  Exception thrown when a problem occurs while loading data
  from cache.