code: public T getUpToDateObject(CacheEntryRefresher<T> refresher) throws Exception {
  		boolean shouldRefresh = false;
  		
  		DateTime currentTime = DateTime.now();
  		if (lastRefreshedDate == null || this.nextRefreshDate.isBefore(currentTime)) {
  			shouldRefresh = true;
  		}
  		
  		if (shouldRefresh) {
  			if (refresher != null) {
  				this.object = refresher.refreshData();
  				this.lastRefreshedDate = currentTime;
  				this.nextRefreshDate = this.lastRefreshedDate.plusSeconds(this.refreshIntervalSeconds);
  			}
  		}
  		
  		return this.object;
  	}
docs: //////////////