com.unboundid.ldap.sdk.schema
Class ObjectClassDefinition

java.lang.Object
  extended by com.unboundid.ldap.sdk.schema.SchemaElement
      extended by com.unboundid.ldap.sdk.schema.ObjectClassDefinition
All Implemented Interfaces:
java.io.Serializable

public final class ObjectClassDefinition
extends SchemaElement

This class provides a data structure that describes an LDAP object class schema element.

See Also:
Serialized Form

Constructor Summary
ObjectClassDefinition(java.lang.String s)
          Creates a new object class from the provided string representation.
ObjectClassDefinition(java.lang.String oid, java.lang.String[] names, java.lang.String description, boolean isObsolete, java.lang.String[] superiorClasses, ObjectClassType objectClassType, java.lang.String[] requiredAttributes, java.lang.String[] optionalAttributes, java.util.Map<java.lang.String,java.lang.String[]> extensions)
          Creates a new object class with the provided information.
ObjectClassDefinition(java.lang.String oid, java.lang.String name, java.lang.String description, java.lang.String superiorClass, ObjectClassType objectClassType, java.util.Collection<java.lang.String> requiredAttributes, java.util.Collection<java.lang.String> optionalAttributes, java.util.Map<java.lang.String,java.lang.String[]> extensions)
          Creates a new object class with the provided information.
ObjectClassDefinition(java.lang.String oid, java.lang.String name, java.lang.String description, java.lang.String superiorClass, ObjectClassType objectClassType, java.lang.String[] requiredAttributes, java.lang.String[] optionalAttributes, java.util.Map<java.lang.String,java.lang.String[]> extensions)
          Creates a new object class with the provided information.
 
Method Summary
 boolean equals(java.lang.Object o)
          Indicates whether the provided object is equal to this schema element.
 java.lang.String getDescription()
          Retrieves the description for this object class, if available.
 java.util.Map<java.lang.String,java.lang.String[]> getExtensions()
          Retrieves the set of extensions for this object class.
 java.lang.String getNameOrOID()
          Retrieves the primary name that can be used to reference this object class.
 java.lang.String[] getNames()
          Retrieves the set of names for this object class.
 ObjectClassType getObjectClassType()
          Retrieves the object class type for this object class.
 ObjectClassType getObjectClassType(Schema schema)
          Retrieves the object class type for this object class, recursively examining superior classes if necessary to make the determination.
 java.lang.String getOID()
          Retrieves the OID for this object class.
 java.lang.String[] getOptionalAttributes()
          Retrieves the names or OIDs of the attributes that may optionally be present in entries containing this object class.
 java.util.Set<AttributeTypeDefinition> getOptionalAttributes(Schema schema, boolean includeSuperiorClasses)
          Retrieves the attribute type definitions for the attributes that may optionally be present in entries containing this object class, optionally including the set of optional attribute types from superior classes.
 java.lang.String[] getRequiredAttributes()
          Retrieves the names or OIDs of the attributes that are required to be present in entries containing this object class.
 java.util.Set<AttributeTypeDefinition> getRequiredAttributes(Schema schema, boolean includeSuperiorClasses)
          Retrieves the attribute type definitions for the attributes that are required to be present in entries containing this object class, optionally including the set of required attribute types from superior classes.
 java.lang.String[] getSuperiorClasses()
          Retrieves the names or OIDs of the superior classes for this object class, if available.
 java.util.Set<ObjectClassDefinition> getSuperiorClasses(Schema schema, boolean recursive)
          Retrieves the object class definitions for the superior object classes.
 int hashCode()
          Retrieves a hash code for this schema element.
 boolean hasNameOrOID(java.lang.String s)
          Indicates whether the provided string matches the OID or any of the names for this object class.
 boolean isObsolete()
          Indicates whether this object class is declared obsolete.
 java.lang.String toString()
          Retrieves a string representation of this object class definition, in the format described in RFC 4512 section 4.1.1.
 
Methods inherited from class com.unboundid.ldap.sdk.schema.SchemaElement
extensionsEqual
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ObjectClassDefinition

public ObjectClassDefinition(java.lang.String s)
                      throws LDAPException
