01: /*
02: * Author: Chris Seguin
03: *
04: * This software has been developed under the copyleft
05: * rules of the GNU General Public License. Please
06: * consult the GNU General Public License for more
07: * details about use and distribution of this software.
08: */
09: package net.sourceforge.jrefactory.factory;
10:
11: import java.io.File;
12: import java.io.FileNotFoundException;
13: import java.io.FileReader;
14: import java.io.IOException;
15: import java.io.Reader;
16:
17: /**
18: * Generates new parsers for a java file
19: *
20: * @author Chris Seguin
21: * @author <a href="JRefactory@ladyshot.demon.co.uk">Mike Atkinson</a>
22: * @since v 1.0
23: * @version $Id: FileParserFactory.java,v 1.3 2003/12/02 23:36:12 mikeatkinson Exp $
24: * @created June 6, 1999
25: */
26: public class FileParserFactory extends ParserFactory {
27: private File input;
28:
29: /**
30: * Constructor for a file ParserFactory
31: *
32: * @param file the file that we want to create a parser for
33: * @since v 1.0
34: */
35: public FileParserFactory(File file) {
36: input = file;
37: }
38:
39: /**
40: * Return the input stream
41: *
42: * @return the input stream
43: * @since v 1.0
44: */
45: protected Reader getReader() {
46: try {
47: return new FileReader(input);
48: } catch (FileNotFoundException fnfe) {
49: System.err.println("Unable to find the file specified by "
50: + getKey());
51: return null;
52: } catch (IOException ioe) {
53: System.err.println("Unable to create the file " + getKey());
54: return null;
55: }
56: }
57:
58: /**
59: * A method to return some key identifying the file that is being parsed
60: *
61: * @return the identifier
62: * @since v 1.0
63: */
64: protected String getKey() {
65: return input.getAbsolutePath();
66: }
67: }
|