Package netscape.ldap

Class LDAPMatchingRuleSchema

  • All Implemented Interfaces:
    java.io.Serializable

    public class LDAPMatchingRuleSchema
    extends LDAPAttributeSchema
    The definition of a matching rule 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 a matching rule. According to the RFC, the description of a matching rule can include the following information:

    • an OID identifying the matching rule
    • a name identifying the matching rule
    • a description of the matching rule
    • the syntax of the matching rule

    The LDAPMatchingRuleSchema class also specifies the matching rule "use description", which describes the attributes which can be used with the matching rule.

    When you construct an LDAPMatchingRuleSchema object, you can specify these types of information as arguments to the constructor or in the MatchingRuleDescription and MatchingRuleUseDescription formats 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.

    You can get the name, OID, and description of this matching rule definition by using the getName, getOID, and getDescription methods inherited from the abstract class LDAPSchemaElement. Custom qualifiers are accessed with getQualifier and getQualifierNames from LDAPSchemaElement.

    To add or remove this matching rule definition from the schema, use the add and remove methods, which this class inherits from the LDAPSchemaElement abstract class.

    RFC 2252 defines MatchingRuleDescription and MatchingRuleUseDescription as follows:

        MatchingRuleDescription = "(" whsp
            numericoid whsp  ; MatchingRule identifier
            [ "NAME" qdescrs ]
            [ "DESC" qdstring ]
            [ "OBSOLETE" whsp ]
            "SYNTAX" numericoid
        whsp ")"
    
     Values of the matchingRuleUse list the attributes which are suitable
     for use with an extensible matching rule.
    
        MatchingRuleUseDescription = "(" whsp
            numericoid whsp  ; MatchingRule identifier
            [ "NAME" qdescrs ]
            [ "DESC" qdstring ]
            [ "OBSOLETE" ]
           "APPLIES" oids    ; AttributeType identifiers
        whsp ")"
     

    LDAPMatchingRuleSchema abstracts away from the two types and manages their relationships transparently.

    Version:
    1.0
    See Also:
    LDAPSchemaElement, Serialized Form
    • Constructor Detail

      • LDAPMatchingRuleSchema

        public LDAPMatchingRuleSchema​(java.lang.String name,
                                      java.lang.String oid,
                                      java.lang.String description,
                                      java.lang.String[] attributes,
                                      int syntax)
        Constructs a matching rule definition, using the specified information.
        Parameters:
        name - name of the matching rule
        oid - object identifier (OID) of the matching rule in dotted-decimal format (for example, "1.2.3.4")
        description - description of the matching rule
        attributes - array of the OIDs of the attributes for which the matching rule is applicable
        syntax - syntax of this matching rule. The value of this argument can be one of the following:
        • cis (case-insensitive string)
        • ces (case-exact string)
        • binary (binary data)
        • int (integer)
        • telephone (telephone number -- identical to cis, but blanks and dashes are ignored during comparisons)
        • dn (distinguished name)
      • LDAPMatchingRuleSchema

        public LDAPMatchingRuleSchema​(java.lang.String name,
                                      java.lang.String oid,
                                      java.lang.String description,
                                      java.lang.String[] attributes,
                                      java.lang.String syntaxString)
        Constructs a matching rule definition, using the specified information.
        Parameters:
        name - name of the matching rule.
        oid - object identifier (OID) of the matching rule in dotted-decimal format (for example, "1.2.3.4").
        description - description of the matching rule.
        attributes - array of the OIDs of the attributes for which the matching rule is applicable.
        syntaxString - syntax of this matching rule in dotted-decimal format
      • LDAPMatchingRuleSchema

        public LDAPMatchingRuleSchema​(java.lang.String name,
                                      java.lang.String oid,
                                      java.lang.String description,
                                      java.lang.String[] attributes,
                                      java.lang.String syntaxString,
                                      java.lang.String[] aliases)
        Constructs a matching rule definition, using the specified information.
        Parameters:
        name - name of the matching rule.
        oid - object identifier (OID) of the matching rule in dotted-decimal format (for example, "1.2.3.4").
        description - description of the matching rule.
        attributes - array of the OIDs of the attributes for which the matching rule is applicable.
        syntaxString - syntax of this matching rule in dotted-decimal format
        aliases - names which are to be considered aliases for this matching rule; null if there are no aliases
      • LDAPMatchingRuleSchema

        public LDAPMatchingRuleSchema​(java.lang.String raw,
                                      java.lang.String use)
        Constructs a matching rule definition based on descriptions in the MatchingRuleDescription format and MatchingRuleUseDescription 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 attributes that include "matchingrule" and "matchingruleuse". The values of these attributes are matching rule descriptions in this format.

        Parameters:
        raw - definition of the matching rule in the MatchingRuleDescription format
        use - definition of the use of the matching rule in the MatchingRuleUseDescription format
    • Method Detail

      • getAttributes

        public java.lang.String[] getAttributes()
        Gets the list of the OIDs of the attribute types which can be used with the matching rule.
        Returns:
        array of the OIDs of the attribute types which can be used with the matching rule.
      • getValue

        public java.lang.String getValue()
        Gets the matching rule definition in the string representation of the MatchingRuleDescription data type defined in X.501 (see RFC 2252, Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions for a description of these formats). 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 "matchingrules" and "matchingruleuse". The values of these attributes are matching rule description and matching rule use description in these formats.)

        Overrides:
        getValue in class LDAPSchemaElement
        Returns:
        a string in a format that can be used as the value of the matchingrule attribute (which describes a matching rule in the schema) of a subschema object
      • getUseValue

        public java.lang.String getUseValue()
        Gets the matching rule use definition in the string representation of the MatchingRuleUseDescription data type defined in X.501 (see RFC 2252, Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions for a description of these formats). 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 "matchingrules" and "matchingruleuse". The values of these attributes are matching rule description and matching rule use description in these formats.)

        Returns:
        a string in a format that can be used as the value of the matchingruleuse attribute (which describes the use of a matching rule in the schema) of a subschema object
      • 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.
        Overrides:
        update in class LDAPSchemaElement
        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. This is ignored here.
        dn - the entry at which to update the schema
        Throws:
        LDAPException - if the definition can't be added/removed
      • toString

        public java.lang.String toString()
        Gets the definition of the matching rule in a user friendly format. This is the format that the matching rule definition uses when you print the matching rule or the schema.
        Overrides:
        toString in class LDAPAttributeSchema
        Returns:
        definition of the matching rule in a user friendly format.