Creates a new object class from the provided string representation.

Parameters:
s - The string representation of the object class to create, using the syntax described in RFC 4512 section 4.1.1. It must not be null.
Throws:
LDAPException - If the provided string cannot be decoded as an object class definition.

ObjectClassDefinition

public ObjectClassDefinition(java.lang.String oid,
                             java.lang.String name,
                             java.lang.String description,
                             java.lang.String superiorClass,
                             ObjectClassType objectClassType,
                             java.lang.String[] requiredAttributes,
                             java.lang.String[] optionalAttributes,
                             java.util.Map<java.lang.String,java.lang.String[]> extensions)
Creates a new object class with the provided information.

Parameters:
oid - The OID for this object class. It must not be null.
name - The name for this object class. It may be null if the object class should only be referenced by OID.
description - The description for this object class. It may be null if there is no description.
superiorClass - The name/OID of the superior class for this object class. It may be null or empty if there is no superior class.
objectClassType - The object class type for this object class.
requiredAttributes - The names/OIDs of the attributes which must be present in entries containing this object class.
optionalAttributes - The names/OIDs of the attributes which may be present in entries containing this object class.
extensions - The set of extensions for this object class. It may be null or empty if there should not be any extensions.

ObjectClassDefinition

public ObjectClassDefinition(java.lang.String oid,
                             java.lang.String name,
                             java.lang.String description,
                             java.lang.String superiorClass,
                             ObjectClassType objectClassType,
                             java.util.Collection<java.lang.String> requiredAttributes,
                             java.util.Collection<java.lang.String> optionalAttributes,
                             java.util.Map<java.lang.String,java.lang.String[]> extensions)
Creates a new object class with the provided information.

Parameters:
oid - The OID for this object class. It must not be null.
name - The name for this object class. It may be null if the object class should only be referenced by OID.
description - The description for this object class. It may be null if there is no description.
superiorClass - The name/OID of the superior class for this object class. It may be null or empty if there is no superior class.
objectClassType - The object class type for this object class.
requiredAttributes - The names/OIDs of the attributes which must be present in entries containing this object class.
optionalAttributes - The names/OIDs of the attributes which may be present in entries containing this object class.
extensions - The set of extensions for this object class. It may be null or empty if there should not be any extensions.

ObjectClassDefinition

public ObjectClassDefinition(java.lang.String oid,
                             java.lang.String[] names,
                             java.lang.String description,
                             boolean isObsolete,
                             java.lang.String[] superiorClasses,
                             ObjectClassType objectClassType,
                             java.lang.String[] requiredAttributes,
                             java.lang.String[] optionalAttributes,
                             java.util.Map<java.lang.String,java.lang.String[]> extensions)
Creates a new object class with the provided information.

Parameters:
oid - The OID for this object class. It must not be null.
names - The set of names for this object class. It may be null or empty if the object class should only be referenced by OID.
description - The description for this object class. It may be null if there is no description.
isObsolete - Indicates whether this object class is declared obsolete.
superiorClasses - The names/OIDs of the superior classes for this object class. It may be null or empty if there is no superior class.
objectClassType - The object class type for this object class.
requiredAttributes - The names/OIDs of the attributes which must be present in entries containing this object class.
optionalAttributes - The names/OIDs of the attributes which may be present in entries containing this object class.
extensions - The set of extensions for this object class. It may be null or empty if there should not be any extensions.
Method Detail

getOID

public java.lang.String getOID()
Retrieves the OID for this object class.

Returns:
The OID for this object class.

getNames

public java.lang.String[] getNames()
Retrieves the set of names for this object class.

Returns:
The set of names for this object class, or an empty array if it does not have any names.

getNameOrOID

public java.lang.String getNameOrOID()
Retrieves the primary name that can be used to reference this object class. If one or more names are defined, then the first name will be used. Otherwise, the OID will be returned.

Returns:
The primary name that can be used to reference this object class.

hasNameOrOID

public boolean hasNameOrOID(java.lang.String s)
Indicates whether the provided string matches the OID or any of the names for this object class.

Parameters:
s - The string for which to make the determination. It must not be null.
Returns:
true if the provided string matches the OID or any of the names for this object class, or false if not.

