1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package pl.kernelpanic.dbmonster.util;
17
18 import java.io.BufferedReader;
19 import java.io.File;
20 import java.io.FileReader;
21 import java.io.LineNumberReader;
22 import java.io.Reader;
23 import java.io.StringReader;
24 import java.util.Iterator;
25
26
27 /***
28 * @author Piotr Maj <ant@kernelpanic.pl>
29 *
30 * @version $Revision: 1.1 $ $Date: 2007/06/21 08:38:14 $
31 */
32 public class ScriptReaderIterator implements Iterator {
33
34 private LineNumberReader reader;
35 private String nextLine;
36
37 public ScriptReaderIterator(String script) {
38 this.reader = new LineNumberReader(new StringReader(script));
39 prepareNextLine();
40 }
41
42 public ScriptReaderIterator(Reader reader) {
43 this.reader = new LineNumberReader(new BufferedReader(reader));
44 prepareNextLine();
45 }
46
47 public ScriptReaderIterator(File file) throws Exception {
48 this.reader = new LineNumberReader(new BufferedReader(new FileReader(file)));
49 prepareNextLine();
50 }
51
52 public void remove() {
53 }
54
55 public boolean hasNext() {
56 return nextLine != null;
57 }
58
59 public Object next() {
60 String s = nextLine;
61 prepareNextLine();
62 return s;
63 }
64
65 private void prepareNextLine() {
66 try {
67 nextLine = reader.readLine();
68 if (nextLine != null) {
69 if ("".equals(nextLine.trim())) {
70 prepareNextLine();
71 }
72 }
73 } catch (Exception e) {
74 System.err.println("Could not read line: " + e.getMessage());
75 }
76 }
77 }