/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ package netscape.ldap; import java.util.*; /** * The definition of a syntax type in the schema. * RFC 2252, Lightweight Directory Access Protocol (v3): * LDAP Subschema Attribute covers the types of information * to specify when defining a syntax. * The description of a syntax can include the following: *
* *
*
* When you construct an LDAPSyntaxSchema object, you can
* specify these types of information as arguments to the constructor or
* in the ldapSyntaxes format specified in RFC 2252.
* When an LDAP client searches an LDAP server for the schema, the server
* returns schema information as an object with attribute values in this
* format.
*
* RFC 2252 defines SyntaxDescription as follows: *
*
* SyntaxDescription = "(" whsp
* numericoid whsp
* [ "DESC" qdstring ]
* whsp ")"
*
*
* Syntax definitions do not have a name, so the getName
* method inherited from LDAPSchemaElement returns "".
* To get the OID and description of this syntax type
* definition, use the getOID and
* getDescription methods inherited from the abstract class
* LDAPSchemaElement.
*
*
* To add or remove this syntax type definition from the
* schema, use the add and remove
* methods, which this class inherits from the LDAPSchemaElement
* abstract class.
*
* @version 1.0
* @see netscape.ldap.LDAPSchemaElement
**/
public class LDAPSyntaxSchema extends LDAPSchemaElement {
static final long serialVersionUID = 3590667117475688132L;
/**
* Constructs a blank element.
*/
protected LDAPSyntaxSchema() {
super();
}
/**
* Constructs a syntax type definition, using the specified
* information.
* @param oid object identifier (OID) of the syntax type
* in dotted-string format (for example, "1.2.3.4")
* @param description description of syntax type
*/
public LDAPSyntaxSchema( String oid, String description ) {
super( "", oid, description );
attrName = "ldapSyntaxes";
syntaxElement.syntax = syntaxElement.syntaxCheck( oid );
syntaxElement.syntaxString = oid;
}
/**
* Constructs a syntax type definition based on a description in
* the ldapSyntaxes format. For information on this format,
* (see RFC 2252, Lightweight Directory Access Protocol (v3):
* LDAP Subschema Attribute. This is the format that LDAP servers
* and clients use to exchange schema information. (For example, when
* you search an LDAP server for its schema, the server returns an entry
* with the syntaxs "objectclasses" and "ldapSyntaxes". The
* values of "ldapSyntaxes" are syntax type descriptions
* in this format.)
*
* * @param raw definition of the syntax type in the * ldapSyntaxes format */ public LDAPSyntaxSchema( String raw ) { attrName = "ldapSyntaxes"; parseValue( raw ); } /** * Gets the syntax of the schema element * @return one of the following values: *
cis (case-insensitive string)
* ces (case-exact string)
* binary (binary data)
* int (integer)
* telephone (telephone number -- identical to cis,
* but blanks and dashes are ignored during comparisons)
* dn (distinguished name)
* unknown (not a known syntax)
*