The definition of an object class in the schema.
RFC 2252, Lightweight Directory Access Protocol (v3):
Attribute Syntax Definitions covers the types of information
that need to be specified in the definition of an object class.
According to the RFC, the description of an object class can
include the following information:
- an OID identifying the object class
- a name identifying the object class
- a description of the object class
- the name of the parent object class
- the list of attribute types that are required in this object class
- the list of attribute types that are allowed (optional) in this
object class
When you construct an
LDAPObjectSchema
object, you can specify
these types of information as arguments to the constructor or in the
ObjectClassDescription 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 also notes that you can specify whether or not an object class
is abstract, structural, or auxiliary in the object description.
Abstract object classes are used only to derive other object classes.
Entries cannot belong to an abstract object class.
top
is an abstract object class. Entries must belong to a structural
object class, so most object classes are structural object classes.
Objects of the
LDAPObjectClassSchema
class are structural
object classes by default. Auxiliary object classes can be used to
add attributes to entries of different types. For example, an
auxiliary object class might be used to specify personal preference
attributes. An entry can not contain just that object class, but may
include it along with a structural object class, for example
inetOrgPerson.
If the definition of an object (in ObjectClassDescription format)
specifies the AUXILIARY keyword, an
LDAPObjectClassSchema
object created from that description represents an auxiliary object class.
You can get the name, OID, and description of this object class
definition by using the
getName
,
getOID
, and
getDescription
methods inherited from the abstract class
LDAPSchemaElement
. Optional and custom qualifiers are
accessed with
getQualifier
and
getQualifierNames
from
LDAPSchemaElement
.
To add or remove this object class definition from the
schema, use the
add
and
remove
methods, which this class inherits from the
LDAPSchemaElement
abstract class.
RFC 2252 defines ObjectClassDescription as follows:
ObjectClassDescription = "(" whsp
numericoid whsp ; ObjectClass identifier
[ "NAME" qdescrs ]
[ "DESC" qdstring ]
[ "OBSOLETE" whsp ]
[ "SUP" oids ] ; Superior ObjectClasses
[ ( "ABSTRACT" / "STRUCTURAL" / "AUXILIARY" ) whsp ]
; default structural
[ "MUST" oids ] ; AttributeTypes
[ "MAY" oids ] ; AttributeTypes
whsp ")"
LDAPObjectClassSchema
public LDAPObjectClassSchema(String raw)
Constructs an object class definition based on a description in
the ObjectClassDescription format. For information on this format,
(see
RFC 2252, Lightweight Directory Access Protocol (v3):
Attribute Syntax Definitions. 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 attributes "objectclasses" and "attributetypes". The
values of the "objectclasses" attribute are object class descriptions
in this format.)
raw
- definition of the object in the ObjectClassDescription
format
LDAPObjectClassSchema
public LDAPObjectClassSchema(String name,
String oid,
String superior,
String description,
String[] required,
String[] optional)
Constructs an object class definition, using the specified
information. The type of the object class will be STRUCTURAL.
name
- name of the object classoid
- object identifier (OID) of the object class
in dotted-string format (for example, "1.2.3.4")superior
- name of the parent object class
(the object class that the new object class inherits from)description
- description of the object classrequired
- array of names of attributes required
in this object classoptional
- array of names of optional attributes
allowed in this object class
LDAPObjectClassSchema
protected LDAPObjectClassSchema(String name,
String oid,
String superior,
String description,
String[] required,
String[] optional,
String[] aliases)
Constructs an object class definition, using the specified
information. The type of the object class will be STRUCTURAL.
name
- name of the object classoid
- object identifier (OID) of the object class
in dotted-string format (for example, "1.2.3.4")superior
- name of the parent object class
(the object class that the new object class inherits from)description
- description of the object classrequired
- array of names of attributes required
in this object classoptional
- array of names of optional attributes
allowed in this object class
LDAPObjectClassSchema
public LDAPObjectClassSchema(String name,
String oid,
String[] superiors,
String description,
String[] required,
String[] optional,
int type,
String[] aliases)
Constructs an object class definition, using the specified
information.
name
- name of the object classoid
- object identifier (OID) of the object class
in dotted-string format (for example, "1.2.3.4")superiors
- names of parent object classes
(the object classes that this object class inherits from)description
- description of the object classrequired
- array of names of attributes required
in this object classoptional
- array of names of optional attributes
allowed in this object classtype
- either ABSTRACT, STRUCTURAL, or AUXILIARYaliases
- names which are to be considered aliases for this
object class; null
if there are no aliases