View Javadoc

    1   package org.codehaus.groovy.syntax.lexer;
    2
    3   import java.io.File;
    4   import java.io.IOException;
    5   import java.io.FileInputStream;
    6   import org.codehaus.groovy.syntax.ReadException;
    7
    8   public class FileCharStream
    9       implements CharStream
    10  {
    11      private File file;
    12      private CharStream charStream;
    13
    14      public FileCharStream(File file)
    15      {
    16          this.file = file;
    17      }
    18
    19      public File getFile()
    20      {
    21          return this.file;
    22      }
    23
    24      protected CharStream getCharStream()
    25          throws ReadException
    26      {
    27          try
    28          {
    29              if ( this.charStream == null )
    30              {
    31                  this.charStream = new InputStreamCharStream( new FileInputStream( getFile() ) );
    32              }
    33          }
    34          catch( IOException e )
    35          {
    36              throw new ReadException( e );
    37          }
    38
    39          return this.charStream;
    40      }
    41
    42      public String getDescription()
    43      {
    44          return getFile().getPath();
    45      }
    46
    47      public char consume()
    48          throws ReadException
    49      {
    50          return getCharStream().consume();
    51      }
    52
    53      public void close()
    54          throws ReadException
    55      {
    56          getCharStream().close();
    57      }
    58  }