code: protected final String createCacheControlHeader(final CacheControl cacheControl) {
  
  		final StringBuilder builder = new StringBuilder();
  
  		if (cacheControl == null) {
  			return null;
  		}
  
  		final CachePolicy[] policies = cacheControl.policy();
  
  		if (cacheControl.maxAge() >= 0) {
  			builder.append("max-age=").append(cacheControl.maxAge());
  		}
  
  		if (cacheControl.sharedMaxAge() >= 0) {
  			if (builder.length() > 0) {
  				builder.append(", ");
  			}
  			builder.append("s-maxage=").append(cacheControl.sharedMaxAge());
  		}
  
  		if (policies != null) {
  			for (final CachePolicy policy : policies) {
  				if (builder.length() > 0) {
  					builder.append(", ");
  				}
  				builder.append(policy.policy());
  			}
  		}
  
  		return (builder.length() > 0 ? builder.toString() : null);
  	}
docs: Returns cache control header value from the given {@link CacheControl}
  annotation.
  
  @param cacheControl the <code>CacheControl</code> annotation from which to
  create the returned cache control header value
  
  @return the cache control header value