super.transitions[LdapStatesEnum.ASSERTION_VALUE_FILTER_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.ASSERTION_VALUE_FILTER_STATE,
LdapStatesEnum.ATTRIBUTE_DESCRIPTION_LIST_STATE,
SEQUENCE,
new InitSearchRequestAttributeDescList() );
// --------------------------------------------------------------------------------------------
// Transition from Attribute Description List to AttributeDescription
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// attributes AttributeDescriptionList }
//
// AttributeDescriptionList ::= SEQUENCE OF
// AttributeDescription
//
// Store attribute description
super.transitions[LdapStatesEnum.ATTRIBUTE_DESCRIPTION_LIST_STATE.ordinal()][OCTET_STRING.getValue()] =
new GrammarTransition(
LdapStatesEnum.ATTRIBUTE_DESCRIPTION_LIST_STATE,
LdapStatesEnum.ATTRIBUTE_DESCRIPTION_STATE,
OCTET_STRING,
new StoreSearchRequestAttributeDesc() );
// --------------------------------------------------------------------------------------------
// Transition from Attribute Description List to Controls
// --------------------------------------------------------------------------------------------
// searchRequest SearchRequest,
// ... },
// controls [0] Controls OPTIONAL }
//
// Empty attribute description list, with controls
super.transitions[LdapStatesEnum.ATTRIBUTE_DESCRIPTION_LIST_STATE.ordinal()][LdapConstants.CONTROLS_TAG] =
new GrammarTransition(
LdapStatesEnum.ATTRIBUTE_DESCRIPTION_LIST_STATE,
LdapStatesEnum.CONTROLS_STATE,
LdapConstants.CONTROLS_TAG,
new InitControls() );
// --------------------------------------------------------------------------------------------
// Transition from Attribute Description to AttributeDescription
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// attributes AttributeDescriptionList }
//
// AttributeDescriptionList ::= SEQUENCE OF
// AttributeDescription
//
// Store attribute description
super.transitions[LdapStatesEnum.ATTRIBUTE_DESCRIPTION_STATE.ordinal()][OCTET_STRING.getValue()] =
new GrammarTransition(
LdapStatesEnum.ATTRIBUTE_DESCRIPTION_STATE,
LdapStatesEnum.ATTRIBUTE_DESCRIPTION_STATE,
OCTET_STRING,
new StoreSearchRequestAttributeDesc() );
// --------------------------------------------------------------------------------------------
// transition from Attribute Description to Controls.
// --------------------------------------------------------------------------------------------
// searchRequest SearchRequest,
// ... },
// controls [0] Controls OPTIONAL }
//
super.transitions[LdapStatesEnum.ATTRIBUTE_DESCRIPTION_STATE.ordinal()][LdapConstants.CONTROLS_TAG] =
new GrammarTransition(
LdapStatesEnum.ATTRIBUTE_DESCRIPTION_STATE,
LdapStatesEnum.CONTROLS_STATE,
LdapConstants.CONTROLS_TAG,
new InitControls() );
// --------------------------------------------------------------------------------------------
// Transition from Greater Or Equal to Attribute Desc Filter
// --------------------------------------------------------------------------------------------
// Filter ::= CHOICE {
// ...
// greaterOrEqual [5] AttributeValueAssertion,
// ...
//
// AttributeValueAssertion ::= SEQUENCE {
// attributeDesc AttributeDescription,
// ...
//
// Init Attribute Desc filter
super.transitions[LdapStatesEnum.GREATER_OR_EQUAL_STATE.ordinal()][OCTET_STRING.getValue()] =
new GrammarTransition(
LdapStatesEnum.GREATER_OR_EQUAL_STATE,
LdapStatesEnum.ATTRIBUTE_DESC_FILTER_STATE,
OCTET_STRING,
new InitAttributeDescFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Less Or Equal to Attribute Desc Filter
// --------------------------------------------------------------------------------------------
// Filter ::= CHOICE {
// ...
// lessOrEqual [6] AttributeValueAssertion,
// ...
//
// AttributeValueAssertion ::= SEQUENCE {
// attributeDesc AttributeDescription,
// ...
//
// Init Attribute Desc filter
super.transitions[LdapStatesEnum.LESS_OR_EQUAL_STATE.ordinal()][OCTET_STRING.getValue()] =
new GrammarTransition(
LdapStatesEnum.LESS_OR_EQUAL_STATE,
LdapStatesEnum.ATTRIBUTE_DESC_FILTER_STATE,
OCTET_STRING,
new InitAttributeDescFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Substrings to typeSubstring
// --------------------------------------------------------------------------------------------
// Filter ::= CHOICE {
// ...
// substrings [4] SubstringFilter,
// ...
//
// SubstringFilter ::= SEQUENCE {
// type AttributeDescription,
// ...
//
// Init substring type
super.transitions[LdapStatesEnum.SUBSTRING_FILTER_STATE.ordinal()][OCTET_STRING.getValue()] =
new GrammarTransition(
LdapStatesEnum.SUBSTRING_FILTER_STATE,
LdapStatesEnum.TYPE_SUBSTRING_STATE,
OCTET_STRING,
new StoreSubstringFilterType() );
// --------------------------------------------------------------------------------------------
// Transition from typeSubstring to substrings
// --------------------------------------------------------------------------------------------
// Filter ::= CHOICE {
// ...
// substrings [4] SubstringFilter,
// ...
//
// SubstringFilter ::= SEQUENCE {
// ...
// substrings SEQUENCE OF CHOICE {
// ...
//
// Init substring type
super.transitions[LdapStatesEnum.TYPE_SUBSTRING_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.TYPE_SUBSTRING_STATE,
LdapStatesEnum.SUBSTRINGS_STATE,
SEQUENCE,
new CheckNotNullLength<LdapMessageContainer<SearchRequestDecorator>>() );
// --------------------------------------------------------------------------------------------
// Transition from substrings to Initial
// --------------------------------------------------------------------------------------------
// SubstringFilter ::= SEQUENCE {
// ...
// substrings SEQUENCE OF CHOICE {
// initial [0] LDAPSTRING,
// ...
//
// Store initial value
super.transitions[LdapStatesEnum.SUBSTRINGS_STATE.ordinal()][LdapConstants.SUBSTRINGS_FILTER_INITIAL_TAG] =
new GrammarTransition(
LdapStatesEnum.SUBSTRINGS_STATE,
LdapStatesEnum.INITIAL_STATE,
LdapConstants.SUBSTRINGS_FILTER_INITIAL_TAG,
new StoreInitial() );
// --------------------------------------------------------------------------------------------
// Transition from substrings to any
// --------------------------------------------------------------------------------------------
// SubstringFilter ::= SEQUENCE {
// ...
// substrings SEQUENCE OF CHOICE {
// ...
// any [1] LDAPSTRING,
// ...
//
// Store substring any type
super.transitions[LdapStatesEnum.SUBSTRINGS_STATE.ordinal()][LdapConstants.SUBSTRINGS_FILTER_ANY_TAG] =
new GrammarTransition(
LdapStatesEnum.SUBSTRINGS_STATE,
LdapStatesEnum.ANY_STATE,
LdapConstants.SUBSTRINGS_FILTER_ANY_TAG,
new StoreAny() );
// --------------------------------------------------------------------------------------------
// Transition from substrings to final
// --------------------------------------------------------------------------------------------
// SubstringFilter ::= SEQUENCE {
// ...
// substrings SEQUENCE OF CHOICE {
// ...
// final [2] LDAPSTRING }
//
// Store substring final type
super.transitions[LdapStatesEnum.SUBSTRINGS_STATE.ordinal()][LdapConstants.SUBSTRINGS_FILTER_FINAL_TAG] =
new GrammarTransition(
LdapStatesEnum.SUBSTRINGS_STATE,
LdapStatesEnum.FINAL_STATE,
LdapConstants.SUBSTRINGS_FILTER_FINAL_TAG,
new StoreFinal() );
// --------------------------------------------------------------------------------------------
// Transition from initial to any
// --------------------------------------------------------------------------------------------
// SubstringFilter ::= SEQUENCE {
// ...
// substrings SEQUENCE OF CHOICE {
// ...
// any [1] LDAPSTRING,
// ...
//
// Store substring any type
super.transitions[LdapStatesEnum.INITIAL_STATE.ordinal()][LdapConstants.SUBSTRINGS_FILTER_ANY_TAG] =
new GrammarTransition(
LdapStatesEnum.INITIAL_STATE,
LdapStatesEnum.ANY_STATE,
LdapConstants.SUBSTRINGS_FILTER_ANY_TAG,
new StoreAny() );
// --------------------------------------------------------------------------------------------
// Transition from initial to final
// --------------------------------------------------------------------------------------------
// SubstringFilter ::= SEQUENCE {
// ...
// substrings SEQUENCE OF CHOICE {
// ...
// final [2] LDAPSTRING }
//
// Store substring final type
super.transitions[LdapStatesEnum.INITIAL_STATE.ordinal()][LdapConstants.SUBSTRINGS_FILTER_FINAL_TAG] =
new GrammarTransition(
LdapStatesEnum.INITIAL_STATE,
LdapStatesEnum.FINAL_STATE,
LdapConstants.SUBSTRINGS_FILTER_FINAL_TAG,
new StoreFinal() );
// --------------------------------------------------------------------------------------------
// Transition from initial to Attribute Description List
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// attributes AttributeDescriptionList }
//
// AttributeDescriptionList ::= SEQUENCE OF
// AttributeDescription
//
// Init attribute description list
super.transitions[LdapStatesEnum.INITIAL_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.INITIAL_STATE,
LdapStatesEnum.ATTRIBUTE_DESCRIPTION_LIST_STATE,
SEQUENCE,
new InitSearchRequestAttributeDescList() );
// --------------------------------------------------------------------------------------------
// Transition from initial to AND filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// and [0] SET OF Filter,
// ...
//
// Init AND filter
super.transitions[LdapStatesEnum.INITIAL_STATE.ordinal()][LdapConstants.AND_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.INITIAL_STATE,
LdapStatesEnum.AND_STATE,
LdapConstants.AND_FILTER_TAG,
new InitAndFilter() );
// --------------------------------------------------------------------------------------------
// Transition from initial to OR filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// or [1] SET OF Filter,
// ...
//
// Init OR filter
super.transitions[LdapStatesEnum.INITIAL_STATE.ordinal()][LdapConstants.OR_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.INITIAL_STATE,
LdapStatesEnum.OR_STATE,
LdapConstants.OR_FILTER_TAG,
new InitOrFilter() );
// --------------------------------------------------------------------------------------------
// Transition from initial to NOT filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// not [2] SET OF Filter,
// ...
//
// Init NOT filter
super.transitions[LdapStatesEnum.INITIAL_STATE.ordinal()][LdapConstants.NOT_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.INITIAL_STATE,
LdapStatesEnum.NOT_STATE,
LdapConstants.NOT_FILTER_TAG,
new InitNotFilter() );
// --------------------------------------------------------------------------------------------
// Transition from initial to Equality Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// equalityMatch [3] AttributeValueAssertion,
// ...
//
// Init NOT filter
super.transitions[LdapStatesEnum.INITIAL_STATE.ordinal()][LdapConstants.EQUALITY_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.INITIAL_STATE,
LdapStatesEnum.EQUALITY_MATCH_STATE,
LdapConstants.EQUALITY_MATCH_FILTER_TAG,
new InitEqualityMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from initial to Substrings filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// substrings [4] SubstringFilter,
// ...
//
// Init Substrings filter
super.transitions[LdapStatesEnum.INITIAL_STATE.ordinal()][LdapConstants.SUBSTRINGS_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.INITIAL_STATE,
LdapStatesEnum.SUBSTRING_FILTER_STATE,
LdapConstants.SUBSTRINGS_FILTER_TAG,
new InitSubstringsFilter() );
// --------------------------------------------------------------------------------------------
// Transition from initial to GreaterOrEqual filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// greaterOrEqual [5] AttributeValueAssertion,
// ...
//
// Init Greater Or Equal filter
super.transitions[LdapStatesEnum.INITIAL_STATE.ordinal()][LdapConstants.GREATER_OR_EQUAL_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.INITIAL_STATE,
LdapStatesEnum.GREATER_OR_EQUAL_STATE,
LdapConstants.GREATER_OR_EQUAL_FILTER_TAG,
new InitGreaterOrEqualFilter() );
// --------------------------------------------------------------------------------------------
// Transition from initial to LessOrEqual filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// LessOrEqual [6] AttributeValueAssertion,
// ...
//
// Init Less Or Equal filter
super.transitions[LdapStatesEnum.INITIAL_STATE.ordinal()][LdapConstants.LESS_OR_EQUAL_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.INITIAL_STATE,
LdapStatesEnum.LESS_OR_EQUAL_STATE,
LdapConstants.LESS_OR_EQUAL_FILTER_TAG,
new InitLessOrEqualFilter() );
// --------------------------------------------------------------------------------------------
// Transition from initial to Present filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// present [7] AttributeDescription,
// ...
//
// Init present filter
super.transitions[LdapStatesEnum.INITIAL_STATE.ordinal()][LdapConstants.PRESENT_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.INITIAL_STATE,
LdapStatesEnum.PRESENT_STATE,
LdapConstants.PRESENT_FILTER_TAG,
new InitPresentFilter() );
// --------------------------------------------------------------------------------------------
// Transition from initial to Approx Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// approxMatch [8] AttributeValueAssertion,
// ...
//
// Init Approx Match filter
super.transitions[LdapStatesEnum.INITIAL_STATE.ordinal()][LdapConstants.APPROX_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.INITIAL_STATE,
LdapStatesEnum.APPROX_MATCH_STATE,
LdapConstants.APPROX_MATCH_FILTER_TAG,
new InitApproxMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from initial to Extensible Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// extensibleMatch [9] MatchingRuleAssertion,
// ...
//
// Init Assertion Value Filter filter
super.transitions[LdapStatesEnum.INITIAL_STATE.ordinal()][LdapConstants.EXTENSIBLE_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.INITIAL_STATE,
LdapStatesEnum.EXTENSIBLE_MATCH_STATE,
LdapConstants.EXTENSIBLE_MATCH_FILTER_TAG,
new InitExtensibleMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from any to final
// --------------------------------------------------------------------------------------------
// SubstringFilter ::= SEQUENCE {
// ...
// substrings SEQUENCE OF CHOICE {
// ...
// final [2] LDAPSTRING }
//
// Store substring final type
super.transitions[LdapStatesEnum.ANY_STATE.ordinal()][LdapConstants.SUBSTRINGS_FILTER_FINAL_TAG] =
new GrammarTransition(
LdapStatesEnum.ANY_STATE,
LdapStatesEnum.FINAL_STATE,
LdapConstants.SUBSTRINGS_FILTER_FINAL_TAG,
new StoreFinal() );
// --------------------------------------------------------------------------------------------
// Transition from any to any
// --------------------------------------------------------------------------------------------
// SubstringFilter ::= SEQUENCE {
// ...
// substrings SEQUENCE OF CHOICE {
// ...
// any [1] LDAPSTRING
// ...
//
// Store substring any type
super.transitions[LdapStatesEnum.ANY_STATE.ordinal()][LdapConstants.SUBSTRINGS_FILTER_ANY_TAG] =
new GrammarTransition(
LdapStatesEnum.ANY_STATE,
LdapStatesEnum.ANY_STATE,
LdapConstants.SUBSTRINGS_FILTER_ANY_TAG,
new StoreAny() );
// --------------------------------------------------------------------------------------------
// Transition from any to Attribute Description List
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// attributes AttributeDescriptionList }
//
// AttributeDescriptionList ::= SEQUENCE OF
// AttributeDescription
//
// Init attribute description list
super.transitions[LdapStatesEnum.ANY_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.ANY_STATE,
LdapStatesEnum.ATTRIBUTE_DESCRIPTION_LIST_STATE,
SEQUENCE,
new InitSearchRequestAttributeDescList() );
// --------------------------------------------------------------------------------------------
// Transition from any to AND filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// and [0] SET OF Filter,
// ...
//
// Init AND filter
super.transitions[LdapStatesEnum.ANY_STATE.ordinal()][LdapConstants.AND_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.ANY_STATE,
LdapStatesEnum.AND_STATE,
LdapConstants.AND_FILTER_TAG,
new InitAndFilter() );
// --------------------------------------------------------------------------------------------
// Transition from any to OR filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// or [1] SET OF Filter,
// ...
//
// Init OR filter
super.transitions[LdapStatesEnum.ANY_STATE.ordinal()][LdapConstants.OR_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.ANY_STATE,
LdapStatesEnum.OR_STATE,
LdapConstants.OR_FILTER_TAG,
new InitOrFilter() );
// --------------------------------------------------------------------------------------------
// Transition from any to NOT filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// not [2] SET OF Filter,
// ...
//
// Init NOT filter
super.transitions[LdapStatesEnum.ANY_STATE.ordinal()][LdapConstants.NOT_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.ANY_STATE,
LdapStatesEnum.NOT_STATE,
LdapConstants.NOT_FILTER_TAG,
new InitNotFilter() );
// --------------------------------------------------------------------------------------------
// Transition from any to Equality Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// equalityMatch [3] AttributeValueAssertion,
// ...
//
// Init NOT filter
super.transitions[LdapStatesEnum.ANY_STATE.ordinal()][LdapConstants.EQUALITY_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.ANY_STATE,
LdapStatesEnum.EQUALITY_MATCH_STATE,
LdapConstants.EQUALITY_MATCH_FILTER_TAG,
new InitEqualityMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from any to Substrings filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// substrings [4] SubstringFilter,
// ...
//
// Init Substrings filter
super.transitions[LdapStatesEnum.ANY_STATE.ordinal()][LdapConstants.SUBSTRINGS_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.ANY_STATE,
LdapStatesEnum.SUBSTRING_FILTER_STATE,
LdapConstants.SUBSTRINGS_FILTER_TAG,
new InitSubstringsFilter() );
// --------------------------------------------------------------------------------------------
// Transition from any to GreaterOrEqual filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// greaterOrEqual [5] AttributeValueAssertion,
// ...
//
// Init Greater Or Equal filter
super.transitions[LdapStatesEnum.ANY_STATE.ordinal()][LdapConstants.GREATER_OR_EQUAL_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.ANY_STATE,
LdapStatesEnum.GREATER_OR_EQUAL_STATE,
LdapConstants.GREATER_OR_EQUAL_FILTER_TAG,
new InitGreaterOrEqualFilter() );
// --------------------------------------------------------------------------------------------
// Transition from any to LessOrEqual filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// LessOrEqual [6] AttributeValueAssertion,
// ...
//
// Init Less Or Equal filter
super.transitions[LdapStatesEnum.ANY_STATE.ordinal()][LdapConstants.LESS_OR_EQUAL_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.ANY_STATE,
LdapStatesEnum.LESS_OR_EQUAL_STATE,
LdapConstants.LESS_OR_EQUAL_FILTER_TAG,
new InitLessOrEqualFilter() );
// --------------------------------------------------------------------------------------------
// Transition from any to Present filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// present [7] AttributeDescription,
// ...
//
// Init present filter
super.transitions[LdapStatesEnum.ANY_STATE.ordinal()][LdapConstants.PRESENT_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.ANY_STATE,
LdapStatesEnum.PRESENT_STATE,
LdapConstants.PRESENT_FILTER_TAG,
new InitPresentFilter() );
// --------------------------------------------------------------------------------------------
// Transition from any to Approx Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// approxMatch [8] AttributeValueAssertion,
// ...
//
// Init Approx Match filter
super.transitions[LdapStatesEnum.ANY_STATE.ordinal()][LdapConstants.APPROX_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.ANY_STATE,
LdapStatesEnum.APPROX_MATCH_STATE,
LdapConstants.APPROX_MATCH_FILTER_TAG,
new InitApproxMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from any to Extensible Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// extensibleMatch [9] MatchingRuleAssertion,
// ...
//
// Init Assertion Value Filter filter
super.transitions[LdapStatesEnum.ANY_STATE.ordinal()][LdapConstants.EXTENSIBLE_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.ANY_STATE,
LdapStatesEnum.EXTENSIBLE_MATCH_STATE,
LdapConstants.EXTENSIBLE_MATCH_FILTER_TAG,
new InitExtensibleMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from final to Attribute Description List
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// attributes AttributeDescriptionList }
//
// AttributeDescriptionList ::= SEQUENCE OF
// AttributeDescription
//
// Init attribute description list
super.transitions[LdapStatesEnum.FINAL_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.FINAL_STATE,
LdapStatesEnum.ATTRIBUTE_DESCRIPTION_LIST_STATE,
SEQUENCE,
new InitSearchRequestAttributeDescList() );
// --------------------------------------------------------------------------------------------
// Transition from final to AND filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// and [0] SET OF Filter,
// ...
//
// Init AND filter
super.transitions[LdapStatesEnum.FINAL_STATE.ordinal()][LdapConstants.AND_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.FINAL_STATE,
LdapStatesEnum.AND_STATE,
LdapConstants.AND_FILTER_TAG,
new InitAndFilter() );
// --------------------------------------------------------------------------------------------
// Transition from final to OR filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// or [1] SET OF Filter,
// ...
//
// Init OR filter
super.transitions[LdapStatesEnum.FINAL_STATE.ordinal()][LdapConstants.OR_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.FINAL_STATE,
LdapStatesEnum.OR_STATE,
LdapConstants.OR_FILTER_TAG,
new InitOrFilter() );
// --------------------------------------------------------------------------------------------
// Transition from final to NOT filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// not [2] SET OF Filter,
// ...
//
// Init NOT filter
super.transitions[LdapStatesEnum.FINAL_STATE.ordinal()][LdapConstants.NOT_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.FINAL_STATE,
LdapStatesEnum.NOT_STATE,
LdapConstants.NOT_FILTER_TAG,
new InitNotFilter() );
// --------------------------------------------------------------------------------------------
// Transition from final to Equality Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// equalityMatch [3] AttributeValueAssertion,
// ...
//
// Init NOT filter
super.transitions[LdapStatesEnum.FINAL_STATE.ordinal()][LdapConstants.EQUALITY_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.FINAL_STATE,
LdapStatesEnum.EQUALITY_MATCH_STATE,
LdapConstants.EQUALITY_MATCH_FILTER_TAG,
new InitEqualityMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from final to Substrings filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// substrings [4] SubstringFilter,
// ...
//
// Init Substrings filter
super.transitions[LdapStatesEnum.FINAL_STATE.ordinal()][LdapConstants.SUBSTRINGS_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.FINAL_STATE,
LdapStatesEnum.SUBSTRING_FILTER_STATE,
LdapConstants.SUBSTRINGS_FILTER_TAG,
new InitSubstringsFilter() );
// --------------------------------------------------------------------------------------------
// Transition from final to GreaterOrEqual filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// greaterOrEqual [5] AttributeValueAssertion,
// ...
//
// Init Greater Or Equal filter
super.transitions[LdapStatesEnum.FINAL_STATE.ordinal()][LdapConstants.GREATER_OR_EQUAL_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.FINAL_STATE,
LdapStatesEnum.GREATER_OR_EQUAL_STATE,
LdapConstants.GREATER_OR_EQUAL_FILTER_TAG,
new InitGreaterOrEqualFilter() );
// --------------------------------------------------------------------------------------------
// Transition from final to LessOrEqual filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// LessOrEqual [6] AttributeValueAssertion,
// ...
//
// Init Less Or Equal filter
super.transitions[LdapStatesEnum.FINAL_STATE.ordinal()][LdapConstants.LESS_OR_EQUAL_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.FINAL_STATE,
LdapStatesEnum.LESS_OR_EQUAL_STATE,
LdapConstants.LESS_OR_EQUAL_FILTER_TAG,
new InitLessOrEqualFilter() );
// --------------------------------------------------------------------------------------------
// Transition from final to Present filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// present [7] AttributeDescription,
// ...
//
// Init present filter
super.transitions[LdapStatesEnum.FINAL_STATE.ordinal()][LdapConstants.PRESENT_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.FINAL_STATE,
LdapStatesEnum.PRESENT_STATE,
LdapConstants.PRESENT_FILTER_TAG,
new InitPresentFilter() );
// --------------------------------------------------------------------------------------------
// Transition from final to Approx Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// approxMatch [8] AttributeValueAssertion,
// ...
//
// Init Approx Match filter
super.transitions[LdapStatesEnum.FINAL_STATE.ordinal()][LdapConstants.APPROX_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.FINAL_STATE,
LdapStatesEnum.APPROX_MATCH_STATE,
LdapConstants.APPROX_MATCH_FILTER_TAG,
new InitApproxMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from final to Extensible Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// extensibleMatch [9] MatchingRuleAssertion,
// ...
//
// Init Assertion Value Filter filter
super.transitions[LdapStatesEnum.FINAL_STATE.ordinal()][LdapConstants.EXTENSIBLE_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.FINAL_STATE,
LdapStatesEnum.EXTENSIBLE_MATCH_STATE,
LdapConstants.EXTENSIBLE_MATCH_FILTER_TAG,
new InitExtensibleMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Present Filter to AND filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// and [0] SET OF Filter,
// ...
//
// Init AND filter
super.transitions[LdapStatesEnum.PRESENT_STATE.ordinal()][LdapConstants.AND_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.PRESENT_STATE,
LdapStatesEnum.AND_STATE,
LdapConstants.AND_FILTER_TAG,
new InitAndFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Present Filter to OR filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// or [1] SET OF Filter,
// ...
//
// Init OR filter
super.transitions[LdapStatesEnum.PRESENT_STATE.ordinal()][LdapConstants.OR_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.PRESENT_STATE,
LdapStatesEnum.OR_STATE,
LdapConstants.OR_FILTER_TAG,
new InitOrFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Present Filter to NOT filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// not [2] SET OF Filter,
// ...
//
// Init NOT filter
super.transitions[LdapStatesEnum.PRESENT_STATE.ordinal()][LdapConstants.NOT_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.PRESENT_STATE,
LdapStatesEnum.NOT_STATE,
LdapConstants.NOT_FILTER_TAG,
new InitNotFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Present Filter to Equality Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// equalityMatch [3] AttributeValueAssertion,
// ...
//
// Init NOT filter
super.transitions[LdapStatesEnum.PRESENT_STATE.ordinal()][LdapConstants.EQUALITY_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.PRESENT_STATE,
LdapStatesEnum.EQUALITY_MATCH_STATE,
LdapConstants.EQUALITY_MATCH_FILTER_TAG,
new InitEqualityMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Present Filter to Substrings filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// substrings [4] SubstringFilter,
// ...
//
// Init Substrings filter
super.transitions[LdapStatesEnum.PRESENT_STATE.ordinal()][LdapConstants.SUBSTRINGS_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.PRESENT_STATE,
LdapStatesEnum.SUBSTRING_FILTER_STATE,
LdapConstants.SUBSTRINGS_FILTER_TAG,
new InitSubstringsFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Present Filter to GreaterOrEqual filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// greaterOrEqual [5] AttributeValueAssertion,
// ...
//
// Init Greater Or Equal filter
super.transitions[LdapStatesEnum.PRESENT_STATE.ordinal()][LdapConstants.GREATER_OR_EQUAL_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.PRESENT_STATE,
LdapStatesEnum.GREATER_OR_EQUAL_STATE,
LdapConstants.GREATER_OR_EQUAL_FILTER_TAG,
new InitGreaterOrEqualFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Present Filter to LessOrEqual filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// LessOrEqual [6] AttributeValueAssertion,
// ...
//
// Init Less Or Equal filter
super.transitions[LdapStatesEnum.PRESENT_STATE.ordinal()][LdapConstants.LESS_OR_EQUAL_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.PRESENT_STATE,
LdapStatesEnum.LESS_OR_EQUAL_STATE,
LdapConstants.LESS_OR_EQUAL_FILTER_TAG,
new InitLessOrEqualFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Present Filter to Present filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// present [7] AttributeDescription,
// ...
//
// Init present filter
super.transitions[LdapStatesEnum.PRESENT_STATE.ordinal()][LdapConstants.PRESENT_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.PRESENT_STATE,
LdapStatesEnum.PRESENT_STATE,
LdapConstants.PRESENT_FILTER_TAG,
new InitPresentFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Present Filter to Approx Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// approxMatch [8] AttributeValueAssertion,
// ...
//
// Init Approx Match filter
super.transitions[LdapStatesEnum.PRESENT_STATE.ordinal()][LdapConstants.APPROX_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.PRESENT_STATE,
LdapStatesEnum.APPROX_MATCH_STATE,
LdapConstants.APPROX_MATCH_FILTER_TAG,
new InitApproxMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Present Filter to Extensible Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// extensibleMatch [9] MatchingRuleAssertion,
// ...
//
// Init Assertion Value Filter filter
super.transitions[LdapStatesEnum.PRESENT_STATE.ordinal()][LdapConstants.EXTENSIBLE_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.PRESENT_STATE,
LdapStatesEnum.EXTENSIBLE_MATCH_STATE,
LdapConstants.EXTENSIBLE_MATCH_FILTER_TAG,
new InitExtensibleMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Present Filter to Attribute Description List
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// attributes AttributeDescriptionList }
//
// AttributeDescriptionList ::= SEQUENCE OF
// AttributeDescription
//
// Init attribute description list
super.transitions[LdapStatesEnum.PRESENT_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.PRESENT_STATE,
LdapStatesEnum.ATTRIBUTE_DESCRIPTION_LIST_STATE,
SEQUENCE,
new InitSearchRequestAttributeDescList() );
// --------------------------------------------------------------------------------------------
// Transition from Approx Match to Attribute Desc Filter
// --------------------------------------------------------------------------------------------
// Filter ::= CHOICE {
// ...
// approxMatch [8] AttributeValueAssertion,
// ...
//
// AttributeValueAssertion ::= SEQUENCE {
// attributeDesc AttributeDescription,
// ...
//
// Init Attribute Desc filter
super.transitions[LdapStatesEnum.APPROX_MATCH_STATE.ordinal()][OCTET_STRING.getValue()] =
new GrammarTransition(
LdapStatesEnum.APPROX_MATCH_STATE,
LdapStatesEnum.ATTRIBUTE_DESC_FILTER_STATE,
OCTET_STRING,
new InitAttributeDescFilter() );
// --------------------------------------------------------------------------------------------
// Transition from Extensible Match to MatchingRule
// --------------------------------------------------------------------------------------------
// Filter ::= CHOICE {
// ...
// extensibleMatch [9] MatchingRuleAssertion }
//
// MatchingRuleAssertion ::= SEQUENCE {
// matchingRule [1] MatchingRuleId OPTIONAL,
// ...
//
// Store the matching rule ID
super.transitions[LdapStatesEnum.EXTENSIBLE_MATCH_STATE.ordinal()][LdapConstants.MATCHING_RULE_ID_TAG] = new GrammarTransition(
LdapStatesEnum.EXTENSIBLE_MATCH_STATE, LdapStatesEnum.MATCHING_RULE_STATE,
LdapConstants.MATCHING_RULE_ID_TAG, new GrammarAction<LdapMessageContainer<SearchRequestDecorator>>(
"Store matching rule Value" )
{
public void action( LdapMessageContainer<SearchRequestDecorator> container ) throws DecoderException
{
SearchRequestDecorator searchRequest = container.getMessage();
TLV tlv = container.getCurrentTLV();
// Store the value.
ExtensibleMatchFilter extensibleMatchFilter = ( ExtensibleMatchFilter )
searchRequest.getTerminalFilter();
if ( tlv.getLength() == 0 )
{
String msg = I18n.err( I18n.ERR_04109 );
LOG.error( msg );
// It will generate a PROTOCOL_ERROR
throw new DecoderException( I18n.err( I18n.ERR_04109 ) );
}
else
{
extensibleMatchFilter.setMatchingRule( Strings.utf8ToString( tlv.getValue().getData() ) );
}
}
} );
// --------------------------------------------------------------------------------------------
// Transition from Extensible Match to type matching rule
// --------------------------------------------------------------------------------------------
// Filter ::= CHOICE {
// ...
// extensibleMatch [9] MatchingRuleAssertion }
//
// MatchingRuleAssertion ::= SEQUENCE {
// ...
// type [2] AttributeDescription OPTIONAL,
// ...
//
// Store the matching rule ID
super.transitions[LdapStatesEnum.EXTENSIBLE_MATCH_STATE.ordinal()][LdapConstants.MATCHING_RULE_TYPE_TAG] =
new GrammarTransition(
LdapStatesEnum.EXTENSIBLE_MATCH_STATE,
LdapStatesEnum.TYPE_MATCHING_RULE_STATE,
LdapConstants.MATCHING_RULE_TYPE_TAG,
new StoreTypeMatchingRule() );
// --------------------------------------------------------------------------------------------
// Transition from Extensible Match to match value
// --------------------------------------------------------------------------------------------
// Filter ::= CHOICE {
// ...
// extensibleMatch [9] MatchingRuleAssertion }
//
// MatchingRuleAssertion ::= SEQUENCE {
// ...
// matchValue [3] AssertionValue,
// ...
//
// Store the matching rule ID
super.transitions[LdapStatesEnum.EXTENSIBLE_MATCH_STATE.ordinal()][LdapConstants.MATCH_VALUE_TAG] =
new GrammarTransition(
LdapStatesEnum.EXTENSIBLE_MATCH_STATE,
LdapStatesEnum.MATCH_VALUE_STATE,
LdapConstants.MATCH_VALUE_TAG,
new StoreMatchValue() );
// --------------------------------------------------------------------------------------------
// Transition from matching rule to type matching rule
// --------------------------------------------------------------------------------------------
// Filter ::= CHOICE {
// ...
// extensibleMatch [9] MatchingRuleAssertion }
//
// MatchingRuleAssertion ::= SEQUENCE {
// ...
// type [2] AttributeDescription OPTIONAL,
// ...
//
// Store the matching rule ID
super.transitions[LdapStatesEnum.MATCHING_RULE_STATE.ordinal()][LdapConstants.MATCHING_RULE_TYPE_TAG] =
new GrammarTransition(
LdapStatesEnum.MATCHING_RULE_STATE,
LdapStatesEnum.TYPE_MATCHING_RULE_STATE,
LdapConstants.MATCHING_RULE_TYPE_TAG,
new StoreTypeMatchingRule() );
// --------------------------------------------------------------------------------------------
// Transition from matching rule to match value
// --------------------------------------------------------------------------------------------
// Filter ::= CHOICE {
// ...
// extensibleMatch [9] MatchingRuleAssertion }
//
// MatchingRuleAssertion ::= SEQUENCE {
// ...
// matchValue [3] AssertionValue,
// ...
//
// Store the matching rule ID
super.transitions[LdapStatesEnum.MATCHING_RULE_STATE.ordinal()][LdapConstants.MATCH_VALUE_TAG] =
new GrammarTransition(
LdapStatesEnum.MATCHING_RULE_STATE,
LdapStatesEnum.MATCH_VALUE_STATE,
LdapConstants.MATCH_VALUE_TAG,
new StoreMatchValue() );
// --------------------------------------------------------------------------------------------
// Transition from matching type to match value
// --------------------------------------------------------------------------------------------
// Filter ::= CHOICE {
// ...
// extensibleMatch [9] MatchingRuleAssertion }
//
// MatchingRuleAssertion ::= SEQUENCE {
// ...
// matchValue [3] AssertionValue,
// ...
//
// Store the matching rule ID
super.transitions[LdapStatesEnum.TYPE_MATCHING_RULE_STATE.ordinal()][LdapConstants.MATCH_VALUE_TAG] =
new GrammarTransition(
LdapStatesEnum.TYPE_MATCHING_RULE_STATE,
LdapStatesEnum.MATCH_VALUE_STATE,
LdapConstants.MATCH_VALUE_TAG,
new StoreMatchValue() );
// --------------------------------------------------------------------------------------------
// Transition from match value to dnAttributes
// --------------------------------------------------------------------------------------------
// Filter ::= CHOICE {
// ...
// extensibleMatch [9] MatchingRuleAssertion }
//
// MatchingRuleAssertion ::= SEQUENCE {
// ...
// dnAttributes [4] BOOLEAN DEFAULT FALSE }
//
// Store the dnAttributes flag
super.transitions[LdapStatesEnum.MATCH_VALUE_STATE.ordinal()][LdapConstants.DN_ATTRIBUTES_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.MATCH_VALUE_STATE,
LdapStatesEnum.DN_ATTRIBUTES_STATE,
LdapConstants.DN_ATTRIBUTES_FILTER_TAG,
new StoreMatchingRuleDnAttributes() );
// --------------------------------------------------------------------------------------------
// Transition from match value to AND filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// and [0] SET OF Filter,
// ...
//
// Init AND filter
super.transitions[LdapStatesEnum.MATCH_VALUE_STATE.ordinal()][LdapConstants.AND_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.MATCH_VALUE_STATE,
LdapStatesEnum.AND_STATE,
LdapConstants.AND_FILTER_TAG,
new InitAndFilter() );
// --------------------------------------------------------------------------------------------
// Transition from match value to OR filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// or [1] SET OF Filter,
// ...
//
// Init OR filter
super.transitions[LdapStatesEnum.MATCH_VALUE_STATE.ordinal()][LdapConstants.OR_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.MATCH_VALUE_STATE,
LdapStatesEnum.OR_STATE,
LdapConstants.OR_FILTER_TAG,
new InitOrFilter() );
// --------------------------------------------------------------------------------------------
// Transition from match value to NOT filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// not [2] SET OF Filter,
// ...
//
// Init NOT filter
super.transitions[LdapStatesEnum.MATCH_VALUE_STATE.ordinal()][LdapConstants.NOT_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.MATCH_VALUE_STATE,
LdapStatesEnum.NOT_STATE,
LdapConstants.NOT_FILTER_TAG,
new InitNotFilter() );
// --------------------------------------------------------------------------------------------
// Transition from match value to Equality Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// equalityMatch [3] AttributeValueAssertion,
// ...
//
// Init NOT filter
super.transitions[LdapStatesEnum.MATCH_VALUE_STATE.ordinal()][LdapConstants.EQUALITY_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.MATCH_VALUE_STATE,
LdapStatesEnum.EQUALITY_MATCH_STATE,
LdapConstants.EQUALITY_MATCH_FILTER_TAG,
new InitEqualityMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from match value to Substrings filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// substrings [4] SubstringFilter,
// ...
//
// Init Substrings filter
super.transitions[LdapStatesEnum.MATCH_VALUE_STATE.ordinal()][LdapConstants.SUBSTRINGS_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.MATCH_VALUE_STATE,
LdapStatesEnum.SUBSTRING_FILTER_STATE,
LdapConstants.SUBSTRINGS_FILTER_TAG,
new InitSubstringsFilter() );
// --------------------------------------------------------------------------------------------
// Transition from match value to GreaterOrEqual filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// greaterOrEqual [5] AttributeValueAssertion,
// ...
//
// Init Greater Or Equal filter
super.transitions[LdapStatesEnum.MATCH_VALUE_STATE.ordinal()][LdapConstants.GREATER_OR_EQUAL_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.MATCH_VALUE_STATE,
LdapStatesEnum.GREATER_OR_EQUAL_STATE,
LdapConstants.GREATER_OR_EQUAL_FILTER_TAG,
new InitGreaterOrEqualFilter() );
// --------------------------------------------------------------------------------------------
// Transition from match value to LessOrEqual filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// LessOrEqual [6] AttributeValueAssertion,
// ...
//
// Init Less Or Equal filter
super.transitions[LdapStatesEnum.MATCH_VALUE_STATE.ordinal()][LdapConstants.LESS_OR_EQUAL_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.MATCH_VALUE_STATE,
LdapStatesEnum.LESS_OR_EQUAL_STATE,
LdapConstants.LESS_OR_EQUAL_FILTER_TAG,
new InitLessOrEqualFilter() );
// --------------------------------------------------------------------------------------------
// Transition from match value to Present filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// present [7] AttributeDescription,
// ...
//
// Init present filter
super.transitions[LdapStatesEnum.MATCH_VALUE_STATE.ordinal()][LdapConstants.PRESENT_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.MATCH_VALUE_STATE,
LdapStatesEnum.PRESENT_STATE,
LdapConstants.PRESENT_FILTER_TAG,
new InitPresentFilter() );
// --------------------------------------------------------------------------------------------
// Transition from match value to Approx Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// approxMatch [8] AttributeValueAssertion,
// ...
//
// Init Approx Match filter
super.transitions[LdapStatesEnum.MATCH_VALUE_STATE.ordinal()][LdapConstants.APPROX_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.MATCH_VALUE_STATE,
LdapStatesEnum.APPROX_MATCH_STATE,
LdapConstants.APPROX_MATCH_FILTER_TAG,
new InitApproxMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from match value to Extensible Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// extensibleMatch [9] MatchingRuleAssertion,
// ...
//
// Init Assertion Value Filter filter
super.transitions[LdapStatesEnum.MATCH_VALUE_STATE.ordinal()][LdapConstants.EXTENSIBLE_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.MATCH_VALUE_STATE,
LdapStatesEnum.EXTENSIBLE_MATCH_STATE,
LdapConstants.EXTENSIBLE_MATCH_FILTER_TAG,
new InitExtensibleMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from match value to Attribute Description List
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// attributes AttributeDescriptionList }
//
// AttributeDescriptionList ::= SEQUENCE OF
// AttributeDescription
//
// Init attribute description list
super.transitions[LdapStatesEnum.MATCH_VALUE_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.MATCH_VALUE_STATE,
LdapStatesEnum.ATTRIBUTE_DESCRIPTION_LIST_STATE,
SEQUENCE,
new InitSearchRequestAttributeDescList() );
// --------------------------------------------------------------------------------------------
// Transition from dnAttributes to AND filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// and [0] SET OF Filter,
// ...
//
// Init AND filter
super.transitions[LdapStatesEnum.DN_ATTRIBUTES_STATE.ordinal()][LdapConstants.AND_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.DN_ATTRIBUTES_STATE,
LdapStatesEnum.AND_STATE,
LdapConstants.AND_FILTER_TAG,
new InitAndFilter() );
// --------------------------------------------------------------------------------------------
// Transition from dnAttributes to OR filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// or [1] SET OF Filter,
// ...
//
// Init OR filter
super.transitions[LdapStatesEnum.DN_ATTRIBUTES_STATE.ordinal()][LdapConstants.OR_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.DN_ATTRIBUTES_STATE,
LdapStatesEnum.OR_STATE,
LdapConstants.OR_FILTER_TAG,
new InitOrFilter() );
// --------------------------------------------------------------------------------------------
// Transition from dnAttributes to NOT filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// not [2] SET OF Filter,
// ...
//
// Init NOT filter
super.transitions[LdapStatesEnum.DN_ATTRIBUTES_STATE.ordinal()][LdapConstants.NOT_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.DN_ATTRIBUTES_STATE,
LdapStatesEnum.NOT_STATE,
LdapConstants.NOT_FILTER_TAG,
new InitNotFilter() );
// --------------------------------------------------------------------------------------------
// Transition from dnAttributes to Equality Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// equalityMatch [3] AttributeValueAssertion,
// ...
//
// Init NOT filter
super.transitions[LdapStatesEnum.DN_ATTRIBUTES_STATE.ordinal()][LdapConstants.EQUALITY_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.DN_ATTRIBUTES_STATE,
LdapStatesEnum.EQUALITY_MATCH_STATE,
LdapConstants.EQUALITY_MATCH_FILTER_TAG,
new InitEqualityMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from dnAttributes to Substrings filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// substrings [4] SubstringFilter,
// ...
//
// Init Substrings filter
super.transitions[LdapStatesEnum.DN_ATTRIBUTES_STATE.ordinal()][LdapConstants.SUBSTRINGS_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.DN_ATTRIBUTES_STATE,
LdapStatesEnum.SUBSTRING_FILTER_STATE,
LdapConstants.SUBSTRINGS_FILTER_TAG,
new InitSubstringsFilter() );
// --------------------------------------------------------------------------------------------
// Transition from dnAttributes to GreaterOrEqual filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// greaterOrEqual [5] AttributeValueAssertion,
// ...
//
// Init Greater Or Equal filter
super.transitions[LdapStatesEnum.DN_ATTRIBUTES_STATE.ordinal()][LdapConstants.GREATER_OR_EQUAL_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.DN_ATTRIBUTES_STATE,
LdapStatesEnum.GREATER_OR_EQUAL_STATE,
LdapConstants.GREATER_OR_EQUAL_FILTER_TAG,
new InitGreaterOrEqualFilter() );
// --------------------------------------------------------------------------------------------
// Transition from dnAttributes to LessOrEqual filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// LessOrEqual [6] AttributeValueAssertion,
// ...
//
// Init Less Or Equal filter
super.transitions[LdapStatesEnum.DN_ATTRIBUTES_STATE.ordinal()][LdapConstants.LESS_OR_EQUAL_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.DN_ATTRIBUTES_STATE,
LdapStatesEnum.LESS_OR_EQUAL_STATE,
LdapConstants.LESS_OR_EQUAL_FILTER_TAG,
new InitLessOrEqualFilter() );
// --------------------------------------------------------------------------------------------
// Transition from dnAttributes to Present filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// present [7] AttributeDescription,
// ...
//
// Init present filter
super.transitions[LdapStatesEnum.DN_ATTRIBUTES_STATE.ordinal()][LdapConstants.PRESENT_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.DN_ATTRIBUTES_STATE,
LdapStatesEnum.PRESENT_STATE,
LdapConstants.PRESENT_FILTER_TAG,
new InitPresentFilter() );
// --------------------------------------------------------------------------------------------
// Transition from dnAttributes to Approx Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// approxMatch [8] AttributeValueAssertion,
// ...
//
// Init Approx Match filter
super.transitions[LdapStatesEnum.DN_ATTRIBUTES_STATE.ordinal()][LdapConstants.APPROX_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.DN_ATTRIBUTES_STATE,
LdapStatesEnum.APPROX_MATCH_STATE,
LdapConstants.APPROX_MATCH_FILTER_TAG,
new InitApproxMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from dnAttributes to Extensible Match filter
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// ...
//
// Filter ::= CHOICE {
// ...
// extensibleMatch [9] MatchingRuleAssertion,
// ...
//
// Init Assertion Value Filter filter
super.transitions[LdapStatesEnum.DN_ATTRIBUTES_STATE.ordinal()][LdapConstants.EXTENSIBLE_MATCH_FILTER_TAG] =
new GrammarTransition(
LdapStatesEnum.DN_ATTRIBUTES_STATE,
LdapStatesEnum.EXTENSIBLE_MATCH_STATE,
LdapConstants.EXTENSIBLE_MATCH_FILTER_TAG,
new InitExtensibleMatchFilter() );
// --------------------------------------------------------------------------------------------
// Transition from dnAttributes to Attribute Description List
// --------------------------------------------------------------------------------------------
// SearchRequest ::= [APPLICATION 3] SEQUENCE {
// ...
// filter Filter,
// attributes AttributeDescriptionList }
//
// AttributeDescriptionList ::= SEQUENCE OF
// AttributeDescription
//
// Init attribute description list
super.transitions[LdapStatesEnum.DN_ATTRIBUTES_STATE.ordinal()][SEQUENCE.getValue()] =
new GrammarTransition(
LdapStatesEnum.DN_ATTRIBUTES_STATE,
LdapStatesEnum.ATTRIBUTE_DESCRIPTION_LIST_STATE,
SEQUENCE,
new InitSearchRequestAttributeDescList() );
}