class AbstractCache implements IDataCache<T> {

  @Override
  public boolean saveData(T data) {
    if (data == null) {
      return false;
    }

    cacheData(data);
    return cachedStorage.saveData(data);
  }

  public  AbstractCache(S entries, IDataStorage<T> cachedStorage, long maxCacheSize,
      Predicate<T> cachingRule);

}