@Override
	public void readAllSequence() throws IOException, FileFormatException {
		String id = null;
		String qual = null;
		StringBuffer seq = new StringBuffer();

		String line = null;
		while ((line = reader.readLine()) != null) {
			lineRead++;
			if (line.isEmpty())
				continue;
			if (Pattern.matches(ID_RGX, line) && (id == null)) {
				id = line;
				seqLine = lineRead;
				continue;
			}
			if (Pattern.matches(SEQ_RGX, line) && (id != null)) {
				seq.append(line);
				continue;
			}
			if (Pattern.matches(Q_ID, line)) {
				qual = consumeQuality(seq.length());
				if (qual == null)
					throw new FileFormatException(String.format(
							"Wrong formatted sequence at line: %d", seqLine));
				if (qual.length() != seq.length())
					throw new FileFormatException(String.format(
							"Sequence and quality lengths differ at line: %d",
							seqLine));
				notifyListeners(id, seq.toString(), qual);
				id = null;
				seq = new StringBuffer();
				qual = null;
				continue;
			}
			throw new FileFormatException(String.format(
					"Wrong formatted sequence at line: %d", lineRead));
		}
	}