com.unboundid.ldap.sdk.unboundidds.extensions
Class SetSubtreeAccessibilityExtendedRequest

java.lang.Object
  extended by com.unboundid.ldap.sdk.LDAPRequest
      extended by com.unboundid.ldap.sdk.ExtendedRequest
          extended by com.unboundid.ldap.sdk.unboundidds.extensions.SetSubtreeAccessibilityExtendedRequest
All Implemented Interfaces:
ProtocolOp, ReadOnlyLDAPRequest, java.io.Serializable

@NotMutable
@ThreadSafety(level=COMPLETELY_THREADSAFE)
public final class SetSubtreeAccessibilityExtendedRequest
extends ExtendedRequest

NOTE: This class is part of the Commercial Edition of the UnboundID LDAP SDK for Java. It is not available for use in applications that include only the Standard Edition of the LDAP SDK, and is not supported for use in conjunction with non-UnboundID products.
This class provides an implementation of an extended request that may be used to set the accessibility of one or more subtrees in the UnboundID Directory Server. It may be used to indicate that a specified set of entries and all their subordinates should be invisible or read-only, or to restore it to full accessibility.

The OID for this request is 1.3.6.1.4.1.30221.2.6.19, and the value must have the encoding specified below. Note that the initial specification for this extended request only allowed for the specification of a single subtree, whereas it is now possible to affect the accessibility of multiple subtrees in a single request. In order to preserve compatibility with the original encoding, if there is more than one target subtree, then the first subtree must be specified as the first element in the value sequence and the remaining subtrees must be specified in the additionalSubtreeBaseDNs element.

   SetSubtreeAccessibilityRequestValue ::= SEQUENCE {
        subtreeBaseDN                LDAPDN,
        subtreeAccessibility         ENUMERATED {
             accessible                 (0),
             read-only-bind-allowed     (1),
             read-only-bind-denied      (2),
             hidden                     (3),
             ... },
        bypassUserDN                 [0] LDAPDN OPTIONAL,
        additionalSubtreeBaseDNs     [1] SEQUENCE OF LDAPDN OPTIONAL,
        ... }
 

See Also:
Serialized Form

Field Summary
static java.lang.String SET_SUBTREE_ACCESSIBILITY_REQUEST_OID
          The OID (1.3.6.1.4.1.30221.2.6.19) for the set subtree accessibility extended request.
 
Fields inherited from class com.unboundid.ldap.sdk.ExtendedRequest
TYPE_EXTENDED_REQUEST_OID, TYPE_EXTENDED_REQUEST_VALUE
 
Constructor Summary
SetSubtreeAccessibilityExtendedRequest(ExtendedRequest extendedRequest)
          Creates a new set subtree accessibility extended request from the provided generic extended request.
 
Method Summary
static SetSubtreeAccessibilityExtendedRequest createSetAccessibleRequest(java.util.Collection<java.lang.String> subtreeBaseDNs, Control... controls)
          Creates a new set subtree accessibility extended request that will make the specified subtrees accessible.
static SetSubtreeAccessibilityExtendedRequest createSetAccessibleRequest(java.lang.String subtreeBaseDN, Control... controls)
          Creates a new set subtree accessibility extended request that will make the specified subtree accessible.
static SetSubtreeAccessibilityExtendedRequest createSetHiddenRequest(java.util.Collection<java.lang.String> subtreeBaseDNs, java.lang.String bypassUserDN, Control... controls)
          Creates a new set subtree accessibility extended request that will make the specified subtrees hidden.
static SetSubtreeAccessibilityExtendedRequest createSetHiddenRequest(java.lang.String subtreeBaseDN, java.lang.String bypassUserDN, Control... controls)
          Creates a new set subtree accessibility extended request that will make the specified subtree hidden.
static SetSubtreeAccessibilityExtendedRequest createSetReadOnlyRequest(java.util.Collection<java.lang.String> subtreeBaseDNs, boolean allowBind, java.lang.String bypassUserDN, Control... controls)
          Creates a new set subtree accessibility extended request that will make the specified subtrees read-only.
