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