View Javadoc
1   /*
2    *
3    * Copyright 2002-2004 The Ant-Contrib project
4    *
5    *  Licensed under the Apache License, Version 2.0 (the "License");
6    *  you may not use this file except in compliance with the License.
7    *  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   *  Unless required by applicable law or agreed to in writing, software
12   *  distributed under the License is distributed on an "AS IS" BASIS,
13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   *  See the License for the specific language governing permissions and
15   *  limitations under the License.
16   */
17  package org.codehaus.mojo.natives.parser;
18  
19  /**
20   * An base class for objects that represent the state of an AbstractParser.
21   * 
22   * @author CurtArnold
23   * @see AbstractParser
24   */
25  public abstract class AbstractParserState
26  {
27      private AbstractParser parser;
28  
29      protected AbstractParserState( AbstractParser parser )
30      {
31          if ( parser == null )
32          {
33              throw new NullPointerException( "parser" );
34          }
35          this.parser = parser;
36      }
37  
38      /**
39       * Consume a character
40       * 
41       * @return new state, may be null to ignore the rest of the line
42       */
43      public abstract AbstractParserState consume( char ch );
44  
45      protected AbstractParser getParser()
46      {
47          return parser;
48      }
49  }