From 667af128d0adfeee2aa4748ab58411c91bc4905f Mon Sep 17 00:00:00 2001 From: mcentner Date: Tue, 26 Jan 2010 16:27:04 +0000 Subject: git-svn-id: https://joinup.ec.europa.eu/svn/mocca/branches/mocca-1.2.11-sha2@600 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../apache/tomcat/util/http/AcceptLanguage.java | 151 --------------------- 1 file changed, 151 deletions(-) delete mode 100644 mocca-1.2.11/utils/src/main/java/at/gv/egiz/org/apache/tomcat/util/http/AcceptLanguage.java (limited to 'mocca-1.2.11/utils/src/main/java/at/gv/egiz/org/apache/tomcat/util/http/AcceptLanguage.java') diff --git a/mocca-1.2.11/utils/src/main/java/at/gv/egiz/org/apache/tomcat/util/http/AcceptLanguage.java b/mocca-1.2.11/utils/src/main/java/at/gv/egiz/org/apache/tomcat/util/http/AcceptLanguage.java deleted file mode 100644 index 231966ac..00000000 --- a/mocca-1.2.11/utils/src/main/java/at/gv/egiz/org/apache/tomcat/util/http/AcceptLanguage.java +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package at.gv.egiz.org.apache.tomcat.util.http; - -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Locale; -import java.util.StringTokenizer; -import java.util.Vector; - -/** - * Util to process the "Accept-Language" header. Used by facade to implement - * getLocale() and by StaticInterceptor. - * - * Not optimized - it's very slow. - * - * @author James Duncan Davidson [duncan@eng.sun.com] - * @author James Todd [gonzo@eng.sun.com] - * @author Jason Hunter [jch@eng.sun.com] - * @author Harish Prabandham - * @author costin@eng.sun.com - */ -public class AcceptLanguage { - - public static Locale getLocale(String acceptLanguage) { - if( acceptLanguage == null ) return Locale.getDefault(); - - Hashtable> languages = - new Hashtable>(); - Vector quality = new Vector(); - processAcceptLanguage(acceptLanguage, languages, quality); - - if (languages.size() == 0) return Locale.getDefault(); - - Vector l = new Vector(); - extractLocales( languages,quality, l); - - return (Locale)l.elementAt(0); - } - - public static Enumeration getLocales(String acceptLanguage) { - // Short circuit with an empty enumeration if null header - if (acceptLanguage == null) { - Vector v = new Vector(); - v.addElement(Locale.getDefault()); - return v.elements(); - } - - Hashtable> languages = - new Hashtable>(); - Vector quality=new Vector(); - processAcceptLanguage(acceptLanguage, languages , quality); - - if (languages.size() == 0) { - Vector v = new Vector(); - v.addElement(Locale.getDefault()); - return v.elements(); - } - Vector l = new Vector(); - extractLocales( languages, quality , l); - return l.elements(); - } - - private static void processAcceptLanguage( String acceptLanguage, - Hashtable> languages, Vector q) - { - StringTokenizer languageTokenizer = - new StringTokenizer(acceptLanguage, ","); - - while (languageTokenizer.hasMoreTokens()) { - String language = languageTokenizer.nextToken().trim(); - int qValueIndex = language.indexOf(';'); - int qIndex = language.indexOf('q'); - int equalIndex = language.indexOf('='); - Double qValue = new Double(1); - - if (qValueIndex > -1 && - qValueIndex < qIndex && - qIndex < equalIndex) { - String qValueStr = language.substring(qValueIndex + 1); - language = language.substring(0, qValueIndex); - qValueStr = qValueStr.trim().toLowerCase(); - qValueIndex = qValueStr.indexOf('='); - qValue = new Double(0); - if (qValueStr.startsWith("q") && - qValueIndex > -1) { - qValueStr = qValueStr.substring(qValueIndex + 1); - try { - qValue = new Double(qValueStr.trim()); - } catch (NumberFormatException nfe) { - } - } - } - - // XXX - // may need to handle "*" at some point in time - - if (! language.equals("*")) { - String key = qValue.toString(); - Vector v; - if (languages.containsKey(key)) { - v = languages.get(key) ; - } else { - v= new Vector(); - q.addElement(qValue); - } - v.addElement(language); - languages.put(key, v); - } - } - } - - private static void extractLocales(Hashtable languages, Vector q, - Vector l) - { - // XXX We will need to order by q value Vector in the Future ? - Enumeration e = q.elements(); - while (e.hasMoreElements()) { - Vector v = - (Vector)languages.get(((Double)e.nextElement()).toString()); - Enumeration le = v.elements(); - while (le.hasMoreElements()) { - String language = (String)le.nextElement(); - String country = ""; - int countryIndex = language.indexOf("-"); - if (countryIndex > -1) { - country = language.substring(countryIndex + 1).trim(); - language = language.substring(0, countryIndex).trim(); - } - l.addElement(new Locale(language, country)); - } - } - } - - -} -- cgit v1.2.3