1*ba677afaSXin Li// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 2*ba677afaSXin Li 3*ba677afaSXin Lipackage parser2v1 4*ba677afaSXin Li 5*ba677afaSXin Liimport ( 6*ba677afaSXin Li "fmt" 7*ba677afaSXin Li 8*ba677afaSXin Li "github.com/spdx/tools-golang/spdx/v2_1" 9*ba677afaSXin Li) 10*ba677afaSXin Li 11*ba677afaSXin Lifunc (parser *tvParser2_1) parsePairFromOtherLicense2_1(tag string, value string) error { 12*ba677afaSXin Li switch tag { 13*ba677afaSXin Li // tag for creating new other license section 14*ba677afaSXin Li case "LicenseID": 15*ba677afaSXin Li parser.otherLic = &v2_1.OtherLicense{} 16*ba677afaSXin Li parser.doc.OtherLicenses = append(parser.doc.OtherLicenses, parser.otherLic) 17*ba677afaSXin Li parser.otherLic.LicenseIdentifier = value 18*ba677afaSXin Li case "ExtractedText": 19*ba677afaSXin Li parser.otherLic.ExtractedText = value 20*ba677afaSXin Li case "LicenseName": 21*ba677afaSXin Li parser.otherLic.LicenseName = value 22*ba677afaSXin Li case "LicenseCrossReference": 23*ba677afaSXin Li parser.otherLic.LicenseCrossReferences = append(parser.otherLic.LicenseCrossReferences, value) 24*ba677afaSXin Li case "LicenseComment": 25*ba677afaSXin Li parser.otherLic.LicenseComment = value 26*ba677afaSXin Li // for relationship tags, pass along but don't change state 27*ba677afaSXin Li case "Relationship": 28*ba677afaSXin Li parser.rln = &v2_1.Relationship{} 29*ba677afaSXin Li parser.doc.Relationships = append(parser.doc.Relationships, parser.rln) 30*ba677afaSXin Li return parser.parsePairForRelationship2_1(tag, value) 31*ba677afaSXin Li case "RelationshipComment": 32*ba677afaSXin Li return parser.parsePairForRelationship2_1(tag, value) 33*ba677afaSXin Li // for annotation tags, pass along but don't change state 34*ba677afaSXin Li case "Annotator": 35*ba677afaSXin Li parser.ann = &v2_1.Annotation{} 36*ba677afaSXin Li parser.doc.Annotations = append(parser.doc.Annotations, parser.ann) 37*ba677afaSXin Li return parser.parsePairForAnnotation2_1(tag, value) 38*ba677afaSXin Li case "AnnotationDate": 39*ba677afaSXin Li return parser.parsePairForAnnotation2_1(tag, value) 40*ba677afaSXin Li case "AnnotationType": 41*ba677afaSXin Li return parser.parsePairForAnnotation2_1(tag, value) 42*ba677afaSXin Li case "SPDXREF": 43*ba677afaSXin Li return parser.parsePairForAnnotation2_1(tag, value) 44*ba677afaSXin Li case "AnnotationComment": 45*ba677afaSXin Li return parser.parsePairForAnnotation2_1(tag, value) 46*ba677afaSXin Li // tag for going on to review section (DEPRECATED) 47*ba677afaSXin Li case "Reviewer": 48*ba677afaSXin Li parser.st = psReview2_1 49*ba677afaSXin Li return parser.parsePairFromReview2_1(tag, value) 50*ba677afaSXin Li default: 51*ba677afaSXin Li return fmt.Errorf("received unknown tag %v in OtherLicense section", tag) 52*ba677afaSXin Li } 53*ba677afaSXin Li 54*ba677afaSXin Li return nil 55*ba677afaSXin Li} 56