package ca.uhn.hl7v2.util; import java.io.InputStream; import java.io.Reader; import java.util.Iterator; import ca.uhn.hl7v2.HL7Exception; import ca.uhn.hl7v2.model.Message; import ca.uhn.hl7v2.parser.EncodingNotSupportedException; import ca.uhn.hl7v2.parser.PipeParser; import ca.uhn.hl7v2.util.Hl7InputStreamMessageStringIterator.ParseFailureError; /** *
* Reads from an {@link InputStream} containing a stream of encoded HL7 messages * and iterates over those messages. This class is geared towards reading from * files, and tries to be very lenient about the format of the stream, * specifically concerning control characters and line endings. It should be * safe to provide a stream containing Windows or Unix line endings (which will * be treated as segment delimiters). It is also safe to provide a stream containing * MLLP control blocks before and after each message (although these will not be * validated! Do not use this class to read MLLP messages from a socket stream!) *
** The input stream could, for example, be a FileInputStream reading from a text * file containing a number of HL7 messages in plain text format. *
** Usage note: If an IOException occurs while reading from the stream or a * message parsing exception occurs, it will be thrown as an unchecked * {@link ParseFailureError} *
*/ public class Hl7InputStreamMessageIterator implements Iterator