class CachedObject {

    public synchronized T forceRefresh(Supplier<T> refreshFunction) {
        object = refreshFunction.get();
        lastRefreshTime = currentTimeSupplier.getAsLong();
        return object;
    }

    public  CachedObject(long expirationTimeInSeconds);
    public  CachedObject(long expirationTimeInSeconds, LongSupplier currentTimeSupplier);

}