@ThreadSafe public class PerlCpanfileAnalyzer extends AbstractFileTypeAnalyzer
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.
Constructor and Description |
---|
PerlCpanfileAnalyzer()
Create a new Perl CPAN File Analyzer.
|
Modifier and Type | Method and Description |
---|---|
protected void |
analyzeDependency(Dependency dependency,
Engine engine)
Analyzes a given dependency.
|
AnalysisPhase |
getAnalysisPhase()
Returns the phase that the analyzer is intended to run in.
|
protected java.lang.String |
getAnalyzerEnabledSettingKey()
Returns the setting key to determine if the analyzer is enabled.
|
protected java.io.FileFilter |
getFileFilter()
Returns the
FileFilter used to determine which files are
to be analyzed. |
java.lang.String |
getName()
Returns the name of the analyzer.
|
protected java.util.List<java.lang.String> |
prepareContents(java.lang.String contents) |
protected void |
prepareFileTypeAnalyzer(Engine engine)
Prepares the file type analyzer for dependency analysis.
|
protected void |
processFileContents(java.util.List<java.lang.String> fileLines,
java.lang.String filePath,
Engine engine) |
accept, getFilesMatched, newHashSet, prepareAnalyzer, setFilesMatched
analyze, close, closeAnalyzer, getSettings, initialize, isEnabled, prepare, setEnabled, supportsParallelProcessing
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
analyze, close, initialize, isEnabled, prepare, supportsParallelProcessing
public PerlCpanfileAnalyzer()
protected java.io.FileFilter getFileFilter()
AbstractFileTypeAnalyzer
Returns the FileFilter
used to determine which files are
to be analyzed. An example would be an analyzer that inspected Java jar
files. Implementors may use
FileFilterBuilder
.
If the analyzer returns null it will not cause additional files to be analyzed, but will be executed against every file loaded.
getFileFilter
in class AbstractFileTypeAnalyzer
public java.lang.String getName()
Analyzer
public AnalysisPhase getAnalysisPhase()
Analyzer
protected java.lang.String getAnalyzerEnabledSettingKey()
AbstractAnalyzer
Returns the setting key to determine if the analyzer is enabled.
getAnalyzerEnabledSettingKey
in class AbstractAnalyzer
protected void prepareFileTypeAnalyzer(Engine engine) throws InitializationException
AbstractFileTypeAnalyzer
prepareFileTypeAnalyzer
in class AbstractFileTypeAnalyzer
engine
- a reference to the dependency-check engineInitializationException
- thrown if there is an exception during
initializationprotected void analyzeDependency(Dependency dependency, Engine engine) throws AnalysisException
AbstractAnalyzer
analyzeDependency
in class AbstractAnalyzer
dependency
- the dependency to analyzeengine
- the engine scanningAnalysisException
- thrown if there is an analysis exceptionprotected java.util.List<java.lang.String> prepareContents(java.lang.String contents)
protected void processFileContents(java.util.List<java.lang.String> fileLines, java.lang.String filePath, Engine engine) throws AnalysisException
AnalysisException
Copyright© 2012-21 Jeremy Long. All Rights Reserved.