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