/** * Returns true if a Vary header contains an asterisk. Such responses cannot be cached. */ public static boolean hasVaryAll(Headers responseHeaders) { return varyFields(responseHeaders).contains("*"); }
private static Set<String> varyFields(Response response) { return varyFields(response.headers()); }
/** * Returns true if a Vary header contains an asterisk. Such responses cannot be cached. */ public static boolean hasVaryAll(Headers responseHeaders) { return varyFields(responseHeaders).contains("*"); }
private static Set<String> varyFields(Response response) { return varyFields(response.headers()); }
/** * Returns true if none of the Vary headers have changed between {@code cachedRequest} and {@code * newRequest}. */ public static boolean varyMatches( Response cachedResponse, Headers cachedRequest, Request newRequest) { for (String field : varyFields(cachedResponse)) { if (!Objects.equals(cachedRequest.values(field), newRequest.headers(field))) return false; } return true; }
/** * Returns true if none of the Vary headers have changed between {@code cachedRequest} and {@code * newRequest}. */ public static boolean varyMatches( Response cachedResponse, Headers cachedRequest, Request newRequest) { for (String field : varyFields(cachedResponse)) { if (!Objects.equals(cachedRequest.values(field), newRequest.headers(field))) return false; } return true; }
/** * Returns the subset of the headers in {@code requestHeaders} that impact the content of * response's body. */ public static Headers varyHeaders(Headers requestHeaders, Headers responseHeaders) { Set<String> varyFields = varyFields(responseHeaders); if (varyFields.isEmpty()) return new Headers.Builder().build(); Headers.Builder result = new Headers.Builder(); for (int i = 0, size = requestHeaders.size(); i < size; i++) { String fieldName = requestHeaders.name(i); if (varyFields.contains(fieldName)) { result.add(fieldName, requestHeaders.value(i)); } } return result.build(); }
Set<String> varyFields = HttpHeaders.varyFields(responseHeaders); if (varyFields.isEmpty()) { return new Headers.Builder().build();
/** * Returns the subset of the headers in {@code requestHeaders} that impact the content of * response's body. */ public static Headers varyHeaders(Headers requestHeaders, Headers responseHeaders) { Set<String> varyFields = varyFields(responseHeaders); if (varyFields.isEmpty()) return EMPTY_HEADERS; Headers.Builder result = new Headers.Builder(); for (int i = 0, size = requestHeaders.size(); i < size; i++) { String fieldName = requestHeaders.name(i); if (varyFields.contains(fieldName)) { result.add(fieldName, requestHeaders.value(i)); } } return result.build(); }
/** * Returns true if a Vary header contains an asterisk. Such responses cannot be cached. */ public static boolean hasVaryAll(Headers responseHeaders) { return varyFields(responseHeaders).contains("*"); }
/** * Returns true if a Vary header contains an asterisk. Such responses cannot be cached. */ public static boolean hasVaryAll(Headers responseHeaders) { return varyFields(responseHeaders).contains("*"); }
private static Set<String> varyFields(Response response) { return varyFields(response.headers()); }
private static Set<String> varyFields(Response response) { return varyFields(response.headers()); }
/** * Returns true if none of the Vary headers have changed between {@code cachedRequest} and {@code * newRequest}. */ public static boolean varyMatches( Response cachedResponse, Headers cachedRequest, Request newRequest) { for (String field : varyFields(cachedResponse)) { if (!equal(cachedRequest.values(field), newRequest.headers(field))) return false; } return true; }
/** * Returns true if none of the Vary headers have changed between {@code cachedRequest} and {@code * newRequest}. */ public static boolean varyMatches( Response cachedResponse, Headers cachedRequest, Request newRequest) { for (String field : varyFields(cachedResponse)) { if (!equal(cachedRequest.values(field), newRequest.headers(field))) return false; } return true; }
/** * Returns the subset of the headers in {@code requestHeaders} that impact the content of * response's body. */ public static Headers varyHeaders(Headers requestHeaders, Headers responseHeaders) { Set<String> varyFields = varyFields(responseHeaders); if (varyFields.isEmpty()) return new Headers.Builder().build(); Headers.Builder result = new Headers.Builder(); for (int i = 0, size = requestHeaders.size(); i < size; i++) { String fieldName = requestHeaders.name(i); if (varyFields.contains(fieldName)) { result.add(fieldName, requestHeaders.value(i)); } } return result.build(); }
Set<String> varyFields = HttpHeaders.varyFields(responseHeaders); if (varyFields.isEmpty()) { return Util.EMPTY_HEADERS;
/** * Returns the subset of the headers in {@code requestHeaders} that impact the content of * response's body. */ public static Headers varyHeaders(Headers requestHeaders, Headers responseHeaders) { Set<String> varyFields = varyFields(responseHeaders); if (varyFields.isEmpty()) return new Headers.Builder().build(); Headers.Builder result = new Headers.Builder(); for (int i = 0, size = requestHeaders.size(); i < size; i++) { String fieldName = requestHeaders.name(i); if (varyFields.contains(fieldName)) { result.add(fieldName, requestHeaders.value(i)); } } return result.build(); }