public static Vulnerabilities.Vulnerability.Finding convertTFFindingToSSVLFinding(
      Finding tfFinding) {

    Vulnerabilities.Vulnerability.Finding ssvlFinding =
        factory.createVulnerabilitiesVulnerabilityFinding();

    ssvlFinding.setFindingDescription(tfFinding.getChannelVulnerability().getName());
    ssvlFinding.setLongDescription(tfFinding.getLongDescription());
    ssvlFinding.setNativeID(tfFinding.getNativeId());
    ssvlFinding.setAttackString(tfFinding.getAttackString());
    ssvlFinding.setScanner(tfFinding.getChannelNameOrNull());
    ssvlFinding.setSeverity(tfFinding.getChannelSeverity().getName());
    ssvlFinding.setIdentifiedTimestamp(getTimestamp(tfFinding.getScan().getImportTime()));
    if (!tfFinding.getIsStatic())
      ssvlFinding.setSurfaceLocation(
          convertTFSurfaceLocationToSSVL(tfFinding.getSurfaceLocation()));

    if (tfFinding.getDataFlowElements() != null)
      for (DataFlowElement tfDataFlow : tfFinding.getDataFlowElements()) {
        ssvlFinding.getDataFlowElement().add(convertTFDataFlowElementToSSVL(tfDataFlow));
      }

    ssvlFinding.setDependency(convertTFDependencyToSSVL(tfFinding.getDependency()));

    return ssvlFinding;
  }