001/*
002 * The contents of this file are subject to the terms of the Common Development and
003 * Distribution License (the License). You may not use this file except in compliance with the
004 * License.
005 *
006 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
007 * specific language governing permission and limitations under the License.
008 *
009 * When distributing Covered Software, include this CDDL Header Notice in each file and include
010 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
011 * Header, with the fields enclosed by brackets [] replaced by your own identifying
012 * information: "Portions Copyright [year] [name of copyright owner]".
013 *
014 * Copyright 2008 Sun Microsystems, Inc.
015 */
016package org.forgerock.opendj.server.config.client;
017
018
019
020import org.forgerock.opendj.config.ConfigurationClient;
021import org.forgerock.opendj.config.ManagedObjectDefinition;
022import org.forgerock.opendj.config.PropertyException;
023import org.forgerock.opendj.ldap.DN;
024import org.forgerock.opendj.server.config.meta.BackendVLVIndexCfgDefn.Scope;
025import org.forgerock.opendj.server.config.server.BackendVLVIndexCfg;
026
027
028
029/**
030 * A client-side interface for reading and modifying Backend VLV Index
031 * settings.
032 * <p>
033 * Backend VLV Indexes are used to store information about a specific
034 * search request that makes it possible to efficiently process them
035 * using the VLV control.
036 */
037public interface BackendVLVIndexCfgClient extends ConfigurationClient {
038
039  /**
040   * Get the configuration definition associated with this Backend VLV Index.
041   *
042   * @return Returns the configuration definition associated with this Backend VLV Index.
043   */
044  ManagedObjectDefinition<? extends BackendVLVIndexCfgClient, ? extends BackendVLVIndexCfg> definition();
045
046
047
048  /**
049   * Gets the "base-dn" property.
050   * <p>
051   * Specifies the base DN used in the search query that is being
052   * indexed.
053   *
054   * @return Returns the value of the "base-dn" property.
055   */
056  DN getBaseDN();
057
058
059
060  /**
061   * Sets the "base-dn" property.
062   * <p>
063   * Specifies the base DN used in the search query that is being
064   * indexed.
065   *
066   * @param value The value of the "base-dn" property.
067   * @throws PropertyException
068   *           If the new value is invalid.
069   */
070  void setBaseDN(DN value) throws PropertyException;
071
072
073
074  /**
075   * Gets the "filter" property.
076   * <p>
077   * Specifies the LDAP filter used in the query that is being
078   * indexed.
079   *
080   * @return Returns the value of the "filter" property.
081   */
082  String getFilter();
083
084
085
086  /**
087   * Sets the "filter" property.
088   * <p>
089   * Specifies the LDAP filter used in the query that is being
090   * indexed.
091   *
092   * @param value The value of the "filter" property.
093   * @throws PropertyException
094   *           If the new value is invalid.
095   */
096  void setFilter(String value) throws PropertyException;
097
098
099
100  /**
101   * Gets the "name" property.
102   * <p>
103   * Specifies a unique name for this VLV index.
104   *
105   * @return Returns the value of the "name" property.
106   */
107  String getName();
108
109
110
111  /**
112   * Sets the "name" property.
113   * <p>
114   * Specifies a unique name for this VLV index.
115   * <p>
116   * This property is read-only and can only be modified during
117   * creation of a Backend VLV Index.
118   *
119   * @param value The value of the "name" property.
120   * @throws PropertyException
121   *           If the new value is invalid.
122   * @throws PropertyException
123   *           If this Backend VLV Index is not being initialized.
124   */
125  void setName(String value) throws PropertyException, PropertyException;
126
127
128
129  /**
130   * Gets the "scope" property.
131   * <p>
132   * Specifies the LDAP scope of the query that is being indexed.
133   *
134   * @return Returns the value of the "scope" property.
135   */
136  Scope getScope();
137
138
139
140  /**
141   * Sets the "scope" property.
142   * <p>
143   * Specifies the LDAP scope of the query that is being indexed.
144   *
145   * @param value The value of the "scope" property.
146   * @throws PropertyException
147   *           If the new value is invalid.
148   */
149  void setScope(Scope value) throws PropertyException;
150
151
152
153  /**
154   * Gets the "sort-order" property.
155   * <p>
156   * Specifies the names of the attributes that are used to sort the
157   * entries for the query being indexed.
158   * <p>
159   * Multiple attributes can be used to determine the sort order by
160   * listing the attribute names from highest to lowest precedence.
161   * Optionally, + or - can be prefixed to the attribute name to sort
162   * the attribute in ascending order or descending order respectively.
163   *
164   * @return Returns the value of the "sort-order" property.
165   */
166  String getSortOrder();
167
168
169
170  /**
171   * Sets the "sort-order" property.
172   * <p>
173   * Specifies the names of the attributes that are used to sort the
174   * entries for the query being indexed.
175   * <p>
176   * Multiple attributes can be used to determine the sort order by
177   * listing the attribute names from highest to lowest precedence.
178   * Optionally, + or - can be prefixed to the attribute name to sort
179   * the attribute in ascending order or descending order respectively.
180   *
181   * @param value The value of the "sort-order" property.
182   * @throws PropertyException
183   *           If the new value is invalid.
184   */
185  void setSortOrder(String value) throws PropertyException;
186
187}