aboutsummaryrefslogtreecommitdiff
path: root/rdfloader/parser2v2/parse_spdx_document.go
diff options
context:
space:
mode:
Diffstat (limited to 'rdfloader/parser2v2/parse_spdx_document.go')
-rw-r--r--rdfloader/parser2v2/parse_spdx_document.go19
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)