Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class LocaleServiceProvider extends Object
Это - класс высшего качества всей локали чувствительные интерфейсы поставщика услуг (SPI).
Чувствительные интерфейсы поставщика услуг локали являются интерфейсами, которые соответствуют локали чувствительные классы в java.text
и java.util
пакеты. Интерфейсы включают конструкции локали чувствительные объекты и извлечение локализованных имен для этих пакетов. Локаль чувствительные методы фабрики и методы для извлечения имени в java.text
и java.util
пакеты используют реализации интерфейсов провайдера, чтобы предложить поддержку локалей вне набора локалей, поддерживаемых средой выполнения Java непосредственно.
Если определенный конкретный класс провайдера назовут больше чем в одном конфигурационном файле, или будет назван в том же самом конфигурационном файле не раз, то копии будут проигнорированы. Конфигурационный файл, называя определенного провайдера не должен быть в том же самом файле фляги или другом модуле распределения как провайдер непосредственно. Провайдер должен быть доступным от того же самого загрузчика класса, который был первоначально запрошен, чтобы определить местоположение конфигурационного файла; это - не обязательно загрузчик класса, который загрузил файл.
Например, реализация DateFormatProvider
класс должен принять форму файла фляги, который содержит файл:
META-INF/services/java.text.spi.DateFormatProviderИ файл
java.text.spi.DateFormatProvider
должен иметь строку, такую как:
com.foo.DateFormatProviderImpl
который является полностью определенным именем класса реализации класса DateFormatProvider
. Локаль чувствительные методы фабрики и методы для извлечения имени в java.text
и java.util
пакеты вызывают методы поставщика услуг при необходимости, чтобы поддерживать требуемую локаль. Методы сначала проверяют, поддерживает ли сама среда выполнения Java требуемую локаль, и используйте ее поддержку при наличии. Иначе, они вызывают getAvailableLocales()
методы установленных провайдеров для соответствующего интерфейса, чтобы найти тот, который поддерживает требуемую локаль. Если такой провайдер находится, его другие методы вызывают, чтобы получить требуемый объект или имя. Проверяя, поддерживается ли локаль, расширения локали игнорируются. Если ни среда выполнения Java непосредственно, ни установленный провайдер не поддерживают требуемую локаль, методы проходят через список локалей кандидата и повторяют проверку доступности для каждого, пока соответствие не находится. Алгоритм, используемый для того, чтобы создать список локалей кандидата, является тем же самым как тот, используемый ResourceBunlde
по умолчанию (см. getCandidateLocales
для деталей). Даже если локаль разрешается от списка кандидатов, методы, которые возвращают требуемые объекты, или к именам взывают с исходной требуемой локалью включая расширения. Среда выполнения Java должна поддерживать корневую локаль для всей локали чувствительные службы, чтобы гарантировать, что этот процесс завершается.
Провайдерам имен (но не провайдерам других объектов) позволяют возвратить нуль для некоторых запросов имени даже на локали, для которых они утверждают, что поддерживали включением их в их возвращаемом значении getAvailableLocales
. Точно так же у самой среды выполнения Java, возможно, нет всех имен для всех локалей, которые она поддерживает. Это - то, потому что наборы объектов, на которые требуют имена, могут быть большими и измениться в течение долгого времени, так, чтобы было не всегда выполнимо покрыть их полностью. Если среда выполнения Java или провайдер возвратят нуль вместо имени, то поиск продолжится как описано выше, как будто локаль не поддерживалась.
Модификатор | Конструктор и Описание |
---|---|
protected |
LocaleServiceProvider()
Единственный конструктор.
|
Модификатор и Тип | Метод и Описание |
---|---|
abstract Locale[] |
getAvailableLocales()
Возвращает массив всех локалей, для которых этот поставщик услуг локали может обеспечить локализованные объекты или имена.
|
protected LocaleServiceProvider()
public abstract Locale[] getAvailableLocales()
Отметьте: Расширения в a Locale
игнорируются во время поиска поставщика услуг. Таким образом, массив, возвращенный этим методом, не должен включать два или больше Locale
объекты, только отличающиеся по их расширениям.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.