import java.util.StringTokenizer; import java.util.Enumeration; import util.list.Enumerable; import util.list.Vector; import misc.Separators; class TextBuffer implements Enumerable { private Vector buf = new Vector(); void insertAtBegin(String str) { if (buf.isEmpty()) buf.insert(str); else buf.insertAt(0, str); } void insertAtEnd(String str) { buf.insert(str); } void insertAt(int ind, String str) throws ArrayIndexOutOfBoundsException { buf.insertAt(ind, str); } // null if empty String removeFromBegin() { return buf.isEmpty() ? null : (String) buf.removeFrom(0); } // null if empty String removeFromEnd() { return buf.isEmpty() ? null : (String) buf.remove(); } String removeFrom(int ind) throws ArrayIndexOutOfBoundsException { return (String) buf.removeFrom(ind); } void clear() { buf.removeAll(); } public Enumeration elements() { return buf.elements(); } int getSize() { return buf.getSize(); } public String toString() { String txt = ""; for (Enumeration enum = buf.elements(); enum.hasMoreElements(); ) { String str = (String) enum.nextElement(); txt += ((txt.length() == 0) ? str : (Separators.NL + str)); } return txt; } void buildFrom(String txt) { StringTokenizer toker = new StringTokenizer(txt, Separators.NL); while (toker.hasMoreElements()) { String line = (String) toker.nextToken(); insertAtEnd(line); } } }