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

java.lang.Object
  extended by org.apache.directory.api.ldap.model.schema.AbstractSchemaObject
      extended by org.apache.directory.api.ldap.model.schema.AttributeType
All Implemented Interfaces:
Serializable, Cloneable, SchemaObject
Direct Known Subclasses:
MutableAttributeType

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], DescriptionUtils.getDescription(AttributeType), Serialized Form

Field Summary
protected  boolean canUserModify
          whether or not this type can be modified by directory users
protected  MatchingRule equality
          The equality MatchingRule associated with the equalityID
protected  String equalityOid
          The equality OID associated with this AttributeType
protected  boolean isCollective
          whether or not this type is a collective attribute
protected  boolean isSingleValued
          whether or not this type is single valued
protected  MatchingRule ordering
          The ordering MatchingRule associated with the orderingID
protected  String orderingOid
          The ordering OID associated with this AttributeType
protected  MatchingRule substring
          The substring MatchingRule associated with the substringID
protected  String substringOid
          The substring OID associated with this AttributeType
protected  AttributeType superior
          The superior AttributeType
protected  String superiorOid
          The superior AttributeType OID
protected  LdapSyntax syntax
          The syntax associated with the syntaxID
protected  long syntaxLength
          the length of this attribute in bytes
protected  String syntaxOid
          The syntax OID associated with this AttributeType
protected  UsageEnum usage
          the usage for this attributeType
 
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
AttributeType(String oid)
          Creates a AttributeType object using a unique OID.
 
Method Summary
 AttributeType copy()
          Copy the current SchemaObject on place
 boolean equals(Object o)
          
 MatchingRule getEquality()
          Gets the MatchingRule for this AttributeType used for equality matching.
 String getEqualityName()
          Gets the Equality Name for this AttributeType's values.
 String getEqualityOid()
          Gets the Equality OID for this AttributeType's values.
 MatchingRule getOrdering()
          Gets the MatchingRule for this AttributeType used for Ordering matching.
 String getOrderingName()
          Gets the MatchingRule name for this AttributeType used for Ordering matching.
 String getOrderingOid()
          Gets the Ordering OID for this AttributeType's values.
 MatchingRule getSubstring()
          Gets the MatchingRule for this AttributeType used for Substr matching.
 String getSubstringName()
          Gets the MatchingRule name for this AttributeType used for Substring matching.
 String getSubstringOid()
          Gets the Substr OID for this AttributeType's values.
 AttributeType getSuperior()
          Gets the the superior AttributeType of this AttributeType.
 String getSuperiorName()
          Gets the Name of the superior AttributeType for this AttributeType.
 String getSuperiorOid()
          Gets the OID of the superior AttributeType for this AttributeType.
 LdapSyntax getSyntax()
          Gets the Syntax for this AttributeType's values.
 long getSyntaxLength()
          Gets a length limit for this AttributeType.
 String getSyntaxName()
          Gets the Syntax name for this AttributeType's values.
 String getSyntaxOid()
          Gets the Syntax OID for this AttributeType's values.
 UsageEnum getUsage()
          Determines the usage for this AttributeType.
 boolean isAncestorOf(AttributeType descendant)
          Checks to see if this AttributeType is the ancestor of another attributeType.
 boolean isCollective()
          Gets whether or not this AttributeType is a collective attribute.
 boolean isDescendantOf(AttributeType ancestor)
          Checks to see if this AttributeType is the descendant of another attributeType.
 boolean isOperational()
          Tells if the attributeType is an OPERATIONAL attribute or not
 boolean isSingleValued()
          Gets whether or not this AttributeType is single-valued.
 boolean isUser()
          Tells if the attributeType is a USER attribute or not
 boolean isUserModifiable()
          Gets whether or not this AttributeType can be modified by a user.
 String toString()
          
 
Methods inherited from class org.apache.directory.api.ldap.model.schema.AbstractSchemaObject
addExtension, addExtension, addName, clear, 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
 

Field Detail

syntaxOid

protected String syntaxOid
The syntax OID associated with this AttributeType


syntax

protected LdapSyntax syntax
The syntax associated with the syntaxID


equalityOid

protected String equalityOid
The equality OID associated with this AttributeType


equality

protected MatchingRule equality
The equality MatchingRule associated with the equalityID


substringOid

protected String substringOid
The substring OID associated with this AttributeType


substring

protected MatchingRule substring
The substring MatchingRule associated with the substringID


orderingOid

protected String orderingOid
The ordering OID associated with this AttributeType


ordering

protected MatchingRule ordering
The ordering MatchingRule associated with the orderingID


superiorOid

protected String superiorOid
The superior AttributeType OID


superior

protected AttributeType superior
The superior AttributeType


isSingleValued

protected boolean isSingleValued
whether or not this type is single valued


isCollective

protected boolean isCollective
whether or not this type is a collective attribute


canUserModify

protected boolean canUserModify
whether or not this type can be modified by directory users


usage

protected UsageEnum usage
the usage for this attributeType


syntaxLength

protected long syntaxLength
the length of this attribute in bytes

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

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.

isCollective

public boolean isCollective()
Gets whether or not this AttributeType is a collective attribute.

Returns:
true if the attribute is collective, false otherwise

getUsage

public UsageEnum getUsage()
Determines the usage for this AttributeType.

Returns:
a type safe UsageEnum

getSyntaxLength

public long getSyntaxLength()
Gets a length limit for this AttributeType.

Returns:
the length of the attribute

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.

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

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

getEquality

public MatchingRule getEquality()
Gets the MatchingRule for this AttributeType used for equality matching.

Returns:
the equality matching rule

getEqualityOid

public String getEqualityOid()
Gets the Equality OID for this AttributeType's values.

Returns:
the value Equality's OID

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

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

getSubstring

public MatchingRule getSubstring()
Gets the MatchingRule for this AttributeType used for Substr matching.

Returns:
the Substr matching rule

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

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

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

toString

public String toString()

Overrides:
toString in class Object

copy

public AttributeType copy()
Copy the current SchemaObject on place

Specified by:
copy in interface SchemaObject
Specified by:
copy in class AbstractSchemaObject
Returns:
The copied SchemaObject

equals

public boolean equals(Object o)

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


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