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 java.util.Collection;
031import java.util.SortedSet;
032import org.opends.server.admin.ManagedObjectDefinition;
033import org.opends.server.admin.PropertyException;
034import org.opends.server.admin.std.server.CoreSchemaCfg;
035
036
037
038/**
039 * A client-side interface for reading and modifying Core Schema
040 * settings.
041 * <p>
042 * Core Schema define the core schema elements to load.
043 */
044public interface CoreSchemaCfgClient extends SchemaProviderCfgClient {
045
046  /**
047   * Get the configuration definition associated with this Core Schema.
048   *
049   * @return Returns the configuration definition associated with this Core Schema.
050   */
051  ManagedObjectDefinition<? extends CoreSchemaCfgClient, ? extends CoreSchemaCfg> definition();
052
053
054
055  /**
056   * Gets the "allow-zero-length-values-directory-string" property.
057   * <p>
058   * Indicates whether zero-length (that is, an empty string) values
059   * are allowed for directory string.
060   * <p>
061   * This is technically not allowed by the revised LDAPv3
062   * specification, but some environments may require it for backward
063   * compatibility with servers that do allow it.
064   *
065   * @return Returns the value of the "allow-zero-length-values-directory-string" property.
066   */
067  boolean isAllowZeroLengthValuesDirectoryString();
068
069
070
071  /**
072   * Sets the "allow-zero-length-values-directory-string" property.
073   * <p>
074   * Indicates whether zero-length (that is, an empty string) values
075   * are allowed for directory string.
076   * <p>
077   * This is technically not allowed by the revised LDAPv3
078   * specification, but some environments may require it for backward
079   * compatibility with servers that do allow it.
080   *
081   * @param value The value of the "allow-zero-length-values-directory-string" property.
082   * @throws PropertyException
083   *           If the new value is invalid.
084   */
085  void setAllowZeroLengthValuesDirectoryString(Boolean value) throws PropertyException;
086
087
088
089  /**
090   * Gets the "disabled-matching-rule" property.
091   * <p>
092   * The set of disabled matching rules.
093   * <p>
094   * Matching rules must be specified using the syntax: OID, or use
095   * the default value 'NONE' to specify no value.
096   *
097   * @return Returns the values of the "disabled-matching-rule" property.
098   */
099  SortedSet<String> getDisabledMatchingRule();
100
101
102
103  /**
104   * Sets the "disabled-matching-rule" property.
105   * <p>
106   * The set of disabled matching rules.
107   * <p>
108   * Matching rules must be specified using the syntax: OID, or use
109   * the default value 'NONE' to specify no value.
110   *
111   * @param values The values of the "disabled-matching-rule" property.
112   * @throws PropertyException
113   *           If one or more of the new values are invalid.
114   */
115  void setDisabledMatchingRule(Collection<String> values) throws PropertyException;
116
117
118
119  /**
120   * Gets the "disabled-syntax" property.
121   * <p>
122   * The set of disabled syntaxes.
123   * <p>
124   * Syntaxes must be specified using the syntax: OID, or use the
125   * default value 'NONE' to specify no value.
126   *
127   * @return Returns the values of the "disabled-syntax" property.
128   */
129  SortedSet<String> getDisabledSyntax();
130
131
132
133  /**
134   * Sets the "disabled-syntax" property.
135   * <p>
136   * The set of disabled syntaxes.
137   * <p>
138   * Syntaxes must be specified using the syntax: OID, or use the
139   * default value 'NONE' to specify no value.
140   *
141   * @param values The values of the "disabled-syntax" property.
142   * @throws PropertyException
143   *           If one or more of the new values are invalid.
144   */
145  void setDisabledSyntax(Collection<String> values) throws PropertyException;
146
147
148
149  /**
150   * Gets the "java-class" property.
151   * <p>
152   * Specifies the fully-qualified name of the Java class that
153   * provides the Core Schema implementation.
154   *
155   * @return Returns the value of the "java-class" property.
156   */
157  String getJavaClass();
158
159
160
161  /**
162   * Sets the "java-class" property.
163   * <p>
164   * Specifies the fully-qualified name of the Java class that
165   * provides the Core Schema implementation.
166   *
167   * @param value The value of the "java-class" property.
168   * @throws PropertyException
169   *           If the new value is invalid.
170   */
171  void setJavaClass(String value) throws PropertyException;
172
173
174
175  /**
176   * Gets the "strict-format-country-string" property.
177   * <p>
178   * Indicates whether or not country code values are required to
179   * strictly comply with the standard definition for this syntax.
180   * <p>
181   * When set to false, country codes will not be validated and, as a
182   * result any string containing 2 characters will be acceptable.
183   *
184   * @return Returns the value of the "strict-format-country-string" property.
185   */
186  boolean isStrictFormatCountryString();
187
188
189
190  /**
191   * Sets the "strict-format-country-string" property.
192   * <p>
193   * Indicates whether or not country code values are required to
194   * strictly comply with the standard definition for this syntax.
195   * <p>
196   * When set to false, country codes will not be validated and, as a
197   * result any string containing 2 characters will be acceptable.
198   *
199   * @param value The value of the "strict-format-country-string" property.
200   * @throws PropertyException
201   *           If the new value is invalid.
202   */
203  void setStrictFormatCountryString(Boolean value) throws PropertyException;
204
205
206
207  /**
208   * Gets the "strip-syntax-min-upper-bound-attribute-type-description" property.
209   * <p>
210   * Indicates whether the suggested minimum upper bound appended to
211   * an attribute's syntax OID in it's schema definition Attribute Type
212   * Description is stripped off.
213   * <p>
214   * When retrieving the server's schema, some APIs (JNDI) fail in
215   * their syntax lookup methods, because they do not parse this value
216   * correctly. This configuration option allows the server to be
217   * configured to provide schema definitions these APIs can parse
218   * correctly.
219   *
220   * @return Returns the value of the "strip-syntax-min-upper-bound-attribute-type-description" property.
221   */
222  boolean isStripSyntaxMinUpperBoundAttributeTypeDescription();
223
224
225
226  /**
227   * Sets the "strip-syntax-min-upper-bound-attribute-type-description" property.
228   * <p>
229   * Indicates whether the suggested minimum upper bound appended to
230   * an attribute's syntax OID in it's schema definition Attribute Type
231   * Description is stripped off.
232   * <p>
233   * When retrieving the server's schema, some APIs (JNDI) fail in
234   * their syntax lookup methods, because they do not parse this value
235   * correctly. This configuration option allows the server to be
236   * configured to provide schema definitions these APIs can parse
237   * correctly.
238   *
239   * @param value The value of the "strip-syntax-min-upper-bound-attribute-type-description" property.
240   * @throws PropertyException
241   *           If the new value is invalid.
242   */
243  void setStripSyntaxMinUpperBoundAttributeTypeDescription(Boolean value) throws PropertyException;
244
245}