blob: 1a767a2706fa4c5aae1e9f11ab7524fe0d99ead8 [file] [log] [blame]
/*
* Copyright 2009 Google Inc.
*
* Licensed 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 com.google.gwt.i18n.shared;
/**
* Factories that know how to create GwtLocale instances.
*/
public interface GwtLocaleFactory {
/**
* Construct a GWT locale from its component parts.
*
* Null or empty strings are accepted for parts not present.
*
* @param language
* @param script
* @param region
* @param variant
* @return GwtLocale instance, unique for a given set of values
*/
GwtLocale fromComponents(String language, String script, String region,
String variant);
/**
* Get a GWT locale from a string conforming to a subset of BCP47
* (specifically assuming extension tags are not present, at most
* one variant is present, and grandfathered tags are not supported;
* also private-use tags are only supported for the entire tag).
* Only minimal validation of BCP47 tags is performed, and will continue
* with what it is able to parse if unexpected input is encountered.
*
* A null or empty string is treated as the default locale.
*
* @param localeName
* @return a locale instance, always the same one for a given localeName
*/
GwtLocale fromString(String localeName);
/**
* Returns an instance of the default locale.
*/
GwtLocale getDefault();
}