Class VariantSelector
java.lang.Object
org.glassfish.jersey.message.internal.VariantSelector
Utility for selecting variant that best matches request from a list of variants.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static interfaceInterface to get a dimension value from a variant and check if an acceptable dimension value is compatible with a dimension value.private static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final VariantSelector.DimensionChecker<AcceptableToken, String> private static final VariantSelector.DimensionChecker<AcceptableToken, String> private static final VariantSelector.DimensionChecker<AcceptableLanguageTag, Locale> private static final VariantSelector.DimensionChecker<AcceptableMediaType, javax.ws.rs.core.MediaType> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static LinkedList<VariantSelector.VariantHolder> getVariantHolderList(List<javax.ws.rs.core.Variant> variants) static javax.ws.rs.core.VariantselectVariant(InboundMessageContext context, List<javax.ws.rs.core.Variant> variants, Ref<String> varyHeaderValue) Select the representation variant that best matches the request.private static <T extends Qualified,U>
LinkedList<VariantSelector.VariantHolder> selectVariants(List<VariantSelector.VariantHolder> variantHolders, List<T> acceptableValues, VariantSelector.DimensionChecker<T, U> dimensionChecker, Set<String> vary) Select variants for a given dimension.static List<javax.ws.rs.core.Variant> selectVariants(InboundMessageContext context, List<javax.ws.rs.core.Variant> variants, Ref<String> varyHeaderValue) Select possible representation variants in order in which they best matches the request.
-
Field Details
-
MEDIA_TYPE_DC
private static final VariantSelector.DimensionChecker<AcceptableMediaType,javax.ws.rs.core.MediaType> MEDIA_TYPE_DC -
LANGUAGE_TAG_DC
-
CHARSET_DC
-
ENCODING_DC
-
-
Constructor Details
-
VariantSelector
private VariantSelector()
-
-
Method Details
-
selectVariants
private static <T extends Qualified,U> LinkedList<VariantSelector.VariantHolder> selectVariants(List<VariantSelector.VariantHolder> variantHolders, List<T> acceptableValues, VariantSelector.DimensionChecker<T, U> dimensionChecker, Set<String> vary) Select variants for a given dimension.- Parameters:
variantHolders- collection of variants.acceptableValues- the list of acceptable dimension values, ordered by the quality parameter, with the highest quality dimension value occurring first.dimensionChecker- the dimension checkervary- output list of generated vary headers.
-
getVariantHolderList
private static LinkedList<VariantSelector.VariantHolder> getVariantHolderList(List<javax.ws.rs.core.Variant> variants) -
selectVariant
public static javax.ws.rs.core.Variant selectVariant(InboundMessageContext context, List<javax.ws.rs.core.Variant> variants, Ref<String> varyHeaderValue) Select the representation variant that best matches the request. More explicit variants are chosen ahead of less explicit ones.- Parameters:
context- inbound message context.variants- list of possible variants.varyHeaderValue- an output reference of vary header value that should be put into the response Vary header.- Returns:
- selected variant.
-
selectVariants
public static List<javax.ws.rs.core.Variant> selectVariants(InboundMessageContext context, List<javax.ws.rs.core.Variant> variants, Ref<String> varyHeaderValue) Select possible representation variants in order in which they best matches the request.- Parameters:
context- inbound message context.variants- list of possible variants.varyHeaderValue- an output reference of vary header value that should be put into the response Vary header.- Returns:
- possible variants.
-