Class ObjectClassDefinition

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

This class provides a data structure that describes an LDAP object class schema element.
See Also:
  • Constructor Details

    • ObjectClassDefinition

      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(@NotNull String oid, @Nullable String name, @Nullable String description, @Nullable String superiorClass, @Nullable ObjectClassType objectClassType, @Nullable String[] requiredAttributes, @Nullable String[] optionalAttributes, @Nullable Map<String,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(@NotNull String oid, @Nullable String name, @Nullable String description, @Nullable String superiorClass, @Nullable ObjectClassType objectClassType, @Nullable Collection<String> requiredAttributes, @Nullable Collection<String> optionalAttributes, @Nullable Map<String,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(@NotNull String oid, @Nullable String[] names, @Nullable String description, boolean isObsolete, @Nullable String[] superiorClasses, @Nullable ObjectClassType objectClassType, @Nullable String[] requiredAttributes, @Nullable String[] optionalAttributes, @Nullable Map<String,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 Details

    • getOID

      Retrieves the OID for this object class.
      Returns:
      The OID for this object class.
    • getNames

      @NotNull public 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

      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(@NotNull 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

      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

      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

      @NotNull public Set<ObjectClassDefinition> getSuperiorClasses(@NotNull 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

      Retrieves the object class type for this object class. This method will return null if this object class definition does not explicitly specify the object class type, although in that case, the object class type should be assumed to be ObjectClassType.STRUCTURAL as per RFC 4512 section 4.1.1.
      Returns:
      The object class type for this object class, or null if it is not defined in the schema element.
    • getObjectClassType

      Retrieves the object class type for this object class, recursively examining superior classes if necessary to make the determination.

      Note that versions of this method before the 4.0.6 release of the LDAP SDK operated under the incorrect assumption that if an object class definition did not explicitly specify the object class type, it would be inherited from its superclass. The correct behavior, as per RFC 4512 section 4.1.1, is that if the object class type is not explicitly specified, it should be assumed to be ObjectClassType.STRUCTURAL.
      Parameters:
      schema - The schema to use to retrieve the definitions for the superior object classes. As of LDAP SDK version 4.0.6, this argument is no longer used (and may be null if desired), but this version of the method has been preserved both for the purpose of retaining API compatibility with previous versions of the LDAP SDK, and to disambiguate it from the zero-argument version of the method that returns null if the object class type is not explicitly specified.
      Returns:
      The object class type for this object class, or ObjectClassType.STRUCTURAL if it is not explicitly defined.
    • 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

      @NotNull public Set<AttributeTypeDefinition> getRequiredAttributes(@NotNull 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

      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

      @NotNull public Set<AttributeTypeDefinition> getOptionalAttributes(@NotNull 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

      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.
    • getSchemaElementType

      Retrieves the type of schema element that this object represents.
      Specified by:
      getSchemaElementType in class SchemaElement
      Returns:
      The type of schema element that this object represents.
    • 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(@Nullable 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

      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.