jetbrains.buildServer.vcs.patches
Class PatchBuilderAdapter

java.lang.Object
  extended by jetbrains.buildServer.vcs.patches.PatchBuilderAdapter
All Implemented Interfaces:
PatchBuilder

public class PatchBuilderAdapter
extends java.lang.Object
implements PatchBuilder


Constructor Summary
PatchBuilderAdapter()
           
 
Method Summary
 void changeOrCreateBinaryFile(java.io.File file, java.lang.String fileMode, java.io.InputStream input, long length)
          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.
 void changeOrCreateTextFile(java.io.File localFile, java.lang.String fileMode, java.io.InputStream input, long length, byte[] lineSeparator)
          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.
 void createBinaryFile(java.io.File relativeFile, java.lang.String fileMode, java.io.InputStream input, long length)
          Invoke this method if some binary file content has been created in the next version as compared with the previous one.
 void createDirectory(java.io.File file)
          Invoke this method if some directory has been created in the next version as compared with the previous one.
 void createTextFile(java.io.File relativeFile, java.lang.String fileMode, java.io.InputStream input, long length, byte[] lineSeparator)
          Invoke this method if some text file has been created in the next version as compared with the previous one.
 void deleteDirectory(java.io.File file, boolean deleteParentDirectoryIfEmpty)
          Invoke this method if some directory has been deleted in the next version as compared with the previous one.
 void deleteFile(java.io.File file, boolean deleteParentDirectoryIfEmpty)
          Invoke this method if some file has been deleted in the next version as compared with the previous one.
 void renameDirectory(java.io.File file, java.io.File newFile, boolean deleteParentDirectoryIfEmpty)
          Invoke this method if some directory has been renamed in the next version as compared with the previous one.
 void renameFile(java.io.File file, java.io.File newFile, boolean deleteParentDirectoryIfEmpty)
          Invoke this method if some file has been renamed in the next version as compared with the previous one.
 void setLastModified(java.io.File currentRelativeFile, long time)
          Set last modified timestamp for file
 void setWorkingDirectory(java.io.File workingDir, boolean createDirectory)
          Allows you to switch on to the specified directory keeping old content of this directory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PatchBuilderAdapter

public PatchBuilderAdapter()
Method Detail

deleteFile

public void deleteFile(@NotNull
                       java.io.File file,
                       boolean deleteParentDirectoryIfEmpty)
                throws java.io.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:
java.io.IOException - thrown if patch collecting process failed.

changeOrCreateTextFile

public void changeOrCreateTextFile(@NotNull
                                   java.io.File localFile,
                                   java.lang.String fileMode,
                                   @NotNull
                                   java.io.InputStream input,
                                   long length,
                                   byte[] lineSeparator)
                            throws java.io.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:
java.io.IOException - thrown if patch collecting process failed.

changeOrCreateBinaryFile

public void changeOrCreateBinaryFile(@NotNull
                                     java.io.File file,
                                     java.lang.String fileMode,
                                     @NotNull
                                     java.io.InputStream input,
                                     long length)
                              throws java.io.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:
file - 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:
java.io.IOException - thrown if patch collecting process failed.

deleteDirectory

public void deleteDirectory(@NotNull
                            java.io.File file,
                            boolean deleteParentDirectoryIfEmpty)
                     throws java.io.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:
java.io.IOException - thrown if patch collecting process failed.

createDirectory

public void createDirectory(@NotNull
                            java.io.File file)
                     throws java.io.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:
file - file relative to the current working directory.
Throws:
java.io.IOException - thrown if patch collecting process failed.

createBinaryFile

public void createBinaryFile(@NotNull
                             java.io.File relativeFile,
                             java.lang.String fileMode,
                             @NotNull
                             java.io.InputStream input,
                             long length)
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:
relativeFile - 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.

createTextFile

public void createTextFile(@NotNull
                           java.io.File relativeFile,
                           java.lang.String fileMode,
                           @NotNull
                           java.io.InputStream input,
                           long length,
                           byte[] lineSeparator)
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:
relativeFile - 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.

setWorkingDirectory

public void setWorkingDirectory(@NotNull
                                java.io.File workingDir,
                                boolean createDirectory)
                         throws java.io.IOException
Description copied from interface: PatchBuilder
Allows you to switch on to the specified directory keeping old content of this directory.

Specified by:
setWorkingDirectory in interface PatchBuilder
Parameters:
workingDir - new working directory. Path relative to the initial directory, not to the current one.
createDirectory - if directory should be created on file system if specified directory is absent.
Throws:
java.io.IOException - thrown if patch collecting process failed.

renameFile

public void renameFile(@NotNull
                       java.io.File file,
                       @NotNull
                       java.io.File newFile,
                       boolean deleteParentDirectoryIfEmpty)
                throws java.io.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
newFile - new file location
deleteParentDirectoryIfEmpty - pass true if you want patcher to delete parent directory if it becomes empty after the deletion.
Throws:
java.io.IOException - thrown if patch collecting process failed.

renameDirectory

public void renameDirectory(@NotNull
                            java.io.File file,
                            @NotNull
                            java.io.File newFile,
                            boolean deleteParentDirectoryIfEmpty)
                     throws java.io.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
deleteParentDirectoryIfEmpty - pass true if you want patcher to delete parent directory if it becomes empty after the deletion. @throws IOException
Throws:
java.io.IOException - thrown if patch collecting process failed.

setLastModified

public void setLastModified(@NotNull
                            java.io.File currentRelativeFile,
                            long time)
                     throws java.io.IOException
Description copied from interface: PatchBuilder
Set last modified timestamp for file

Specified by:
setLastModified in interface PatchBuilder
Parameters:
currentRelativeFile - relative file
time - last modified timestamp
Throws:
java.io.IOException - in case of error