code: @Override
      public void analyzeDependency(Dependency dependency, Engine engine) throws AnalysisException {
          for (Evidence e : dependency.getEvidence(EvidenceType.VENDOR)) {
              if ("pom".equals(e.getSource())) {
                  return;
              }
          }
          try {
              final List<MavenArtifact> mas = searcher.search(dependency);
              final Confidence confidence = mas.size() > 1 ? Confidence.HIGH : Confidence.HIGHEST;
              for (MavenArtifact ma : mas) {
                  LOGGER.debug("Artifactory analyzer found artifact ({}) for dependency ({})", ma, dependency.getFileName());
                  dependency.addAsEvidence("artifactory", ma, confidence);
  
                  if (ma.getPomUrl() != null) {
                      processPom(dependency, ma);
                  }
              }
          } catch (IllegalArgumentException iae) {
              LOGGER.info("invalid sha1-hash on {}", dependency.getFileName());
          } catch (FileNotFoundException fnfe) {
              LOGGER.debug("Artifact not found in repository: '{}", dependency.getFileName());
          } catch (IOException ioe) {
              final String message = "Could not connect to Artifactory search. Analysis failed.";
              LOGGER.error(message, ioe);
              throw new AnalysisException(message, ioe);
          }
      }
docs: Performs the analysis.
  
  @param dependency the dependency to analyze
  @param engine the engine
  @throws AnalysisException when there's an exception during analysis