org.apache.directory.api.ldap.model.schema
Class MutableAttributeType

java.lang.Object
  extended by org.apache.directory.api.ldap.model.schema.AbstractSchemaObject
      extended by org.apache.directory.api.ldap.model.schema.AttributeType
          extended by org.apache.directory.api.ldap.model.schema.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], DescriptionUtils#getDescription(MutableAttributeType), Serialized Form

Field Summary
 
Fields inherited from class org.apache.directory.api.ldap.model.schema.AttributeType
canUserModify, equality, equalityOid, isCollective, isSingleValued, ordering, orderingOid, substring, substringOid, superior, superiorOid, syntax, syntaxLength, syntaxOid, usage
 
Fields inherited from class org.apache.directory.api.ldap.model.schema.AbstractSchemaObject
description, extensions, isEnabled, isObsolete, isReadOnly, locked, names, objectType, oid, schemaName, specification
 
Constructor Summary
MutableAttributeType(String oid)
          Creates a AttributeType object using a unique OID.
 
Method Summary
 void clear()
          Clear the current SchemaObject : remove all the references to other objects, and all the Maps.
 void setCollective(boolean collective)
          Sets the collective flag
 void setEquality(MatchingRule equality)
          Sets the Equality MR for this AttributeType
 void setEqualityOid(String equalityOid)
          Sets the Equality OID for this AttributeType
 void setOrdering(MatchingRule ordering)
          Sets the Ordering MR for this AttributeType
 void setOrderingOid(String orderingOid)
          Sets the Ordering OID for this AttributeType
 void setSingleValued(boolean singleValued)
          Tells if this AttributeType is Single Valued or not
 void setSubstring(MatchingRule substring)
          Sets the Substr MR for this AttributeType
 void setSubstringOid(String substrOid)
          Sets the Substr OID for this AttributeType
 void setSuperior(MutableAttributeType superior)
          Sets the superior for this AttributeType
 void setSuperior(String newSuperiorOid)
          Sets the superior oid for this AttributeType
 void setSuperiorOid(String superiorOid)
          Sets the superior AttributeType OID of this AttributeType
 void setSyntax(LdapSyntax syntax)
          Sets the Syntax for this AttributeType
 void setSyntaxLength(long length)
          Sets the length limit of this AttributeType based on its associated syntax.
 void setSyntaxOid(String syntaxOid)
          Sets the Syntax OID for this AttributeType
 void setUsage(UsageEnum usage)
          Sets the AttributeType usage, one of : USER_APPLICATIONS DIRECTORY_OPERATION DISTRIBUTED_OPERATION DSA_OPERATION
 void setUserModifiable(boolean userModifiable)
          Tells if this AttributeType can be modified by a user or not
 void updateCollective(boolean collective)
          Updates the collective flag
 void updateEquality(MatchingRule newEquality)
          Update the associated Equality MatchingRule, even if the SchemaObject is readOnly
 void updateOrdering(MatchingRule newOrdering)
          Update the associated Ordering MatchingRule, even if the SchemaObject is readOnly
 void updateSubstring(MatchingRule newSubstring)
          Update the associated Substring MatchingRule, even if the SchemaObject is readOnly
 void updateSuperior(MutableAttributeType newSuperior)
          Update the associated Superior AttributeType, even if the SchemaObject is readOnly
 void updateSyntax(LdapSyntax newSyntax)
          Update the associated Syntax, even if the SchemaObject is readOnly
 void updateUsage(UsageEnum newUsage)
          Updates the AttributeType usage, one of : USER_APPLICATIONS DIRECTORY_OPERATION DISTRIBUTED_OPERATION DSA_OPERATION
 
Methods inherited from class org.apache.directory.api.ldap.model.schema.AttributeType
copy, equals, getEquality, getEqualityName, getEqualityOid, getOrdering, getOrderingName, getOrderingOid, getSubstring, getSubstringName, getSubstringOid, getSuperior, getSuperiorName, getSuperiorOid, getSyntax, getSyntaxLength, getSyntaxName, getSyntaxOid, getUsage, isAncestorOf, isCollective, isDescendantOf, isOperational, isSingleValued, isUser, isUserModifiable, toString
 
Methods inherited from class org.apache.directory.api.ldap.model.schema.AbstractSchemaObject
addExtension, addExtension, addName, compareOid, copy, getDescription, getExtensions, getName, getNames, getObjectType, getOid, getSchemaName, getSpecification, hashCode, isDisabled, isEnabled, isObsolete, isReadOnly, lock, setDescription, setEnabled, setExtensions, setNames, setNames, setObsolete, setOid, setReadOnly, setSchemaName, setSpecification, unlock
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

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 :

Parameters:
usage - The AttributeType usage
See Also:
UsageEnum

updateUsage

public void updateUsage(UsageEnum newUsage)
Updates the AttributeType usage, one of :

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(MutableAttributeType 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

clear

public void clear()
Clear the current SchemaObject : remove all the references to other objects, and all the Maps.

Specified by:
clear in interface SchemaObject
Overrides:
clear in class AbstractSchemaObject


Copyright © 2003-2013 The Apache Software Foundation. All Rights Reserved.