Class TLV
- java.lang.Object
-
- org.apache.directory.api.asn1.ber.tlv.TLV
-
public class TLV extends Object
This class is used to store Tags, Lengths and Values decoded from a PDU.- Author:
- Apache Directory Project
-
-
Field Summary
Fields Modifier and Type Field Description static byte
CONSTRUCTED_FLAG
tag flag for the primitive/constructed bit - 0010 0000 - 0x20static int
LENGTH_EXTENSION_RESERVED
Value of the reserved extensionstatic int
LENGTH_LONG_FORM
A mask to get the Length formstatic int
LENGTH_SHORT_MASK
A mask to get the long form valuestatic int
SHORT_MASK
tag mask for the short tag format - 0001 1111 - 0x1Fstatic byte
TYPE_CLASS_MASK
mask to get the type class valuestatic byte
TYPE_CLASS_UNIVERSAL
value for the universal type class
-
Constructor Summary
Constructors Constructor Description TLV(int id)
Creates a new TLV object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static byte[]
getBytes(int length)
Utility function that return a byte array representing the lengthint
getExpectedLength()
Get the TLV expected length.int
getId()
int
getLength()
int
getLengthBytesRead()
int
getLengthNbBytes()
static int
getNbBytes(int length)
Utility function that return the number of bytes necessary to store the lengthTLV
getParent()
int
getSize()
The TLV size is calculated by adding the Tag's size, the Length's size and the Value's length, if any.byte
getTag()
BerValue
getValue()
void
incLengthBytesRead()
Increment the number of bytes read for this TLVboolean
isConstructed()
Checks to see if the current tlv's tag is constructed.static boolean
isConstructed(byte tag)
Checks to see if the tag is constructed.static boolean
isPrimitive(byte tag)
Checks to see if the tag represented by this Tag is primitive or constructed.static boolean
isUniversal(byte tag)
Tells if the tag is Universal or notvoid
reset()
Reset the TLV, so it can be reused for the next PDU decoding.void
setExpectedLength(int expectedLength)
Set the new expected length of the current TLV.void
setLength(int length)
Set the TLV's lengthvoid
setLengthBytesRead(int lengthBytesRead)
Set the currently read TLV's length bytes.void
setLengthNbBytes(int lengthNbBytes)
Set the number of bytes we should use to store the TLV's length.void
setParent(TLV parent)
void
setTag(byte tag)
Set a tag value for this TLV.String
toString()
Get a String representation of the TLV
-
-
-
Field Detail
-
CONSTRUCTED_FLAG
public static final byte CONSTRUCTED_FLAG
tag flag for the primitive/constructed bit - 0010 0000 - 0x20- See Also:
- Constant Field Values
-
TYPE_CLASS_MASK
public static final byte TYPE_CLASS_MASK
mask to get the type class value- See Also:
- Constant Field Values
-
TYPE_CLASS_UNIVERSAL
public static final byte TYPE_CLASS_UNIVERSAL
value for the universal type class- See Also:
- Constant Field Values
-
SHORT_MASK
public static final int SHORT_MASK
tag mask for the short tag format - 0001 1111 - 0x1F- See Also:
- Constant Field Values
-
LENGTH_LONG_FORM
public static final int LENGTH_LONG_FORM
A mask to get the Length form- See Also:
- Constant Field Values
-
LENGTH_EXTENSION_RESERVED
public static final int LENGTH_EXTENSION_RESERVED
Value of the reserved extension- See Also:
- Constant Field Values
-
LENGTH_SHORT_MASK
public static final int LENGTH_SHORT_MASK
A mask to get the long form value- See Also:
- Constant Field Values
-
-
Constructor Detail
-
TLV
public TLV(int id)
Creates a new TLV object.- Parameters:
id
- the TLV's id
-
-
Method Detail
-
isConstructed
public static boolean isConstructed(byte tag)
Checks to see if the tag is constructed.- Parameters:
tag
- the TLV's tag- Returns:
- true if constructed, false if primitive
-
isConstructed
public boolean isConstructed()
Checks to see if the current tlv's tag is constructed.- Returns:
- true if constructed, false if primitive
-
isPrimitive
public static boolean isPrimitive(byte tag)
Checks to see if the tag represented by this Tag is primitive or constructed.- Parameters:
tag
- the tag to be checked- Returns:
- true if it is primitive, false if it is constructed
-
isUniversal
public static boolean isUniversal(byte tag)
Tells if the tag is Universal or not- Parameters:
tag
- the tag to be checked- Returns:
- true if it is primitive, false if it is constructed
-
reset
public void reset()
Reset the TLV, so it can be reused for the next PDU decoding.
-
getTag
public byte getTag()
- Returns:
- Returns the tag.
-
setTag
public void setTag(byte tag)
Set a tag value for this TLV.- Parameters:
tag
- the tag field for this TLV.
-
getSize
public int getSize()
The TLV size is calculated by adding the Tag's size, the Length's size and the Value's length, if any.- Returns:
- Returns the size of the TLV.
-
getNbBytes
public static int getNbBytes(int length)
Utility function that return the number of bytes necessary to store the length- Parameters:
length
- The length to store in a byte array- Returns:
- The number of bytes necessary to store the length.
- See Also:
- X.690
-
getBytes
public static byte[] getBytes(int length)
Utility function that return a byte array representing the length- Parameters:
length
- The length to store in a byte array- Returns:
- The byte array representing the length.
-
getExpectedLength
public int getExpectedLength()
Get the TLV expected length.- Returns:
- The expectedLength.
-
setExpectedLength
public void setExpectedLength(int expectedLength)
Set the new expected length of the current TLV.- Parameters:
expectedLength
- The expectedLength to set.
-
getLengthNbBytes
public int getLengthNbBytes()
- Returns:
- The number of bytes necessary to store the TLV's length
-
setLengthNbBytes
public void setLengthNbBytes(int lengthNbBytes)
Set the number of bytes we should use to store the TLV's length.- Parameters:
lengthNbBytes
- The number of bytes necessary to store the TLV's length
-
getLength
public int getLength()
- Returns:
- the TLV's length
-
setLength
public void setLength(int length)
Set the TLV's length- Parameters:
length
- the TLV's length
-
getLengthBytesRead
public int getLengthBytesRead()
- Returns:
- The currently read TLV's length bytes
-
setLengthBytesRead
public void setLengthBytesRead(int lengthBytesRead)
Set the currently read TLV's length bytes.- Parameters:
lengthBytesRead
- the currently read TLV's length bytes
-
incLengthBytesRead
public void incLengthBytesRead()
Increment the number of bytes read for this TLV
-
getId
public int getId()
- Returns:
- The TLV's ID
-
-