Class NameForm

  • All Implemented Interfaces:
    Serializable, SchemaObject

    public class NameForm
    extends AbstractSchemaObject
    A nameForm description. NameForms define the relationship between a STRUCTURAL objectClass definition and the attributeTypes allowed to be used for the naming of an Entry of that objectClass: it defines which attributes can be used for the Rdn.

    According to ldapbis [MODELS]:

      4.1.7.2. Name Forms
     
       A name form "specifies a permissible Rdn for entries of a particular
       structural object class.  A name form identifies a named object
       class and one or more attribute types to be used for naming (i.e.
       for the Rdn).  Name forms are primitive pieces of specification
       used in the definition of DIT structure rules" [X.501].
     
       Each name form indicates the structural object class to be named,
       a set of required attribute types, and a set of allowed attributes
       types.  A particular attribute type cannot be listed in both sets.
     
       Entries governed by the form must be named using a value from each
       required attribute type and zero or more values from the allowed
       attribute types.
     
       Each name form is identified by an object identifier (OID) and,
       optionally, one or more short names (descriptors).
     
       Name form descriptions are written according to the ABNF:
     
         NameFormDescription = LPAREN WSP
             numericoid                ; object identifier
             [ SP "NAME" SP qdescrs ]  ; short names (descriptors)
             [ SP "DESC" SP qdstring ] ;String description
             [ SP "OBSOLETE" ]         ; not active
             SP "OC" SP oid            ; structural object class
             SP "MUST" SP oids         ; attribute types
             [ SP "MAY" SP oids ]      ; attribute types
             extensions WSP RPAREN     ; extensions
     
       where:
     
         [numericoid] is object identifier which identifies this name form;
         NAME [qdescrs] are short names (descriptors) identifying this name
             form;
         DESC [qdstring] is a short descriptive string;
         OBSOLETE indicates this name form is not active;
         OC identifies the structural object class this rule applies to,
         MUST and MAY specify the sets of required and allowed, respectively,
             naming attributes for this name form; and
         [extensions] describe extensions.
     
       All attribute types in the required ("MUST") and allowed ("MAY") lists
       shall be different.
     
    Author:
    Apache Directory Project
    See Also:
    RFC2252 Section 6.22, ldapbis [MODELS], Serialized Form
    • Constructor Detail

      • NameForm

        public NameForm​(String oid)
        Creates a new instance of MatchingRule.
        Parameters:
        oid - The MatchingRule OID
    • Method Detail

      • getStructuralObjectClassOid

        public String getStructuralObjectClassOid()
        Gets the STRUCTURAL ObjectClass this name form specifies naming attributes for.
        Returns:
        the ObjectClass's oid this NameForm is for
      • getStructuralObjectClass

        public ObjectClass getStructuralObjectClass()
        Gets the STRUCTURAL ObjectClass this name form specifies naming attributes for.
        Returns:
        the ObjectClass this NameForm is for
      • setStructuralObjectClassOid

        public void setStructuralObjectClassOid​(String structuralObjectClassOid)
        Sets the structural object class this rule applies to
        Parameters:
        structuralObjectClassOid - the structural object class to set
      • setStructuralObjectClass

        public void setStructuralObjectClass​(ObjectClass structuralObjectClass)
        Sets the structural object class this rule applies to
        Parameters:
        structuralObjectClass - the structural object class to set
      • getMustAttributeTypeOids

        public List<StringgetMustAttributeTypeOids()
        Gets all the AttributeTypes OIDs of the attributes this NameForm specifies as having to be used in the given objectClass for naming: as part of the Rdn.
        Returns:
        the AttributeTypes OIDs of the must use attributes
      • getMustAttributeTypes

        public List<AttributeTypegetMustAttributeTypes()
        Gets all the AttributeTypes of the attributes this NameForm specifies as having to be used in the given objectClass for naming: as part of the Rdn.
        Returns:
        the AttributeTypes of the must use attributes
      • setMustAttributeTypeOids

        public void setMustAttributeTypeOids​(List<String> mustAttributeTypeOids)
        Sets the list of required AttributeTypes OIDs
        Parameters:
        mustAttributeTypeOids - the list of required AttributeTypes OIDs
      • setMustAttributeTypes

        public void setMustAttributeTypes​(List<AttributeType> mustAttributeTypes)
        Sets the list of required AttributeTypes
        Parameters:
        mustAttributeTypes - the list of required AttributeTypes
      • addMustAttributeTypeOids

        public void addMustAttributeTypeOids​(String oid)
        Add a required AttributeType OID
        Parameters:
        oid - The attributeType OID
      • getMayAttributeTypeOids

        public List<StringgetMayAttributeTypeOids()
        Gets all the AttributeTypes OIDs of the attribute this NameForm specifies as being usable without requirement in the given objectClass for naming: as part of the Rdn.
        Returns:
        the AttributeTypes OIDs of the may use attributes
      • getMayAttributeTypes

        public List<AttributeTypegetMayAttributeTypes()
        Gets all the AttributeTypes of the attribute this NameForm specifies as being useable without requirement in the given objectClass for naming: as part of the Rdn.
        Returns:
        the AttributeTypes of the may use attributes
      • setMayAttributeTypeOids

        public void setMayAttributeTypeOids​(List<String> mayAttributeTypeOids)
        Sets the list of allowed AttributeTypes
        Parameters:
        mayAttributeTypeOids - the list of allowed AttributeTypes
      • setMayAttributeTypes

        public void setMayAttributeTypes​(List<AttributeType> mayAttributeTypes)
        Sets the list of allowed AttributeTypes
        Parameters:
        mayAttributeTypes - the list of allowed AttributeTypes
      • addMayAttributeTypeOids

        public void addMayAttributeTypeOids​(String oid)
        Add an allowed AttributeType
        Parameters:
        oid - The attributeType oid
      • addMayAttributeTypes

        public void addMayAttributeTypes​(AttributeType attributeType)
        Add an allowed AttributeType
        Parameters:
        attributeType - The attributeType
      • copy

        public NameForm copy()
        Copy a NameForm
        Returns:
        The copied SchemaObject