Class AttributeType

  • All Implemented Interfaces:
    Serializable, Cloneable, SchemaObject

    public class AttributeType
    extends AbstractSchemaObject
    implements Cloneable
    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

      • AttributeType

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

      • isSingleValued

        public boolean isSingleValued()
        Gets whether or not this AttributeType is single-valued.
        Returns:
        true if only one value can exist for this AttributeType, false otherwise
      • setSingleValued

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

        public boolean isUserModifiable()
        Gets whether or not this AttributeType can be modified by a user.
        Returns:
        true if users can modify it, false if only the directory can.
      • setUserModifiable

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

        public boolean isCollective()
        Gets whether or not this AttributeType is a collective attribute.
        Returns:
        true if the attribute is collective, false otherwise
      • setCollective

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

        public boolean isRelaxed()
        Returns:
        Tells if the AttributeType is relaxed (the SyntaxChecker will not be activated)
      • setRelaxed

        public void setRelaxed​(boolean isRelaxed)
        Set this AttributeType mode to relaxed
        Parameters:
        isRelaxed - true if the syntax checker for this AttributeType should not be activated
      • getUsage

        public UsageEnum getUsage()
        Determines the usage for this AttributeType.
        Returns:
        a type safe UsageEnum
      • 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
      • getSyntaxLength

        public long getSyntaxLength()
        Gets a length limit for this AttributeType.
        Returns:
        the length of the attribute
      • 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
      • getSuperior

        public AttributeType getSuperior()
        Gets the the superior AttributeType of this AttributeType.
        Returns:
        the superior AttributeType for this AttributeType
      • getSuperiorOid

        public String getSuperiorOid()
        Gets the OID of the superior AttributeType for this AttributeType.
        Returns:
        The OID of the superior AttributeType for 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
      • setSuperiorOid

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

        public String getSuperiorName()
        Gets the Name of the superior AttributeType for this AttributeType.
        Returns:
        The Name of the superior AttributeType for this AttributeType.
      • getSyntax

        public LdapSyntax getSyntax()
        Gets the Syntax for this AttributeType's values.
        Returns:
        the value syntax
      • setSyntax

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

        public String getSyntaxName()
        Gets the Syntax name for this AttributeType's values.
        Returns:
        the value syntax name
      • getSyntaxOid

        public String getSyntaxOid()
        Gets the Syntax OID for this AttributeType's values.
        Returns:
        the value syntax's OID
      • setSyntaxOid

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

        public MatchingRule getEquality()
        Gets the MatchingRule for this AttributeType used for equality matching.
        Returns:
        the equality matching rule
      • setEquality

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

        public String getEqualityOid()
        Gets the Equality OID for this AttributeType's values.
        Returns:
        the value Equality's OID
      • setEqualityOid

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

        public String getEqualityName()
        Gets the Equality Name for this AttributeType's values.
        Returns:
        the value Equality's Name
      • getOrdering

        public MatchingRule getOrdering()
        Gets the MatchingRule for this AttributeType used for Ordering matching.
        Returns:
        the Ordering matching rule
      • setOrdering

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

        public String getOrderingName()
        Gets the MatchingRule name for this AttributeType used for Ordering matching.
        Returns:
        the Ordering matching rule name
      • getOrderingOid

        public String getOrderingOid()
        Gets the Ordering OID for this AttributeType's values.
        Returns:
        the value Equality's OID
      • setOrderingOid

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

        public MatchingRule getSubstring()
        Gets the MatchingRule for this AttributeType used for Substr matching.
        Returns:
        the Substr matching rule
      • setSubstring

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

        public String getSubstringName()
        Gets the MatchingRule name for this AttributeType used for Substring matching.
        Returns:
        the Substring matching rule name
      • getSubstringOid

        public String getSubstringOid()
        Gets the Substr OID for this AttributeType's values.
        Returns:
        the value Substr's OID
      • setSubstringOid

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

        public boolean isUser()
        Tells if the attributeType is a USER attribute or not
        Returns:
        true if this is a USER attributeType
      • isOperational

        public boolean isOperational()
        Tells if the attributeType is an OPERATIONAL attribute or not
        Returns:
        true if this is an OPERATIONAL attributeType
      • isAncestorOf

        public boolean isAncestorOf​(AttributeType descendant)
        Checks to see if this AttributeType is the ancestor of another attributeType.
        Parameters:
        descendant - the perspective descendant to check
        Returns:
        true if the descendant is truly a derived from this AttributeType
      • isHR

        public boolean isHR()
        Tells if an AttributeType is HumanReadable or not, depending on its Syntax.
        Returns:
        true if the AttributeType is Human Readable.
      • isDescendantOf

        public boolean isDescendantOf​(AttributeType ancestor)
        Checks to see if this AttributeType is the descendant of another attributeType.
        Parameters:
        ancestor - the perspective ancestor to check
        Returns:
        true if this AttributeType truly descends from the ancestor