public abstract class AbstractContainer extends Object implements Asn1Container
| Modifier and Type | Field and Description |
|---|---|
private int |
decodedBytes
A counter for the decoded bytes
|
private boolean |
gathering
A flag telling if the Value should be accumulated before being decoded
for constructed types
|
private Grammar<? extends Asn1Container> |
grammar
All the possible grammars
|
private boolean |
grammarEndAllowed
The grammar end transition flag
|
private int |
id
The incremental id used to tag TLVs
|
private int |
maxPDUSize
The maximum allowed size for a PDU.
|
private TLV |
parentTLV
The parent TLV
|
private TLVStateEnum |
state
The current state of the decoding
|
private ByteBuffer |
stream
The Stream being decoded
|
private TLV |
tlv
The current TLV
|
private Enum<?> |
transition
The current transition
|
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractContainer()
Creates a new instance of AbstractContainer with a starting state.
|
protected |
AbstractContainer(ByteBuffer stream)
Creates a new instance of AbstractContainer with a starting state.
|
| Modifier and Type | Method and Description |
|---|---|
void |
clean()
Clean the container for the next usage.
|
TLV |
getCurrentTLV()
Gets the currentTLV
|
int |
getDecodedBytes() |
Grammar<? extends Asn1Container> |
getGrammar()
Gets the grammar
|
int |
getMaxPDUSize() |
int |
getNewTlvId()
Gets a new TLV id
|
TLV |
getParentTLV() |
TLVStateEnum |
getState()
Gets the current grammar state
|
ByteBuffer |
getStream()
Gets the current stream containing the bytes to decode
|
int |
getTlvId()
Gets the current TLV id
|
Enum<?> |
getTransition()
Gets the transition
|
void |
incrementDecodedBytes(int nb)
Increment the decodedBytes by the latest received buffer's size.
|
boolean |
isGathering() |
boolean |
isGrammarEndAllowed()
Checks that we can have a end state after this transition
|
void |
rewind()
Move backward in the stream to the first byte for a given TLV.
|
void |
setCurrentTLV(TLV currentTLV)
Sets the current TLV
|
void |
setDecodedBytes(int decodedBytes) |
void |
setGathering(boolean gathering)
Set the isGathering flag
|
void |
setGrammar(Grammar<? extends Asn1Container> grammar)
Sets the grammar
|
void |
setGrammarEndAllowed(boolean grammarEndAllowed)
Sets the flag to allow a end transition
|
void |
setMaxPDUSize(int maxPDUSize)
Set the maximum PDU size.
|
void |
setParentTLV(TLV parentTLV)
Sets the parent TLV
|
void |
setState(TLVStateEnum state)
Sets the new current state
|
void |
setStream(ByteBuffer stream)
Stores the Stream being decoded
|
void |
setTransition(Enum<?> transition)
Updates the transition from a state to another
|
void |
updateParent()
Update the parent's length
|
private Grammar<? extends Asn1Container> grammar
private TLVStateEnum state
private Enum<?> transition
private TLV tlv
private TLV parentTLV
private boolean grammarEndAllowed
private int decodedBytes
private int maxPDUSize
private int id
private ByteBuffer stream
private boolean gathering
protected AbstractContainer()
protected AbstractContainer(ByteBuffer stream)
stream - the buffer containing the data to decodepublic Grammar<? extends Asn1Container> getGrammar()
getGrammar in interface Asn1Containerpublic void setGrammar(Grammar<? extends Asn1Container> grammar)
setGrammar in interface Asn1Containergrammar - The grammar to setpublic TLVStateEnum getState()
getState in interface Asn1Containerpublic void setState(TLVStateEnum state)
setState in interface Asn1Containerstate - The new statepublic boolean isGrammarEndAllowed()
isGrammarEndAllowed in interface Asn1Containerpublic void setGrammarEndAllowed(boolean grammarEndAllowed)
setGrammarEndAllowed in interface Asn1ContainergrammarEndAllowed - true or false, depending on the next transition
being an end or not.public Enum<?> getTransition()
getTransition in interface Asn1Containerpublic void setTransition(Enum<?> transition)
setTransition in interface Asn1Containertransition - The transition to setpublic void setCurrentTLV(TLV currentTLV)
setCurrentTLV in interface Asn1ContainercurrentTLV - The current TLVpublic TLV getCurrentTLV()
getCurrentTLV in interface Asn1Containerpublic TLV getParentTLV()
getParentTLV in interface Asn1Containerpublic void setParentTLV(TLV parentTLV)
setParentTLV in interface Asn1ContainerparentTLV - The new parent TLVpublic void clean()
public int getNewTlvId()
getNewTlvId in interface Asn1Containerpublic int getTlvId()
getTlvId in interface Asn1Containerpublic int getDecodedBytes()
getDecodedBytes in interface Asn1Containerpublic void setDecodedBytes(int decodedBytes)
setDecodedBytes in interface Asn1ContainerdecodedBytes - The number of decoded bytes for this message.public void incrementDecodedBytes(int nb)
incrementDecodedBytes in interface Asn1Containernb - The buffer size.public int getMaxPDUSize()
getMaxPDUSize in interface Asn1Containerpublic void setMaxPDUSize(int maxPDUSize)
setMaxPDUSize in interface Asn1ContainermaxPDUSize - The maximum PDU size (if negative or null, will be
replaced by the max integer value)public ByteBuffer getStream()
getStream in interface Asn1Containerpublic void setStream(ByteBuffer stream)
setStream in interface Asn1Containerstream - The stream being decodedpublic void rewind()
rewind in interface Asn1Containerpublic void updateParent()
updateParent in interface Asn1Containerpublic boolean isGathering()
isGathering in interface Asn1Containerpublic void setGathering(boolean gathering)
setGathering in interface Asn1Containergathering - true to ask the Asn1Decoder to gather the data
into the container. If not set, the default value is 'false'Copyright © 2003–2019 The Apache Software Foundation. All rights reserved.