Package netscape.ldap

Class LDAPMatchingRuleSchema

All Implemented Interfaces:
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:
  • Constructor Details

    • LDAPMatchingRuleSchema

      public LDAPMatchingRuleSchema(String name, String oid, String description, 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(String name, String oid, String description, String[] attributes, 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(String name, String oid, String description, String[] attributes, String syntaxString, 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(String raw, 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 Details

    • getAttributes

      public 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 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 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, String name, 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 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.