Класс ControlFactory

public abstract class ControlFactory
extends Object

Этот абстрактный класс представляет фабрику для создания элементов управления LDAPv3. Элементы управления LDAPv3 определены в RFC 2251.

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

Since:
1.3
См. также:
Control

Конструкторы

Модификатор Конструктор Описание
protected ControlFactory()

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

Методы

Модификатор и тип Метод Описание
abstract Control getControlInstance​(Control ctl)

Создает элемент управления с помощью этой фабрики элементов управления.

static Control getControlInstance​(Control ctl, Context ctx, Hashtable<?,​?> env)

Создает элемент управления с помощью известных фабрик элементов управления.

Методы, объявленные в классе java.lang.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.

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

getControlInstance

public static Control getControlInstance(Control ctl,
                                         Context ctx,
                                         Hashtable<?,​?> env)
                                  throws NamingException

Создает элемент управления с помощью известных фабрик элементов управления.

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

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

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

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

© 1993, 2020, 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/11/docs/api/java.naming/javax/naming/ldap/ControlFactory.html

Spec-Zone .ru
спецификации, руководства, описания, API