aboutsummaryrefslogtreecommitdiff
path: root/rdfloader/parser2v3/parse_review.go
diff options
context:
space:
mode:
Diffstat (limited to 'rdfloader/parser2v3/parse_review.go')
-rw-r--r--rdfloader/parser2v3/parse_review.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/rdfloader/parser2v3/parse_review.go b/rdfloader/parser2v3/parse_review.go
new file mode 100644
index 0000000..c1c8b02
--- /dev/null
+++ b/rdfloader/parser2v3/parse_review.go
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+
+package parser2v3
+
+import (
+ "fmt"
+
+ gordfParser "github.com/spdx/gordf/rdfloader/parser"
+ "github.com/spdx/tools-golang/spdx/v2_3"
+)
+
+func (parser *rdfParser2_3) setReviewFromNode(reviewedNode *gordfParser.Node) error {
+ review := v2_3.Review{}
+ for _, triple := range parser.nodeToTriples(reviewedNode) {
+ switch triple.Predicate.ID {
+ case RDF_TYPE:
+ // cardinality: exactly 1
+ continue
+ case RDFS_COMMENT:
+ // cardinality: max 1
+ review.ReviewComment = triple.Object.ID
+ case SPDX_REVIEW_DATE:
+ // cardinality: exactly 1
+ review.ReviewDate = triple.Object.ID
+ case SPDX_REVIEWER:
+ // cardinality: max 1
+ var err error
+ review.ReviewerType, review.Reviewer, err = ExtractSubs(triple.Object.ID, ":")
+ if err != nil {
+ return fmt.Errorf("error parsing reviewer: %v", err)
+ }
+ default:
+ return fmt.Errorf("unknown predicate %v for review triples", triple.Predicate)
+ }
+ }
+ parser.doc.Reviews = append(parser.doc.Reviews, &review)
+ return nil
+}