org.gwtproject.i18n.shared.GwtLocaleFactory Maven / Gradle / Ivy
/*
* Copyright © 2018 The GWT Authors
*
* 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 org.gwtproject.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();
}