Spec-Zone.ru › OpenJDK 27

Класс ControlFactory

java.lang.Object
javax.naming.ldap.ControlFactory
public abstract class ControlFactory extends Object
Этот абстрактный класс представляет собой фабрику для создания элементов управления LDAPv3. Элементы управления LDAPv3 определены в RFC 2251.

Когда поставщик службы получает элемент управления в ответе, он использует фабрики элементов управления для возврата реализации соответствующего класса элемента управления.

Начиная с:
1.3
См. также:
  • Control

Краткое описание конструкторов

ControlFactory()
Модификатор Конструктор Описание
protected
Создает новый экземпляр фабрики элементов управления.

Краткое описание методов

Модификатор и тип Метод Описание
abstract Control getControlInstance(Control ctl)
Создает элемент управления с помощью этой фабрики элементов управления.
static Control getControlInstance(Control ctl, Context ctx, Hashtable<?,?> env)
Создает элемент управления с помощью известных фабрик элементов управления.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, подлежит удалению: этот элемент API может быть удален в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.

Подробное описание конструкторов

ControlFactory

protected ControlFactory()
Создает новый экземпляр фабрики элементов управления.

Подробное описание методов

getControlInstance

public abstract Control getControlInstance(Control ctl) throws NamingException
Создает элемент управления с помощью этой фабрики элементов управления.

Поставщик службы использует фабрику, чтобы возвращать элементы управления, считываемые из протокола LDAP, в виде специализированных классов элементов управления. Без этого механизма поставщик возвращал бы элементы управления, содержащие данные только в формате BER-кодирования.

Как правило, ctl — это «базовый» элемент управления, содержащий данные в формате BER-кодирования. Фабрика создает специализированную реализацию элемента управления, обычно декодируя данные в формате BER-кодирования, которая предоставляет методы для удобного и типобезопасного доступа к этим данным.

Например, фабрика может использовать данные в формате BER-кодирования из базового элемента управления и вернуть экземпляр VirtualListReplyControl.

Если эта фабрика не может создать элемент управления на основе переданного аргумента, она должна вернуть null. Фабрика должна выбрасывать исключение, только если она уверена, что является единственной предназначенной для этого фабрикой и что другие фабрики элементов управления не должны использоваться. Например, это может произойти, если данные BER в элементе управления не соответствуют ожидаемым для элемента управления с указанным OID. Поскольку этот метод выбрасывает NamingException, любое другое внутренне сгенерированное исключение, которое необходимо передать вызывающему коду, должно быть обернуто в NamingException.

Параметры:
ctl — ненулевой элемент управления.
Возвращает:
Возможно, null, объект Control.
Выбрасывает:
NamingException — если ctl содержит недопустимые данные, из-за которых его нельзя использовать для создания элемента управления. Фабрика должна выбрасывать исключение, только если ей известно, как создать элемент управления (определяемый OID), но это невозможно, например, из-за недопустимых данных BER.

getControlInstance

public static Control getControlInstance(Control ctl, Context ctx, Hashtable<?,?> env) throws NamingException
Создает элемент управления с помощью известных фабрик элементов управления.

Для создания элемента управления применяется следующее правило:

  • Используются фабрики элементов управления, указанные в свойстве LdapContext.CONTROL_FACTORIES окружения и в файле ресурсов поставщика, связанном с ctx, именно в таком порядке. Значение этого свойства — список имен классов фабрик, разделенных двоеточиями; фабрики проверяются по порядку, и используется первая, которой удается создать элемент управления. Если ни одну из фабрик не удается загрузить, возвращается ctl. Если при создании элемента управления возникает исключение, оно передается вызывающему коду.

Обратите внимание, что фабрика элементов управления должна быть общедоступной и иметь общедоступный конструктор без аргументов. Если фабрика находится в именованном модуле, она должна находиться в пакете, экспортируемом этим модулем в модуль java.naming.

Параметры:
ctl — ненулевой объект элемента управления, содержащий OID и данные BER.
ctx — возможно, null, контекст, в котором создается элемент управления. Если значение равно null, такие сведения отсутствуют.
env — возможно, null, окружение контекста. Оно используется для поиска значения свойства LdapContext.CONTROL_FACTORIES.
Возвращает:
Объект элемента управления, созданный с помощью ctl; или ctl, если объект элемента управления не удается создать с помощью описанного выше алгоритма.
Выбрасывает:
NamingException — если при попытке создать объект элемента управления возникло исключение именования. Если одна из использованных фабрик выбрасывает исключение, оно передается вызывающему коду. Если при загрузке и создании экземпляров классов фабрики и объектов возникла ошибка, исключение оборачивается в NamingException и затем повторно выбрасывается.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API