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 java.util.Collection;
032 import java.util.SortedSet;
033 import org.opends.server.admin.IllegalPropertyValueException;
034 import org.opends.server.admin.ManagedObjectDefinition;
035 import org.opends.server.admin.std.meta.FileSystemEntryCacheCfgDefn.CacheType;
036 import org.opends.server.admin.std.server.FileSystemEntryCacheCfg;
037
038
039
040 /**
041 * A client-side interface for reading and modifying File System Entry
042 * Cache settings.
043 * <p>
044 * The File System Entry Cache is an entry cache implementation which
045 * uses a JE database to keep track of the entries.
046 */
047 public interface FileSystemEntryCacheCfgClient extends EntryCacheCfgClient {
048
049 /**
050 * Get the configuration definition associated with this File System Entry Cache.
051 *
052 * @return Returns the configuration definition associated with this File System Entry Cache.
053 */
054 ManagedObjectDefinition<? extends FileSystemEntryCacheCfgClient, ? extends FileSystemEntryCacheCfg> definition();
055
056
057
058 /**
059 * Gets the "cache-directory" property.
060 * <p>
061 * Specifies the directory in which the JE environment should store
062 * the cache.
063 *
064 * @return Returns the value of the "cache-directory" property.
065 */
066 String getCacheDirectory();
067
068
069
070 /**
071 * Sets the "cache-directory" property.
072 * <p>
073 * Specifies the directory in which the JE environment should store
074 * the cache.
075 *
076 * @param value The value of the "cache-directory" property.
077 * @throws IllegalPropertyValueException
078 * If the new value is invalid.
079 */
080 void setCacheDirectory(String value) throws IllegalPropertyValueException;
081
082
083
084 /**
085 * Gets the "cache-type" property.
086 * <p>
087 * Specifies the policy which should be used for purging entries
088 * from the cache.
089 *
090 * @return Returns the value of the "cache-type" property.
091 */
092 CacheType getCacheType();
093
094
095
096 /**
097 * Sets the "cache-type" property.
098 * <p>
099 * Specifies the policy which should be used for purging entries
100 * from the cache.
101 *
102 * @param value The value of the "cache-type" property.
103 * @throws IllegalPropertyValueException
104 * If the new value is invalid.
105 */
106 void setCacheType(CacheType value) throws IllegalPropertyValueException;
107
108
109
110 /**
111 * Gets the "compact-encoding" property.
112 * <p>
113 * Indicates whether the cache should use a compact form when
114 * encoding cache entries by compressing the attribute descriptions
115 * and object class sets.
116 * <p>
117 * Note that compression does not preserve user-supplied
118 * capitalization in the object class and attribute type names.
119 *
120 * @return Returns the value of the "compact-encoding" property.
121 */
122 boolean isCompactEncoding();
123
124
125
126 /**
127 * Sets the "compact-encoding" property.
128 * <p>
129 * Indicates whether the cache should use a compact form when
130 * encoding cache entries by compressing the attribute descriptions
131 * and object class sets.
132 * <p>
133 * Note that compression does not preserve user-supplied
134 * capitalization in the object class and attribute type names.
135 *
136 * @param value The value of the "compact-encoding" property.
137 * @throws IllegalPropertyValueException
138 * If the new value is invalid.
139 */
140 void setCompactEncoding(Boolean value) throws IllegalPropertyValueException;
141
142
143
144 /**
145 * Gets the "db-cache-percent" property.
146 * <p>
147 * Specifies the maximum memory usage for the internal JE cache as a
148 * percentage of the total JVM memory.
149 *
150 * @return Returns the value of the "db-cache-percent" property.
151 */
152 int getDBCachePercent();
153
154
155
156 /**
157 * Sets the "db-cache-percent" property.
158 * <p>
159 * Specifies the maximum memory usage for the internal JE cache as a
160 * percentage of the total JVM memory.
161 *
162 * @param value The value of the "db-cache-percent" property.
163 * @throws IllegalPropertyValueException
164 * If the new value is invalid.
165 */
166 void setDBCachePercent(Integer value) throws IllegalPropertyValueException;
167
168
169
170 /**
171 * Gets the "db-cache-size" property.
172 * <p>
173 * Specifies the maximum JVM memory usage in bytes for the internal
174 * JE cache.
175 *
176 * @return Returns the value of the "db-cache-size" property.
177 */
178 long getDBCacheSize();
179
180
181
182 /**
183 * Sets the "db-cache-size" property.
184 * <p>
185 * Specifies the maximum JVM memory usage in bytes for the internal
186 * JE cache.
187 *
188 * @param value The value of the "db-cache-size" property.
189 * @throws IllegalPropertyValueException
190 * If the new value is invalid.
191 */
192 void setDBCacheSize(Long value) throws IllegalPropertyValueException;
193
194
195
196 /**
197 * Gets the "exclude-filter" property.
198 * <p>
199 * The set of filters that define the entries that should be
200 * excluded from the cache.
201 *
202 * @return Returns the values of the "exclude-filter" property.
203 */
204 SortedSet<String> getExcludeFilter();
205
206
207
208 /**
209 * Sets the "exclude-filter" property.
210 * <p>
211 * The set of filters that define the entries that should be
212 * excluded from the cache.
213 *
214 * @param values The values of the "exclude-filter" property.
215 * @throws IllegalPropertyValueException
216 * If one or more of the new values are invalid.
217 */
218 void setExcludeFilter(Collection<String> values) throws IllegalPropertyValueException;
219
220
221
222 /**
223 * Gets the "include-filter" property.
224 * <p>
225 * The set of filters that define the entries that should be
226 * included in the cache.
227 *
228 * @return Returns the values of the "include-filter" property.
229 */
230 SortedSet<String> getIncludeFilter();
231
232
233
234 /**
235 * Sets the "include-filter" property.
236 * <p>
237 * The set of filters that define the entries that should be
238 * included in the cache.
239 *
240 * @param values The values of the "include-filter" property.
241 * @throws IllegalPropertyValueException
242 * If one or more of the new values are invalid.
243 */
244 void setIncludeFilter(Collection<String> values) throws IllegalPropertyValueException;
245
246
247
248 /**
249 * Gets the "java-class" property.
250 * <p>
251 * Specifies the fully-qualified name of the Java class that
252 * provides the File System Entry Cache implementation.
253 *
254 * @return Returns the value of the "java-class" property.
255 */
256 String getJavaClass();
257
258
259
260 /**
261 * Sets the "java-class" property.
262 * <p>
263 * Specifies the fully-qualified name of the Java class that
264 * provides the File System Entry Cache implementation.
265 *
266 * @param value The value of the "java-class" property.
267 * @throws IllegalPropertyValueException
268 * If the new value is invalid.
269 */
270 void setJavaClass(String value) throws IllegalPropertyValueException;
271
272
273
274 /**
275 * Gets the "je-property" property.
276 * <p>
277 * Specifies the environment properties for the Berkeley DB Java
278 * Edition database providing the backend for this entry cache.
279 * <p>
280 * Any Berkeley DB Java Edition property can be specified using the
281 * following form: property-name=property-value. Refer to the OpenDS
282 * documentation for further information on related properties, their
283 * implications and range values. The definitive identification of
284 * all the property parameters available in the example.properties
285 * file in the Berkeley DB Java Edition distribution.
286 *
287 * @return Returns the values of the "je-property" property.
288 */
289 SortedSet<String> getJEProperty();
290
291
292
293 /**
294 * Sets the "je-property" property.
295 * <p>
296 * Specifies the environment properties for the Berkeley DB Java
297 * Edition database providing the backend for this entry cache.
298 * <p>
299 * Any Berkeley DB Java Edition property can be specified using the
300 * following form: property-name=property-value. Refer to the OpenDS
301 * documentation for further information on related properties, their
302 * implications and range values. The definitive identification of
303 * all the property parameters available in the example.properties
304 * file in the Berkeley DB Java Edition distribution.
305 *
306 * @param values The values of the "je-property" property.
307 * @throws IllegalPropertyValueException
308 * If one or more of the new values are invalid.
309 */
310 void setJEProperty(Collection<String> values) throws IllegalPropertyValueException;
311
312
313
314 /**
315 * Gets the "lock-timeout" property.
316 * <p>
317 * The length of time to wait while attempting to acquire a read or
318 * write lock.
319 *
320 * @return Returns the value of the "lock-timeout" property.
321 */
322 long getLockTimeout();
323
324
325
326 /**
327 * Sets the "lock-timeout" property.
328 * <p>
329 * The length of time to wait while attempting to acquire a read or
330 * write lock.
331 *
332 * @param value The value of the "lock-timeout" property.
333 * @throws IllegalPropertyValueException
334 * If the new value is invalid.
335 */
336 void setLockTimeout(Long value) throws IllegalPropertyValueException;
337
338
339
340 /**
341 * Gets the "max-entries" property.
342 * <p>
343 * The maximum number of entries allowed in the cache.
344 *
345 * @return Returns the value of the "max-entries" property.
346 */
347 int getMaxEntries();
348
349
350
351 /**
352 * Sets the "max-entries" property.
353 * <p>
354 * The maximum number of entries allowed in the cache.
355 *
356 * @param value The value of the "max-entries" property.
357 * @throws IllegalPropertyValueException
358 * If the new value is invalid.
359 */
360 void setMaxEntries(Integer value) throws IllegalPropertyValueException;
361
362
363
364 /**
365 * Gets the "max-memory-size" property.
366 * <p>
367 * The maximum size of the entry cache in bytes.
368 *
369 * @return Returns the value of the "max-memory-size" property.
370 */
371 long getMaxMemorySize();
372
373
374
375 /**
376 * Sets the "max-memory-size" property.
377 * <p>
378 * The maximum size of the entry cache in bytes.
379 *
380 * @param value The value of the "max-memory-size" property.
381 * @throws IllegalPropertyValueException
382 * If the new value is invalid.
383 */
384 void setMaxMemorySize(Long value) throws IllegalPropertyValueException;
385
386
387
388 /**
389 * Gets the "persistent-cache" property.
390 * <p>
391 * Specifies whether the cache should persist across restarts.
392 *
393 * @return Returns the value of the "persistent-cache" property.
394 */
395 boolean isPersistentCache();
396
397
398
399 /**
400 * Sets the "persistent-cache" property.
401 * <p>
402 * Specifies whether the cache should persist across restarts.
403 *
404 * @param value The value of the "persistent-cache" property.
405 * @throws IllegalPropertyValueException
406 * If the new value is invalid.
407 */
408 void setPersistentCache(Boolean value) throws IllegalPropertyValueException;
409
410 }