| java.lang.Object javax.naming.ldap.ControlFactory
ControlFactory | abstract public class ControlFactory (Code) | | This abstract class represents a factory for creating LDAPv3 controls.
LDAPv3 controls are defined in
RFC 2251.
When a service provider receives a response control, it uses control
factories to return the specific/appropriate control class implementation.
author: Rosanna Lee author: Scott Seligman author: Vincent Ryan version: 1.19 07/05/05 See Also: Control since: 1.3 |
Method Summary | |
abstract public Control | getControlInstance(Control ctl) Creates a control using this control factory.
The factory is used by the service provider to return controls
that it reads from the LDAP protocol as specialized control classes.
Without this mechanism, the provider would be returning
controls that only contained data in BER encoded format.
Typically, ctl is a "basic" control containing
BER encoded data. | public static Control | getControlInstance(Control ctl, Context ctx, Hashtable, ?> env) Creates a control using known control factories.
The following rule is used to create the control:
- Use the control factories specified in
the LdapContext.CONTROL_FACTORIES property of the
environment, and of the provider resource file associated with
ctx, in that order.
The value of this property is a colon-separated list of factory
class names that are tried in order, and the first one that succeeds
in creating the control is the one used.
If none of the factories can be loaded,
return
ctl .
If an exception is encountered while creating the control, the
exception is passed up to the caller.
Note that a control factory
must be public and must have a public constructor that accepts no arguments.
Parameters: ctl - The non-null control object containing the OID and BER data. Parameters: ctx - The possibly null context in which the control is being created.If null, no such information is available. Parameters: env - The possibly null environment of the context. |
ControlFactory | protected ControlFactory()(Code) | | |
getControlInstance | abstract public Control getControlInstance(Control ctl) throws NamingException(Code) | | Creates a control using this control factory.
The factory is used by the service provider to return controls
that it reads from the LDAP protocol as specialized control classes.
Without this mechanism, the provider would be returning
controls that only contained data in BER encoded format.
Typically, ctl is a "basic" control containing
BER encoded data. The factory is used to create a specialized
control implementation, usually by decoding the BER encoded data,
that provides methods to access that data in a type-safe and friendly
manner.
For example, a factory might use the BER encoded data in
basic control and return an instance of a VirtualListReplyControl.
If this factory cannot create a control using the argument supplied,
it should return null.
A factory should only throw an exception if it is sure that
it is the only intended factory and that no other control factories
should be tried. This might happen, for example, if the BER data
in the control does not match what is expected of a control with
the given OID. Since this method throws NamingException,
any other internally generated exception that should be propagated
must be wrapped inside a NamingException.
Parameters: ctl - A non-null control. A possibly null Control. exception: NamingException - If ctl contains invalid data that prevents itfrom being used to create a control. A factory should only throw an exception if it knows how to produce the control (identified by the OID)but is unable to because of, for example invalid BER data. |
getControlInstance | public static Control getControlInstance(Control ctl, Context ctx, Hashtable, ?> env) throws NamingException(Code) | | Creates a control using known control factories.
The following rule is used to create the control:
- Use the control factories specified in
the LdapContext.CONTROL_FACTORIES property of the
environment, and of the provider resource file associated with
ctx, in that order.
The value of this property is a colon-separated list of factory
class names that are tried in order, and the first one that succeeds
in creating the control is the one used.
If none of the factories can be loaded,
return
ctl .
If an exception is encountered while creating the control, the
exception is passed up to the caller.
Note that a control factory
must be public and must have a public constructor that accepts no arguments.
Parameters: ctl - The non-null control object containing the OID and BER data. Parameters: ctx - The possibly null context in which the control is being created.If null, no such information is available. Parameters: env - The possibly null environment of the context. This is usedto find the value of the LdapContext.CONTROL_FACTORIES property. A control object created using ctl ; orctl if a control object cannot be created usingthe algorithm described above. exception: NamingException - if a naming exception was encounteredwhile attempting to create the control object.If one of the factories accessed throws anexception, it is propagated up to the caller.If an error was encountered while loadingand instantiating the factory and object classes, the exceptionis wrapped inside a NamingException and then rethrown. |
|
|