View Javadoc

1   /*
2    *   Copyright 2005 The Apache Software Foundation
3    *
4    *   Licensed under the Apache License, Version 2.0 (the "License");
5    *   you may not use this file except in compliance with the License.
6    *   You may obtain a copy of the License at
7    *
8    *       http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *   Unless required by applicable law or agreed to in writing, software
11   *   distributed under the License is distributed on an "AS IS" BASIS,
12   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *   See the License for the specific language governing permissions and
14   *   limitations under the License.
15   *
16   */
17  package org.apache.asn1new.ber.grammar;
18  
19  import org.apache.asn1.codec.DecoderException;
20  import org.apache.asn1new.ber.containers.IAsn1Container;
21  
22  
23  /***
24   * The interface which expose common behavior of a Gramar implementer.
25   * 
26   * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
27   */
28  public interface IGrammar
29  {
30      //~ Methods ------------------------------------------------------------------------------------
31  
32      /***
33       * This method, when called, execute an action on the current data stored 
34       * in the container.
35       *
36       * @param asn1Container Store the data being processed.
37       *
38       * @throws DecoderException Thrown when an unrecoverable error occurs.
39       */
40      void executeAction( IAsn1Container asn1Container ) throws DecoderException;
41  
42      /***
43       * Get the grammar name
44       *
45       * @return Return the grammar's name
46       */
47      String getName();
48  
49      /***
50       * Get the statesEnum for the current grammar 
51       * @return The specific States Enum for the current grammar
52       */
53      IStates getStatesEnum();
54  
55      /***
56       * Set the grammar's name
57       * @param name The grammar name
58      */
59      void setName( String name );
60  }