private static void copyOrigins(OriginsSheet originsSheet, SPDXDocument analysis) throws InvalidSPDXAnalysisException { Date createdDate = originsSheet.getCreated(); String created = format.format(createdDate); String[] createdBys = originsSheet.getCreatedBy(); String creatorComment = originsSheet.getAuthorComments(); SPDXCreatorInformation creator = new SPDXCreatorInformation(createdBys, created, creatorComment); String specVersion = originsSheet.getSPDXVersion(); analysis.setSpdxVersion(specVersion); String dataLicenseId = originsSheet.getDataLicense(); if (dataLicenseId == null || dataLicenseId.isEmpty() || dataLicenseId.equals(RdfToSpreadsheet.NOT_SUPPORTED_STRING)) { if (specVersion.equals(SPDXDocument.ONE_DOT_ZERO_SPDX_VERSION)) { dataLicenseId = SpdxRdfConstants.SPDX_DATA_LICENSE_ID_VERSION_1_0; } else { dataLicenseId = SpdxRdfConstants.SPDX_DATA_LICENSE_ID; } } SPDXStandardLicense dataLicense = null; try { dataLicense = (SPDXStandardLicense) SPDXLicenseInfoFactory.parseSPDXLicenseString(dataLicenseId); } catch (Exception ex) { try { dataLicense = (SPDXStandardLicense) SPDXLicenseInfoFactory.parseSPDXLicenseString( SpdxRdfConstants.SPDX_DATA_LICENSE_ID); } catch (InvalidLicenseStringException e) { throw (new InvalidSPDXAnalysisException("Unable to get document license")); } } analysis.setDataLicense(dataLicense); analysis.setCreationInfo(creator); }
/* (non-Javadoc) * @see org.spdx.rdfparser.AbstractSheet#verify() */ @Override public String verify() { try { if (sheet == null) { return "Worksheet for SPDX Package Info does not exist"; } if (!OriginsSheet.verifyVersion(version)) { return "Unsupported version " + version; } Row firstRow = sheet.getRow(firstRowNum); for (int i = 0; i < NUM_COLS; i++) { Cell cell = firstRow.getCell(i + firstCellNum); if (cell == null || cell.getStringCellValue() == null || !cell.getStringCellValue().equals(HEADER_TITLES[i])) { return "Column " + HEADER_TITLES[i] + " missing for SPDX Package Info worksheet"; } } // validate rows boolean done = false; int rowNum = firstRowNum + 1; while (!done) { Row row = sheet.getRow(rowNum); if (row == null || row.getCell(firstCellNum) == null) { done = true; } else { String error = validateRow(row); if (error != null) { return error; } rowNum++; } } return null; } catch (Exception ex) { return "Error in verifying SPDX Package Info work sheet: " + ex.getMessage(); } }