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 AttributeType | Without an attributeType | Description |
| 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:
| Operation | Description |
| 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 |