static SetSubtreeAccessibilityExtendedRequest createSetReadOnlyRequest(java.lang.String subtreeBaseDN, boolean allowBind, java.lang.String bypassUserDN, Control... controls)
          Creates a new set subtree accessibility extended request that will make the specified subtree read-only.
 SetSubtreeAccessibilityExtendedRequest duplicate()
          Creates a new instance of this LDAP request that may be modified without impacting this request.
 SetSubtreeAccessibilityExtendedRequest duplicate(Control[] controls)
          Creates a new instance of this LDAP request that may be modified without impacting this request.
 SubtreeAccessibilityState getAccessibilityState()
          Retrieves the accessibility state to apply to the target subtrees.
 java.lang.String getBypassUserDN()
          Retrieves the DN of the user that will be allowed to bypass the restrictions imposed on the target subtrees for all other users.
 java.lang.String getExtendedRequestName()
          Retrieves the user-friendly name for the extended request, if available.
 java.lang.String getSubtreeBaseDN()
          Retrieves the base DN for the target subtree.
 java.util.List<java.lang.String> getSubtreeBaseDNs()
          Retrieves the base DNs for all target subtrees.
 void toString(java.lang.StringBuilder buffer)
          Appends a string representation of this request to the provided buffer.
 
Methods inherited from class com.unboundid.ldap.sdk.ExtendedRequest
encodeProtocolOp, getLastMessageID, getOID, getOperationType, getProtocolOpType, getValue, hasValue, process, responseReceived, writeTo
 
Methods inherited from class com.unboundid.ldap.sdk.LDAPRequest
followReferrals, getControl, getControlList, getControls, getIntermediateResponseListener, getResponseTimeoutMillis, hasControl, hasControl, setFollowReferrals, setIntermediateResponseListener, setResponseTimeoutMillis, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

SET_SUBTREE_ACCESSIBILITY_REQUEST_OID

public static final java.lang.String SET_SUBTREE_ACCESSIBILITY_REQUEST_OID
The OID (1.3.6.1.4.1.30221.2.6.19) for the set subtree accessibility extended request.

See Also:
Constant Field Values
Constructor Detail

SetSubtreeAccessibilityExtendedRequest

public SetSubtreeAccessibilityExtendedRequest(ExtendedRequest extendedRequest)
                                       throws LDAPException
Creates a new set subtree accessibility extended request from the provided generic extended request.

Parameters:
extendedRequest - The generic extended request to use to create this set subtree accessibility extended request.
Throws:
LDAPException - If a problem occurs while decoding the request.
Method Detail

createSetAccessibleRequest

public static SetSubtreeAccessibilityExtendedRequest createSetAccessibleRequest(java.lang.String subtreeBaseDN,
                                                                                Control... controls)
Creates a new set subtree accessibility extended request that will make the specified subtree accessible.

Parameters:
subtreeBaseDN - The base DN for the subtree to make accessible. It must not be null.
controls - The set of controls to include in the request. It may be null or empty if no controls are needed.
Returns:
The set subtree accessibility extended request that was created.

createSetAccessibleRequest

public static SetSubtreeAccessibilityExtendedRequest createSetAccessibleRequest(java.util.Collection<java.lang.String> subtreeBaseDNs,
                                                                                Control... controls)
Creates a new set subtree accessibility extended request that will make the specified subtrees accessible.

Parameters:
subtreeBaseDNs - The base DNs for the subtrees to make accessible. It must not be null or empty. If multiple base DNs are specified, then all must reside below the same backend base DN.
controls - The set of controls to include in the request. It may be null or empty if no controls are needed.
Returns:
The set subtree accessibility extended request that was created.

createSetReadOnlyRequest

public static SetSubtreeAccessibilityExtendedRequest createSetReadOnlyRequest(java.lang.String subtreeBaseDN,
                                                                              boolean allowBind,
                                                                              java.lang.String bypassUserDN,
                                                                              Control... controls)
Creates a new set subtree accessibility extended request that will make the specified subtree read-only.

Parameters:
subtreeBaseDN - The base DN for the subtree to make read-only. It must not be null.
allowBind - Indicates whether users within the specified subtree will be allowed to bind.
bypassUserDN - The DN of a user that will be allowed to perform write (add, delete, modify, and modify DN) operations in the specified subtree. It may be null if no bypass user is needed.
controls - The set of controls to include in the request. It may be null or empty if no controls are needed.
Returns:
The set subtree accessibility extended request that was created.

createSetReadOnlyRequest

public static SetSubtreeAccessibilityExtendedRequest createSetReadOnlyRequest(java.util.Collection<java.lang.String> subtreeBaseDNs,
                                                                              boolean allowBind,
                                                                              java.lang.String bypassUserDN,
                                                                              Control... controls)
Creates a new set subtree accessibility extended request that will make the specified subtrees read-only.

