Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class LocaleServiceProvider extends Object
Это - class высшего качества всей локали чувствительные интерфейсы поставщика услуг (SPI).
Чувствительные интерфейсы поставщика услуг локали являются интерфейсами, которые соответствуют локали чувствительные классы в java.text
и java.util
пакеты. Интерфейсы включают конструкции локали чувствительные объекты и извлечение локализованных имен для этих пакетов. Локаль чувствительные методы фабрики и методы для извлечения имени в java.text
и java.util
пакеты используют реализации интерфейсов провайдера, чтобы предложить поддержку локалей вне набора локалей, поддерживаемых средой выполнения Java непосредственно.
Если определенный конкретный провайдер class назовут больше чем в одном конфигурационном файле, или будет назван в том же самом конфигурационном файле не раз, то копии будут проигнорированы. Конфигурационный файл, называя определенного провайдера не должен быть в том же самом файле фляги или другом модуле распределения как провайдер непосредственно. Провайдер должен быть доступным от того же самого загрузчика class, который был первоначально запрошен, чтобы определить местоположение конфигурационного файла; это - не обязательно загрузчик class, который загрузил файл.
Например, реализация DateFormatProvider
class должен принять форму файла фляги, который содержит файл:
META-INF/services/java.text.spi.DateFormatProviderИ файл
java.text.spi.DateFormatProvider
должен иметь строку, такую как:
com.foo.DateFormatProviderImpl
который является полностью определенным именем class реализации class DateFormatProvider
. Локаль чувствительные методы фабрики и методы для извлечения имени в java.text
и java.util
пакеты вызывают методы поставщика услуг при необходимости, чтобы поддерживать требуемую локаль. Методы сначала проверяют, поддерживает ли сама среда выполнения Java требуемую локаль, и используйте ее поддержку при наличии. Иначе, они вызывают isSupportedLocale
методы установленных провайдеров для соответствующего интерфейса, чтобы найти тот, который поддерживает требуемую локаль. Если такой провайдер находится, его другие методы вызывают, чтобы получить требуемый объект или имя. Проверяя, поддерживается ли локаль, расширения локали игнорируются по умолчанию. (Если расширения локали должны также быть проверены, isSupportedLocale
метод должен быть переопределен.), Если ни среда выполнения Java непосредственно, ни установленный провайдер не поддерживают требуемую локаль, методы проходят через список локалей кандидата и повторяют проверку доступности для каждого, пока соответствие не находится. Алгоритм, используемый для того, чтобы создать список локалей кандидата, является тем же самым как тот, используемый ResourceBunlde
по умолчанию (см. getCandidateLocales
для деталей). Даже если локаль разрешается от списка кандидатов, методы, которые возвращают требуемые объекты, или к именам взывают с исходной требуемой локалью включая Locale
расширения. Среда выполнения Java должна поддерживать корневую локаль для всей локали чувствительные службы, чтобы гарантировать, что этот процесс завершается.
Провайдерам имен (но не провайдерам других объектов) позволяют возвратить нуль для некоторых запросов имени даже на локали, для которых они утверждают, что поддерживали включением их в их возвращаемом значении getAvailableLocales
. Точно так же у самой среды выполнения Java, возможно, нет всех имен для всех локалей, которые она поддерживает. Это - то, потому что наборы объектов, на которые требуют имена, могут быть большими и измениться в течение долгого времени, так, чтобы было не всегда выполнимо покрыть их полностью. Если среда выполнения Java или провайдер возвратят нуль вместо имени, то поиск продолжится как описано выше, как будто локаль не поддерживалась.
Запускаясь с JDK8, порядка поиска локали чувствительные службы могут быть сконфигурированы при использовании "java.locale.providers" системного свойства. Это системное свойство объявляет привилегированный порядок пользователя на поиск локали чувствительные службы, разделенные запятой. Это только читается при запуске Среды выполнения Java, таким образом, более поздний звонок в System.setProperty () не будет влиять на порядок.
Например, если следующее определяется в свойстве:
java.locale.providers=SPI,JREгде "SPI" представляет локаль чувствительные службы, реализованные в установленных провайдерах SPI, и "JRE" представляет локаль чувствительные службы в среде выполнения Java, локаль, чувствительные службы в провайдерах SPI ищутся сначала.
Модификатор | Конструктор и Описание |
---|---|
protected |
LocaleServiceProvider()
Единственный конструктор.
|
Модификатор и Тип | Метод и Описание |
---|---|
abstract Locale[] |
getAvailableLocales()
Возвращает массив всех локалей, для которых этот поставщик услуг локали может обеспечить локализованные объекты или имена.
|
boolean |
isSupportedLocale(Locale locale)
Возвраты
true если данный locale поддерживается этим поставщиком услуг локали. |
protected LocaleServiceProvider()
public abstract Locale[] getAvailableLocales()
getAvailableLocales()
значения зависимых от локали служб, такой как DateFormat.getAvailableLocales()
. Массив, возвращенный этим методом, не должен включать два или больше Locale
объекты, только отличающиеся по их расширениям.
public boolean isSupportedLocale(Locale locale)
true
если данный locale
поддерживается этим поставщиком услуг локали. Данный locale
может содержать расширения, которые должны быть приняты во внимание для определения поддержки. Возвраты реализации по умолчанию true
если данный locale
равно любому из доступных Locale
s возвращенный getAvailableLocales()
с игнорированием любых расширений в обоих данный locale
и доступные локали. Конкретные реализации поставщика услуг локали должны переопределить этот метод, если те реализации Locale
осведомленный о расширениях. Например, DecimalFormatSymbolsProvider
реализации должны будут проверить расширения в данный locale
видеть, определяется ли какая-либо система нумерации и может поддерживаться. Однако, CollatorProvider
на реализации не могут влиять никакие определенные системы нумерации, и в этом случае, расширения для того, чтобы пронумеровать системы должны быть проигнорированы.
locale
- a Locale
быть протестированнымtrue
если данный locale
поддерживается этим провайдером; false
иначе.NullPointerException
- если данный locale
null
Locale.hasExtensions()
, Locale.stripExtensions()
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92