4.2.1.1 - AttributeTypes

The AttributeType SchemaObject exposes extra parameters. Here is the description as found in RFC 4512 :

4.1.2.  Attribute Types

Attribute Type definitions are written according to the ABNF:

 AttributeTypeDescription = LPAREN WSP
     numericoid                    ; object identifier
     [ SP "NAME" SP qdescrs ]      ; short names (descriptors)
     [ SP "DESC" SP qdstring ]     ; description
     [ SP "OBSOLETE" ]             ; not active
     [ SP "SUP" SP oid ]           ; supertype
     [ SP "EQUALITY" SP oid ]      ; equality matching rule
     [ SP "ORDERING" SP oid ]      ; ordering matching rule
     [ SP "SUBSTR" SP oid ]        ; substrings matching rule
     [ SP "SYNTAX" SP noidlen ]    ; value syntax
     [ SP "SINGLE-VALUE" ]         ; single-value
     [ SP "COLLECTIVE" ]           ; collective
     [ SP "NO-USER-MODIFICATION" ] ; not user modifiable
     [ SP "USAGE" SP usage ]       ; usage
     extensions WSP RPAREN         ; extensions

 usage = "userApplications"     /  ; user
         "directoryOperation"   /  ; directory operational
         "distributedOperation" /  ; DSA-shared operational
         "dSAOperation"            ; DSA-specific operational

The follwing methods have been added to cover ones not already present within the SchemaObject interface :

  • getEquality() : returns the MatchingRule instance used to control the equality of the AttributeType
  • getEqualityName() : returns the name of the EQUALITY MatchingRule.
  • getEqualityOid() : returns the OID of the EQUALITY MatchingRule.
  • getOrdering() : returns the MatchingRule instance used to control the ordering of the AttributeType*
  • getOrderingName() : returns the name of the ORDERING MatchingRule.
  • getOrderingOid() : returns the OID of the ORDERING MatchingRule.
  • getSubstring() : returns the MatchingRule instance used to match a substring from the AttributeType
  • getSubstringName() : returns the name of the SUBSTR MatchingRule.
  • getSubstringOid() : returns the OID of the SUBSTR MatchingRule.
  • getSuperior() : returns the AttributeType instance that this instance inherits from
  • getSuperiorName() : returns the superior AttributeType‘s name
  • getSuperiorOid() : returns the superior AttributeType‘s OID
  • getSyntax() : returns the associated LdapSyntax instance (or the parent’s AttributeType‘s one)
  • getSyntaxLength() : returns the maximum length for the AttributeType value
  • getSyntaxName() : returns the associated LdapSyntax instance’s name
  • getSyntaxOid() : returns the associated LdapSyntax instance’s OID
  • getUsage() : returns the usage (one of (USER_APPLICATIONS, DIRECTORY_OPERATION, DISTRIBUTED_OPERATION and DSA_OPERATION)
  • isAncestorOf(AttributeType) : tells if the AttributeType is the superior of another one
  • isCollective() : tells if the AttributeType is a collective attribute
  • isDescendantOf(AttributeType)
  • isOperational() : tells if the AttributeType is an operational attribute (one of DIRECTORY_OPERATION, DISTRIBUTED_OPERATION and DSA_OPERATION)
  • isSingleValued() : tells if the AttributeType only accept single values
  • isUser() : tells if the AttributeType is a USER_APPLICATIONS attribute
  • isUserModifiable() : tells if the AttributeType is modifiable or not

What is important to know is that an AttributeType may inherit some characteristics from a SUP AttributeType. For example, the Syntax, MatchingRules, etc. In any case, if you don’t define the specific characteristics for a given AttributeType, they’ll be inherited from its parent – if there is one.