Class JsonRecordSetIterator

java.lang.Object
org.gedcomx.util.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 Details

    • 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, boolean isGzipped) throws IOException
      Throws:
      IOException
    • 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 Details

    • 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.
    • next

      public Gedcomx next()
      Description copied from interface: RecordSetIterator
      Get the next Gedcomx Record from the RecordSet.
      Specified by:
      next in interface Iterator<Gedcomx>
      Specified by:
      next in interface RecordSetIterator
      Returns:
      the next Gedcomx Record from the RecordSet.
    • 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.
    • remove

      public void remove()
      Specified by:
      remove in interface Iterator<Gedcomx>
      Specified by:
      remove in interface RecordSetIterator
    • 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
    • getId

      public String getId() throws IOException
      Throws:
      IOException