class WebCache {

    public CacheControl getCacheControlFor( CacheStrategy cacheStrategy )
    {
        final CacheControl cacheControl;

        if ( RESPECT_SYSTEM_SETTING == cacheStrategy )
        {
            cacheStrategy = (CacheStrategy) systemSettingManager.getSystemSetting( CACHE_STRATEGY );
        }

        final boolean cacheStrategyHasExpirationTimeSet = cacheStrategy != null && cacheStrategy != NO_CACHE;

        if ( cacheStrategyHasExpirationTimeSet )
        {
            cacheControl = maxAge( cacheStrategy.toSeconds(), SECONDS );

            setCacheabilityFor( cacheControl );
        }
        else
        {
            cacheControl = noCache();
        }

        return cacheControl;
    }

    public  WebCache( final SystemSettingManager systemSettingManager,
        final AnalyticsCacheSettings analyticsCacheSettings );

}