Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class ControlFactory extends Object
Когда поставщик услуг получает управление ответом, оно использует фабрики управления, чтобы возвратить определенную/соответствующую реализацию класса управления.
Control
Модификатор | Конструктор и Описание |
---|---|
protected |
ControlFactory() |
Модификатор и Тип | Метод и Описание |
---|---|
abstract Control |
getControlInstance(Control ctl)
Создает управление, используя эту фабрику управления.
|
static Control |
getControlInstance(Control ctl, Context ctx, Hashtable<?,?> env)
Создает управление, используя известные фабрики управления.
|
public abstract Control getControlInstance(Control ctl) throws NamingException
Фабрика используется поставщиком услуг, чтобы возвратить средства управления, которые она читает из протокола LDAP как специализированные классы управления. Без этого механизма провайдер возвратил бы средства управления, которые только содержали данные в BER закодированный формат.
Как правило, ctl является "основным" управлением, содержащим BER закодированные данные. Фабрика используется, чтобы создать специализированную реализацию управления, обычно декодируя BER закодированные данные, которые обеспечивают методы, чтобы получить доступ к тем данным безопасным с точки зрения типов и дружественным способом.
Например, фабрика могла бы использовать BER закодированные данные в основном управлении и возвратить экземпляр VirtualListReplyControl.
Если эта фабрика не может создать управление, используя предоставленный параметр, это должно возвратить нуль. Фабрика должна только выдать исключение, если это уверено, что это - единственная намеченная фабрика и что никакие другие фабрики управления нельзя попробовать. Это могло бы произойти, например, если данные BER в управлении не соответствуют то, что ожидается управления с данным OID. Так как этот метод бросает NamingException, любое другое внутренне сгенерированное исключение, которое должно быть распространено, должно быть обернуто в NamingException.
ctl
- Ненулевое управление.NamingException
- Если ctl содержит недопустимые данные, которые препятствуют тому, чтобы он имелся обыкновение создавать управление. Фабрика должна только выдать исключение, если она знает, как произвести управление (идентифицированный OID), но неспособна к из-за, например недопустимые данные BER.public static Control getControlInstance(Control ctl, Context ctx, Hashtable<?,?> env) throws NamingException
Следующее правило используется, чтобы создать управление:
ctl
. Если с исключением встречаются, создавая управление, исключение передают до вызывающей стороны. Отметьте, что фабрика управления должна быть общедоступной и должна иметь общедоступного конструктора, который не принимает параметров.
ctl
- Ненулевой объект управления, содержащий OID и данные BER.ctx
- Возможно нулевой контекст, в котором создается управление. Если ноль, никакая такая информация не доступна.env
- Возможно нулевая среда контекста. Это используется, чтобы найти значение свойства LdapContext.CONTROL_FACTORIES.ctl
; или ctl
если объект управления не может быть создан, используя алгоритм, описанный выше.NamingException
- если с исключением именования встретились, пытаясь создать объект управления. Если одна из фабрик, к которым получают доступ, выдает исключение, она распространяется до вызывающей стороны. Если с ошибкой встретились, загружаясь и инстанцируя фабрики и классов объектов, исключение обертывается в NamingException и затем повторно бросается.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.