package futils;
import java.io.BufferedReader;
import java.util.Vector;
interface LineProcessor {
public void process(String l);
}
public class PolymorphicProcessor {
LineProcessor lp = null;
PolymorphicProcessor(LineProcessor _lp) {
lp = _lp;
process();
}
public void process() {
BufferedReader br =
ReaderUtil.getBufferedReader("select text file");
String s = null;
while ((s = ReaderUtil.readLine(br)) != null) {
lp.process(s);
}
ReaderUtil.close(br);
}
}
class TestPolymorphicProcessor {
public static void main(String args[]) {
new PolymorphicProcessor(
new LineProcessor() {
public void process(String s) {
System.out.println(s);
}
}
);
}
}
class Reader implements LineProcessor {
Vector v = new Vector();
PolymorphicProcessor pp = new
PolymorphicProcessor(this);
public String[] getLines() {
String s[] = new String[v.size()];
v.copyInto(s);
return s;
}
public static void main(String args[]) {
System.out.println(new Reader());
}
public void process(String s) {
v.addElement(s);
}
public String toString() {
String s[] = getLines();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length; i++)
sb.append(s[i] + '\n');
return sb.toString();
}
}