Package org.codehaus.plexus.archiver
Class AbstractUnArchiver
- java.lang.Object
-
- org.codehaus.plexus.archiver.AbstractUnArchiver
-
- All Implemented Interfaces:
FinalizerEnabled,UnArchiver
- Direct Known Subclasses:
AbstractZipUnArchiver,BZip2UnArchiver,GZipUnArchiver,SnappyUnArchiver,TarUnArchiver,XZUnArchiver,ZstdUnArchiver
public abstract class AbstractUnArchiver extends Object implements UnArchiver, FinalizerEnabled
- Author:
- Emmanuel Venisse
-
-
Constructor Summary
Constructors Constructor Description AbstractUnArchiver()AbstractUnArchiver(File sourceFile)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddArchiveFinalizer(ArchiveFinalizer finalizer)protected abstract voidexecute()protected abstract voidexecute(String path, File outputDirectory)voidextract()Extract the archive.voidextract(String path, File outputDirectory)Take a path into the archive and extract it to the specified directory.protected voidextractFile(File srcF, File dir, InputStream compressedInputStream, String entryName, Date entryDate, boolean isDirectory, Integer mode, String symlinkDestination, org.codehaus.plexus.components.io.filemappers.FileMapper[] fileMappers)FilegetDestDirectory()FilegetDestFile()org.codehaus.plexus.components.io.filemappers.FileMapper[]getFileMappers()Get chain of components which rewrite the target path of each unpacked file.org.codehaus.plexus.components.io.fileselectors.FileSelector[]getFileSelectors()Returns a set ofFileSelectorinstances, which may be used to select the files to extract from the archive.protected org.slf4j.LoggergetLogger()FilegetSourceFile()booleanisIgnorePermissions()booleanisOverwrite()Gets a flag indicating destination files are always overwritten.protected booleanisSelected(String fileName, org.codehaus.plexus.components.io.resources.PlexusIoResource fileInfo)booleanisUseJvmChmod()voidsetArchiveFinalizers(List<ArchiveFinalizer> archiveFinalizers)voidsetDestDirectory(File destDirectory)voidsetDestFile(File destFile)voidsetFileMappers(org.codehaus.plexus.components.io.filemappers.FileMapper[] fileMappers)Sets chain of components to be used for rewriting target path of each unpacked file.voidsetFileSelectors(org.codehaus.plexus.components.io.fileselectors.FileSelector[] fileSelectors)Sets a set ofFileSelectorinstances, which may be used to select the files to extract from the archive.voidsetIgnorePermissions(boolean ignorePermissions)voidsetOverwrite(boolean b)Should we overwrite files in dest, even if they are newer than the corresponding entries in the archive?voidsetSourceFile(File sourceFile)voidsetUseJvmChmod(boolean useJvmChmod)jvm chmod won't set group level permissions !protected booleanshouldExtractEntry(File targetDirectory, File targetFileName, String entryName, Date entryDate)protected voidvalidate()protected voidvalidate(String path, File outputDirectory)
-
-
-
Constructor Detail
-
AbstractUnArchiver
public AbstractUnArchiver()
-
AbstractUnArchiver
public AbstractUnArchiver(File sourceFile)
-
-
Method Detail
-
getLogger
protected org.slf4j.Logger getLogger()
-
getDestDirectory
public File getDestDirectory()
- Specified by:
getDestDirectoryin interfaceUnArchiver
-
setDestDirectory
public void setDestDirectory(File destDirectory)
- Specified by:
setDestDirectoryin interfaceUnArchiver
-
getDestFile
public File getDestFile()
- Specified by:
getDestFilein interfaceUnArchiver
-
setDestFile
public void setDestFile(File destFile)
- Specified by:
setDestFilein interfaceUnArchiver
-
getSourceFile
public File getSourceFile()
- Specified by:
getSourceFilein interfaceUnArchiver
-
setSourceFile
public void setSourceFile(File sourceFile)
- Specified by:
setSourceFilein interfaceUnArchiver
-
isOverwrite
public boolean isOverwrite()
Description copied from interface:UnArchiverGets a flag indicating destination files are always overwritten.- Specified by:
isOverwritein interfaceUnArchiver- Returns:
true, if destination files are overwritten, even if they are newer than the corresponding entry in the archive.
-
setOverwrite
public void setOverwrite(boolean b)
Description copied from interface:UnArchiverShould we overwrite files in dest, even if they are newer than the corresponding entries in the archive?- Specified by:
setOverwritein interfaceUnArchiver
-
getFileMappers
public org.codehaus.plexus.components.io.filemappers.FileMapper[] getFileMappers()
Description copied from interface:UnArchiverGet chain of components which rewrite the target path of each unpacked file.- Specified by:
getFileMappersin interfaceUnArchiver- Returns:
FileMappers to be used for rewriting each target path, ornullif no rewriting shall happen.
-
setFileMappers
public void setFileMappers(org.codehaus.plexus.components.io.filemappers.FileMapper[] fileMappers)
Description copied from interface:UnArchiverSets chain of components to be used for rewriting target path of each unpacked file.- Specified by:
setFileMappersin interfaceUnArchiver- Parameters:
fileMappers-FileMapperto be used for rewriting each target path, ornullif no rewriting shall happen.
-
extract
public final void extract() throws ArchiverExceptionDescription copied from interface:UnArchiverExtract the archive.- Specified by:
extractin interfaceUnArchiver- Throws:
ArchiverException
-
extract
public final void extract(String path, File outputDirectory) throws ArchiverException
Description copied from interface:UnArchiverTake a path into the archive and extract it to the specified directory.- Specified by:
extractin interfaceUnArchiver- Parameters:
path- Path inside the archive to be extracted.outputDirectory- Directory to extract to.- Throws:
ArchiverException
-
addArchiveFinalizer
public void addArchiveFinalizer(ArchiveFinalizer finalizer)
- Specified by:
addArchiveFinalizerin interfaceFinalizerEnabled
-
setArchiveFinalizers
public void setArchiveFinalizers(List<ArchiveFinalizer> archiveFinalizers)
- Specified by:
setArchiveFinalizersin interfaceFinalizerEnabled
-
validate
protected void validate() throws ArchiverException- Throws:
ArchiverException
-
setFileSelectors
public void setFileSelectors(org.codehaus.plexus.components.io.fileselectors.FileSelector[] fileSelectors)
Description copied from interface:UnArchiverSets a set ofFileSelectorinstances, which may be used to select the files to extract from the archive. If file selectors are present, then a file is only extracted, if it is confirmed by all file selectors.- Specified by:
setFileSelectorsin interfaceUnArchiver
-
getFileSelectors
public org.codehaus.plexus.components.io.fileselectors.FileSelector[] getFileSelectors()
Description copied from interface:UnArchiverReturns a set ofFileSelectorinstances, which may be used to select the files to extract from the archive. If file selectors are present, then a file is only extracted, if it is confirmed by all file selectors.- Specified by:
getFileSelectorsin interfaceUnArchiver
-
isSelected
protected boolean isSelected(String fileName, org.codehaus.plexus.components.io.resources.PlexusIoResource fileInfo) throws ArchiverException
- Throws:
ArchiverException
-
execute
protected abstract void execute() throws ArchiverException- Throws:
ArchiverException
-
execute
protected abstract void execute(String path, File outputDirectory) throws ArchiverException
- Throws:
ArchiverException
-
isUseJvmChmod
public boolean isUseJvmChmod()
- Specified by:
isUseJvmChmodin interfaceUnArchiver- Returns:
- Since:
- 1.1
-
setUseJvmChmod
public void setUseJvmChmod(boolean useJvmChmod)
jvm chmod won't set group level permissions !- Specified by:
setUseJvmChmodin interfaceUnArchiver- Since:
- 1.1
-
isIgnorePermissions
public boolean isIgnorePermissions()
- Specified by:
isIgnorePermissionsin interfaceUnArchiver- Since:
- 1.1
-
setIgnorePermissions
public void setIgnorePermissions(boolean ignorePermissions)
- Specified by:
setIgnorePermissionsin interfaceUnArchiver- Since:
- 1.1
-
extractFile
protected void extractFile(File srcF, File dir, InputStream compressedInputStream, String entryName, Date entryDate, boolean isDirectory, Integer mode, String symlinkDestination, org.codehaus.plexus.components.io.filemappers.FileMapper[] fileMappers) throws IOException, ArchiverException
- Throws:
IOExceptionArchiverException
-
shouldExtractEntry
protected boolean shouldExtractEntry(File targetDirectory, File targetFileName, String entryName, Date entryDate) throws IOException
- Throws:
IOException
-
-