@Extensible @NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public class Control extends java.lang.Object implements java.io.Serializable
UpdatableLDAPRequest
objects. When using
response controls, each response control class includes a get
method
that can be used to extract the appropriate control from an appropriate
result (e.g., LDAPResult
, SearchResultEntry
, or
SearchResultReference
).Modifier | Constructor and Description |
---|---|
protected |
Control()
Creates a new empty control instance that is intended to be used only for
decoding controls via the
DecodeableControl interface. |
protected |
Control(Control control)
Creates a new control whose fields are initialized from the contents of the
provided control.
|
|
Control(java.lang.String oid)
Creates a new control with the provided OID.
|
|
Control(java.lang.String oid,
boolean isCritical)
Creates a new control with the provided OID and criticality.
|
|
Control(java.lang.String oid,
boolean isCritical,
ASN1OctetString value)
Creates a new control with the provided information.
|
Modifier and Type | Method and Description |
---|---|
static Control |
decode(ASN1Sequence controlSequence)
Decodes the provided ASN.1 sequence as an LDAP control.
|
static Control |
decode(java.lang.String oid,
boolean isCritical,
ASN1OctetString value)
Attempts to create the most appropriate control instance from the provided
information.
|
static Control[] |
decodeControls(ASN1Sequence controlSequence)
Decodes the contents of the provided sequence as a set of controls.
|
static void |
deregisterDecodeableControl(java.lang.String oid)
Deregisters the decodeable control class associated with the provided OID.
|
ASN1Sequence |
encode()
Encodes this control to an ASN.1 sequence suitable for use in an LDAP
message.
|
static ASN1Sequence |
encodeControls(Control[] controls)
Encodes the provided set of controls to an ASN.1 sequence suitable for
inclusion in an LDAP message.
|
boolean |
equals(java.lang.Object o)
Indicates whether the provided object may be considered equal to this
control.
|
java.lang.String |
getControlName()
Retrieves the user-friendly name for this control, if available.
|
java.lang.String |
getOID()
Retrieves the OID for this control.
|
ASN1OctetString |
getValue()
Retrieves the encoded value for this control.
|
int |
hashCode()
Retrieves a hash code for this control.
|
boolean |
hasValue()
Indicates whether this control has a value.
|
boolean |
isCritical()
Indicates whether this control should be considered critical.
|
static Control |
readFrom(ASN1StreamReader reader)
Reads an LDAP control from the provided ASN.1 stream reader.
|
static void |
registerDecodeableControl(java.lang.String oid,
DecodeableControl controlInstance)
Registers the provided class to be used in an attempt to decode controls
with the specified OID.
|
static void |
registerDecodeableControl(java.lang.String oid,
java.lang.String className)
Registers the specified class to be used in an attempt to decode controls
with the specified OID.
|
java.lang.String |
toString()
Retrieves a string representation of this LDAP control.
|
void |
toString(java.lang.StringBuilder buffer)
Appends a string representation of this LDAP control to the provided
buffer.
|
void |
writeTo(ASN1Buffer writer)
Writes an ASN.1-encoded representation of this control to the provided
ASN.1 stream writer.
|
protected Control()
DecodeableControl
interface. All
DecodeableControl
objects must provide a default constructor that
can be used to create an instance suitable for invoking the
decodeControl
method.protected Control(@NotNull Control control)
control
- The control whose information should be used to create
this new control.public Control(@NotNull java.lang.String oid)
oid
- The OID for this control. It must not be null
.public Control(@NotNull java.lang.String oid, boolean isCritical)
oid
- The OID for this control. It must not be null
.isCritical
- Indicates whether this control should be considered
critical.public Control(@NotNull java.lang.String oid, boolean isCritical, @Nullable ASN1OctetString value)
oid
- The OID for this control. It must not be null
.isCritical
- Indicates whether this control should be considered
critical.value
- The value for this control. It may be null
if
there is no value.@NotNull public final java.lang.String getOID()
public final boolean isCritical()
true
if this control should be considered critical, or
false
if not.public final boolean hasValue()
true
if this control has a value, or false
if not.@Nullable public final ASN1OctetString getValue()
null
if there is no
value.public final void writeTo(@NotNull ASN1Buffer writer)
writer
- The ASN.1 stream writer to which the encoded representation
should be written.@NotNull public final ASN1Sequence encode()
@NotNull public static Control readFrom(@NotNull ASN1StreamReader reader) throws LDAPException
reader
- The ASN.1 stream reader from which to read the control.LDAPException
- If a problem occurs while attempting to read or
parse the control.@NotNull public static Control decode(@NotNull ASN1Sequence controlSequence) throws LDAPException
controlSequence
- The ASN.1 sequence to be decoded.LDAPException
- If a problem occurs while attempting to decode the
provided ASN.1 sequence as an LDAP control.@NotNull public static Control decode(@NotNull java.lang.String oid, boolean isCritical, @Nullable ASN1OctetString value) throws LDAPException
DecodeableControl
instance has been registered
for the specified OID, then this method will attempt to use that instance
to construct a control. If that fails, or if no appropriate
DecodeableControl
is registered, then a generic control will be
returned.oid
- The OID for the control. It must not be null
.isCritical
- Indicates whether the control should be considered
critical.value
- The value for the control. It may be null
if
there is no value.LDAPException
- If a problem occurs while attempting to decode the
provided ASN.1 sequence as an LDAP control.@NotNull public static ASN1Sequence encodeControls(@NotNull Control[] controls)
controls
- The set of controls to be encoded.@NotNull public static Control[] decodeControls(@NotNull ASN1Sequence controlSequence) throws LDAPException
controlSequence
- The ASN.1 sequence containing the encoded set of
controls.LDAPException
- If a problem occurs while attempting to decode any
of the controls.public static void registerDecodeableControl(@NotNull java.lang.String oid, @NotNull java.lang.String className)
oid
- The response control OID for which the provided class
will be registered.className
- The fully-qualified name for the Java class that
provides the decodeable control implementation to use
for the provided OID.public static void registerDecodeableControl(@NotNull java.lang.String oid, @NotNull DecodeableControl controlInstance)
oid
- The response control OID for which the provided
class will be registered.controlInstance
- The control instance that should be used to decode
controls with the provided OID.public static void deregisterDecodeableControl(@NotNull java.lang.String oid)
oid
- The response control OID for which to deregister the
decodeable control class.public final int hashCode()
hashCode
in class java.lang.Object
public final boolean equals(@Nullable java.lang.Object o)
equals
in class java.lang.Object
o
- The object for which to make the determination.true
if the provided object may be considered equal to
this control, or false
if not.@NotNull public java.lang.String getControlName()
@NotNull public java.lang.String toString()
toString
in class java.lang.Object