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 static long
serialVersionUID
The mandatory serialVersionUID
-
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 void
clear()
Clear the current SchemaObject : remove all the references to other objects, and all the Maps.AttributeType
copy()
Copy the current SchemaObject on placeboolean
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.int
hashCode()
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
isHR()
Tells if an AttributeType is HumanReadable or not, depending on its Syntax.boolean
isOperational()
Tells if the attributeType is an OPERATIONAL attribute or notboolean
isRelaxed()
boolean
isSingleValued()
Gets whether or not this AttributeType is single-valued.boolean
isUser()
Tells if the attributeType is a USER attribute or notboolean
isUserModifiable()
Gets whether or not this AttributeType can be modified by a user.void
setCollective(boolean collective)
Sets the collective flagvoid
setEquality(MatchingRule equality)
Sets the Equality MR for this AttributeTypevoid
setEqualityOid(String equalityOid)
Sets the Equality OID for this AttributeTypevoid
setOrdering(MatchingRule ordering)
Sets the Ordering MR for this AttributeTypevoid
setOrderingOid(String orderingOid)
Sets the Ordering OID for this AttributeTypevoid
setRelaxed(boolean isRelaxed)
Set this AttributeType mode to relaxedvoid
setSingleValued(boolean singleValued)
Tells if this AttributeType is Single Valued or notvoid
setSubstring(MatchingRule substring)
Sets the Substr MR for this AttributeTypevoid
setSubstringOid(String substrOid)
Sets the Substr OID for this AttributeTypevoid
setSuperior(String newSuperiorOid)
Sets the superior oid for this AttributeTypevoid
setSuperior(AttributeType superior)
Sets the superior for this AttributeTypevoid
setSuperiorOid(String superiorOid)
Sets the superior AttributeType OID of this AttributeTypevoid
setSyntax(LdapSyntax syntax)
Sets the Syntax for this AttributeTypevoid
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 AttributeTypevoid
setUsage(UsageEnum usage)
Sets the AttributeType usage, one of : USER_APPLICATIONS DIRECTORY_OPERATION DISTRIBUTED_OPERATION DSA_OPERATIONvoid
setUserModifiable(boolean userModifiable)
Tells if this AttributeType can be modified by a user or notString
toString()
-
Methods inherited from class org.apache.directory.api.ldap.model.schema.AbstractSchemaObject
addExtension, addExtension, addName, 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
-
-
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:
copy
in interfaceSchemaObject
- Returns:
- The copied SchemaObject
-
hashCode
public int hashCode()
- Specified by:
hashCode
in interfaceSchemaObject
- Overrides:
hashCode
in classAbstractSchemaObject
-
equals
public boolean equals(Object o)
- Specified by:
equals
in interfaceSchemaObject
- Overrides:
equals
in classAbstractSchemaObject
-
clear
public void clear()
Clear the current SchemaObject : remove all the references to other objects, and all the Maps.- Specified by:
clear
in interfaceSchemaObject
- Overrides:
clear
in classAbstractSchemaObject
-
-