blob: acced9f0080efcd0b3c022e587281313aaafff89 [file] [log] [blame]
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.