title: 6.35 - Value navPrev: 6.34-syntax-checker.html navPrevText: 6.34 - SyntaxChecker navUp: 6-ldap-data-structures.html navUpText: 6 - LDAP data structures navNext: 7-requests-responses.html navNextText: 7 - Requests and Responses

6.35 - Value

The Value class is used to store an attribute's value. Such a value can be either a String or a byte[], depending on the nature of the AttributeType (the default is that the Value is a String). Each value is associated to an AttributeType, and is used in an Entry or a DN.

We can create a schema aware Value, or just a plain Value. Having a schema aware Value allows further controls to be made on the value injected : its syntax will be checked against the AttributeType syntax.

Value is also a Externalizable class.

Value instances are immutable.

Creating a value

There are two ways to create a value:

  • using a constructor
  • using a static factory (useful for deserialization)

You can create the value passing it an AttributeType, or without it. Here are the possible constructors:

With an AttributeTypeWithout an attributeTypeDescription
Value( AttributeType, byte[] upValue )Value( byte[] upValue )Creates a Value with a binary content
Value( AttributeType, String upValue )Value( String upValue )Creates a Value with a String content
Value( AttributeType, Value )-Create a new Value from an existing one, applying the SchemaManager on it

The third constructor is quite specific, as Value is immutable, and it allows you to associate a SchemaManager to a Value instance (creating a new Value in the process). The new Value instance will be schema aware.

Operations on a Value

There are ways to consult the content of the Value, and its status. Here is the list of common operations:

OperationDescription
clone()Clone the current Value, creating a new instance
compareTo( byte[] )Compare the content of the current value to the given byte[]
compareTo( String )Compare the content of the current value to the given String
compareTo( Value )Compare the content of the current value to the given Value
deserialize( byte[], int )Create a Value deserializing it from the byte[], starting at a given position
equals( Object )Tells if the current Value is equal to the provided object
getAttributeType()Get back the AttributeType associated with this value, if any
getBytes()Get the byte[] representation of this Value
getValue()Get the Value as a String, if the Value is Human Readable
hashCode()Compute the Value hashcode
isHumanReadable()Tells if the Value is Humane Readable (ie, a String)
isInstanceOf( AttributeType )Tells if the Value is an instance of a given AttributeType, or of one of its parent
isNull()Tells if the contained value is null
isSchemaAware()Tells if teh Value is schema aware
isValid( SyntaxChecker )Check the contained value
length()Returns the contained value's length (number of chars for a String, number of bytes for a byte[])
readExternal( ObjectInput )Read a new Value from a stream of bytes
serialize( byte[], int )Write the Value into a stream of bytes
toString()Returns a String representation of the Value instance
writeExternal( ObjectOutput )Write the Value into a stream