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 interface
Interface 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.Variant
selectVariant
(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.
-