Class MutableAttributeType

  • All Implemented Interfaces:
    Serializable, Cloneable, SchemaObject

    public class MutableAttributeType
    extends AttributeType
    An attributeType specification. attributeType specifications describe the nature of attributes within the directory. The attributeType specification's properties are accessible through this interface.

    According to ldapbis [MODELS]:

      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
    
        where:
          [numericoid] is object identifier assigned to this attribute type;
          NAME [qdescrs] are short names (descriptors) identifying this
              attribute type;
          DESC [qdstring] is a short descriptive string;
          OBSOLETE indicates this attribute type is not active;
          SUP oid specifies the direct supertype of this type;
          EQUALITY, ORDERING, SUBSTRING provide the oid of the equality,
              ordering, and substrings matching rules, respectively;
          SYNTAX identifies value syntax by object identifier and may suggest
              a minimum upper bound;
          COLLECTIVE indicates this attribute type is collective [X.501];
          NO-USER-MODIFICATION indicates this attribute type is not user
              modifiable;
          USAGE indicates the application of this attribute type; and
          [extensions] describe extensions.
    
        Each attribute type description must contain at least one of the SUP
        or SYNTAX fields.
    
        Usage of userApplications, the default, indicates that attributes of
        this type represent user information.  That is, they are user
        attributes.
    
        COLLECTIVE requires usage userApplications.  Use of collective
        attribute types in LDAP is not discussed in this technical
        specification.
    
        A usage of directoryOperation, distributedOperation, or dSAOperation
        indicates that attributes of this type represent operational and/or
        administrative information.  That is, they are operational attributes.
    
        directoryOperation usage indicates that the attribute of this type is
        a directory operational attribute.  distributedOperation usage
        indicates that the attribute of this DSA-shared usage operational
        attribute.  dSAOperation usage indicates that the attribute of this
        type is a DSA-specific operational attribute.
    
        NO-USER-MODIFICATION requires an operational usage.
    
        Note that the [AttributeTypeDescription] does not list the matching
        rules which can be used with that attribute type in an extensibleMatch
        search filter.  This is done using the 'matchingRuleUse' attribute
        described in Section 4.1.4.
    
        This document refines the schema description of X.501 by requiring
        that the SYNTAX field in an [AttributeTypeDescription] be a string
        representation of an object identifier for the LDAP string syntax
        definition with an optional indication of the suggested minimum bound
        of a value of this attribute.
    
        A suggested minimum upper bound on the number of characters in a value
        with a string-based syntax, or the number of bytes in a value for all
        other syntaxes, may be indicated by appending this bound count inside
        of curly braces following the syntax's OBJECT IDENTIFIER in an
    
        Attribute Type Description.  This bound is not part of the syntax name
        itself.  For instance, "1.3.6.4.1.1466.0{64}" suggests that server
        implementations should allow a string to be 64 characters long,
        although they may allow longer strings.  Note that a single character
        of the Directory String syntax may be encoded in more than one octet
        since UTF-8 is a variable-length encoding.
     
    Author:
    Apache Directory Project
    See Also:
    RFC 2252 Section 4.2, ldapbis [MODELS], Serialized Form
    • Constructor Detail

      • MutableAttributeType

        public MutableAttributeType​(String oid)
        Creates a AttributeType object using a unique OID.
        Parameters:
        oid - the OID for this AttributeType
    • Method Detail

      • setSingleValued

        public void setSingleValued​(boolean singleValued)
        Tells if this AttributeType is Single Valued or not
        Parameters:
        singleValued - True if the AttributeType is single-valued
      • setUserModifiable

        public void setUserModifiable​(boolean userModifiable)
        Tells if this AttributeType can be modified by a user or not
        Parameters:
        userModifiable - The flag to set
      • updateCollective

        public void updateCollective​(boolean collective)
        Updates the collective flag
        Parameters:
        collective - The new value to set
      • setCollective

        public void setCollective​(boolean collective)
        Sets the collective flag
        Parameters:
        collective - The new value to set
      • setUsage

        public void setUsage​(UsageEnum usage)
        Sets the AttributeType usage, one of :
        • USER_APPLICATIONS
        • DIRECTORY_OPERATION
        • DISTRIBUTED_OPERATION
        • DSA_OPERATION
        Parameters:
        usage - The AttributeType usage
        See Also:
        UsageEnum
      • updateUsage

        public void updateUsage​(UsageEnum newUsage)
        Updates the AttributeType usage, one of :
        • USER_APPLICATIONS
        • DIRECTORY_OPERATION
        • DISTRIBUTED_OPERATION
        • DSA_OPERATION
        Parameters:
        newUsage - The AttributeType usage
        See Also:
        UsageEnum
      • setSyntaxLength

        public void setSyntaxLength​(long length)
        Sets the length limit of this AttributeType based on its associated syntax.
        Parameters:
        length - the new length to set
      • setSuperiorOid

        public void setSuperiorOid​(String superiorOid)
        Sets the superior AttributeType OID of this AttributeType
        Parameters:
        superiorOid - The superior AttributeType OID of this AttributeType
      • setSuperior

        public void setSuperior​(AttributeType superior)
        Sets the superior for this AttributeType
        Parameters:
        superior - The superior for this AttributeType
      • setSuperior

        public void setSuperior​(String newSuperiorOid)
        Sets the superior oid for this AttributeType
        Parameters:
        newSuperiorOid - The superior oid for this AttributeType
      • updateSuperior

        public void updateSuperior​(MutableAttributeType newSuperior)
        Update the associated Superior AttributeType, even if the SchemaObject is readOnly
        Parameters:
        newSuperior - The superior for this AttributeType
      • setSyntaxOid

        public void setSyntaxOid​(String syntaxOid)
        Sets the Syntax OID for this AttributeType
        Parameters:
        syntaxOid - The syntax OID for this AttributeType
      • setSyntax

        public void setSyntax​(LdapSyntax syntax)
        Sets the Syntax for this AttributeType
        Parameters:
        syntax - The Syntax for this AttributeType
      • updateSyntax

        public void updateSyntax​(LdapSyntax newSyntax)
        Update the associated Syntax, even if the SchemaObject is readOnly
        Parameters:
        newSyntax - The Syntax for this AttributeType
      • setEqualityOid

        public void setEqualityOid​(String equalityOid)
        Sets the Equality OID for this AttributeType
        Parameters:
        equalityOid - The Equality OID for this AttributeType
      • setEquality

        public void setEquality​(MatchingRule equality)
        Sets the Equality MR for this AttributeType
        Parameters:
        equality - The Equality MR for this AttributeType
      • updateEquality

        public void updateEquality​(MatchingRule newEquality)
        Update the associated Equality MatchingRule, even if the SchemaObject is readOnly
        Parameters:
        newEquality - The Equality MR for this AttributeType
      • setOrderingOid

        public void setOrderingOid​(String orderingOid)
        Sets the Ordering OID for this AttributeType
        Parameters:
        orderingOid - The Ordering OID for this AttributeType
      • setOrdering

        public void setOrdering​(MatchingRule ordering)
        Sets the Ordering MR for this AttributeType
        Parameters:
        ordering - The Ordering MR for this AttributeType
      • updateOrdering

        public void updateOrdering​(MatchingRule newOrdering)
        Update the associated Ordering MatchingRule, even if the SchemaObject is readOnly
        Parameters:
        newOrdering - The Ordering MR for this AttributeType
      • setSubstringOid

        public void setSubstringOid​(String substrOid)
        Sets the Substr OID for this AttributeType
        Parameters:
        substrOid - The Substr OID for this AttributeType
      • setSubstring

        public void setSubstring​(MatchingRule substring)
        Sets the Substr MR for this AttributeType
        Parameters:
        substring - The Substr MR for this AttributeType
      • updateSubstring

        public void updateSubstring​(MatchingRule newSubstring)
        Update the associated Substring MatchingRule, even if the SchemaObject is readOnly
        Parameters:
        newSubstring - The Substr MR for this AttributeType