Class ExtractResourcesProcessor
- All Implemented Interfaces:
ExtensionsFileProcessor
public class ExtractResourcesProcessor extends Object implements ExtensionsFileProcessor
The filter (in the form of a regular expressions pattern) can be specified to limit which files are extracted from the JAR file. The filter is also used to re-write target file names if they need to be different from the file names in the JAR file.
Note! It is recommended that this processor is paired with a
ValidAndNewOrModifiedFilter
since it is usually no
point in extracting resources from invalid extensions.
- Since:
- 3.0
- Author:
- Nicklas
- Last modified
- $Date: 2019-03-12 07:53:27 +0100 (tis, 12 mars 2019) $
-
Field Summary
Fields Modifier and Type Field Description private Pattern
filter
private static org.slf4j.Logger
log
private File
mainDir
private int
numError
private int
numFiles
private int
numTotalExtracted
private String
replacement
private ProcessResults
results
-
Constructor Summary
Constructors Constructor Description ExtractResourcesProcessor(File mainDir, Pattern filter, String replacement, ProcessResults results)
Create a new processor.ExtractResourcesProcessor(File mainDir, ProcessResults results)
Create a new processor. -
Method Summary
Modifier and Type Method Description void
begin(ExtensionsManager manager, int numFiles)
Called by the extensions manager before the processing starts.void
done(ExtensionsManager manager)
Called by the extensions manager after a successful completion of the processing.void
done(ExtensionsManager manager, Throwable t)
Called by the extensions manager if an exception was thrown by the processor.int
getNumError()
Get the number of files that was had an error.int
getNumExtracted()
Get the total number of resources that was extracts.int
getNumFiles()
Get the number of files that was successfully processed.void
processFile(ExtensionsManager manager, ExtensionsFile.WriteableExtensionsFile wFile)
Called by the extensions manager for each extensions file that it manages.
-
Field Details
-
log
private static final org.slf4j.Logger log -
mainDir
-
filter
-
replacement
-
results
-
numFiles
private int numFiles -
numError
private int numError -
numTotalExtracted
private int numTotalExtracted
-
-
Constructor Details
-
ExtractResourcesProcessor
Create a new processor.- Parameters:
mainDir
- The main directory to where the resources should be extracted
-
ExtractResourcesProcessor
public ExtractResourcesProcessor(File mainDir, Pattern filter, String replacement, ProcessResults results)Create a new processor.- Parameters:
mainDir
- The main directory to where the resources should be extractedfilter
- A regular expression filter that must match the file name in the JAR filereplacement
- A replacement string to create a new file name usingMatcher.replaceAll(String)
.
-
-
Method Details
-
begin
Description copied from interface:ExtensionsFileProcessor
Called by the extensions manager before the processing starts.- Specified by:
begin
in interfaceExtensionsFileProcessor
- Parameters:
manager
- The manager that is executing the actionnumFiles
- The number of extension files that is going to be processed this time
-
processFile
Description copied from interface:ExtensionsFileProcessor
Called by the extensions manager for each extensions file that it manages. The order of the files is generally not predicatable and may change from one invokation to the next.If the processor throws an exception the manager will abort processing and call
ExtensionsFileProcessor.done(ExtensionsManager, Throwable)
. Error that are related to a specific file should be catched by the processor and registered by calling .......If all files was processed without exceptions the manager will call
ExtensionsFileProcessor.done(ExtensionsManager)
.Note that the file is read-only to begin with. If the processor wants to call any write-operation the file must be opened by calling
ExtensionsFile.WriteableExtensionsFile.open()
. It is recommended that the processor callsExtensionsFile.WriteableExtensionsFile.close()
once it is done writing.- Specified by:
processFile
in interfaceExtensionsFileProcessor
- Parameters:
manager
- The manager that is executing the actionwFile
- The file to be processed
-
done
Description copied from interface:ExtensionsFileProcessor
Called by the extensions manager after a successful completion of the processing.- Specified by:
done
in interfaceExtensionsFileProcessor
- Parameters:
manager
- The manager that is executing the action
-
done
Description copied from interface:ExtensionsFileProcessor
Called by the extensions manager if an exception was thrown by the processor.- Specified by:
done
in interfaceExtensionsFileProcessor
- Parameters:
manager
- The manager that is executing the actiont
- The exception
-
getNumFiles
public int getNumFiles()Get the number of files that was successfully processed. -
getNumError
public int getNumError()Get the number of files that was had an error. -
getNumExtracted
public int getNumExtracted()Get the total number of resources that was extracts.
-