Package org.restlet.engine.application
Class FlexibleConneg
java.lang.Object
org.restlet.engine.application.Conneg
org.restlet.engine.application.StrictConneg
org.restlet.engine.application.FlexibleConneg
Content negotiation algorithm that flexibly interprets the content
negotiation preferences to try to always return a variant even if the client
preferences don't exactly match.
- Author:
- Jerome Louvel
-
Constructor Summary
ConstructorsConstructorDescriptionFlexibleConneg(Request request, MetadataService metadataService) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected <T extends Metadata>
booleanReturns true if the metadata can be added.protected List<Preference<CharacterSet>>Returns the enriched list of character set preferences.protected List<Preference<Encoding>>Returns the enriched list of encoding preferences.protected <T extends Metadata>
List<Preference<T>>getEnrichedPreferences(List<Preference<T>> userPreferences, T defaultValue, T allValue) Returns an enriched list of preferences.protected List<Preference<Language>>Returns the enriched list of language preferences.protected List<Preference<MediaType>>Returns the enriched list of media type preferences.Methods inherited from class org.restlet.engine.application.StrictConneg
scoreAnnotation, scoreCharacterSet, scoreEncodings, scoreLanguages, scoreMediaType, scoreMetadata, scoreMetadata, scoreVariantMethods inherited from class org.restlet.engine.application.Conneg
getPreferredVariant, getRequest
-
Constructor Details
-
FlexibleConneg
Constructor.- Parameters:
request- The request including client preferences.metadataService- The metadata service used to get default metadata values.
-
-
Method Details
-
canAdd
Returns true if the metadata can be added.- Type Parameters:
T-- Parameters:
metadata- The metadata to add.undesired- The list of prohibited metadata.- Returns:
- True if the metadata can be added.
-
getCharacterSetPrefs
Returns the enriched list of character set preferences.- Overrides:
getCharacterSetPrefsin classStrictConneg- Returns:
- The enriched list of character set preferences.
-
getEncodingPrefs
Returns the enriched list of encoding preferences.- Overrides:
getEncodingPrefsin classStrictConneg- Returns:
- The enriched list of encoding preferences.
-
getEnrichedPreferences
protected <T extends Metadata> List<Preference<T>> getEnrichedPreferences(List<Preference<T>> userPreferences, T defaultValue, T allValue) Returns an enriched list of preferences. Contains the user preferences, implied user parent preferences (quality between 0.005 and 0.006), default preference (quality of 0.003), default parent preference (quality of 0.002), all preference (quality of 0.001).
This necessary to compensate the misconfiguration of many browsers which don't expose all the metadata actually understood by end users.- Type Parameters:
T-- Parameters:
userPreferences- The user preferences to enrich.defaultValue- The default value.allValue- The ALL value.- Returns:
- The enriched user preferences.
-
getLanguagePrefs
Returns the enriched list of language preferences.- Overrides:
getLanguagePrefsin classStrictConneg- Returns:
- The enriched list of language preferences.
-
getMediaTypePrefs
Returns the enriched list of media type preferences.- Overrides:
getMediaTypePrefsin classStrictConneg- Returns:
- The enriched list of media type preferences.
-