| --- |
| title: 4.2.1.2 - ObjectClasses |
| navPrev: 4.2.1.1-attribute-types.html |
| navPrevText: 4.2.1.1 - AttributeTypes |
| navUp: 4.2.1-schema-objects.html |
| navUpText: 4.2.1 - Schema Objects |
| navNext: 4.2.1.3-syntaxes.html |
| navNextText: 4.2.1.3 - Syntaxes |
| --- |
| |
| # 4.2.1.2 - ObjectClasses |
| |
| The **ObjectClass** represents the list of mandatory and optional **AttributeType**s |
| |
| Here is the description as found in RFC 4512 : |
| |
| ObjectClassDescription = LPAREN WSP |
| numericoid ; object identifier |
| [ SP "NAME" SP qdescrs ] ; short names (descriptors) |
| [ SP "DESC" SP qdstring ] ; description |
| [ SP "OBSOLETE" ] ; not active |
| [ SP "SUP" SP oids ] ; superior object classes |
| [ SP kind ] ; kind of class |
| [ SP "MUST" SP oids ] ; attribute types |
| [ SP "MAY" SP oids ] ; attribute types |
| extensions WSP RPAREN |
| |
| kind = "ABSTRACT" / "STRUCTURAL" / "AUXILIARY" |
| |
| Each **ObjectClass** as a type (ABSTRACT, STRUCTURAL or AUXILIARY) and may inherit from another **ObjectClass** |
| |
| The important part of the **ObjectClass** is the **AttributeType** definition : not only does it list all of the **AttributeTypes** defined in the list itself, but it also contains the inherited attribute types. Note that you may have an optional **AttributeType** defined in a parent, which is made mandatory. |
| |
| The available methods are : |
| |
| * getMayAttributeTypeOids() : gets the list of optional **AttributeType**s (proper and inherited) |
| * getMayAttributeTypes() : gets the list of optional **AttributeType**s' OID(proper and inherited) |
| * getMustAttributeTypeOids() : gets the list of mandatory **AttributeType**s' OID (proper and inherited) |
| * getMustAttributeTypes() : gets the list of mandatory **AttributeType**s (proper and inherited) |
| * getSuperiorOids() : gets the list of inherited **ObjectClass**es' OIDs (the full hierarchy) |
| * getSuperiors() : gets the list of inherited **ObjectClass**es (the full hierarchy) |
| * getType() : returns the **ObjectClass** type (one of ABSTRACT, AUXILIARY or STRUCTURAL) |
| * isAbstract() : tells if the **ObjectClass* is ABSTRACT. |
| * isAuxiliary() : tells if the **ObjectClass* is AUXILIARY. |
| * isStructural() : tells if the **ObjectClass* is STRUCTURAL. |