001 package org.apache.myfaces.tobago.util; 002 003 /* 004 * Licensed to the Apache Software Foundation (ASF) under one or more 005 * contributor license agreements. See the NOTICE file distributed with 006 * this work for additional information regarding copyright ownership. 007 * The ASF licenses this file to You under the Apache License, Version 2.0 008 * (the "License"); you may not use this file except in compliance with 009 * the License. You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, software 014 * distributed under the License is distributed on an "AS IS" BASIS, 015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 * See the License for the specific language governing permissions and 017 * limitations under the License. 018 */ 019 020 import org.apache.commons.lang.StringUtils; 021 022 import java.util.ArrayList; 023 import java.util.List; 024 import java.util.Locale; 025 026 public class LocaleUtil { 027 028 private LocaleUtil() { 029 } 030 031 public static Locale createLocale(String value) { 032 Locale locale = null; 033 String[] strings = StringUtils.split(value, "_"); 034 switch (strings.length) { 035 case 1: 036 locale = new Locale(strings[0]); 037 break; 038 case 2: 039 locale = new Locale(strings[0], strings[1]); 040 break; 041 case 3: 042 locale = new Locale(strings[0], strings[1], strings[2]); 043 break; 044 default: 045 // TODO 046 } 047 return locale; 048 } 049 050 public static List<Locale> getLocaleList(Locale locale) { 051 052 String string = locale.toString(); 053 List<Locale> locales = new ArrayList<Locale>(3); 054 locales.add(locale); 055 int underscore; 056 while ((underscore = string.lastIndexOf('_')) > 0) { 057 string = string.substring(0, underscore); 058 locales.add(createLocale(string)); 059 } 060 061 return locales; 062 } 063 }