Class JsonRecordSetIterator

  • All Implemented Interfaces:
    Iterator<Gedcomx>, RecordSetIterator

    public class JsonRecordSetIterator
    extends Object
    implements RecordSetIterator
    Class for iterating through the 'record' elements (GedcomX documents) in a RecordSet one at a time from a stream (e.g., a gzipped byte array) without having to inflate all the records at once. This reads JSON-formatted Records. User: Brent Hale Date: 6/3/2015
    • Constructor Detail

      • JsonRecordSetIterator

        public JsonRecordSetIterator​(String filename)
                              throws IOException
        Constructor for a record iterator that takes a filename of a RecordSet file and iterates through its record elements.
        Parameters:
        filename - - Filename to read a GedcomX RecordSet file from.
        Throws:
        IOException - If there's an I/O problem.
      • JsonRecordSetIterator

        public JsonRecordSetIterator​(InputStream inputStream)
                              throws IOException
        Constructor for a record iterator that takes an InputStream of a RecordSet file and iterates through its record elements. This creates a BufferedInputStream on the InputStream.
        Parameters:
        inputStream - - InputStream to read a GedcomX RecordSet file from.
        Throws:
        IOException - If there's an I/O problem.
    • Method Detail

      • hasNext

        public boolean hasNext()
        Tell whether the RecordIterator has another GedcomX record to return.
        Specified by:
        hasNext in interface Iterator<Gedcomx>
        Specified by:
        hasNext in interface RecordSetIterator
        Returns:
        true if there is another record to read; false otherwise.
      • getMetadata

        public Gedcomx getMetadata()
        This should be read last as you cannot be sure of when the metadata will appear in the data stream.
        Specified by:
        getMetadata in interface RecordSetIterator
        Returns:
        The Metadata document.
      • close

        public void close()
        Close the input stream and accompanying reader if they are still open. If you want to get the metadata and id of the RecordSet, then get them before you close().
        Specified by:
        close in interface RecordSetIterator