code: public <U, T extends U> void putInCache(final Class<U> clazz, final Object requestCacheKey, final T data, RequestListener<U> listener) {
          @SuppressWarnings({ "unchecked", "rawtypes" })
          final SpiceRequest<U> spiceRequest = new SpiceRequest(clazz) {
              @Override
              public U loadDataFromNetwork() throws Exception {
                  return data;
              }
          };
          CachedSpiceRequest<U> cachedSpiceRequest = new CachedSpiceRequest<U>(spiceRequest, requestCacheKey, DurationInMillis.ALWAYS_EXPIRED);
          cachedSpiceRequest.setOffline(true);
          execute(cachedSpiceRequest, listener);
      }
docs: Adds some data to the cache, asynchronously.
  @param clazz
  a super class or the class of data.
  @param requestCacheKey
  the request cache key that data will be stored in.
  @param data
  the data to store. Maybe null if supported by underlying
  ObjectPersister.
  @param listener
  a listener that will be notified of this request's success or
  failure. May be null.