001 /*
002 * CDDL HEADER START
003 *
004 * The contents of this file are subject to the terms of the
005 * Common Development and Distribution License, Version 1.0 only
006 * (the "License"). You may not use this file except in compliance
007 * with the License.
008 *
009 * You can obtain a copy of the license at
010 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
011 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
012 * See the License for the specific language governing permissions
013 * and limitations under the License.
014 *
015 * When distributing Covered Code, include this CDDL HEADER in each
016 * file and include the License file at
017 * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
018 * add the following below this CDDL HEADER, with the fields enclosed
019 * by brackets "[]" replaced with your own identifying information:
020 * Portions Copyright [yyyy] [name of copyright owner]
021 *
022 * CDDL HEADER END
023 *
024 *
025 * Copyright 2008 Sun Microsystems, Inc.
026 */
027 package org.opends.server.admin.std.client;
028
029
030
031 import org.opends.server.admin.ConfigurationClient;
032 import org.opends.server.admin.IllegalPropertyValueException;
033 import org.opends.server.admin.ManagedObjectDefinition;
034 import org.opends.server.admin.PropertyIsReadOnlyException;
035 import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn.Scope;
036 import org.opends.server.admin.std.server.LocalDBVLVIndexCfg;
037 import org.opends.server.types.DN;
038
039
040
041 /**
042 * A client-side interface for reading and modifying Local DB VLV
043 * Index settings.
044 * <p>
045 * Local DB VLV Indexes are used to store information about a specific
046 * search request that makes it possible to efficiently process them
047 * using the VLV control.
048 */
049 public interface LocalDBVLVIndexCfgClient extends ConfigurationClient {
050
051 /**
052 * Get the configuration definition associated with this Local DB VLV Index.
053 *
054 * @return Returns the configuration definition associated with this Local DB VLV Index.
055 */
056 ManagedObjectDefinition<? extends LocalDBVLVIndexCfgClient, ? extends LocalDBVLVIndexCfg> definition();
057
058
059
060 /**
061 * Gets the "base-dn" property.
062 * <p>
063 * Specifies the base DN used in the search query that is being
064 * indexed.
065 *
066 * @return Returns the value of the "base-dn" property.
067 */
068 DN getBaseDN();
069
070
071
072 /**
073 * Sets the "base-dn" property.
074 * <p>
075 * Specifies the base DN used in the search query that is being
076 * indexed.
077 *
078 * @param value The value of the "base-dn" property.
079 * @throws IllegalPropertyValueException
080 * If the new value is invalid.
081 */
082 void setBaseDN(DN value) throws IllegalPropertyValueException;
083
084
085
086 /**
087 * Gets the "filter" property.
088 * <p>
089 * Specifies the LDAP filter used in the query that is being
090 * indexed.
091 *
092 * @return Returns the value of the "filter" property.
093 */
094 String getFilter();
095
096
097
098 /**
099 * Sets the "filter" property.
100 * <p>
101 * Specifies the LDAP filter used in the query that is being
102 * indexed.
103 *
104 * @param value The value of the "filter" property.
105 * @throws IllegalPropertyValueException
106 * If the new value is invalid.
107 */
108 void setFilter(String value) throws IllegalPropertyValueException;
109
110
111
112 /**
113 * Gets the "max-block-size" property.
114 * <p>
115 * Specifies the number of entry IDs to store in a single sorted set
116 * before it must be split.
117 *
118 * @return Returns the value of the "max-block-size" property.
119 */
120 int getMaxBlockSize();
121
122
123
124 /**
125 * Sets the "max-block-size" property.
126 * <p>
127 * Specifies the number of entry IDs to store in a single sorted set
128 * before it must be split.
129 * <p>
130 * This property is read-only and can only be modified during
131 * creation of a Local DB VLV Index.
132 *
133 * @param value The value of the "max-block-size" property.
134 * @throws IllegalPropertyValueException
135 * If the new value is invalid.
136 * @throws PropertyIsReadOnlyException
137 * If this Local DB VLV Index is not being initialized.
138 */
139 void setMaxBlockSize(Integer value) throws IllegalPropertyValueException, PropertyIsReadOnlyException;
140
141
142
143 /**
144 * Gets the "name" property.
145 * <p>
146 * Specifies a unique name for this VLV index.
147 *
148 * @return Returns the value of the "name" property.
149 */
150 String getName();
151
152
153
154 /**
155 * Sets the "name" property.
156 * <p>
157 * Specifies a unique name for this VLV index.
158 * <p>
159 * This property is read-only and can only be modified during
160 * creation of a Local DB VLV Index.
161 *
162 * @param value The value of the "name" property.
163 * @throws IllegalPropertyValueException
164 * If the new value is invalid.
165 * @throws PropertyIsReadOnlyException
166 * If this Local DB VLV Index is not being initialized.
167 */
168 void setName(String value) throws IllegalPropertyValueException, PropertyIsReadOnlyException;
169
170
171
172 /**
173 * Gets the "scope" property.
174 * <p>
175 * Specifies the LDAP scope of the query that is being indexed.
176 *
177 * @return Returns the value of the "scope" property.
178 */
179 Scope getScope();
180
181
182
183 /**
184 * Sets the "scope" property.
185 * <p>
186 * Specifies the LDAP scope of the query that is being indexed.
187 *
188 * @param value The value of the "scope" property.
189 * @throws IllegalPropertyValueException
190 * If the new value is invalid.
191 */
192 void setScope(Scope value) throws IllegalPropertyValueException;
193
194
195
196 /**
197 * Gets the "sort-order" property.
198 * <p>
199 * Specifies the names of the attributes that are used to sort the
200 * entries for the query being indexed.
201 * <p>
202 * Multiple attributes can be used to determine the sort order by
203 * listing the attribute names from highest to lowest precedence.
204 * Optionally, + or - can be prefixed to the attribute name to sort
205 * the attribute in ascending order or descending order respectively.
206 *
207 * @return Returns the value of the "sort-order" property.
208 */
209 String getSortOrder();
210
211
212
213 /**
214 * Sets the "sort-order" property.
215 * <p>
216 * Specifies the names of the attributes that are used to sort the
217 * entries for the query being indexed.
218 * <p>
219 * Multiple attributes can be used to determine the sort order by
220 * listing the attribute names from highest to lowest precedence.
221 * Optionally, + or - can be prefixed to the attribute name to sort
222 * the attribute in ascending order or descending order respectively.
223 *
224 * @param value The value of the "sort-order" property.
225 * @throws IllegalPropertyValueException
226 * If the new value is invalid.
227 */
228 void setSortOrder(String value) throws IllegalPropertyValueException;
229
230 }