Класс ControlFactory
public abstract class ControlFactory extends Object
Когда поставщик услуг получает контроллер ответа, он использует фабрики контроллеров для возвращения реализации конкретного/соответствующего класса контроллера.
- С тех пор:
- 1.3
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает новый экземпляр фабрики контроллеров. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Control |
getControlInstance |
Создает контроллер с использованием этой фабрики контроллеров. |
static Control |
getControlInstance |
Создает контроллер с использованием известных фабрик контроллеров. |
Подробное описание конструкторов
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