Класс 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 элемент управления.
- Исключения:
-
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и затем повторно выбрасывается.
© 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://download.java.net/java/early_access/jdk24/docs/api/java.naming/javax/naming/ldap/ControlFactory.html