code: @Override
      protected void analyzeDependency(Dependency dependency, Engine engine) throws AnalysisException {
          final CveDB cveDB = engine.getDatabase();
          try {
              dependency.getVulnerableSoftwareIdentifiers().stream()
                      .filter((i) -> (i instanceof CpeIdentifier))
                      .map(i -> (CpeIdentifier) i)
                      .forEach(i -> {
                          try {
                              final List<Vulnerability> vulns = cveDB.getVulnerabilities(i.getCpe());
                              dependency.addVulnerabilities(vulns);
                          } catch (DatabaseException ex) {
                              throw new LambdaExceptionWrapper(new AnalysisException(ex));
                          }
                      });
              dependency.getSuppressedIdentifiers().stream()
                      .filter((i) -> (i instanceof CpeIdentifier))
                      .map(i -> (CpeIdentifier) i)
                      .forEach(i -> {
                          try {
                              final List<Vulnerability> vulns = cveDB.getVulnerabilities(i.getCpe());
                              dependency.addSuppressedVulnerabilities(vulns);
                          } catch (DatabaseException ex) {
                              throw new LambdaExceptionWrapper(new AnalysisException(ex));
                          }
                      });
          } catch (LambdaExceptionWrapper ex) {
              throw (AnalysisException) ex.getCause();
          }
      }
docs: Analyzes a dependency and attempts to determine if there are any CPE
  identifiers for this dependency.
  
  @param dependency The Dependency to analyze
  @param engine The analysis engine
  @throws AnalysisException thrown if there is an issue analyzing the
  dependency