Class IndexedFidWriter

  • All Implemented Interfaces:
    AutoCloseable, FileReader, FileWriter

    public class IndexedFidWriter
    extends Object
    implements FileWriter, AutoCloseable
    The Writer writes out the fid and record number of features to the fid index file.
    Author:
    Jesse
    • Constructor Detail

      • IndexedFidWriter

        public IndexedFidWriter​(ShpFiles shpFiles)
                         throws IOException
        Creates a new instance and writes the fids to a storage file which is replaces the original on close().
        Parameters:
        shpFiles - The shapefiles to used
        Throws:
        IOException
      • IndexedFidWriter

        public IndexedFidWriter​(ShpFiles shpFiles,
                                StorageFile storageFile)
                         throws IOException
        Create a new instance
        Note: StorageFile.replaceOriginal() is NOT called. Call IndexedFidWriter(ShpFiles) for that behaviour.
        Parameters:
        shpFiles - The shapefiles to used
        storageFile - the storage file that will be written to. It will NOT be closed.
        Throws:
        IOException
    • Method Detail

      • hasNext

        public boolean hasNext()
                        throws IOException
        Throws:
        IOException
      • next

        public long next()
                  throws IOException
        Throws:
        IOException
      • close

        public void close()
                   throws IOException
        Specified by:
        close in interface AutoCloseable
        Throws:
        IOException
      • remove

        public void remove()
                    throws IOException
        Increments the fidIndex by 1.

        Indicates that a feature was removed from the location. This is intended to ensure that FIDs stay constant over time. Consider the following case of 5 features.

        • feature 1 has fid typename.0
        • feature 2 has fid typename.1
        • feature 3 has fid typename.2
        • feature 4 has fid typename.3
        • feature 5 has fid typename.4

        when feature 3 is removed/deleted the following usage of the write should take place:

        • next(); (move to feature 1)
        • next(); (move to feature 2)
        • next(); (move to feature 3)
        • remove();(delete feature 3)
        • next(); (move to feature 4)
        • // optional write(); (write feature 4)
        • next(); (move to feature 5)
        • write(); (write(feature 5)
        Throws:
        IOException - if current fid index is null
      • write

        public void write()
                   throws IOException
        Writes the current fidIndex. Writes to the same place in the file each time. Only next() moves forward in the file.
        Throws:
        IOException
        See Also:
        next(), remove()
      • isClosed

        public boolean isClosed()
      • id

        public String id()
        Description copied from interface: FileWriter
        An id for the writer. This is only used for debugging.
        Specified by:
        id in interface FileReader
        Specified by:
        id in interface FileWriter
        Returns:
        id for the writer.