org.apache.directory.shared.asn1.ber.tlv
Class Value

java.lang.Object
  extended by org.apache.directory.shared.asn1.ber.tlv.Value
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public class Value
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable

This class stores the data decoded from a TLV.

Author:
Apache Directory Project
See Also:
Serialized Form

Field Summary
static byte FALSE_VALUE
          The encoded byte for a FALSE value
static long serialVersionUID
           
static byte TRUE_VALUE
          The encoded byte for a TRUE value
 
Constructor Summary
Value()
          The constructor.
Value(byte[] value)
          The constructor.
 
Method Summary
 void addData(byte[] data)
          Append some bytes to the data buffer.
 void addData(java.nio.ByteBuffer data)
          Append some bytes to the data buffer.
 java.lang.Object clone()
          Clone the Value
static void encode(java.nio.ByteBuffer buffer, boolean bool)
          Encode a boolean value
static void encode(java.nio.ByteBuffer buffer, byte[] bytes)
          Encode an OctetString value
static void encode(java.nio.ByteBuffer buffer, byte tag, int value)
          Encode an integer value
static void encode(java.nio.ByteBuffer buffer, int value)
          Encode an integer value
static void encode(java.nio.ByteBuffer buffer, OID oid)
          Encode an OID value
static void encode(java.nio.ByteBuffer buffer, java.lang.String string)
          Encode a String value
static void encodeEnumerated(java.nio.ByteBuffer buffer, int value)
          Encode an enumerated value
static byte[] getBytes(int value)
          Utility function that return a byte array representing the Value We must respect the ASN.1 BER encoding scheme : 1) positive integer - [0 - 0x7F] : 0xVV - [0x80 - 0xFF] : 0x00 0xVV - [0x0100 - 0x7FFF] : 0xVV 0xVV - [0x8000 - 0xFFFF] : 0x00 0xVV 0xVV - [0x010000 - 0x7FFFFF] : 0xVV 0xVV 0xVV - [0x800000 - 0xFFFFFF] : 0x00 0xVV 0xVV 0xVV - [0x01000000 - 0x7FFFFFFF] : 0xVV 0xVV 0xVV 0xVV - [0x80000000 - 0xFFFFFFFF] : 0x00 0xVV 0xVV 0xVV 0xVV 2) Negative number - (~value) + 1
 int getCurrentLength()
           
 byte[] getData()
          Get the Values'data
static int getNbBytes(int value)
          Utility function that return the number of bytes necessary to store an integer value.
 void init(int size)
          Initialize the Value
 void reset()
          Reset the Value so that it can be reused
 void setData(byte[] data)
          Set a block of bytes in the Value
 void setData(java.nio.ByteBuffer data)
          Set a block of bytes in the Value
 java.lang.String toString()
          Return a string representing the Value
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

public static final long serialVersionUID
See Also:
Constant Field Values

TRUE_VALUE

public static final byte TRUE_VALUE
The encoded byte for a TRUE value

See Also:
Constant Field Values

FALSE_VALUE

public static final byte FALSE_VALUE
The encoded byte for a FALSE value

See Also:
Constant Field Values
Constructor Detail

Value

public Value(byte[] value)
The constructor.


Value

public Value()
The constructor.

Method Detail

init

public void init(int size)
Initialize the Value

Parameters:
size - The data size to allocate.

reset

public void reset()
Reset the Value so that it can be reused


clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Clone the Value

Overrides:
clone in class java.lang.Object
Returns:
An object that is a copy of this Value
Throws:
java.lang.CloneNotSupportedException - Thrown when the cloning failed

getData

public byte[] getData()
Get the Values'data

Returns:
Returns the data.

setData

public void setData(java.nio.ByteBuffer data)
Set a block of bytes in the Value

Parameters:
data - The data to set.

addData

public void addData(java.nio.ByteBuffer data)
Append some bytes to the data buffer.

Parameters:
data - The data to append.

setData

public void setData(byte[] data)
Set a block of bytes in the Value

Parameters:
data - The data to set.

addData

public void addData(byte[] data)
Append some bytes to the data buffer.

Parameters:
data - The data to append.

getCurrentLength

public int getCurrentLength()
Returns:
The number of bytes actually stored

getNbBytes

public static int getNbBytes(int value)
Utility function that return the number of bytes necessary to store an integer value. Note that this value must be in [Integer.MIN_VALUE, Integer.MAX_VALUE].

Parameters:
value - The value to store in a byte array
sign - The integer value sign
Returns:
The number of bytes necessary to store the value.

getBytes

public static byte[] getBytes(int value)
Utility function that return a byte array representing the Value We must respect the ASN.1 BER encoding scheme : 1) positive integer - [0 - 0x7F] : 0xVV - [0x80 - 0xFF] : 0x00 0xVV - [0x0100 - 0x7FFF] : 0xVV 0xVV - [0x8000 - 0xFFFF] : 0x00 0xVV 0xVV - [0x010000 - 0x7FFFFF] : 0xVV 0xVV 0xVV - [0x800000 - 0xFFFFFF] : 0x00 0xVV 0xVV 0xVV - [0x01000000 - 0x7FFFFFFF] : 0xVV 0xVV 0xVV 0xVV - [0x80000000 - 0xFFFFFFFF] : 0x00 0xVV 0xVV 0xVV 0xVV 2) Negative number - (~value) + 1

Parameters:
value - The value to store in a byte array
sign - The value sign : positive or negative
Returns:
The byte array representing the value.

encode

public static void encode(java.nio.ByteBuffer buffer,
                          java.lang.String string)
                   throws EncoderException
Encode a String value

Parameters:
buffer - The PDU in which the value will be put
string - The String to be encoded. It is supposed to be UTF-8
Throws:
EncoderException

encode

public static void encode(java.nio.ByteBuffer buffer,
                          byte[] bytes)
                   throws EncoderException
Encode an OctetString value

Parameters:
buffer - The PDU in which the value will be put
byte[] - The bytes to be encoded
Throws:
EncoderException

encode

public static void encode(java.nio.ByteBuffer buffer,
                          OID oid)
                   throws EncoderException
Encode an OID value

Parameters:
buffer - The PDU in which the value will be put
string - The OID to be encoded
Throws:
EncoderException

encode

public static void encode(java.nio.ByteBuffer buffer,
                          int value)
                   throws EncoderException
Encode an integer value

Parameters:
buffer - The PDU in which the value will be put
value - The integer to be encoded
Throws:
EncoderException

encode

public static void encode(java.nio.ByteBuffer buffer,
                          byte tag,
                          int value)
                   throws EncoderException
Encode an integer value

Parameters:
buffer - The PDU in which the value will be put
tag - The tag if it's not an UNIVERSAL one
value - The integer to be encoded
Throws:
EncoderException

encodeEnumerated

public static void encodeEnumerated(java.nio.ByteBuffer buffer,
                                    int value)
                             throws EncoderException
Encode an enumerated value

Parameters:
buffer - The PDU in which the value will be put
value - The integer to be encoded
Throws:
EncoderException

encode

public static void encode(java.nio.ByteBuffer buffer,
                          boolean bool)
                   throws EncoderException
Encode a boolean value

Parameters:
buffer - The PDU in which the value will be put
bool - The boolean to be encoded
Throws:
EncoderException

toString

public java.lang.String toString()
Return a string representing the Value

Overrides:
toString in class java.lang.Object
Returns:
A string representing the value


Copyright © 2004-2011. All Rights Reserved.