Class VariantSelector
- java.lang.Object
-
- org.glassfish.jersey.message.internal.VariantSelector
-
public final class VariantSelector extends java.lang.Object
Utility for selecting variant that best matches request from a list of variants.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static interface
VariantSelector.DimensionChecker<T,U>
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
VariantSelector.VariantHolder
-
Field Summary
Fields Modifier and Type Field Description private static VariantSelector.DimensionChecker<AcceptableToken,java.lang.String>
CHARSET_DC
private static VariantSelector.DimensionChecker<AcceptableToken,java.lang.String>
ENCODING_DC
private static VariantSelector.DimensionChecker<AcceptableLanguageTag,java.util.Locale>
LANGUAGE_TAG_DC
private static VariantSelector.DimensionChecker<AcceptableMediaType,javax.ws.rs.core.MediaType>
MEDIA_TYPE_DC
-
Constructor Summary
Constructors Modifier Constructor Description private
VariantSelector()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static java.util.LinkedList<VariantSelector.VariantHolder>
getVariantHolderList(java.util.List<javax.ws.rs.core.Variant> variants)
static javax.ws.rs.core.Variant
selectVariant(InboundMessageContext context, java.util.List<javax.ws.rs.core.Variant> variants, Ref<java.lang.String> varyHeaderValue)
Select the representation variant that best matches the request.private static <T extends Qualified,U>
java.util.LinkedList<VariantSelector.VariantHolder>selectVariants(java.util.List<VariantSelector.VariantHolder> variantHolders, java.util.List<T> acceptableValues, VariantSelector.DimensionChecker<T,U> dimensionChecker, java.util.Set<java.lang.String> vary)
Select variants for a given dimension.static java.util.List<javax.ws.rs.core.Variant>
selectVariants(InboundMessageContext context, java.util.List<javax.ws.rs.core.Variant> variants, Ref<java.lang.String> varyHeaderValue)
Select possible representation variants in order in which they best matches the request.
-
-
-
Field Detail
-
MEDIA_TYPE_DC
private static final VariantSelector.DimensionChecker<AcceptableMediaType,javax.ws.rs.core.MediaType> MEDIA_TYPE_DC
-
LANGUAGE_TAG_DC
private static final VariantSelector.DimensionChecker<AcceptableLanguageTag,java.util.Locale> LANGUAGE_TAG_DC
-
CHARSET_DC
private static final VariantSelector.DimensionChecker<AcceptableToken,java.lang.String> CHARSET_DC
-
ENCODING_DC
private static final VariantSelector.DimensionChecker<AcceptableToken,java.lang.String> ENCODING_DC
-
-
Method Detail
-
selectVariants
private static <T extends Qualified,U> java.util.LinkedList<VariantSelector.VariantHolder> selectVariants(java.util.List<VariantSelector.VariantHolder> variantHolders, java.util.List<T> acceptableValues, VariantSelector.DimensionChecker<T,U> dimensionChecker, java.util.Set<java.lang.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 java.util.LinkedList<VariantSelector.VariantHolder> getVariantHolderList(java.util.List<javax.ws.rs.core.Variant> variants)
-
selectVariant
public static javax.ws.rs.core.Variant selectVariant(InboundMessageContext context, java.util.List<javax.ws.rs.core.Variant> variants, Ref<java.lang.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 java.util.List<javax.ws.rs.core.Variant> selectVariants(InboundMessageContext context, java.util.List<javax.ws.rs.core.Variant> variants, Ref<java.lang.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.
-
-