Spec-Zone.ru › OpenJDK 17

Класс 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)
Создает контроллер с использованием известных фабрик контроллеров.

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

Параметры:
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 - Объект контроллера, не равный null, содержащий OID и данные BER.
ctx - Возможный контекст, в котором создается контроллер. Если null, такая информация недоступна.
env - Возможная среда контекста. Используется для поиска значения свойства LdapContext.CONTROL_FACTORIES.
Возвращает:
Объект контроллера, созданный с использованием ctl; или ctl если объект контроллера не может быть создан с использованием описанного выше алгоритма.
Используемые исключения:
NamingException - если при попытке создать объект контроллера возникло исключение для именования. Если один из фабрик вызывает исключение, оно передается вызывающему методу. Если при загрузке и создании классов фабрики и объекта возникла ошибка, исключение обертывается в NamingException и затем повторно выбрасывается.

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

Spec-Zone.ru

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