public List<Locale> getAcceptableLanguages() { List<Locale> list = new ArrayList<Locale>(); List accepts = headers.get(HttpHeaders.ACCEPT_LANGUAGE); if (accepts == null) return list; List<WeightedLanguage> languages = new ArrayList<WeightedLanguage>(); for (Object obj : accepts) { if (obj instanceof Locale) { languages.add(new WeightedLanguage((Locale)obj, 1.0F)); continue; } String accept = configuration.toHeaderString(obj); StringTokenizer tokenizer = new StringTokenizer(accept, ","); while (tokenizer.hasMoreElements()) { String item = tokenizer.nextToken().trim(); languages.add(WeightedLanguage.parse(item)); } } Collections.sort(languages); for (WeightedLanguage language : languages) list.add(language.getLocale()); return list; }
private WeightedLanguage(final String lang, final Map<String, String> parameters) { this.language = lang; this.params = parameters; this.locale = LocaleHelper.extractLocale(lang); if (params != null) { String q = params.get("q"); if (q != null) { weight = getQWithParamInfo(this, q); } } }
private static float getQWithParamInfo(WeightedLanguage lang, String val) { try { if (val != null) { float rtn = Float.valueOf(val); if (rtn > 1.0F) throw new LoggableFailure(Messages.MESSAGES.qValueCannotBeGreaterThan1(lang.toString()), HttpResponseCodes.SC_BAD_REQUEST); return rtn; } } catch (NumberFormatException e) { throw new LoggableFailure(Messages.MESSAGES.mediaTypeQWeightedLanguageMustBeFloat(lang.toString()), HttpResponseCodes.SC_BAD_REQUEST); } return 1.0f; }
@Override public List<Locale> getAcceptableLanguages() { List<String> vals = requestHeaders.get(ACCEPT_LANGUAGE); if (vals == null || vals.isEmpty()) { return Collections.emptyList(); } List<WeightedLanguage> languages = new ArrayList<WeightedLanguage>(); for (String v : vals) { StringTokenizer tokenizer = new StringTokenizer(v, ","); while (tokenizer.hasMoreElements()) { String item = tokenizer.nextToken().trim(); languages.add(WeightedLanguage.parse(item)); } } Collections.sort(languages); List<Locale> list = new ArrayList<Locale>(languages.size()); for (WeightedLanguage language : languages) list.add(language.getLocale()); return Collections.unmodifiableList(list); }
public static WeightedLanguage parse(String lang) { String params = null; int idx = lang.indexOf(";"); if (idx > -1) { params = lang.substring(idx + 1).trim(); lang = lang.substring(0, idx); } HashMap<String, String> typeParams = new HashMap<String, String>(); if (params != null && !params.equals("")) { int start = 0; while (start < params.length()) { start = HeaderParameterParser.setParam(typeParams, params, start); } } return new WeightedLanguage(lang, typeParams); }
@Override public List<Locale> getAcceptableLanguages() { List<String> vals = requestHeaders.get(ACCEPT_LANGUAGE); if (vals == null || vals.isEmpty()) { return Collections.emptyList(); } List<WeightedLanguage> languages = new ArrayList<WeightedLanguage>(); for (String v : vals) { StringTokenizer tokenizer = new StringTokenizer(v, ","); while (tokenizer.hasMoreElements()) { String item = tokenizer.nextToken().trim(); languages.add(WeightedLanguage.parse(item)); } } Collections.sort(languages); List<Locale> list = new ArrayList<Locale>(languages.size()); for (WeightedLanguage language : languages) list.add(language.getLocale()); return Collections.unmodifiableList(list); }
public static WeightedLanguage parse(String lang) { String params = null; int idx = lang.indexOf(";"); if (idx > -1) { params = lang.substring(idx + 1).trim(); lang = lang.substring(0, idx); } HashMap<String, String> typeParams = new HashMap<String, String>(); if (params != null && !params.equals("")) { int start = 0; while (start < params.length()) { start = HeaderParameterParser.setParam(typeParams, params, start); } } return new WeightedLanguage(lang, typeParams); }
public List<Locale> getAcceptableLanguages() { List<Locale> list = new ArrayList<Locale>(); List accepts = headers.get(HttpHeaders.ACCEPT_LANGUAGE); if (accepts == null) return list; List<WeightedLanguage> languages = new ArrayList<WeightedLanguage>(); for (Object obj : accepts) { if (obj instanceof Locale) { languages.add(new WeightedLanguage((Locale)obj, 1.0F)); continue; } String accept = configuration.toHeaderString(obj); StringTokenizer tokenizer = new StringTokenizer(accept, ","); while (tokenizer.hasMoreElements()) { String item = tokenizer.nextToken().trim(); languages.add(WeightedLanguage.parse(item)); } } Collections.sort(languages); for (WeightedLanguage language : languages) list.add(language.getLocale()); return list; }
@Override public List<Locale> getAcceptableLanguages() { String accepts = getHeaderString(ACCEPT_LANGUAGE); if (accepts == null) return Collections.emptyList(); List<Locale> list = new ArrayList<Locale>(); List<WeightedLanguage> languages = new ArrayList<WeightedLanguage>(); StringTokenizer tokenizer = new StringTokenizer(accepts, ","); while (tokenizer.hasMoreElements()) { String item = tokenizer.nextToken().trim(); languages.add(WeightedLanguage.parse(item)); } Collections.sort(languages); for (WeightedLanguage language : languages) list.add(language.getLocale()); return Collections.unmodifiableList(list); }
public static WeightedLanguage parse(String lang) { String params = null; int idx = lang.indexOf(";"); if (idx > -1) { params = lang.substring(idx + 1).trim(); lang = lang.substring(0, idx); } HashMap<String, String> typeParams = new HashMap<String, String>(); if (params != null && !params.equals("")) { int start = 0; while (start < params.length()) { start = HeaderParameterParser.setParam(typeParams, params, start); } } return new WeightedLanguage(lang, typeParams); }
private WeightedLanguage(String lang, Map<String, String> parameters) { this.language = lang; this.params = parameters; this.locale = LocaleHelper.extractLocale(lang); if (params != null) { String q = params.get("q"); if (q != null) { weight = getQWithParamInfo(this, q); } } }
private static float getQWithParamInfo(WeightedLanguage lang, String val) { try { if (val != null) { float rtn = Float.valueOf(val); if (rtn > 1.0F) throw new LoggableFailure(Messages.MESSAGES.qValueCannotBeGreaterThan1(lang.toString()), HttpResponseCodes.SC_BAD_REQUEST); return rtn; } } catch (NumberFormatException e) { throw new LoggableFailure(Messages.MESSAGES.mediaTypeQWeightedLanguageMustBeFloat(lang.toString()), HttpResponseCodes.SC_BAD_REQUEST); } return 1.0f; }
public List<Locale> getAcceptableLanguages() { List<Locale> list = new ArrayList<Locale>(); List accepts = headers.get(HttpHeaders.ACCEPT_LANGUAGE); if (accepts == null) return list; List<WeightedLanguage> languages = new ArrayList<WeightedLanguage>(); for (Object obj : accepts) { if (obj instanceof Locale) { languages.add(new WeightedLanguage((Locale)obj, 1.0F)); continue; } String accept = configuration.toHeaderString(obj); StringTokenizer tokenizer = new StringTokenizer(accept, ","); while (tokenizer.hasMoreElements()) { String item = tokenizer.nextToken().trim(); languages.add(WeightedLanguage.parse(item)); } } Collections.sort(languages); for (WeightedLanguage language : languages) list.add(language.getLocale()); return list; }
private WeightedLanguage(final String lang, final Map<String, String> parameters) { this.language = lang; this.params = parameters; this.locale = LocaleHelper.extractLocale(lang); if (params != null) { String q = params.get("q"); if (q != null) { weight = getQWithParamInfo(this, q); } } }
private static float getQWithParamInfo(WeightedLanguage lang, String val) { try { if (val != null) { float rtn = Float.valueOf(val); if (rtn > 1.0F) throw new LoggableFailure(Messages.MESSAGES.qValueCannotBeGreaterThan1(lang.toString()), HttpResponseCodes.SC_BAD_REQUEST); return rtn; } } catch (NumberFormatException e) { throw new LoggableFailure(Messages.MESSAGES.mediaTypeQWeightedLanguageMustBeFloat(lang), HttpResponseCodes.SC_BAD_REQUEST); } return 1.0f; }