Class AttributeType
- java.lang.Object
-
- org.apache.directory.api.ldap.model.schema.AbstractSchemaObject
-
- org.apache.directory.api.ldap.model.schema.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
-
-
Field Summary
Fields Modifier and Type Field Description protected booleancanUserModifywhether or not this type can be modified by directory usersprotected MatchingRuleequalityThe equality MatchingRule associated with the equalityIDprotected StringequalityOidThe equality OID associated with this AttributeTypeprotected booleanisCollectivewhether or not this type is a collective attributeprotected booleanisSingleValuedwhether or not this type is single valuedprotected MatchingRuleorderingThe ordering MatchingRule associated with the orderingIDprotected StringorderingOidThe ordering OID associated with this AttributeTypestatic longserialVersionUIDThe mandatory serialVersionUIDprotected MatchingRulesubstringThe substring MatchingRule associated with the substringIDprotected StringsubstringOidThe substring OID associated with this AttributeTypeprotected AttributeTypesuperiorThe superior AttributeTypeprotected StringsuperiorOidThe superior AttributeType OIDprotected LdapSyntaxsyntaxThe syntax associated with the syntaxIDprotected longsyntaxLengththe length of this attribute in bytesprotected StringsyntaxOidThe syntax OID associated with this AttributeTypeprotected UsageEnumusagethe usage for this attributeType-
Fields inherited from class org.apache.directory.api.ldap.model.schema.AbstractSchemaObject
description, extensions, h, isEnabled, isObsolete, locked, names, objectType, oid, schemaName, specification
-
-
Constructor Summary
Constructors Constructor Description AttributeType(String oid)Creates a AttributeType object using a unique OID.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Clear the current SchemaObject : remove all the references to other objects, and all the Maps.AttributeTypecopy()Copy the current SchemaObject on placebooleanequals(Object o)MatchingRulegetEquality()Gets the MatchingRule for this AttributeType used for equality matching.StringgetEqualityName()Gets the Equality Name for this AttributeType's values.StringgetEqualityOid()Gets the Equality OID for this AttributeType's values.MatchingRulegetOrdering()Gets the MatchingRule for this AttributeType used for Ordering matching.StringgetOrderingName()Gets the MatchingRule name for this AttributeType used for Ordering matching.StringgetOrderingOid()Gets the Ordering OID for this AttributeType's values.MatchingRulegetSubstring()Gets the MatchingRule for this AttributeType used for Substr matching.StringgetSubstringName()Gets the MatchingRule name for this AttributeType used for Substring matching.StringgetSubstringOid()Gets the Substr OID for this AttributeType's values.AttributeTypegetSuperior()Gets the the superior AttributeType of this AttributeType.StringgetSuperiorName()Gets the Name of the superior AttributeType for this AttributeType.StringgetSuperiorOid()Gets the OID of the superior AttributeType for this AttributeType.LdapSyntaxgetSyntax()Gets the Syntax for this AttributeType's values.longgetSyntaxLength()Gets a length limit for this AttributeType.StringgetSyntaxName()Gets the Syntax name for this AttributeType's values.StringgetSyntaxOid()Gets the Syntax OID for this AttributeType's values.UsageEnumgetUsage()Determines the usage for this AttributeType.inthashCode()booleanisAncestorOf(AttributeType descendant)Checks to see if this AttributeType is the ancestor of another attributeType.booleanisCollective()Gets whether or not this AttributeType is a collective attribute.booleanisDescendantOf(AttributeType ancestor)Checks to see if this AttributeType is the descendant of another attributeType.booleanisHR()Tells if an AttributeType is HumanReadable or not, depending on its Syntax.booleanisOperational()Tells if the attributeType is an OPERATIONAL attribute or notbooleanisRelaxed()booleanisSingleValued()Gets whether or not this AttributeType is single-valued.booleanisUser()Tells if the attributeType is a USER attribute or notbooleanisUserModifiable()Gets whether or not this AttributeType can be modified by a user.voidsetCollective(boolean collective)Sets the collective flagvoidsetEquality(MatchingRule equality)Sets the Equality MR for this AttributeTypevoidsetEqualityOid(String equalityOid)Sets the Equality OID for this AttributeTypevoidsetOrdering(MatchingRule ordering)Sets the Ordering MR for this AttributeTypevoidsetOrderingOid(String orderingOid)Sets the Ordering OID for this AttributeTypevoidsetRelaxed(boolean isRelaxed)Set this AttributeType mode to relaxedvoidsetSingleValued(boolean singleValued)Tells if this AttributeType is Single Valued or notvoidsetSubstring(MatchingRule substring)Sets the Substr MR for this AttributeTypevoidsetSubstringOid(String substrOid)Sets the Substr OID for this AttributeTypevoidsetSuperior(String newSuperiorOid)Sets the superior oid for this AttributeTypevoidsetSuperior(AttributeType superior)Sets the superior for this AttributeTypevoidsetSuperiorOid(String superiorOid)Sets the superior AttributeType OID of this AttributeTypevoidsetSyntax(LdapSyntax syntax)Sets the Syntax for this AttributeTypevoidsetSyntaxLength(long length)Sets the length limit of this AttributeType based on its associated syntax.voidsetSyntaxOid(String syntaxOid)Sets the Syntax OID for this AttributeTypevoidsetUsage(UsageEnum usage)Sets the AttributeType usage, one of : USER_APPLICATIONS DIRECTORY_OPERATION DISTRIBUTED_OPERATION DSA_OPERATIONvoidsetUserModifiable(boolean userModifiable)Tells if this AttributeType can be modified by a user or notStringtoString()-
Methods inherited from class org.apache.directory.api.ldap.model.schema.AbstractSchemaObject
addExtension, addExtension, addName, compareOid, computeHashCode, copy, getDescription, getExtension, getExtensions, getName, getNames, getObjectType, getOid, getSchemaName, getSpecification, hasExtension, isDisabled, isEnabled, isObsolete, lock, setDescription, setEnabled, setExtensions, setNames, setNames, setObsolete, setOid, setSchemaName, setSpecification, unlock
-
-
-
-
Field Detail
-
serialVersionUID
public static final long serialVersionUID
The mandatory serialVersionUID- See Also:
- Constant Field Values
-
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
-
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
-
copy
public AttributeType copy()
Copy the current SchemaObject on place- Specified by:
copyin interfaceSchemaObject- Returns:
- The copied SchemaObject
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfaceSchemaObject- Overrides:
hashCodein classAbstractSchemaObject
-
equals
public boolean equals(Object o)
- Specified by:
equalsin interfaceSchemaObject- Overrides:
equalsin classAbstractSchemaObject
-
clear
public void clear()
Clear the current SchemaObject : remove all the references to other objects, and all the Maps.- Specified by:
clearin interfaceSchemaObject- Overrides:
clearin classAbstractSchemaObject
-
-