mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

ludovicp
30.59.2010 66680d3613957ad09437fc8b64885a0ad87f9e53
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 * add the following below this CDDL HEADER, with the fields enclosed
 * by brackets "[]" replaced with your own identifying information:
 *      Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 *
 *      Copyright 2006-2010 Sun Microsystems, Inc.
 */
package org.opends.server.api;
 
 
 
import org.opends.server.types.DN;
import org.opends.server.types.Entry;
 
 
 
/**
 * Generic subtree specification interface.
 */
@org.opends.server.types.PublicAPI(
     stability=org.opends.server.types.StabilityLevel.VOLATILE,
     mayInstantiate=false,
     mayExtend=true,
     mayInvoke=false)
public abstract class SubtreeSpecification
{
  /**
   * Create a new subtree specification.
   */
  protected SubtreeSpecification()
  {
    // No implementation required.
  }
 
 
 
  /**
   * Get the absolute base DN of the subtree specification.
   *
   * @return Returns the absolute base DN of the subtree
   *         specification.
   */
  public abstract DN getBaseDN();
 
 
 
  /**
   * Determine if an entry is within the scope of the subtree
   * specification.
   *
   * @param  entry  The entry.
   *
   * @return  {@code true} if the entry is within the scope of the
   *          subtree specification, or {@code false} if not.
   */
  public abstract boolean isWithinScope(Entry entry);
 
 
 
  /**
   * Determine if the specified DN is within the scope of the subtree
   * specification.
   *
   * @param dn  The distinguished name.
   * @return Returns <code>true</code> if the DN is within the scope
   *         of the subtree specification, or <code>false</code>
   *         otherwise.
   */
  public abstract boolean isDNWithinScope(DN dn);
 
 
 
  /**
   * Indicates whether the provided object is logically equal to this
   * subtree specification object.
   *
   * @param  obj  The object for which to make the determination.
   *
   * @return  {@code true} if the provided object is logically equal
   *          to this subtree specification object, or {@code false}
   *          if not.
   */
  @Override
  public abstract boolean equals(Object obj);
 
 
 
  /**
   * Retrieves the hash code for this subtree specification object.
   *
   * @return  The hash code for this subtree specification object.
   */
  @Override
  public abstract int hashCode();
 
 
 
  /**
   * Append the string representation of the subtree specification to
   * the provided string builder.
   *
   * @param  builder  The string builder.
   * @return  The string builder.
   */
  public abstract StringBuilder toString(StringBuilder builder);
 
 
 
  /**
   * Retrieves a string representation of this subtree specification
   * object.
   *
   * @return  A string representation of this subtree specification
   *          object.
   */
  @Override
  public final String toString()
  {
    StringBuilder builder = new StringBuilder();
    return toString(builder).toString();
  }
}