Package netscape.ldap

Class LDAPSchemaElement

java.lang.Object
netscape.ldap.LDAPSchemaElement
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
LDAPAttributeSchema, LDAPDITContentRuleSchema, LDAPDITStructureRuleSchema, LDAPNameFormSchema, LDAPObjectClassSchema, LDAPSyntaxSchema

public abstract class LDAPSchemaElement extends Object implements Serializable
Abstract class representing an element (such as an object class definition, an attribute type definition, or a matching rule definition) in the schema. The specific types of elements are represented by the LDAPObjectClassSchema, LDAPAttributeSchema, and LDAPMatchingRuleSchema subclasses.

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, attribute type, or matching rule. All of these schema elements can specify the following information:

  • a name identifying the element
  • an OID identifying the element
  • a description of the element
  • a qualifier "OBSOLETE"

In addition, there are optional standard qualifiers for attribute types (see LDAPAttributeSchema), and implementation-specific qualifiers may be added. Non-standard qualifiers must have names starting with X-, e.g. "X-OWNER 'John Jacobson'". Optional and non-standard qualifiers can be accessed with getQualifier and setQualifier, and enumerated with getQualifierNames.

The LDAPSchemaElement class implements methods that you can use with different types of schema elements (object class definitions, attribute type definitions, and matching rule definitions). You can do the following:

  • get the name of a schema element
  • get the OID of a schema element
  • get the description of a schema element
  • add an element to the schema
  • remove an element from the schema

