netscape.ldap

Class LDAPMatchingRuleSchema

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:

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

Field Summary

Fields inherited from class netscape.ldap.LDAPAttributeSchema

COLLECTIVE, EQUALITY, NO_USER_MODIFICATION, ORDERING, SINGLE, SUBSTR, USAGE, syntaxElement

Fields inherited from class netscape.ldap.LDAPSchemaElement

OBSOLETE, SUPERIOR, SYNTAX, aliases, attrName, binary, binaryString, ces, cesString, cis, cisString, description, dn, dnString, intString, integer, name, novalsTable, oid, properties, rawValue, telephone, telephoneString, unknown

Constructor Summary

LDAPMatchingRuleSchema(String raw, String use)
Constructs a matching rule definition based on descriptions in the MatchingRuleDescription format and MatchingRuleUseDescription format.
LDAPMatchingRuleSchema(String name, String oid, String description, String[] attributes, String syntaxString)
Constructs a matching rule definition, using the specified information.
LDAPMatchingRuleSchema(String name, String oid, String description, String[] attributes, String syntaxString, String[] aliases)
Constructs a matching rule definition, using the specified information.
LDAPMatchingRuleSchema(String name, String oid, String description, String[] attributes, int syntax)
Constructs a matching rule definition, using the specified information.

Method Summary

String[]
getAttributes()
Gets the list of the OIDs of the attribute types which can be used with the matching rule.
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).
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).
String
toString()
Gets the definition of the matching rule in a user friendly format.
protected void
update(LDAPConnection ld, int op, String name, String dn)
Adds, removes or modifies the definition from a Directory.

Methods inherited from class netscape.ldap.LDAPAttributeSchema

getSuperior, getSyntax, getSyntaxString, isSingleValued, toString

Methods inherited from class netscape.ldap.LDAPSchemaElement

add, add, getAliases, getCustomValues, getDescription, getID, getName, getOID, getOptionalValues, getQualifier, getQualifierNames, getValue, isObsolete, modify, modify, parseValue, remove, remove, setQualifier, setQualifier, update, update, update

Constructor Details

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

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 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)

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.

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

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 interface 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

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 interface LDAPAttributeSchema
Returns:
definition of the matching rule in a user friendly format.

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 interface 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