1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.directory.api.ldap.extras.controls.ppolicy_impl;
22
23
24 import org.apache.directory.api.asn1.actions.CheckNotNullLength;
25 import org.apache.directory.api.asn1.ber.grammar.AbstractGrammar;
26 import org.apache.directory.api.asn1.ber.grammar.Grammar;
27 import org.apache.directory.api.asn1.ber.grammar.GrammarTransition;
28 import org.apache.directory.api.asn1.ber.tlv.UniversalTag;
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 public final class PasswordPolicyGrammar extends AbstractGrammar<PasswordPolicyContainer>
53 {
54
55 private static final PasswordPolicyGrammar INSTANCE = new PasswordPolicyGrammar();
56
57
58 @SuppressWarnings("unchecked")
59 private PasswordPolicyGrammar()
60 {
61 setName( PasswordPolicyGrammar.class.getName() );
62
63 super.transitions = new GrammarTransition[PasswordPolicyStates.END_STATE.ordinal()][256];
64
65
66
67 super.transitions[PasswordPolicyStates.START_STATE.ordinal()][UniversalTag.SEQUENCE.getValue()] = new GrammarTransition<PasswordPolicyContainer>(
68 PasswordPolicyStates.START_STATE, PasswordPolicyStates.PPOLICY_SEQ_STATE,
69 UniversalTag.SEQUENCE.getValue(),
70 new PPolicyInit() );
71
72
73
74 super.transitions[PasswordPolicyStates.PPOLICY_SEQ_STATE.ordinal()][PasswordPolicyTags.PPOLICY_WARNING_TAG
75 .getValue()] = new GrammarTransition<PasswordPolicyContainer>(
76 PasswordPolicyStates.PPOLICY_SEQ_STATE, PasswordPolicyStates.PPOLICY_WARNING_TAG_STATE,
77 PasswordPolicyTags.PPOLICY_WARNING_TAG.getValue(),
78 new CheckNotNullLength<PasswordPolicyContainer>() );
79
80
81
82
83 super.transitions[PasswordPolicyStates.PPOLICY_SEQ_STATE.ordinal()][PasswordPolicyTags.PPOLICY_ERROR_TAG
84 .getValue()] = new GrammarTransition<PasswordPolicyContainer>(
85 PasswordPolicyStates.PPOLICY_SEQ_STATE, PasswordPolicyStates.PPOLICY_ERROR_TAG_STATE,
86 PasswordPolicyTags.PPOLICY_ERROR_TAG.getValue(),
87 new StoreError<PasswordPolicyContainer>() );
88
89
90
91
92 super.transitions[PasswordPolicyStates.PPOLICY_WARNING_TAG_STATE.ordinal()][PasswordPolicyTags.TIME_BEFORE_EXPIRATION_TAG
93 .getValue()] = new GrammarTransition<PasswordPolicyContainer>(
94 PasswordPolicyStates.PPOLICY_WARNING_TAG_STATE, PasswordPolicyStates.PPOLICY_TIME_BEFORE_EXPIRATION_STATE,
95 PasswordPolicyTags.TIME_BEFORE_EXPIRATION_TAG.getValue(),
96 new StoreTimeBeforeExpiration() );
97
98
99
100
101
102 super.transitions[PasswordPolicyStates.PPOLICY_WARNING_TAG_STATE.ordinal()][PasswordPolicyTags.GRACE_AUTHNS_REMAINING_TAG
103 .getValue()] = new GrammarTransition<PasswordPolicyContainer>(
104 PasswordPolicyStates.PPOLICY_WARNING_TAG_STATE, PasswordPolicyStates.PPOLICY_GRACE_AUTHNS_REMAINING_STATE,
105 PasswordPolicyTags.GRACE_AUTHNS_REMAINING_TAG.getValue(),
106 new StoreGraceAuthNRemaining() );
107
108
109
110
111 super.transitions[PasswordPolicyStates.PPOLICY_TIME_BEFORE_EXPIRATION_STATE.ordinal()][PasswordPolicyTags.PPOLICY_ERROR_TAG
112 .getValue()] = new GrammarTransition<PasswordPolicyContainer>(
113 PasswordPolicyStates.PPOLICY_TIME_BEFORE_EXPIRATION_STATE, PasswordPolicyStates.PPOLICY_ERROR_TAG_STATE,
114 PasswordPolicyTags.PPOLICY_ERROR_TAG.getValue(),
115 new StoreError<PasswordPolicyContainer>() );
116
117
118
119
120 super.transitions[PasswordPolicyStates.PPOLICY_GRACE_AUTHNS_REMAINING_STATE.ordinal()][PasswordPolicyTags.GRACE_AUTHNS_REMAINING_TAG
121 .getValue()] = new GrammarTransition<PasswordPolicyContainer>(
122 PasswordPolicyStates.PPOLICY_GRACE_AUTHNS_REMAINING_STATE, PasswordPolicyStates.PPOLICY_ERROR_TAG_STATE,
123 PasswordPolicyTags.GRACE_AUTHNS_REMAINING_TAG.getValue(),
124 new StoreError<PasswordPolicyContainer>() );
125 }
126
127
128
129
130
131 public static Grammar<PasswordPolicyContainer> getInstance()
132 {
133 return INSTANCE;
134 }
135 }