diff options
Diffstat (limited to 'rdfloader/parser2v2/parse_spdx_document.go')
-rw-r--r-- | rdfloader/parser2v2/parse_spdx_document.go | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/rdfloader/parser2v2/parse_spdx_document.go b/rdfloader/parser2v2/parse_spdx_document.go index 7769e18..8371b0f 100644 --- a/rdfloader/parser2v2/parse_spdx_document.go +++ b/rdfloader/parser2v2/parse_spdx_document.go @@ -22,7 +22,7 @@ func (parser *rdfParser2_2) parseSpdxDocumentNode(spdxDocNode *gordfParser.Node) ci.SPDXIdentifier = spdx.ElementID(offset) // 2.3 // parse other associated triples. - for _, subTriple := range parser.nodeToTriples[spdxDocNode.String()] { + for _, subTriple := range parser.nodeToTriples(spdxDocNode) { objectValue := subTriple.Object.ID switch subTriple.Predicate.ID { case SPDX_SPEC_VERSION: // 2.1: specVersion @@ -30,19 +30,23 @@ func (parser *rdfParser2_2) parseSpdxDocumentNode(spdxDocNode *gordfParser.Node) ci.SPDXVersion = objectValue case SPDX_DATA_LICENSE: // 2.2: dataLicense // cardinality: exactly 1 - ci.DataLicense, err = parser.getLicenseFromTriple(subTriple) // todo: sort it out. + dataLicense, err := parser.getAnyLicenseFromNode(subTriple.Object) + if err != nil { + return err + } + ci.DataLicense = dataLicense.ToLicenseString() case SPDX_NAME: // 2.4: DocumentName // cardinality: exactly 1 ci.DocumentName = objectValue case SPDX_EXTERNAL_DOCUMENT_REF: // 2.6: externalDocumentReferences // cardinality: min 0 var extRef string - extRef, err = parser.getExternalDocumentRefFromTriples(parser.nodeToTriples[subTriple.Object.String()]) + extRef, err = parser.getExternalDocumentRefFromTriples(parser.nodeToTriples(subTriple.Object)) ci.ExternalDocumentReferences = append(ci.ExternalDocumentReferences, extRef) case SPDX_CREATION_INFO: // 2.7 - 2.10: // cardinality: exactly 1 err = parser.parseCreationInfoFromNode(ci, subTriple.Object) - case SPDX_COMMENT: // 2.11: Document Comment + case RDFS_COMMENT: // 2.11: Document Comment // cardinality: max 1 ci.DocumentComment = objectValue case SPDX_REVIEWED: // reviewed: @@ -58,7 +62,12 @@ func (parser *rdfParser2_2) parseSpdxDocumentNode(spdxDocNode *gordfParser.Node) parser.doc.Packages[pkg.PackageSPDXIdentifier] = pkg case SPDX_HAS_EXTRACTED_LICENSING_INFO: // hasExtractedLicensingInfo // cardinality: min 0 - err = parser.parseOtherLicenseFromNode(subTriple.Object) // todo: sort this out. + extractedLicensingInfo, err := parser.getExtractedLicensingInfoFromNode(subTriple.Object) + if err != nil { + return fmt.Errorf("error setting extractedLicensingInfo in spdxDocument: %v", err) + } + othLicense := parser.extractedLicenseToOtherLicense(extractedLicensingInfo) + parser.doc.OtherLicenses = append(parser.doc.OtherLicenses, &othLicense) case SPDX_RELATIONSHIP: // relationship // cardinality: min 0 err = parser.parseRelationship(subTriple) |