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.api.ldap.codec.controls.sort;
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   * Enumeration of states encountered while decoding a SortResponseControl.
29   *
30   * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
31   */
32  public enum SortResponseStates implements States
33  {
34      START_STATE,
35  
36      SEQUENCE_STATE,
37  
38      RESULT_CODE_STATE,
39      
40      AT_DESC_STATE,
41  
42      END_STATE;
43  
44      /**
45       * Get the grammar name
46       * 
47       * @param grammar The grammar code
48       * @return The grammar name
49       */
50      public String getGrammarName( int grammar )
51      {
52          return "SORT_RESPONSE_GRAMMAR";
53      }
54  
55  
56      /**
57       * Get the grammar name
58       * 
59       * @param grammar The grammar class
60       * @return The grammar name
61       */
62      public String getGrammarName( Grammar<?> grammar )
63      {
64          if ( grammar instanceof SortResponseGrammar )
65          {
66              return "SORT_RESPONSE_GRAMMAR";
67          }
68  
69          return "UNKNOWN GRAMMAR";
70      }
71  
72  
73      /**
74       * Get the string representing the state
75       * 
76       * @param state The state number
77       * @return The String representing the state
78       */
79      public String getState( int state )
80      {
81          return ( ( state == END_STATE.ordinal() ) ? "SORT_REQUEST_END_STATE" : name() );
82      }
83  
84  
85      @Override
86      public boolean isEndState()
87      {
88          return ( this == END_STATE );
89      }
90  
91  
92      @Override
93      public Enum<?> getStartState()
94      {
95          return START_STATE;
96      }
97  
98  }