Package netscape.ldap

Class LDAPSchemaElement

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    LDAPAttributeSchema, LDAPDITContentRuleSchema, LDAPDITStructureRuleSchema, LDAPNameFormSchema, LDAPObjectClassSchema, LDAPSyntaxSchema

    public abstract class LDAPSchemaElement
    extends java.lang.Object
    implements java.io.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:
    LDAPObjectClassSchema, LDAPAttributeSchema, LDAPMatchingRuleSchema, Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.String[] aliases  
      protected java.lang.String attrName  
      static int binary  
      protected static java.lang.String binaryString  
      static int ces  
      protected static java.lang.String cesString  
      static int cis  
      protected static java.lang.String cisString  
      protected java.lang.String description  
      static int dn  
      protected static java.lang.String dnString  
      static int integer  
      protected static java.lang.String intString  
      protected java.lang.String name  
      protected static java.util.Hashtable<java.lang.String,​java.lang.String> novalsTable  
      static java.lang.String OBSOLETE  
      protected java.lang.String oid  
      protected java.util.Hashtable<java.lang.String,​java.lang.Object> properties  
      protected java.lang.String rawValue  
      static java.lang.String SUPERIOR  
      static java.lang.String SYNTAX  
      static int telephone  
      protected static java.lang.String telephoneString  
      static int unknown  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected LDAPSchemaElement()
      Constructs a blank element.
      protected LDAPSchemaElement​(java.lang.String name, java.lang.String oid, java.lang.String description)
      Constructs a definition explicitly.
      protected LDAPSchemaElement​(java.lang.String name, java.lang.String oid, java.lang.String description, java.lang.String[] aliases)
      Constructs a definition explicitly.
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void add​(LDAPConnection ld)
      Adds the current object class, attribute type, or matching rule definition to the schema at the root DSE.
      void add​(LDAPConnection ld, java.lang.String dn)
      Adds the current object class, attribute type, or matching rule definition to the schema.
      java.lang.String[] getAliases()
      Gets the aliases of the attribute, if any
      protected java.lang.String getCustomValues()
      Gets any qualifiers marked as custom (starting with "X-")
      java.lang.String getDescription()
      Gets the description of the object class, attribute type, or matching rule.
      java.lang.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").
      java.lang.String getName()
      Gets the name of the object class, attribute type, or matching rule.
      java.lang.String getOID()
      Deprecated.
      Use LDAPSchemaElement.getID()
      protected java.lang.String getOptionalValues​(java.lang.String[] names)
      Gets qualifiers which may or may not be present
      java.lang.String[] getQualifier​(java.lang.String name)
      Gets the value of a qualifier which is not predefined.
      java.util.Enumeration<java.lang.String> getQualifierNames()
      Gets an enumeration of all qualifiers which are not predefined.
      java.lang.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).
      boolean isObsolete()
      Reports if the element is marked as obsolete.
      void modify​(LDAPConnection ld, LDAPSchemaElement newValue)
      Replaces a single value of the object class, attribute type, or matching rule definition in the schema at the root DSE.
      void modify​(LDAPConnection ld, LDAPSchemaElement newValue, java.lang.String dn)
      Replaces a single value of the object class, attribute type, or matching rule definition in the schema.
      protected void parseValue​(java.lang.String raw)
      Parses a raw schema value into OID, name, description, and a Hashtable of other qualifiers and values.
      void remove​(LDAPConnection ld)
      Removes the current object class, attribute type, or matching rule definition from the schema at the root DSE.
      void remove​(LDAPConnection ld, java.lang.String dn)
      Removes the current object class, attribute type, or matching rule definition from the schema.
      void setQualifier​(java.lang.String name, java.lang.String value)
      Keeps track of qualifiers which are not predefined.
      void setQualifier​(java.lang.String name, java.lang.String[] values)
      Keeps track of qualifiers which are not predefined.
      protected void update​(LDAPConnection ld, int op, java.lang.String name, java.lang.String dn)
      Adds, removes or modifies the definition from a Directory.
      protected void update​(LDAPConnection ld, int op, LDAPAttribute[] attrs, java.lang.String dn)
      Adds, removes or modifies the definition from a Directory.
      protected void update​(LDAPConnection ld, int op, LDAPAttribute attr, java.lang.String dn)
      Adds, removes or modifies the definition from a Directory.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • LDAPSchemaElement

        protected LDAPSchemaElement()
        Constructs a blank element.
      • LDAPSchemaElement

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

        protected LDAPSchemaElement​(java.lang.String name,
                                    java.lang.String oid,
                                    java.lang.String description,
                                    java.lang.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 Detail

      • getName

        public java.lang.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 java.lang.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 java.lang.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 java.lang.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,
                              java.lang.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,
                              java.lang.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,
                              java.lang.String name,
                              java.lang.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,
                        java.lang.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,
                           java.lang.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,
                           java.lang.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​(java.lang.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 java.lang.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 java.lang.String getOptionalValues​(java.lang.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 java.lang.String getCustomValues()
        Gets any qualifiers marked as custom (starting with "X-")
        Returns:
        string in RFC 2252 format, without a terminating ' '.
      • setQualifier

        public void setQualifier​(java.lang.String name,
                                 java.lang.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​(java.lang.String name,
                                 java.lang.String[] values)
        Keeps track of qualifiers which are not predefined.
        Parameters:
        name - name of qualifier
        values - array of values
      • getQualifier

        public java.lang.String[] getQualifier​(java.lang.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 java.util.Enumeration<java.lang.String> getQualifierNames()
        Gets an enumeration of all qualifiers which are not predefined.
        Returns:
        enumeration of qualifiers.
      • getAliases

        public java.lang.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