Spec-Zone.ru › OpenJDK 25

Класс 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

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

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.
Возвращает:
Возможно, 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.naming/javax/naming/ldap/ControlFactory.html

Spec-Zone.ru

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