package spdxedit.util; import javafx.util.StringConverter; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.spdx.rdfparser.InvalidSPDXAnalysisException; import org.spdx.rdfparser.license.ExtractedLicenseInfo; import org.spdx.rdfparser.license.ListedLicenses; import org.spdx.rdfparser.license.SpdxListedLicense; import org.spdx.rdfparser.model.SpdxDocument; /** * Contains converters between SPDX model elements and strings that implement * FX's StringConverter interface */ public class StringConverters { private static final Logger logger = LoggerFactory.getLogger(StringConverters.class); public static StringConverter<ExtractedLicenseInfo> createStringConverterForDocument(final SpdxDocument document) { return new StringConverter<ExtractedLicenseInfo>() { @Override public String toString(ExtractedLicenseInfo object) { return object.getName(); } @Override public ExtractedLicenseInfo fromString(String string) { try { ExtractedLicenseInfo result = null; for (ExtractedLicenseInfo extractedLicenseInfo : document.getExtractedLicenseInfos()) { if (StringUtils.equals(extractedLicenseInfo.getName(), string)) { result = extractedLicenseInfo; break; } } if (result == null) { logger.error("Unable to find extracted license with name " + string); } return result; } catch (InvalidSPDXAnalysisException e) { throw new RuntimeException(e); } } }; } }