org.apache.directory.shared.asn1.ber
Interface Asn1Container

All Known Implementing Classes:
AbstractContainer

public interface Asn1Container

Every ASN1 container must implement this interface.

Author:
Apache Directory Project

Method Summary
 TLV getCurrentTLV()
          Get the currentTLV
 int getDecodeBytes()
           
 Grammar getGrammar()
          Get the grammar
 int getMaxPDUSize()
           
 int getNewTlvId()
          Get a new TLV id
 TLV getParentTLV()
           
 TLVStateEnum getState()
          Get the current grammar state
 ByteBuffer getStream()
          Gets the current stream containing the bytes to decode
 int getTlvId()
          Get the current TLV id
 Enum<?> getTransition()
          Get the transition
 void incrementDecodeBytes(int nb)
          Increment the decodedBytes by the latest received buffer's size.
 boolean isGathering()
           
 boolean isGrammarEndAllowed()
          Check 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 tlv)
          Set the current TLV
 void setGathering(boolean isGathering)
          Set the isGathering flag
 void setGrammarEndAllowed(boolean grammarEndAllowed)
          Set the flag to allow a end transition
 void setMaxPDUSize(int maxPDUSize)
          Set the maximum PDU size.
 void setParentTLV(TLV parentTLV)
          Set the parent TLV
 void setState(TLVStateEnum state)
          Set the new current state
 void setStream(ByteBuffer stream)
          Stores the Stream being decoded
 void setTransition(Enum<?> transition)
          Update the transition from a state to another
 void updateParent()
          Look for the closest parent which has an expected length above 0
 

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()
Get the current grammar state

Returns:
Returns the current grammar state

setState

void setState(TLVStateEnum state)
Set the new current state

Parameters:
state - The new state

getCurrentTLV

TLV getCurrentTLV()
Get the currentTLV

Returns:
Returns the current TLV being decoded

setCurrentTLV

void setCurrentTLV(TLV tlv)
Set the current TLV

Parameters:
tlv - The current TLV

getGrammar

Grammar getGrammar()
Get the grammar

Returns:
Returns the grammar used to decode a LdapMessage.

getTransition

Enum<?> getTransition()
Get the transition

Returns:
Returns the transition from the previous state to the new state

setTransition

void setTransition(Enum<?> transition)
Update the transition from a state to another

Parameters:
transition - The transition to set

getParentTLV

TLV getParentTLV()
Returns:
get the parent TLV.

setParentTLV

void setParentTLV(TLV parentTLV)
Set the parent TLV

Parameters:
parentTLV - The new parent TLV

isGrammarEndAllowed

boolean isGrammarEndAllowed()
Check that we can have a end state after this transition

Returns:
true if this can be the last transition

setGrammarEndAllowed

void setGrammarEndAllowed(boolean grammarEndAllowed)
Set 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()
Get a new TLV id

Returns:
a unique value representing the current TLV id

getTlvId

int getTlvId()
Get the current TLV id

Returns:
a unique value representing the current TLV id

getDecodeBytes

int getDecodeBytes()
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.

incrementDecodeBytes

void incrementDecodeBytes(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.

Parameters:
tlv - The TLV to rollback

updateParent

void updateParent()
Look for the closest parent which has an expected length above 0


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'


Copyright © 2003-2011 The Apache Software Foundation. All Rights Reserved.