class CacheRequestContext {

    public RequestCacheControl getCacheControl() {
        if (_cacheControl == null) {
            List<String> values = _headers.get(CACHE_CONTROL);

            _cacheControl = RequestCacheControl.DEFAULT;

            if (values != null) {
                String cacheControlHeader = HttpHeaderUtils.join(values);

                try {
                    _cacheControl = isNullOrEmpty(cacheControlHeader)
                            ? RequestCacheControl.DEFAULT
                            : RequestCacheControl.valueOf(cacheControlHeader);
                } catch (IllegalArgumentException ex) {
                    LOG.debug("Invalid request cache control header", ex);
                }
            }
        }

        return _cacheControl;
    }

    public  CacheRequestContext(String requestMethod, URI requestUri, MultivaluedMap<String, String> headers, String requestHash);

}