super.transitions[LdapStatesEnum.OBJECT_NAME_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.OBJECT_NAME_STATE,
LdapStatesEnum.ATTRIBUTES_SR_STATE,
SEQUENCE,
new AllowGrammarEnd() );
// --------------------------------------------------------------------------------------------
// Transition from AttributesSR to PartialAttributesList
// --------------------------------------------------------------------------------------------
// SearchResultEntry ::= [APPLICATION 4] SEQUENCE { ...
// ...
// attributes PartialAttributeList }
//
// PartialAttributeList ::= SEQUENCE OF *SEQUENCE* {
// ...
//
// nothing to do
super.transitions[LdapStatesEnum.ATTRIBUTES_SR_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.ATTRIBUTES_SR_STATE,
LdapStatesEnum.PARTIAL_ATTRIBUTES_LIST_STATE,
SEQUENCE,
null );
// --------------------------------------------------------------------------------------------
// Transition from AttributesSR to Controls
// --------------------------------------------------------------------------------------------
// searchResultEntry SearchResultEntry,
// ... },
// controls [0] Controls OPTIONAL }
//
// Initialize the controls
super.transitions[LdapStatesEnum.ATTRIBUTES_SR_STATE.ordinal()][LdapConstants.CONTROLS_TAG] =
new GrammarTransition(
LdapStatesEnum.ATTRIBUTES_SR_STATE,
LdapStatesEnum.CONTROLS_STATE,
LdapConstants.CONTROLS_TAG,
new InitControls() );
// --------------------------------------------------------------------------------------------
// Transition from PartialAttributesList to typeSR
// --------------------------------------------------------------------------------------------
// SearchResultEntry ::= [APPLICATION 4] SEQUENCE { ...
// ...
// attributes PartialAttributeList }
//
// PartialAttributeList ::= SEQUENCE OF SEQUENCE {
// type AttributeDescription,
// ...
//
// Store the attribute's name.
super.transitions[LdapStatesEnum.PARTIAL_ATTRIBUTES_LIST_STATE.ordinal()][OCTET_STRING.getValue()] =
new GrammarTransition(
LdapStatesEnum.PARTIAL_ATTRIBUTES_LIST_STATE,
LdapStatesEnum.TYPE_SR_STATE,
OCTET_STRING,
new AddAttributeType() );
// --------------------------------------------------------------------------------------------
// Transition from typeSR to ValsSR
// --------------------------------------------------------------------------------------------
// SearchResultEntry ::= [APPLICATION 4] SEQUENCE { ...
// ...
// attributes PartialAttributeList }
//
// PartialAttributeList ::= SEQUENCE OF SEQUENCE {
// ...
// vals SET OF AttributeValue }
//
// We may have no value. Just allows the grammar to end
super.transitions[LdapStatesEnum.TYPE_SR_STATE.ordinal()][SET.getValue()] =
new GrammarTransition(
LdapStatesEnum.TYPE_SR_STATE,
LdapStatesEnum.VALS_SR_STATE,
SET,
new AllowGrammarEnd() );
// --------------------------------------------------------------------------------------------
// Transition from ValsSR to AttributeValueSR
// --------------------------------------------------------------------------------------------
// PartialAttributeList ::= SEQUENCE OF SEQUENCE {