/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * The contents of this file are subject to the Netscape 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/NPL/ * * 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 Netscape are * Copyright (C) 2000 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): */ 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)
*