@Override public String getDimension(final VariantHolder v) { return v.v.getEncoding(); }
@Override public String getDimension(final VariantHolder v) { return v.v.getEncoding(); }
public String getDimension(VariantHolder v) { return v.v.getEncoding(); }
@Override public javax.ws.rs.core.Response.ResponseBuilder variants(List<Variant> variants) { if (variants == null) { header(HttpHeaders.VARY, null); return this; } if (variants.isEmpty()) { return this; } MediaType accept = variants.get(0).getMediaType(); boolean vAccept = false; Locale acceptLanguage = variants.get(0).getLanguage(); boolean vAcceptLanguage = false; String acceptEncoding = variants.get(0).getEncoding(); boolean vAcceptEncoding = false; for (Variant v : variants) { vAccept |= !vAccept && vary(v.getMediaType(), accept); vAcceptLanguage |= !vAcceptLanguage && vary(v.getLanguage(), acceptLanguage); vAcceptEncoding |= !vAcceptEncoding && vary(v.getEncoding(), acceptEncoding); } StringBuilder vary = new StringBuilder(); append(vary, vAccept, HttpHeaders.ACCEPT); append(vary, vAcceptLanguage, HttpHeaders.ACCEPT_LANGUAGE); append(vary, vAcceptEncoding, HttpHeaders.ACCEPT_ENCODING); if (vary.length() > 0) { header(HttpHeaders.VARY, vary.toString()); } return this; }
@Override public javax.ws.rs.core.Response.ResponseBuilder variants(List<Variant> variants) { if (variants == null) { header(HttpHeaders.VARY, null); return this; } if (variants.isEmpty()) { return this; } MediaType accept = variants.get(0).getMediaType(); boolean vAccept = false; Locale acceptLanguage = variants.get(0).getLanguage(); boolean vAcceptLanguage = false; String acceptEncoding = variants.get(0).getEncoding(); boolean vAcceptEncoding = false; for (Variant v : variants) { vAccept |= !vAccept && vary(v.getMediaType(), accept); vAcceptLanguage |= !vAcceptLanguage && vary(v.getLanguage(), acceptLanguage); vAcceptEncoding |= !vAcceptEncoding && vary(v.getEncoding(), acceptEncoding); } StringBuilder vary = new StringBuilder(); append(vary, vAccept, HttpHeaders.ACCEPT); append(vary, vAcceptLanguage, HttpHeaders.ACCEPT_LANGUAGE); append(vary, vAcceptEncoding, HttpHeaders.ACCEPT_ENCODING); if (vary.length() > 0) { header(HttpHeaders.VARY, vary.toString()); } return this; }
boolean vAcceptLanguage = false; String acceptEncoding = variants.get(0).getEncoding(); boolean vAcceptEncoding = false; vAccept |= !vAccept && vary(v.getMediaType(), accept); vAcceptLanguage |= !vAcceptLanguage && vary(v.getLanguage(), acceptLanguage); vAcceptEncoding |= !vAcceptEncoding && vary(v.getEncoding(), acceptEncoding);
@Override public javax.ws.rs.core.Response.ResponseBuilder variant(Variant variant) { if (variant == null) { type((MediaType) null); language((String) null); encoding(null); return this; } type(variant.getMediaType()); language(variant.getLanguage()); encoding(variant.getEncoding()); return this; }
@Override public javax.ws.rs.core.Response.ResponseBuilder variant(Variant variant) { if (variant == null) { type((MediaType) null); language((String) null); encoding(null); return this; } type(variant.getMediaType()); language(variant.getLanguage()); encoding(variant.getEncoding()); return this; }
/** * Set message content variant (type, language and encoding). * * @param variant message content content variant (type, language and encoding) * to be set. */ public void variant(final Variant variant) { if (variant == null) { type((MediaType) null); language((String) null); encoding(null); } else { type(variant.getMediaType()); language(variant.getLanguage()); encoding(variant.getEncoding()); } }
/** * Set message content variant (type, language and encoding). * * @param variant message content content variant (type, language and encoding) * to be set. */ public void variant(final Variant variant) { if (variant == null) { type((MediaType) null); language((String) null); encoding(null); } else { type(variant.getMediaType()); language(variant.getLanguage()); encoding(variant.getEncoding()); } }
/** * Set message content variant (type, language and encoding). * * @param variant message content content variant (type, language and encoding) * to be set. */ public void variant(final Variant variant) { if (variant == null) { type((MediaType) null); language((String) null); encoding(null); } else { type(variant.getMediaType()); language(variant.getLanguage()); encoding(variant.getEncoding()); } }
/** * Set representation metadata. Equivalent to setting the values of * content type, content language, and content encoding separately using * the values of the variant properties. * * @param variant metadata of the response entity, a null value is * equivalent to a variant with all null properties. * @return the updated instance */ public B variant(Variant variant) { if (variant == null) { type((MediaType)null); language((String)null); encoding(null); return (B)this; } type(variant.getMediaType()); // TODO set charset language(variant.getLanguage()); encoding(variant.getEncoding()); return (B)this; }
private boolean applyEncoding(Variant option, VariantQuality quality) { if (requestedEncodings == null) return true; String encoding = option.getEncoding(); if (encoding == null) return true; QualityValue value = requestedEncodings.get(encoding); if (value == null) // try wildcard value = requestedEncodings.get(null); if (value == null) // no match return false; if (!value.isAcceptable()) return false; quality.setEncodingQualityValue(value); return true; }
private static int getExplicitness(Variant variant) { int explicitness = 0; if (variant.getMediaType() != null) ++explicitness; if (variant.getEncoding() != null) ++explicitness; if (variant.getLanguage() != null) ++explicitness; return explicitness; }
public static String createVaryHeader(List<Variant> variants) { boolean accept = false; boolean acceptLanguage = false; boolean acceptEncoding = false; for (Variant variant : variants) { if (variant.getMediaType() != null) accept = true; if (variant.getLanguage() != null) acceptLanguage = true; if (variant.getEncoding() != null) acceptEncoding = true; } String vary = null; if (accept) vary = HttpHeaderNames.ACCEPT; if (acceptLanguage) { if (vary == null) vary = HttpHeaderNames.ACCEPT_LANGUAGE; else vary += ", " + HttpHeaderNames.ACCEPT_LANGUAGE; } if (acceptEncoding) { if (vary == null) vary = HttpHeaderNames.ACCEPT_ENCODING; else vary += ", " + HttpHeaderNames.ACCEPT_ENCODING; } return vary; }
@Override public Response.ResponseBuilder variant(Variant variant) { if (variant == null) { type((String)null); language((String)null); metadata.remove(HttpHeaderNames.CONTENT_ENCODING); return this; } type(variant.getMediaType()); language(variant.getLanguage()); if (variant.getEncoding() != null) metadata.putSingle(HttpHeaderNames.CONTENT_ENCODING, variant.getEncoding()); else metadata.remove(HttpHeaderNames.CONTENT_ENCODING); return this; }
/** * Get entity encoding. * * @return entity encoding. */ public String getEncoding() { return variant.getEncoding(); }
public void setEntity(Entity<?> entity) { if (entity == null) { this.entity = null; this.entityAnnotations = null; this.entityClass = null; this.entityGenericType = null; } else { Object ent = entity.getEntity(); setEntityObject(ent); this.entityAnnotations = entity.getAnnotations(); Variant v = entity.getVariant(); headers.setMediaType(v.getMediaType()); headers.setLanguage(v.getLanguage()); headers.header("Content-Encoding", null); headers.header("Content-Encoding", v.getEncoding()); } }
public int compare(Variant v1, Variant v2) { int result = compareMediaTypes(v1.getMediaType(), v2.getMediaType()); if (result != 0) { return result; } result = compareLanguages(v1.getLanguage(), v2.getLanguage()); if (result == 0) { result = compareEncodings(v1.getEncoding(), v2.getEncoding()); } return result; }
@Override public ResponseBuilder variant(Variant variant) { type(variant == null ? null : variant.getMediaType()); language(variant == null ? null : variant.getLanguage()); setHeader(HttpHeaders.CONTENT_ENCODING, variant == null ? null : variant.getEncoding()); return this; }