Package org.eclipse.aether.spi.io
Interface PathProcessor
- All Known Implementing Classes:
DefaultPathProcessor,PathProcessorSupport,TestPathProcessor
public interface PathProcessor
A utility component to perform file-based operations.
- Since:
- 2.0.0
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceA collocated temporary file, that resides next to a "target" file, and is removed when closed.static interfaceA listener object that is notified for every progress made while copying files.static interfaceA temporary file, that is removed when closed. -
Method Summary
Modifier and TypeMethodDescriptiondefault voidCopies the specified source file to the given target file.longcopy(Path source, Path target, PathProcessor.ProgressListener listener) Copies the specified source file to the given target file.default voidcopyWithTimestamp(Path source, Path target) Same ascopy(Path, Path)but sets source file last modified timestamp on target as well.default longlastModified(Path path, long defValue) Returns last modified of path in milliseconds, if exists.voidMoves the specified source file to the given target file.Creates aPathProcessor.TempFileinstance and backing temporary file on file system.newTempFile(Path file) Creates aPathProcessor.CollocatedTempFileinstance for given file without backing file.booleansetLastModified(Path path, long value) Sets last modified of path in milliseconds, if exists.default longReturns size of file, if exists.voidwrite(Path target, InputStream source) Writes the given stream to a file.voidWrites the given data to a file.voidwriteWithBackup(Path target, InputStream source) Writes the given stream to a file.voidwriteWithBackup(Path target, String data) Writes the given data to a file.
-
Method Details
-
lastModified
Returns last modified of path in milliseconds, if exists.- Parameters:
path- The path, may benull.- Throws:
UncheckedIOException- If an I/O error occurs.
-
setLastModified
Sets last modified of path in milliseconds, if exists.- Parameters:
path- The path, may benull.- Throws:
IOException- If an I/O error occurs. Some exceptions/reasons of failure to set mtime may be swallowed, and can be multiple, ranging from "file not found" to cases when FS does not support the setting the mtime.- Since:
- 2.0.0
-
size
Returns size of file, if exists.- Parameters:
path- The path, may benull.- Throws:
UncheckedIOException- If an I/O error occurs.
-
write
Writes the given data to a file. UTF-8 is assumed as encoding for the data. Creates the necessary directories for the target file. In case of an error, the created directories will be left on the file system.- Parameters:
target- The file to write to, must not benull. This file will be overwritten.data- The data to write, may benull.- Throws:
IOException- If an I/O error occurs.
-
write
Writes the given stream to a file. Creates the necessary directories for the target file. In case of an error, the created directories will be left on the file system.- Parameters:
target- The file to write to, must not benull. This file will be overwritten.source- The stream to write to the file, must not benull.- Throws:
IOException- If an I/O error occurs.
-
writeWithBackup
Writes the given data to a file. UTF-8 is assumed as encoding for the data. Creates the necessary directories for the target file. In case of an error, the created directories will be left on the file system.- Parameters:
target- The file to write to, must not benull. This file will be overwritten.data- The data to write, may benull.- Throws:
IOException- If an I/O error occurs.- Since:
- 2.0.13
-
writeWithBackup
Writes the given stream to a file. Creates the necessary directories for the target file. In case of an error, the created directories will be left on the file system.- Parameters:
target- The file to write to, must not benull. This file will be overwritten.source- The stream to write to the file, must not benull.- Throws:
IOException- If an I/O error occurs.- Since:
- 2.0.13
-
move
Moves the specified source file to the given target file. If the target file already exists, it is overwritten. Creates the necessary directories for the target file. In case of an error, the created directories will be left on the file system.- Parameters:
source- The file to move from, must not benull.target- The file to move to, must not benull.- Throws:
IOException- If an I/O error occurs.
-
copy
Copies the specified source file to the given target file. Creates the necessary directories for the target file. In case of an error, the created directories will be left on the file system.- Parameters:
source- The file to copy from, must not benull.target- The file to copy to, must not benull.- Throws:
IOException- If an I/O error occurs.
-
copyWithTimestamp
Same ascopy(Path, Path)but sets source file last modified timestamp on target as well.- Parameters:
source- The file to copy from, must not benull.target- The file to copy to, must not benull.- Throws:
IOException- If an I/O error occurs.- Since:
- 2.0.0
- See Also:
-
copy
Copies the specified source file to the given target file. Creates the necessary directories for the target file. In case of an error, the created directories will be left on the file system.- Parameters:
source- The file to copy from, must not benull.target- The file to copy to, must not benull.listener- The listener to notify about the copy progress, may benull.- Returns:
- The number of copied bytes.
- Throws:
IOException- If an I/O error occurs.
-
newTempFile
Creates aPathProcessor.TempFileinstance and backing temporary file on file system. It will be located in the default temporary-file directory. Returned instance should be handled in try-with-resource construct and created temp file is removed (if exists) when returned instance is closed.This method uses
Files.createTempFile(String, String, java.nio.file.attribute.FileAttribute[])to create the temporary file on file system.- Throws:
IOException- Since:
- 2.0.13
-
newTempFile
Creates aPathProcessor.CollocatedTempFileinstance for given file without backing file. The path will be located in same directory where given file is, and will reuse its name for generated (randomized) name. Returned instance should be handled in try-with-resource and created temp path is removed (if exists) when returned instance is closed. ThePathProcessor.CollocatedTempFile.move()makes possible to atomically replace passed in file with the processed content written into a file backing thePathProcessor.CollocatedTempFileinstance.The
filenor it's parent directories have to exist. The parent directories are created if needed.This method uses
Path.resolve(String)to create the temporary file path in passed in file parent directory, but it does NOT create backing file on file system.- Throws:
IOException- Since:
- 2.0.13
-