Class PatchBuilderImpl

    • Constructor Detail

      • PatchBuilderImpl

        public PatchBuilderImpl​(@NotNull
                                OutputStream output)
    • Method Detail

      • changeOrCreateTextFile

        public void changeOrCreateTextFile​(@NotNull
                                           File localFile,
                                           String fileMode,
                                           @NotNull
                                           InputStream input,
                                           long length,
                                           byte[] lineSeparator)
                                    throws IOException
        Description copied from interface: PatchBuilder
        Invoke this method if some text file content has been changed or text file has been created in the next version as compared with the previous one.
        Specified by:
        changeOrCreateTextFile in interface PatchBuilder
        Parameters:
        localFile - file relative to the current working directory
        fileMode - file mode in the linux style. If it doesn't matter for you set it to null. Set this parameter to not null if its value changes something, for example, pass "ugo+x" if you want the file to be executable and null otherwise. It is performance issue because set file mode will create a lot of processes on the Linux.
        input - input stream containing the file content. This stream is guaranteed to be utilized within the call. So it can be safely closed/destroyed right after the invocation.
        length - length of the content.
        lineSeparator - text content line separator. Set null if you want to use system dependant separators. Use "changeOrCreateBinaryFile" if you want file to keep existing separators.
        Throws:
        IOException - thrown if patch collecting process failed.
      • createTextFile

        public void createTextFile​(@NotNull
                                   File localFile,
                                   String fileMode,
                                   @NotNull
                                   InputStream input,
                                   long length,
                                   byte[] lineSeparator)
                            throws IOException
        Description copied from interface: PatchBuilder
        Invoke this method if some text file has been created in the next version as compared with the previous one.
        Specified by:
        createTextFile in interface PatchBuilder
        Parameters:
        localFile - file relative to the current working directory
        fileMode - file mode in the linux style. If it doesn't matter for you set it to null. Set this parameter to not null if its value changes something, for example, pass "ugo+x" if you want the file to be executable and null otherwise. It is performance issue because set file mode will create a lot of processes on the Linux.
        input - input stream containing the file content. This stream is guaranteed to be utilized within the call. So it can be safely closed/destroyed right after the invocation.
        length - length of the content.
        lineSeparator - text content line separator. Set null if you want to use system dependant separators. Use "createBinaryFile" if you want file to keep existing separators.
        Throws:
        IOException - thrown if patch collecting process failed.
      • setLastModified

        public void setLastModified​(@NotNull
                                    File localFile,
                                    long time)
                             throws IOException
        Description copied from interface: PatchBuilder
        Set last modified timestamp for file
        Specified by:
        setLastModified in interface PatchBuilder
        Parameters:
        localFile - relative file
        time - last modified timestamp
        Throws:
        IOException - in case of error
      • isInterrupted

        public boolean isInterrupted()
      • renameFile

        public void renameFile​(@NotNull
                               File file,
                               @NotNull
                               File newFile,
                               boolean deleteParentDirectoryIfEmpty)
                        throws IOException
        Description copied from interface: PatchBuilder
        Invoke this method if some file has been renamed in the next version as compared with the previous one.
        Specified by:
        renameFile in interface PatchBuilder
        Parameters:
        file - file relative to the current working directory.
        newFile - new file location
        deleteParentDirectoryIfEmpty - pass true if you want patcher to delete parent directory if it becomes empty after the deletion.
        Throws:
        IOException - thrown if patch collecting process failed.
      • renameDirectory

        public void renameDirectory​(@NotNull
                                    File file,
                                    @NotNull
                                    File newFile,
                                    boolean deleteParentDirectoryIfEmpty)
                             throws IOException
        Description copied from interface: PatchBuilder
        Invoke this method if some directory has been renamed in the next version as compared with the previous one.
        Specified by:
        renameDirectory in interface PatchBuilder
        Parameters:
        file - directory relative to the current working directory.
        newFile - new directory location
        deleteParentDirectoryIfEmpty - pass true if you want patcher to delete parent directory if it becomes empty after the deletion. @throws IOException
        Throws:
        IOException - thrown if patch collecting process failed.
      • deleteFile

        public void deleteFile​(@NotNull
                               File file,
                               boolean deleteParentDirectoryIfEmpty)
                        throws IOException
        Description copied from interface: PatchBuilder
        Invoke this method if some file has been deleted in the next version as compared with the previous one.
        Specified by:
        deleteFile in interface PatchBuilder
        Parameters:
        file - file relative to the current working directory.
        deleteParentDirectoryIfEmpty - pass true if you want patcher to delete parent directory if it became empty after the deletion.
        Throws:
        IOException - thrown if patch collecting process failed.
      • deleteDirectory

        public void deleteDirectory​(@NotNull
                                    File file,
                                    boolean deleteParentDirectoryIfEmpty)
                             throws IOException
        Description copied from interface: PatchBuilder
        Invoke this method if some directory has been deleted in the next version as compared with the previous one.
        Specified by:
        deleteDirectory in interface PatchBuilder
        Parameters:
        file - directory relative to the current working directory.
        deleteParentDirectoryIfEmpty - pass true if you want patcher to delete parent directory if it became empty after the deletion.
        Throws:
        IOException - thrown if patch collecting process failed.
      • changeOrCreateBinaryFile

        public void changeOrCreateBinaryFile​(@NotNull
                                             File localFile,
                                             String fileMode,
                                             @NotNull
                                             InputStream input,
                                             long length)
                                      throws IOException
        Description copied from interface: PatchBuilder
        Invoke this method if some binary file content has been changed or binary file has been created in the next version as compared with the previous one. This method can be used for text file also if you want to keep existing line separators inside the file.
        Specified by:
        changeOrCreateBinaryFile in interface PatchBuilder
        Parameters:
        localFile - file relative to the current working directory.
        fileMode - file mode in the linux style. If it doesn't matter for you set it to null. Set this parameter to not null if its value changes something, for example, pass "ugo+x" if you want the file to be executable and null otherwise. It is performance issue because set file mode will create a lot of processes on the Linux.
        input - input stream containing the file content. This stream is guaranteed to be utilized within the call. So it can be safely closed/destroyed right after the invocation.
        length - length of the content.
        Throws:
        IOException - thrown if patch collecting process failed.
      • createBinaryFile

        public void createBinaryFile​(@NotNull
                                     File localFile,
                                     String fileMode,
                                     @NotNull
                                     InputStream input,
                                     long length)
                              throws IOException
        Description copied from interface: PatchBuilder
        Invoke this method if some binary file content has been created in the next version as compared with the previous one. This method can be used for text file also if you want to keep existing line separators inside the file.
        Specified by:
        createBinaryFile in interface PatchBuilder
        Parameters:
        localFile - file relative to the current working directory.
        fileMode - file mode in the linux style. If it doesn't matter for you set it to null. Set this parameter to not null if its value changes something, for example, pass "ugo+x" if you want the file to be executable and null otherwise. It is performance issue because set file mode will create a lot of processes on the Linux.
        input - input stream containing the file content. This stream is guaranteed to be utilized within the call. So it can be safely closed/destroyed right after the invocation.
        length - length of the content.
        Throws:
        IOException - thrown if patch collecting process failed.
      • createDirectory

        public void createDirectory​(@NotNull
                                    File localFile)
                             throws IOException
        Description copied from interface: PatchBuilder
        Invoke this method if some directory has been created in the next version as compared with the previous one.
        Specified by:
        createDirectory in interface PatchBuilder
        Parameters:
        localFile - file relative to the current working directory.
        Throws:
        IOException - thrown if patch collecting process failed.