Class PerlCpanfileAnalyzer
- All Implemented Interfaces:
FileFilter, Analyzer, FileTypeAnalyzer
Used to analyze Perl CPAN files. The analyzer does not yet differentiate developer and test dependencies from required dependencies. Nor does the analyzer support `cpanfile.snapshot` files yet. Finally, version ranges are not yet correctly handled either.
Future enhancements should include supporting the snapshot files (which should not have version ranges) and correctly parsing the cpanfile DSL so that one can differentiate developer and test dependencies - which one may not want to include in the analysis.
- Author:
- Harjit Sandhu, Jeremy Long
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidanalyzeDependency(Dependency dependency, Engine engine) Analyzes a given dependency.Returns the phase that the analyzer is intended to run in.protected StringReturns the setting key to determine if the analyzer is enabled.protected FileFilterReturns theFileFilterused to determine which files are to be analyzed.getName()Returns the name of the analyzer.prepareContents(String contents) protected voidprepareFileTypeAnalyzer(Engine engine) Prepares the file type analyzer for dependency analysis.protected voidprocessFileContents(List<String> fileLines, String filePath, Engine engine) Methods inherited from class AbstractFileTypeAnalyzer
accept, getFilesMatched, newHashSet, prepareAnalyzer, setFilesMatchedMethods inherited from class AbstractAnalyzer
analyze, close, closeAnalyzer, getSettings, initialize, isEnabled, prepare, setEnabled, supportsParallelProcessingMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Analyzer
analyze, close, initialize, isEnabled, prepare, supportsParallelProcessing
-
Constructor Details
-
PerlCpanfileAnalyzer
public PerlCpanfileAnalyzer()Create a new Perl CPAN File Analyzer.
-
-
Method Details
-
getFileFilter
Description copied from class:AbstractFileTypeAnalyzerReturns the
FileFilterused to determine which files are to be analyzed. An example would be an analyzer that inspected Java jar files. Implementors may useFileFilterBuilder.If the analyzer returns null it will not cause additional files to be analyzed, but will be executed against every file loaded.
- Specified by:
getFileFilterin classAbstractFileTypeAnalyzer- Returns:
- the file filter used to determine which files are to be analyzed
-
getName
-
getAnalysisPhase
Description copied from interface:AnalyzerReturns the phase that the analyzer is intended to run in.- Returns:
- the phase that the analyzer is intended to run in.
-
getAnalyzerEnabledSettingKey
Description copied from class:AbstractAnalyzerReturns the setting key to determine if the analyzer is enabled.
- Specified by:
getAnalyzerEnabledSettingKeyin classAbstractAnalyzer- Returns:
- the key for the analyzer's enabled property
-
prepareFileTypeAnalyzer
Description copied from class:AbstractFileTypeAnalyzerPrepares the file type analyzer for dependency analysis.- Specified by:
prepareFileTypeAnalyzerin classAbstractFileTypeAnalyzer- Parameters:
engine- a reference to the dependency-check engine- Throws:
InitializationException- thrown if there is an exception during initialization
-
analyzeDependency
Description copied from class:AbstractAnalyzerAnalyzes a given dependency. If the dependency is an archive, such as a WAR or EAR, the contents are extracted, scanned, and added to the list of dependencies within the engine.- Specified by:
analyzeDependencyin classAbstractAnalyzer- Parameters:
dependency- the dependency to analyzeengine- the engine scanning- Throws:
AnalysisException- thrown if there is an analysis exception
-
prepareContents
-
processFileContents
protected void processFileContents(List<String> fileLines, String filePath, Engine engine) throws AnalysisException - Throws:
AnalysisException
-