Version:
1.0
See Also:
  • Field Details

  • Constructor Details

    • LDAPSchemaElement

      protected LDAPSchemaElement()
      Constructs a blank element.
    • LDAPSchemaElement

      protected LDAPSchemaElement(String name, String oid, String description)
      Constructs a definition explicitly.
      Parameters:
      name - name of element
      oid - dotted-string object identifier
      description - description of element
    • LDAPSchemaElement

      protected LDAPSchemaElement(String name, String oid, String description, String[] aliases)
      Constructs a definition explicitly.
      Parameters:
      name - name of element
      oid - dotted-string object identifier
      description - description of element
      aliases - names which are to be considered aliases for this element; null if there are no aliases
  • Method Details

    • getName

      public String getName()
      Gets the name of the object class, attribute type, or matching rule.
      Returns:
      the name of the object class, attribute type, or matching rule.
    • getID

      public String getID()
      Gets the object ID (OID) of the object class, attribute type, or matching rule in dotted-string format (for example, "1.2.3.4").
      Returns:
      the OID of the object class, attribute type, or matching rule.
    • getOID

      @Deprecated public String getOID()
      Deprecated.
      Use LDAPSchemaElement.getID()
      Gets the object ID (OID) of the object class, attribute type, or matching rule in dotted-string format (for example, "1.2.3.4").
      Returns:
      the OID of the object class, attribute type, or matching rule.
    • getDescription

      public String getDescription()
      Gets the description of the object class, attribute type, or matching rule.
      Returns:
      the description of the object class, attribute type, or matching rule.
    • update

      protected void update(LDAPConnection ld, int op, LDAPAttribute attr, String dn) throws LDAPException
      Adds, removes or modifies the definition from a Directory.
      Parameters:
      ld - an open connection to a Directory Server. Typically the connection must have been authenticated to add a definition.
      op - type of modification to make
      attr - attribute in the schema entry to modify
      Throws:
      LDAPException - if the definition can't be added/removed
    • update

      protected void update(LDAPConnection ld, int op, LDAPAttribute[] attrs, String dn) throws LDAPException
      Adds, removes or modifies the definition from a Directory.
      Parameters:
      ld - an open connection to a Directory Server. Typically the connection must have been authenticated to add a definition.
      op - type of modification to make
      attrs - attributes in the schema entry to modify
      Throws:
      LDAPException - if the definition can't be added/removed.
    • update

      protected void update(LDAPConnection ld, int op, String name, String dn) throws LDAPException
      Adds, removes or modifies the definition from a Directory.
      Parameters:
      ld - an open connection to a Directory Server. Typically the connection must have been authenticated to add a definition.
      op - type of modification to make
      name - name of attribute in the schema entry to modify
      Throws:
      LDAPException - if the definition can't be added/removed
    • add

      public void add(LDAPConnection ld, String dn) throws LDAPException
      Adds the current object class, attribute type, or matching rule definition to the schema. Typically, most servers will require you to authenticate before allowing you to edit the schema.
      Parameters:
      ld - the LDAPConnection object representing a connection to an LDAP server
      dn - the entry at which to add the schema definition
      Throws:
      LDAPException - if the specified definition cannot be added to the schema
    • add

      public void add(LDAPConnection ld) throws LDAPException
      Adds the current object class, attribute type, or matching rule definition to the schema at the root DSE. Typically, most servers will require you to authenticate before allowing you to edit the schema.
      Parameters:
      ld - the LDAPConnection object representing a connection to an LDAP server
      Throws:
      LDAPException - if the specified definition cannot be added to the schema.
    • modify

      public void modify(LDAPConnection ld, LDAPSchemaElement newValue, String dn) throws LDAPException
      Replaces a single value of the object class, attribute type, or matching rule definition in the schema. Typically, most servers will require you to authenticate before allowing you to edit the schema.
      Parameters:
      ld - the LDAPConnection object representing a connection to an LDAP server
      newValue - the new value
      dn - the entry at which to modify the schema definition
      Throws:
      LDAPException - if the specified definition cannot be modified.
    • modify

      public void modify(LDAPConnection ld, LDAPSchemaElement newValue) throws LDAPException
      Replaces a single value of the object class, attribute type, or matching rule definition in the schema at the root DSE. Typically, most servers will require you to authenticate before allowing you to edit the schema.
      Parameters:
      ld - the LDAPConnection object representing a connection to an LDAP server
      newValue - the new value
      Throws:
      LDAPException - if the specified definition cannot be modified.
    • remove

      public void remove(LDAPConnection ld, String dn) throws LDAPException
      Removes the current object class, attribute type, or matching rule definition from the schema. Typically, most servers will require you to authenticate before allowing you to edit the schema.
      Parameters:
      ld - the LDAPConnection object representing a connection to an LDAP server
      dn - the entry at which to remove the schema definition
      Throws:
      LDAPException - if the specified definition cannot be removed from the schema.
    • remove

      public void remove(LDAPConnection ld) throws LDAPException
      Removes the current object class, attribute type, or matching rule definition from the schema at the root DSE. Typically, most servers will require you to authenticate before allowing you to edit the schema.
      Parameters:
      ld - the LDAPConnection object representing a connection to an LDAP server
      Throws:
      LDAPException - if the specified definition cannot be removed from the schema
    • isObsolete

      public boolean isObsolete()
      Reports if the element is marked as obsolete.
      Returns:
      true if the element is defined as obsolete.
    • parseValue

      protected void parseValue(String raw)
      Parses a raw schema value into OID, name, description, and a Hashtable of other qualifiers and values.
      Parameters:
      raw - a raw schema definition
    • getValue

      public String getValue()
      Formats a String in the format defined in X.501 (see RFC 2252, Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions for a description of this format). 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 "attributetypes" attribute are attribute type descriptions in this format.

      Returns:
      a formatted String for defining a schema element.
    • getOptionalValues

      protected String getOptionalValues(String[] names)
      Gets qualifiers which may or may not be present
      Parameters:
      names - list of qualifiers to look up
      Returns:
      String in RFC 2252 format containing any values found, not terminated with ' '.
    • getCustomValues

      protected String getCustomValues()
      Gets any qualifiers marked as custom (starting with "X-")
      Returns:
      string in RFC 2252 format, without a terminating ' '.
    • setQualifier

      public void setQualifier(String name, String value)
      Keeps track of qualifiers which are not predefined.
      Parameters:
      name - name of qualifier
      value - value of qualifier. "" for no value, null to remove the qualifier
    • setQualifier

      public void setQualifier(String name, String[] values)
      Keeps track of qualifiers which are not predefined.
      Parameters:
      name - name of qualifier
      values - array of values
    • getQualifier

      public String[] getQualifier(String name)
      Gets the value of a qualifier which is not predefined.
      Parameters:
      name - name of qualifier
      Returns:
      value or values of qualifier; null if not present, a zero-length array if present but with no value.
    • getQualifierNames

      public Enumeration<String> getQualifierNames()
      Gets an enumeration of all qualifiers which are not predefined.
      Returns:
      enumeration of qualifiers.
    • getAliases

      public String[] getAliases()
      Gets the aliases of the attribute, if any
      Returns:
      the aliases of the attribute, or null if it does not have any aliases