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.PluginCfgDefn.PluginType;
036 import org.opends.server.admin.std.server.ReferentialIntegrityPluginCfg;
037 import org.opends.server.types.AttributeType;
038 import org.opends.server.types.DN;
039
040
041
042 /**
043 * A client-side interface for reading and modifying Referential
044 * Integrity Plugin settings.
045 * <p>
046 * The Referential Integrity Plugin maintains referential integrity
047 * for DN valued attributes.
048 */
049 public interface ReferentialIntegrityPluginCfgClient extends PluginCfgClient {
050
051 /**
052 * Get the configuration definition associated with this Referential Integrity Plugin.
053 *
054 * @return Returns the configuration definition associated with this Referential Integrity Plugin.
055 */
056 ManagedObjectDefinition<? extends ReferentialIntegrityPluginCfgClient, ? extends ReferentialIntegrityPluginCfg> definition();
057
058
059
060 /**
061 * Gets the "attribute-type" property.
062 * <p>
063 * Specifies the attribute types for which referential integrity is
064 * to be maintained.
065 * <p>
066 * At least one attribute type must be specified, and the syntax of
067 * any attributes must be either a distinguished name
068 * (1.3.6.1.4.1.1466.115.121.1.12) or name and optional UID
069 * (1.3.6.1.4.1.1466.115.121.1.34).
070 *
071 * @return Returns the values of the "attribute-type" property.
072 */
073 SortedSet<AttributeType> getAttributeType();
074
075
076
077 /**
078 * Sets the "attribute-type" property.
079 * <p>
080 * Specifies the attribute types for which referential integrity is
081 * to be maintained.
082 * <p>
083 * At least one attribute type must be specified, and the syntax of
084 * any attributes must be either a distinguished name
085 * (1.3.6.1.4.1.1466.115.121.1.12) or name and optional UID
086 * (1.3.6.1.4.1.1466.115.121.1.34).
087 *
088 * @param values The values of the "attribute-type" property.
089 * @throws IllegalPropertyValueException
090 * If one or more of the new values are invalid.
091 */
092 void setAttributeType(Collection<AttributeType> values) throws IllegalPropertyValueException;
093
094
095
096 /**
097 * Gets the "base-dn" property.
098 * <p>
099 * Specifies the base DN that limits the scope within which
100 * referential integrity is maintained.
101 *
102 * @return Returns the values of the "base-dn" property.
103 */
104 SortedSet<DN> getBaseDN();
105
106
107
108 /**
109 * Sets the "base-dn" property.
110 * <p>
111 * Specifies the base DN that limits the scope within which
112 * referential integrity is maintained.
113 *
114 * @param values The values of the "base-dn" property.
115 * @throws IllegalPropertyValueException
116 * If one or more of the new values are invalid.
117 */
118 void setBaseDN(Collection<DN> values) throws IllegalPropertyValueException;
119
120
121
122 /**
123 * Gets the "java-class" property.
124 * <p>
125 * Specifies the fully-qualified name of the Java class that
126 * provides the plug-in implementation.
127 *
128 * @return Returns the value of the "java-class" property.
129 */
130 String getJavaClass();
131
132
133
134 /**
135 * Sets the "java-class" property.
136 * <p>
137 * Specifies the fully-qualified name of the Java class that
138 * provides the plug-in implementation.
139 *
140 * @param value The value of the "java-class" property.
141 * @throws IllegalPropertyValueException
142 * If the new value is invalid.
143 */
144 void setJavaClass(String value) throws IllegalPropertyValueException;
145
146
147
148 /**
149 * Gets the "log-file" property.
150 * <p>
151 * Specifies the log file location where the update records are
152 * written when the plug-in is in background-mode processing.
153 * <p>
154 * The default location is the logs directory of the server
155 * instance, using the file name "referint".
156 *
157 * @return Returns the value of the "log-file" property.
158 */
159 String getLogFile();
160
161
162
163 /**
164 * Sets the "log-file" property.
165 * <p>
166 * Specifies the log file location where the update records are
167 * written when the plug-in is in background-mode processing.
168 * <p>
169 * The default location is the logs directory of the server
170 * instance, using the file name "referint".
171 *
172 * @param value The value of the "log-file" property.
173 * @throws IllegalPropertyValueException
174 * If the new value is invalid.
175 */
176 void setLogFile(String value) throws IllegalPropertyValueException;
177
178
179
180 /**
181 * Gets the "plugin-type" property.
182 * <p>
183 * Specifies the set of plug-in types for the plug-in, which
184 * specifies the times at which the plug-in is invoked.
185 *
186 * @return Returns the values of the "plugin-type" property.
187 */
188 SortedSet<PluginType> getPluginType();
189
190
191
192 /**
193 * Sets the "plugin-type" property.
194 * <p>
195 * Specifies the set of plug-in types for the plug-in, which
196 * specifies the times at which the plug-in is invoked.
197 *
198 * @param values The values of the "plugin-type" property.
199 * @throws IllegalPropertyValueException
200 * If one or more of the new values are invalid.
201 */
202 void setPluginType(Collection<PluginType> values) throws IllegalPropertyValueException;
203
204
205
206 /**
207 * Gets the "update-interval" property.
208 * <p>
209 * Specifies the interval in seconds when referential integrity
210 * updates are made.
211 * <p>
212 * If this value is 0, then the updates are made synchronously in
213 * the foreground.
214 *
215 * @return Returns the value of the "update-interval" property.
216 */
217 long getUpdateInterval();
218
219
220
221 /**
222 * Sets the "update-interval" property.
223 * <p>
224 * Specifies the interval in seconds when referential integrity
225 * updates are made.
226 * <p>
227 * If this value is 0, then the updates are made synchronously in
228 * the foreground.
229 *
230 * @param value The value of the "update-interval" property.
231 * @throws IllegalPropertyValueException
232 * If the new value is invalid.
233 */
234 void setUpdateInterval(Long value) throws IllegalPropertyValueException;
235
236 }