getDescription

public java.lang.String getDescription()
Retrieves the description for this object class, if available.

Returns:
The description for this object class, or null if there is no description defined.

isObsolete

public boolean isObsolete()
Indicates whether this object class is declared obsolete.

Returns:
true if this object class is declared obsolete, or false if it is not.

getSuperiorClasses

public java.lang.String[] getSuperiorClasses()
Retrieves the names or OIDs of the superior classes for this object class, if available.

Returns:
The names or OIDs of the superior classes for this object class, or an empty array if it does not have any superior classes.

getSuperiorClasses

public java.util.Set<ObjectClassDefinition> getSuperiorClasses(Schema schema,
                                                               boolean recursive)
Retrieves the object class definitions for the superior object classes.

Parameters:
schema - The schema to use to retrieve the object class definitions.
recursive - Indicates whether to recursively include all of the superior object class definitions from superior classes.
Returns:
The object class definitions for the superior object classes.

getObjectClassType

public ObjectClassType getObjectClassType()
Retrieves the object class type for this object class.

Returns:
The object class type for this object class, or null if it is not defined.

getObjectClassType

public ObjectClassType getObjectClassType(Schema schema)
Retrieves the object class type for this object class, recursively examining superior classes if necessary to make the determination.

Parameters:
schema - The schema to use to retrieve the definitions for the superior object classes.
Returns:
The object class type for this object class.

getRequiredAttributes

public java.lang.String[] getRequiredAttributes()
Retrieves the names or OIDs of the attributes that are required to be present in entries containing this object class. Note that this will not automatically include the set of required attributes from any superior classes.

Returns:
The names or OIDs of the attributes that are required to be present in entries containing this object class, or an empty array if there are no required attributes.

getRequiredAttributes

public java.util.Set<AttributeTypeDefinition> getRequiredAttributes(Schema schema,
                                                                    boolean includeSuperiorClasses)
Retrieves the attribute type definitions for the attributes that are required to be present in entries containing this object class, optionally including the set of required attribute types from superior classes.

Parameters:
schema - The schema to use to retrieve the attribute type definitions.
includeSuperiorClasses - Indicates whether to include definitions for required attribute types in superior object classes.
Returns:
The attribute type definitions for the attributes that are required to be present in entries containing this object class.

getOptionalAttributes

public java.lang.String[] getOptionalAttributes()
Retrieves the names or OIDs of the attributes that may optionally be present in entries containing this object class. Note that this will not automatically include the set of optional attributes from any superior classes.

Returns:
The names or OIDs of the attributes that may optionally be present in entries containing this object class, or an empty array if there are no optional attributes.

getOptionalAttributes

public java.util.Set<AttributeTypeDefinition> getOptionalAttributes(Schema schema,
                                                                    boolean includeSuperiorClasses)
Retrieves the attribute type definitions for the attributes that may optionally be present in entries containing this object class, optionally including the set of optional attribute types from superior classes.

Parameters:
schema - The schema to use to retrieve the attribute type definitions.
includeSuperiorClasses - Indicates whether to include definitions for optional attribute types in superior object classes.
Returns:
The attribute type definitions for the attributes that may optionally be present in entries containing this object class.

getExtensions

public java.util.Map<java.lang.String,java.lang.String[]> getExtensions()
Retrieves the set of extensions for this object class. They will be mapped from the extension name (which should start with "X-") to the set of values for that extension.

Returns:
The set of extensions for this object class.

hashCode

public int hashCode()
Retrieves a hash code for this schema element.

Specified by:
hashCode in class SchemaElement
Returns:
A hash code for this schema element.

equals

public boolean equals(java.lang.Object o)
Indicates whether the provided object is equal to this schema element.

Specified by:
equals in class SchemaElement
Parameters:
o - The object for which to make the determination.
Returns:
true if the provided object may be considered equal to this schema element, or false if not.

toString

public java.lang.String toString()
Retrieves a string representation of this object class definition, in the format described in RFC 4512 section 4.1.1.

Specified by:
toString in class SchemaElement
Returns:
A string representation of this object class definition.