+ if (parseImmediately) {
+ doParse();
+ }
+ }
+ /**
+ * Attempt to read from the position where some other parsing process left
+ * off.
+ *
+ * @param source
+ * @throws IOException
+ */
+ public AlignFile(FileParse source) throws IOException
+ {
+ this(true,source);
+ }
+ /**
+ * Construct a new parser to read from the position where some other parsing process left
+ *
+ * @param parseImmediately
+ * if false, need to call 'doParse()' to begin parsing data
+ * @param source
+ */
+ public AlignFile(boolean parseImmediately, FileParse source) throws IOException
+ {
+ super(source);
+ initData();
+ if (parseImmediately) {
+ doParse();
+ }
+ }
+ /**
+ * called if parsing was delayed till after parser was constructed
+ * @throws IOException
+ */
+ public void doParse() throws IOException
+ {
+ if (parseCalled)
+ {
+ throw new IOException(
+ "Implementation error: Parser called twice for same data.\n"
+ + "Need to call initData() again before parsing can be reattempted.");
+ }
+ parseCalled=true;