super.transitions[LdapStatesEnum.CONTROLS_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.CONTROLS_STATE,
LdapStatesEnum.CONTROL_STATE,
SEQUENCE,
new CheckLengthNotNull() );
// ============================================================================================
// Transition from Control to ControlType
// ============================================================================================
// Control ::= SEQUENCE {
// ...
//
// Create a new Control object, and store it in the message Container
super.transitions[LdapStatesEnum.CONTROL_STATE.ordinal()][OCTET_STRING.getValue()] =
new GrammarTransition(
LdapStatesEnum.CONTROL_STATE,
LdapStatesEnum.CONTROL_TYPE_STATE,
OCTET_STRING,
new AddControl() );
// ============================================================================================
// Transition from ControlType to Control Criticality
// ============================================================================================
// Control ::= SEQUENCE {
// ...
// criticality BOOLEAN DEFAULT FALSE,
// ...
//
// Store the value in the control object created before
super.transitions[LdapStatesEnum.CONTROL_TYPE_STATE.ordinal()][BOOLEAN.getValue()] =
new GrammarTransition(
LdapStatesEnum.CONTROL_TYPE_STATE,
LdapStatesEnum.CRITICALITY_STATE,
OCTET_STRING,
new StoreControlCriticality() );
// ============================================================================================
// Transition from Control Criticality to Control Value
// ============================================================================================
// Control ::= SEQUENCE {
// ...
// controlValue OCTET STRING OPTIONAL }
//
// Store the value in the control object created before
super.transitions[LdapStatesEnum.CRITICALITY_STATE.ordinal()][OCTET_STRING.getValue()] =
new GrammarTransition(
LdapStatesEnum.CRITICALITY_STATE,
LdapStatesEnum.CONTROL_VALUE_STATE,
OCTET_STRING,
new StoreControlValue() );
// ============================================================================================
// Transition from Control Type to Control Value
// ============================================================================================
// Control ::= SEQUENCE {
// ...
// controlValue OCTET STRING OPTIONAL }
//
// Store the value in the control object created before
super.transitions[LdapStatesEnum.CONTROL_TYPE_STATE.ordinal()][OCTET_STRING.getValue()] =
new GrammarTransition(
LdapStatesEnum.CONTROL_TYPE_STATE,
LdapStatesEnum.CONTROL_VALUE_STATE,
OCTET_STRING,
new StoreControlValue() );
// ============================================================================================
// Transition from Control Type to Control
// ============================================================================================
// Control ::= SEQUENCE {
// ...
// controlValue OCTET STRING OPTIONAL }
//
// Store the value in the control object created before
super.transitions[LdapStatesEnum.CONTROL_TYPE_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.CONTROL_TYPE_STATE,
LdapStatesEnum.CONTROL_STATE,
SEQUENCE,
new CheckLengthNotNull() );
// ============================================================================================
// Transition from Control Criticality to Control
// ============================================================================================
// Control ::= SEQUENCE {
// ...
// controlValue OCTET STRING OPTIONAL }
//
// Store the value in the control object created before
super.transitions[LdapStatesEnum.CRITICALITY_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.CRITICALITY_STATE,
LdapStatesEnum.CONTROL_STATE,
SEQUENCE,
new CheckLengthNotNull() );
// ============================================================================================
// Transition from Control Value to Control
// ============================================================================================
// Control ::= SEQUENCE {
// ...
// controlValue OCTET STRING OPTIONAL }
//
// Store the value in the control object created before
super.transitions[LdapStatesEnum.CONTROL_VALUE_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.CONTROL_VALUE_STATE,
LdapStatesEnum.CONTROL_STATE,
SEQUENCE,
new CheckLengthNotNull() );
// --------------------------------------------------------------------------------------------
// Transition from message ID to SearchRequest Message
// --------------------------------------------------------------------------------------------
// LdapMessage ::= ... SearchRequest ...