Interface Asn1Container
-
- All Known Subinterfaces:
ControlContainer
- All Known Implementing Classes:
AbstractContainer,AdDirSyncRequestContainer,AdDirSyncResponseContainer,AdPolicyHintsContainer,CancelRequestContainer,CertGenerationRequestContainer,ControlsContainer,EndTransactionRequestContainer,EndTransactionResponseContainer,EntryChangeContainer,GracefulDisconnectResponseContainer,GracefulShutdownRequestContainer,LdapMessageContainer,PagedResultsContainer,PasswordModifyRequestContainer,PasswordModifyResponseContainer,PasswordPolicyResponseContainer,PersistentSearchContainer,SortRequestContainer,SortResponseContainer,StoredProcedureRequestContainer,SubentriesContainer,SyncDoneValueContainer,SyncInfoValueContainer,SyncRequestValueContainer,SyncStateValueContainer,VirtualListViewRequestContainer,VirtualListViewResponseContainer
public interface Asn1ContainerEvery ASN1 container must implement this interface.- Author:
- Apache Directory Project
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description TLVgetCurrentTLV()Gets the currentTLVintgetDecodedBytes()GrammargetGrammar()Gets the grammarintgetMaxPDUSize()intgetNewTlvId()Gets a new TLV idTLVgetParentTLV()TLVStateEnumgetState()Gets the current grammar stateByteBuffergetStream()Gets the current stream containing the bytes to decodeintgetTlvId()Gets the current TLV idEnum<?>getTransition()Gets the transitionvoidincrementDecodedBytes(int nb)Increment the decodedBytes by the latest received buffer's size.booleanisGathering()booleanisGrammarEndAllowed()Checks that we can have a end state after this transitionvoidrewind()Move backward in the stream to the first byte for a given TLV.voidsetCurrentTLV(TLV tlv)Sets the current TLVvoidsetDecodedBytes(int decodedBytes)voidsetGathering(boolean isGathering)Set the isGathering flagvoidsetGrammar(Grammar<? extends Asn1Container> grammar)Sets the grammarvoidsetGrammarEndAllowed(boolean grammarEndAllowed)Sets the flag to allow a end transitionvoidsetMaxPDUSize(int maxPDUSize)Set the maximum PDU size.voidsetParentTLV(TLV parentTLV)Sets the parent TLVvoidsetState(TLVStateEnum state)Sets the new current statevoidsetStream(ByteBuffer stream)Stores the Stream being decodedvoidsetTransition(Enum<?> transition)Updates the transition from a state to anothervoidupdateParent()Update the parent's length
-
-
-
Method Detail
-
getStream
ByteBuffer getStream()
Gets the current stream containing the bytes to decode- Returns:
- The current stream
-
setStream
void setStream(ByteBuffer stream)
Stores the Stream being decoded- Parameters:
stream- The stream being decoded
-
getState
TLVStateEnum getState()
Gets the current grammar state- Returns:
- Returns the current grammar state
-
setState
void setState(TLVStateEnum state)
Sets the new current state- Parameters:
state- The new state
-
getCurrentTLV
TLV getCurrentTLV()
Gets the currentTLV- Returns:
- Returns the current TLV being decoded
-
setCurrentTLV
void setCurrentTLV(TLV tlv)
Sets the current TLV- Parameters:
tlv- The current TLV
-
getGrammar
Grammar getGrammar()
Gets the grammar- Returns:
- Returns the grammar used to decode a LdapMessage.
-
setGrammar
void setGrammar(Grammar<? extends Asn1Container> grammar)
Sets the grammar- Parameters:
grammar- The grammar to set
-
getTransition
Enum<?> getTransition()
Gets the transition- Returns:
- Returns the transition from the previous state to the new state
-
setTransition
void setTransition(Enum<?> transition)
Updates the transition from a state to another- Parameters:
transition- The transition to set
-
getParentTLV
TLV getParentTLV()
- Returns:
- The parent TLV.
-
setParentTLV
void setParentTLV(TLV parentTLV)
Sets the parent TLV- Parameters:
parentTLV- The new parent TLV
-
isGrammarEndAllowed
boolean isGrammarEndAllowed()
Checks that we can have a end state after this transition- Returns:
- true if this can be the last transition
-
setGrammarEndAllowed
void setGrammarEndAllowed(boolean grammarEndAllowed)
Sets the flag to allow a end transition- Parameters:
grammarEndAllowed- true or false, depending on the next transition being an end or not.
-
getNewTlvId
int getNewTlvId()
Gets a new TLV id- Returns:
- a unique value representing the current TLV id
-
getTlvId
int getTlvId()
Gets the current TLV id- Returns:
- a unique value representing the current TLV id
-
getDecodedBytes
int getDecodedBytes()
- Returns:
- The number of decoded bytes for this message. This is used to control the PDU size and avoid PDU exceeding the maximum allowed size to break the server.
-
setDecodedBytes
void setDecodedBytes(int decodedBytes)
- Parameters:
decodedBytes- The number of decoded bytes for this message.
-
incrementDecodedBytes
void incrementDecodedBytes(int nb)
Increment the decodedBytes by the latest received buffer's size.- Parameters:
nb- The buffer size.
-
getMaxPDUSize
int getMaxPDUSize()
- Returns:
- The maximum PDU size.
-
setMaxPDUSize
void setMaxPDUSize(int maxPDUSize)
Set the maximum PDU size.- Parameters:
maxPDUSize- The maximum PDU size (if negative or null, will be replaced by the max integer value)
-
rewind
void rewind()
Move backward in the stream to the first byte for a given TLV. This is useful when we have read some Tag and Length in order to define the next transition, and if this transition do a grammar switch.
-
updateParent
void updateParent()
Update the parent's length
-
isGathering
boolean isGathering()
- Returns:
- true if the container should gather the value into itself, false if the decoding of the Value part should be done immediately for constructed types.
-
setGathering
void setGathering(boolean isGathering)
Set the isGathering flag- Parameters:
isGathering- true to ask the Asn1Decoder to gather the data into the container. If not set, the default value is 'false'
-
-