Class TrackingDirectoryWrapper

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public final class TrackingDirectoryWrapper
    extends FilterDirectory
    A delegating Directory that records which files were written to and deleted.
    • Field Detail

      • createdFileNames

        private final java.util.Set<java.lang.String> createdFileNames
    • Constructor Detail

      • TrackingDirectoryWrapper

        public TrackingDirectoryWrapper​(Directory in)
    • Method Detail

      • deleteFile

        public void deleteFile​(java.lang.String name)
                        throws java.io.IOException
        Description copied from class: Directory
        Removes an existing file in the directory.

        This method must throw either NoSuchFileException or FileNotFoundException if name points to a non-existing file.

        Overrides:
        deleteFile in class FilterDirectory
        Parameters:
        name - the name of an existing file.
        Throws:
        java.io.IOException - in case of I/O error
      • createOutput

        public IndexOutput createOutput​(java.lang.String name,
                                        IOContext context)
                                 throws java.io.IOException
        Description copied from class: Directory
        Creates a new, empty file in the directory and returns an IndexOutput instance for appending data to this file.

        This method must throw FileAlreadyExistsException if the file already exists.

        Overrides:
        createOutput in class FilterDirectory
        Parameters:
        name - the name of the file to create.
        Throws:
        java.io.IOException - in case of I/O error
      • createTempOutput

        public IndexOutput createTempOutput​(java.lang.String prefix,
                                            java.lang.String suffix,
                                            IOContext context)
                                     throws java.io.IOException
        Description copied from class: Directory
        Creates a new, empty, temporary file in the directory and returns an IndexOutput instance for appending data to this file.

        The temporary file name (accessible via IndexOutput.getName()) will start with prefix, end with suffix and have a reserved file extension .tmp.

        Overrides:
        createTempOutput in class FilterDirectory
        Throws:
        java.io.IOException
      • copyFrom

        public void copyFrom​(Directory from,
                             java.lang.String src,
                             java.lang.String dest,
                             IOContext context)
                      throws java.io.IOException
        Description copied from class: Directory
        Copies an existing src file from directory from to a non-existent file dest in this directory.
        Overrides:
        copyFrom in class Directory
        Throws:
        java.io.IOException
      • rename

        public void rename​(java.lang.String source,
                           java.lang.String dest)
                    throws java.io.IOException
        Description copied from class: Directory
        Renames source file to dest file where dest must not already exist in the directory.

        It is permitted for this operation to not be truly atomic, for example both source and dest can be visible temporarily in Directory.listAll(). However, the implementation of this method must ensure the content of dest appears as the entire source atomically. So once dest is visible for readers, the entire content of previous source is visible.

        This method is used by IndexWriter to publish commits.

        Overrides:
        rename in class FilterDirectory
        Throws:
        java.io.IOException
      • getCreatedFiles

        public java.util.Set<java.lang.String> getCreatedFiles()
        NOTE: returns a copy of the created files.
      • clearCreatedFiles

        public void clearCreatedFiles()