| Title: 4.2.1.1 - AttributeTypes |
| NavPrev: 4.2.1-schema-objects.html |
| NavPrevText: 4.2.1 - Schema Objects |
| NavUp: 4.2.1-schema-object.html |
| NavUpText: 4.2.1 - Schema Objects |
| NavNext: 4.2.1.2-object-classes.html |
| NavNextText: 4.2.1.2 - ObjectClasses |
| Notice: Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| . |
| http://www.apache.org/licenses/LICENSE-2.0 |
| . |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| # 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. |