diff options
author | RishabhBhatnagar <bhatnagarrishabh4@gmail.com> | 2020-08-27 13:02:50 +0530 |
---|---|---|
committer | RishabhBhatnagar <bhatnagarrishabh4@gmail.com> | 2020-08-27 13:02:50 +0530 |
commit | f652816522876a038fed37d869039ee38311f253 (patch) | |
tree | 2ff40ce4c8d0a52d588025b02997b839333a365d /rdfloader/parser2v2/parse_relationship.go | |
parent | 35fc7e067f87dcffc84fee5e832d8346cac909a0 (diff) | |
download | spdx-tools-f652816522876a038fed37d869039ee38311f253.tar.gz |
Add Tests And Bug Fixes For parse_file.go
- noticeText can now assume two states: SPDX_NOASSERTION and string
- add tests for parse_file.go file
- relationship now returns the MUX error
- getRelationshipTypeFromURI fixed
- add constant for NS_SPDX+"Checksum" (SPDX_CHECKSUM_CAPITALIZED)
- file Dependency set to the file being populated
- add extended support for licenseInfoInFile
Signed-off-by: RishabhBhatnagar <bhatnagarrishabh4@gmail.com>
Diffstat (limited to 'rdfloader/parser2v2/parse_relationship.go')
-rw-r--r-- | rdfloader/parser2v2/parse_relationship.go | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/rdfloader/parser2v2/parse_relationship.go b/rdfloader/parser2v2/parse_relationship.go index b51105b..b4c4704 100644 --- a/rdfloader/parser2v2/parse_relationship.go +++ b/rdfloader/parser2v2/parse_relationship.go @@ -26,7 +26,7 @@ func (parser *rdfParser2_2) parseRelationship(triple *gordfParser.Triple) (err e switch subTriple.Predicate.ID { case SPDX_RELATIONSHIP_TYPE: // cardinality: exactly 1 - reln.Relationship, err = getRelationshipType(subTriple.Object.ID) + reln.Relationship, err = getRelationshipTypeFromURI(subTriple.Object.ID) case RDF_TYPE: // cardinality: exactly 1 continue @@ -57,6 +57,9 @@ func (parser *rdfParser2_2) parseRelationship(triple *gordfParser.Triple) (err e default: return fmt.Errorf("unexpected predicate id: %s", subTriple.Predicate.ID) } + if err != nil { + return err + } } parser.doc.Relationships = append(parser.doc.Relationships, &reln) return nil @@ -102,6 +105,8 @@ func (parser *rdfParser2_2) parseRelatedElementFromTriple(reln spdx.Relationship return nil } + +// references like RefA and RefB of any relationship func getReferenceFromURI(uri string) (spdx.DocElementID, error) { fragment := getLastPartOfURI(uri) switch strings.ToLower(strings.TrimSpace(fragment)) { @@ -114,18 +119,19 @@ func getReferenceFromURI(uri string) (spdx.DocElementID, error) { return ExtractDocElementID(fragment) } -func getRelationshipType(relnType string) (string, error) { - relnType = strings.TrimSpace(relnType) - if !strings.HasPrefix(relnType, PREFIX_RELATIONSHIP_TYPE) { - return "", fmt.Errorf("relationshipType must start with %s. found %s", PREFIX_RELATIONSHIP_TYPE, relnType) +func getRelationshipTypeFromURI(relnTypeURI string) (string, error) { + relnTypeURI = strings.TrimSpace(relnTypeURI) + lastPart := getLastPartOfURI(relnTypeURI) + if !strings.HasPrefix(lastPart, PREFIX_RELATIONSHIP_TYPE) { + return "", fmt.Errorf("relationshipType must start with %s. found %s", PREFIX_RELATIONSHIP_TYPE, lastPart) } - relnType = strings.TrimPrefix(relnType, PREFIX_RELATIONSHIP_TYPE) + lastPart = strings.TrimPrefix(lastPart, PREFIX_RELATIONSHIP_TYPE) - relnType = strings.TrimSpace(relnType) + lastPart = strings.TrimSpace(lastPart) for _, validRelationshipType := range AllRelationshipTypes() { - if relnType == validRelationshipType { - return relnType, nil + if lastPart == validRelationshipType { + return lastPart, nil } } - return "", fmt.Errorf("unknown relationshipType: %s", relnType) + return "", fmt.Errorf("unknown relationshipType: '%s'", lastPart) } |