org.apache.directory.shared.ldap.subtree
Interface SubtreeSpecification

All Known Implementing Classes:
BaseSubtreeSpecification

public interface SubtreeSpecification

RFC 3672 defined a subtree specification to be included within subentries.

Version:
$Rev: 379008 $
Author:
Apache Directory Project

Field Summary
static int UNBOUNDED_MAX
          an unbounded maximum depth value in a subtree specification
 
Method Summary
 javax.naming.Name getBase()
          Gets an RDN relative to the administrative context where the subtree scope begins.
 java.util.Set getChopAfterExclusions()
          A set of RDNs relative to the base entry representing chopAfter specificExclusions from the subtree.
 java.util.Set getChopBeforeExclusions()
          A set of RDNs relative to the base entry representing chopBefore specificExclusions from the subtree.
 int getMaxBaseDistance()
          Gets the distance after which to start excluding entries in the subtree or subtree refinement.
 int getMinBaseDistance()
          Gets the distance at which to start including entries in the subtree.
 ExprNode getRefinement()
          A subtree refinement represents a non-contiguous selection of entries using a limited filter expression where attribute assertions are based on the objectClass of the entries.
 

Field Detail

UNBOUNDED_MAX

public static final int UNBOUNDED_MAX
an unbounded maximum depth value in a subtree specification

See Also:
Constant Field Values
Method Detail

getBase

public javax.naming.Name getBase()
Gets an RDN relative to the administrative context where the subtree scope begins. All subentries containing these specifications are immediate subordinates to the administrative point, and are considered to be part of the same naming context. Hence the base for the subtree specification of a subentry immediately subordinate to dc=apache,dc=org would be relative to the dc=apache,dc=org context.

Returns:
the RDN representing the base of the subtree, or the empty name if the base is the administrative point - note that this Name is not Normalized according to matchingRules.

getChopBeforeExclusions

public java.util.Set getChopBeforeExclusions()
A set of RDNs relative to the base entry representing chopBefore specificExclusions from the subtree. According to RFC 3672: "If the chopBefore form is used then the specified entry and its subordinates are excluded from the subtree or subtree refinement."

Returns:
a set of relative Names to the subtree base or the empty set

getChopAfterExclusions

public java.util.Set getChopAfterExclusions()
A set of RDNs relative to the base entry representing chopAfter specificExclusions from the subtree. According to RFC 3672: "If the chopAfter form is used then only the subordinates of the specified entry are excluded from the subtree or subtree refinement."

Returns:
a set of relative Names to the subtree base or the empty set

getMinBaseDistance

public int getMinBaseDistance()
Gets the distance at which to start including entries in the subtree. All entries whose RDN arcs relative to the base are less than the minimum are excluded from the subtree or subtree refinement. The default is zero and therefore excludes nothing.

Returns:
the minimum number of RDN arcs relative to base for inclusion

getMaxBaseDistance

public int getMaxBaseDistance()
Gets the distance after which to start excluding entries in the subtree or subtree refinement. RFC 3672 Section 2.1.3 states: "Entries that are more than the maximum number of RDN arcs below the base entry are excluded from the subtree or subtree refinement. An absent maximum component indicates that there is no upper limit on the number of RDN arcs below the base entry for entries in the subtree or subtree refinement." If the maximum is limitless a negative value should be used to represent the maximum distance - which makes no sense other than to denote the lack of an upper limit.

Returns:
the number of arcs relative to the base after which entries are excluded
See Also:
UNBOUNDED_MAX

getRefinement

public ExprNode getRefinement()
A subtree refinement represents a non-contiguous selection of entries using a limited filter expression where attribute assertions are based on the objectClass of the entries.

Returns:
a limited filter expression tree representing a subtree refinement or null if one does not exist for this subtree specification


Copyright © 2003-2006 . All Rights Reserved.