1// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 2 3package parser2v3 4 5import ( 6 "fmt" 7 8 gordfParser "github.com/spdx/gordf/rdfloader/parser" 9 "github.com/spdx/tools-golang/spdx/v2_3" 10) 11 12func (parser *rdfParser2_3) setReviewFromNode(reviewedNode *gordfParser.Node) error { 13 review := v2_3.Review{} 14 for _, triple := range parser.nodeToTriples(reviewedNode) { 15 switch triple.Predicate.ID { 16 case RDF_TYPE: 17 // cardinality: exactly 1 18 continue 19 case RDFS_COMMENT: 20 // cardinality: max 1 21 review.ReviewComment = triple.Object.ID 22 case SPDX_REVIEW_DATE: 23 // cardinality: exactly 1 24 review.ReviewDate = triple.Object.ID 25 case SPDX_REVIEWER: 26 // cardinality: max 1 27 var err error 28 review.ReviewerType, review.Reviewer, err = ExtractSubs(triple.Object.ID, ":") 29 if err != nil { 30 return fmt.Errorf("error parsing reviewer: %v", err) 31 } 32 default: 33 return fmt.Errorf("unknown predicate %v for review triples", triple.Predicate) 34 } 35 } 36 parser.doc.Reviews = append(parser.doc.Reviews, &review) 37 return nil 38} 39