Parameters:
subtreeBaseDNs - The base DNs for the subtrees to make read-only. It must not be null or empty. If multiple base DNs are specified, then all must reside below the same backend base DN.
allowBind - Indicates whether users within the specified subtrees will be allowed to bind.
bypassUserDN - The DN of a user that will be allowed to perform write (add, delete, modify, and modify DN) operations in the specified subtrees. It may be null if no bypass user is needed.
controls - The set of controls to include in the request. It may be null or empty if no controls are needed.
Returns:
The set subtree accessibility extended request that was created.

createSetHiddenRequest

public static SetSubtreeAccessibilityExtendedRequest createSetHiddenRequest(java.lang.String subtreeBaseDN,
                                                                            java.lang.String bypassUserDN,
                                                                            Control... controls)
Creates a new set subtree accessibility extended request that will make the specified subtree hidden.

Parameters:
subtreeBaseDN - The base DN for the subtree to make hidden. It must not be null.
bypassUserDN - The DN of a user that will be allowed to perform write (add, delete, modify, and modify DN) operations in the specified subtree. It may be null if no bypass user is needed.
controls - The set of controls to include in the request. It may be null or empty if no controls are needed.
Returns:
The set subtree accessibility extended request that was created.

createSetHiddenRequest

public static SetSubtreeAccessibilityExtendedRequest createSetHiddenRequest(java.util.Collection<java.lang.String> subtreeBaseDNs,
                                                                            java.lang.String bypassUserDN,
                                                                            Control... controls)
Creates a new set subtree accessibility extended request that will make the specified subtrees hidden.

Parameters:
subtreeBaseDNs - The base DNs for the subtrees to make hidden. It must not be null or empty. If multiple base DNs are specified, then all must reside below the same backend base DN.
bypassUserDN - The DN of a user that will be allowed to perform write (add, delete, modify, and modify DN) operations in the specified subtrees. It may be null if no bypass user is needed.
controls - The set of controls to include in the request. It may be null or empty if no controls are needed.
Returns:
The set subtree accessibility extended request that was created.

getSubtreeBaseDN

public java.lang.String getSubtreeBaseDN()
Retrieves the base DN for the target subtree. Note that if multiple base DNs are defined, this will only retrieve the first. The getSubtreeBaseDNs() method should be used to get the complete set of target subtree base DNs.

Returns:
The base DN for the target subtree.

getSubtreeBaseDNs

public java.util.List<java.lang.String> getSubtreeBaseDNs()
Retrieves the base DNs for all target subtrees.

Returns:
The base DNs for all target subtrees.

getAccessibilityState

public SubtreeAccessibilityState getAccessibilityState()
Retrieves the accessibility state to apply to the target subtrees.

Returns:
The accessibility state to apply to the target subtrees.

getBypassUserDN

public java.lang.String getBypassUserDN()
Retrieves the DN of the user that will be allowed to bypass the restrictions imposed on the target subtrees for all other users.

Returns:
The DN of the user that will be allowed to bypass the restrictions imposed on the target subtrees for all other users, or null if there are no restrictions to be imposed on the target subtrees or if no bypass user is defined for those subtrees.

duplicate

public SetSubtreeAccessibilityExtendedRequest duplicate()
Creates a new instance of this LDAP request that may be modified without impacting this request.. Subclasses should override this method to return a duplicate of the appropriate type.

Specified by:
duplicate in interface ReadOnlyLDAPRequest
Overrides:
duplicate in class ExtendedRequest
Returns:
A new instance of this LDAP request that may be modified without impacting this request.

duplicate

public SetSubtreeAccessibilityExtendedRequest duplicate(Control[] controls)
Creates a new instance of this LDAP request that may be modified without impacting this request. The provided controls will be used for the new request instead of duplicating the controls from this request.. Subclasses should override this method to return a duplicate of the appropriate type.

Specified by:
duplicate in interface ReadOnlyLDAPRequest
Overrides:
duplicate in class ExtendedRequest
Parameters:
controls - The set of controls to include in the duplicate request.
Returns:
A new instance of this LDAP request that may be modified without impacting this request.

getExtendedRequestName

public java.lang.String getExtendedRequestName()
Retrieves the user-friendly name for the extended request, if available. If no user-friendly name has been defined, then the OID will be returned.

Overrides:
getExtendedRequestName in class ExtendedRequest
Returns:
The user-friendly name for this extended request, or the OID if no user-friendly name is available.

toString

public void toString(java.lang.StringBuilder buffer)
Appends a string representation of this request to the provided buffer.

Specified by:
toString in interface ProtocolOp
Specified by:
toString in interface ReadOnlyLDAPRequest
Overrides:
toString in class ExtendedRequest
Parameters:
buffer - The buffer to which to append a string representation of this request.