View Javadoc
1   /*
2    *  Licensed to the Apache Software Foundation (ASF) under one
3    *  or more contributor license agreements.  See the NOTICE file
4    *  distributed with this work for additional information
5    *  regarding copyright ownership.  The ASF licenses this file
6    *  to you under the Apache License, Version 2.0 (the
7    *  "License"); you may not use this file except in compliance
8    *  with the License.  You may obtain a copy of the License at
9    *
10   *    http://www.apache.org/licenses/LICENSE-2.0
11   *
12   *  Unless required by applicable law or agreed to in writing,
13   *  software distributed under the License is distributed on an
14   *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   *  KIND, either express or implied.  See the License for the
16   *  specific language governing permissions and limitations
17   *  under the License.
18   *
19   */
20  package org.apache.directory.shared.kerberos.codec.apReq;
21  
22  
23  import org.apache.directory.api.asn1.ber.grammar.Grammar;
24  import org.apache.directory.api.asn1.ber.grammar.States;
25  
26  
27  /**
28   * This class store the AP-REQ grammar's constants. It is also used for debugging
29   * purpose
30   *
31   * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
32   */
33  public enum ApReqStatesEnum implements States
34  {
35      // Start
36      START_STATE, // 0
37  
38      // ----- AP-REQ message --------------------------------------
39      AP_REQ_STATE, // 1
40      AP_REQ_SEQ_STATE, // 2
41  
42      AP_REQ_PVNO_TAG_STATE, // 3
43      AP_REQ_PVNO_STATE, // 4
44  
45      AP_REQ_MSG_TYPE_TAG_STATE, // 5
46      AP_REQ_MSG_TYPE_STATE, // 6
47  
48      AP_REQ_AP_OPTIONS_TAG_STATE, // 7
49      AP_REQ_AP_OPTIONS_STATE, // 8
50  
51      AP_REQ_TICKET_STATE, // 9
52  
53      AP_REQ_AUTHENTICATOR_STATE, // 10
54  
55      // End
56      LAST_AP_REQ_STATE; // 11
57  
58      /**
59       * Get the grammar name
60       *
61       * @param grammar The grammar code
62       * @return The grammar name
63       */
64      public String getGrammarName( int grammar )
65      {
66          return "AP_REQ_GRAMMAR";
67      }
68  
69  
70      /**
71       * Get the grammar name
72       *
73       * @param grammar The grammar class
74       * @return The grammar name
75       */
76      public String getGrammarName( Grammar<ApReqContainer> grammar )
77      {
78          if ( grammar instanceof ApReqGrammar )
79          {
80              return "AP_REQ_GRAMMAR";
81          }
82          else
83          {
84              return "UNKNOWN GRAMMAR";
85          }
86      }
87  
88  
89      /**
90       * Get the string representing the state
91       *
92       * @param state The state number
93       * @return The String representing the state
94       */
95      public String getState( int state )
96      {
97          return ( ( state == LAST_AP_REQ_STATE.ordinal() ) ? "AP_REQ_END_STATE" : name() );
98      }
99  
100 
101     /**
102      * {@inheritDoc}
103      */
104     public boolean isEndState()
105     {
106         return this == LAST_AP_REQ_STATE;
107     }
108 
109 
110     /**
111      * {@inheritDoc}
112      */
113     public ApReqStatesEnum getStartState()
114     {
115         return START_STATE;
116     }
117 }