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
-
public class FlexibleConneg extends StrictConneg
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.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<Preference<CharacterSet>>characterSetPrefsThe enriched list of character set preferences.private java.util.List<Preference<Encoding>>encodingPrefsThe enriched list of encoding preferences.private java.util.List<Preference<Language>>languagePrefsThe enriched list of language preferences.private java.util.List<Preference<MediaType>>mediaTypePrefsThe enriched list of media type preferences.
-
Constructor Summary
Constructors Constructor Description FlexibleConneg(Request request, MetadataService metadataService)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected <T extends Metadata>
booleancanAdd(T metadata, java.util.List<T> undesired)Returns true if the metadata can be added.protected java.util.List<Preference<CharacterSet>>getCharacterSetPrefs()Returns the enriched list of character set preferences.protected java.util.List<Preference<Encoding>>getEncodingPrefs()Returns the enriched list of encoding preferences.protected <T extends Metadata>
java.util.List<Preference<T>>getEnrichedPreferences(java.util.List<Preference<T>> userPreferences, T defaultValue, T allValue)Returns an enriched list of preferences.protected java.util.List<Preference<Language>>getLanguagePrefs()Returns the enriched list of language preferences.protected java.util.List<Preference<MediaType>>getMediaTypePrefs()Returns the enriched list of media type preferences.-
Methods inherited from class org.restlet.engine.application.StrictConneg
scoreAnnotation, scoreCharacterSet, scoreEncodings, scoreLanguages, scoreMediaType, scoreMetadata, scoreMetadata, scoreVariant
-
Methods inherited from class org.restlet.engine.application.Conneg
getPreferredVariant, getRequest
-
-
-
-
Field Detail
-
characterSetPrefs
private volatile java.util.List<Preference<CharacterSet>> characterSetPrefs
The enriched list of character set preferences.
-
encodingPrefs
private volatile java.util.List<Preference<Encoding>> encodingPrefs
The enriched list of encoding preferences.
-
languagePrefs
private volatile java.util.List<Preference<Language>> languagePrefs
The enriched list of language preferences.
-
mediaTypePrefs
private volatile java.util.List<Preference<MediaType>> mediaTypePrefs
The enriched list of media type preferences.
-
-
Constructor Detail
-
FlexibleConneg
public FlexibleConneg(Request request, MetadataService metadataService)
Constructor.- Parameters:
request- The request including client preferences.metadataService- The metadata service used to get default metadata values.
-
-
Method Detail
-
canAdd
protected <T extends Metadata> boolean canAdd(T metadata, java.util.List<T> undesired)
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
protected java.util.List<Preference<CharacterSet>> getCharacterSetPrefs()
Returns the enriched list of character set preferences.- Overrides:
getCharacterSetPrefsin classStrictConneg- Returns:
- The enriched list of character set preferences.
-
getEncodingPrefs
protected java.util.List<Preference<Encoding>> getEncodingPrefs()
Returns the enriched list of encoding preferences.- Overrides:
getEncodingPrefsin classStrictConneg- Returns:
- The enriched list of encoding preferences.
-
getEnrichedPreferences
protected <T extends Metadata> java.util.List<Preference<T>> getEnrichedPreferences(java.util.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
protected java.util.List<Preference<Language>> getLanguagePrefs()
Returns the enriched list of language preferences.- Overrides:
getLanguagePrefsin classStrictConneg- Returns:
- The enriched list of language preferences.
-
getMediaTypePrefs
protected java.util.List<Preference<MediaType>> getMediaTypePrefs()
Returns the enriched list of media type preferences.- Overrides:
getMediaTypePrefsin classStrictConneg- Returns:
- The enriched list of media type preferences.
-
-