/** * Sets the language preferences. Note that when used with HTTP connectors, * this property maps to the "Accept-Language" header. * * @param acceptedLanguages * The language preferences. */ public void setAcceptedLanguages( List<Preference<Language>> acceptedLanguages) { synchronized (this) { List<Preference<Language>> ac = getAcceptedLanguages(); ac.clear(); ac.addAll(acceptedLanguages); } }
/** * Returns the preferred language among a list of supported ones, based on * the client preferences. * * @param supported * The supported languages. * @return The preferred language. */ public Language getPreferredLanguage(List<Language> supported) { return getPreferredMetadata(supported, getAcceptedLanguages()); }
/** * Adds language preferences from a header. * * @param acceptLanguageHeader * The header to parse. * @param clientInfo * The client info to update. */ @SuppressWarnings({ "unchecked", "rawtypes" }) public static void addLanguages(String acceptLanguageHeader, ClientInfo clientInfo) { if (acceptLanguageHeader != null) { PreferenceReader pr = new PreferenceReader( PreferenceReader.TYPE_LANGUAGE, acceptLanguageHeader); pr.addValues(clientInfo.getAcceptedLanguages()); } else { clientInfo.getAcceptedLanguages().add(new Preference(Language.ALL)); } }
/** * Returns the enriched list of language preferences. * * @return The enriched list of language preferences. */ protected List<Preference<Language>> getLanguagePrefs() { return getRequest().getClientInfo().getAcceptedLanguages(); }
/** * @see javax.ws.rs.core.HttpHeaders#getAcceptableLanguages() */ public List<Locale> getAcceptableLanguages() { if (this.acceptedLanguages == null) { final SortedMetadata<Language> accLangages = SortedMetadata .getForLanguages(this.request.getClientInfo() .getAcceptedLanguages()); final List<Locale> accLangs = new ArrayList<Locale>(); for (final Language language : accLangages) { accLangs.add(Converter.toLocale(language)); } this.acceptedLanguages = Collections.unmodifiableList(accLangs); } return this.acceptedLanguages; }
protected Locale getLocale() { Request request = Request.getCurrent(); List<Preference<Language>> preferenceList = request.getClientInfo().getAcceptedLanguages(); if( preferenceList.isEmpty() ) { return Locale.getDefault(); } Language language = preferenceList .get( 0 ).getMetadata(); String[] localeStr = language.getName().split( "-" ); Locale locale; switch( localeStr.length ) { case 1: locale = new Locale( localeStr[ 0 ] ); break; case 2: locale = new Locale( localeStr[ 0 ], localeStr[ 1 ] ); break; case 3: locale = new Locale( localeStr[ 0 ], localeStr[ 1 ], localeStr[ 2 ] ); break; default: locale = Locale.getDefault(); } return locale; }
protected Locale getLocale() { Request request = Request.getCurrent(); List<Preference<Language>> preferenceList = request.getClientInfo().getAcceptedLanguages(); if( preferenceList.isEmpty() ) { return Locale.getDefault(); } Language language = preferenceList .get( 0 ).getMetadata(); String[] localeStr = language.getName().split( "-" ); Locale locale; switch( localeStr.length ) { case 1: locale = new Locale( localeStr[ 0 ] ); break; case 2: locale = new Locale( localeStr[ 0 ], localeStr[ 1 ] ); break; case 3: locale = new Locale( localeStr[ 0 ], localeStr[ 1 ], localeStr[ 2 ] ); break; default: locale = Locale.getDefault(); } return locale; }
protected Locale getLocale() { Request request = Request.getCurrent(); List<Preference<Language>> preferenceList = request.getClientInfo().getAcceptedLanguages(); if( preferenceList.isEmpty() ) { return Locale.getDefault(); } Language language = preferenceList .get( 0 ).getMetadata(); String[] localeStr = language.getName().split( "-" ); Locale locale; switch( localeStr.length ) { case 1: locale = new Locale( localeStr[ 0 ] ); break; case 2: locale = new Locale( localeStr[ 0 ], localeStr[ 1 ] ); break; case 3: locale = new Locale( localeStr[ 0 ], localeStr[ 1 ], localeStr[ 2 ] ); break; default: locale = Locale.getDefault(); } return locale; }
/** * Updates the client info with the given metadata. It clears existing * preferences for the same type of metadata if necessary. * * @param clientInfo * The client info to update. * @param metadata * The metadata to use. */ private void updateMetadata(ClientInfo clientInfo, Metadata metadata) { if (metadata != null) { if (metadata instanceof CharacterSet) { clientInfo.getAcceptedCharacterSets().clear(); clientInfo.getAcceptedCharacterSets().add( new Preference<CharacterSet>((CharacterSet) metadata)); } else if (metadata instanceof Encoding) { clientInfo.getAcceptedEncodings().clear(); clientInfo.getAcceptedEncodings().add( new Preference<Encoding>((Encoding) metadata)); } else if (metadata instanceof Language) { clientInfo.getAcceptedLanguages().clear(); clientInfo.getAcceptedLanguages().add( new Preference<Language>((Language) metadata)); } else if (metadata instanceof MediaType) { clientInfo.getAcceptedMediaTypes().clear(); clientInfo.getAcceptedMediaTypes().add( new Preference<MediaType>((MediaType) metadata)); } } }
/** * Updates the client preferences to accept the given metadata (media types, * character sets, etc.) with a given quality in addition to existing ones. * * @param metadata * The metadata to accept. * @param quality * The quality to set. */ public void accept(Metadata metadata, float quality) { if (metadata instanceof MediaType) { getAcceptedMediaTypes().add( new Preference<MediaType>((MediaType) metadata, quality)); } else if (metadata instanceof Language) { getAcceptedLanguages().add( new Preference<Language>((Language) metadata, quality)); } else if (metadata instanceof Encoding) { getAcceptedEncodings().add( new Preference<Encoding>((Encoding) metadata, quality)); } else { getAcceptedCharacterSets().add( new Preference<CharacterSet>((CharacterSet) metadata, quality)); } }
/** * Creates a {@link ClientInfo} instance with preferences matching exactly * the current variant. * * @return The new {@link ClientInfo} instance. */ public ClientInfo createClientInfo() { ClientInfo result = new ClientInfo(); if (getCharacterSet() != null) { result.getAcceptedCharacterSets().add( new Preference<CharacterSet>(getCharacterSet())); } if (getEncodings() != null) { for (Encoding encoding : getEncodings()) { result.getAcceptedEncodings().add( new Preference<Encoding>(encoding)); } } if (getLanguages() != null) { for (Language language : getLanguages()) { result.getAcceptedLanguages().add( new Preference<Language>(language)); } } if (getMediaType() != null) { result.getAcceptedMediaTypes().add( new Preference<MediaType>(getMediaType())); } return result; }
clientInfo.getAcceptedLanguages(), (metadataService == null) ? null : metadataService .getDefaultLanguage(), Language.ALL);
for (Preference<Language> o : rci.getAcceptedLanguages()) { clientInfo.getAcceptedLanguages().add(o);
&& (request.getClientInfo().getAcceptedEncodings() .isEmpty()) && (request.getClientInfo().getAcceptedLanguages() .isEmpty()) && (request.getClientInfo().getAcceptedMediaTypes()
&& (request.getClientInfo().getAcceptedEncodings() .isEmpty()) && (request.getClientInfo().getAcceptedLanguages() .isEmpty()) && (request.getClientInfo().getAcceptedMediaTypes()
if (!clientInfo.getAcceptedLanguages().isEmpty()) { addHeader(HEADER_ACCEPT_LANGUAGE, PreferenceWriter.write(clientInfo.getAcceptedLanguages()), headers);