diff options
Diffstat (limited to 'rdfloader/parser2v2/parse_file.go')
-rw-r--r-- | rdfloader/parser2v2/parse_file.go | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/rdfloader/parser2v2/parse_file.go b/rdfloader/parser2v2/parse_file.go index 647cef9..485aeba 100644 --- a/rdfloader/parser2v2/parse_file.go +++ b/rdfloader/parser2v2/parse_file.go @@ -4,9 +4,10 @@ package parser2v2 import ( "fmt" + "strings" + gordfParser "github.com/spdx/gordf/rdfloader/parser" "github.com/spdx/tools-golang/spdx" - "strings" ) // returns a file instance and the error if any encountered. @@ -26,7 +27,7 @@ func (parser *rdfParser2_2) getFileFromNode(fileNode *gordfParser.Node) (file *s } // setting color to grey to indicate that we've started parsing this node. - parser.cache[fileNode.ID].Color = GREY; + parser.cache[fileNode.ID].Color = GREY // setting color to black just before function returns to the caller to // indicate that parsing current node is complete. @@ -129,13 +130,16 @@ func (parser *rdfParser2_2) setFileChecksumFromNode(file *spdx.File2_2, checksum if err != nil { return fmt.Errorf("error parsing checksumNode of a file: %v", err) } + if file.FileChecksums == nil { + file.FileChecksums = map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{} + } switch checksumAlgorithm { - case "MD5": - file.FileChecksumMD5 = checksumValue - case "SHA1": - file.FileChecksumSHA1 = checksumValue - case "SHA256": - file.FileChecksumSHA256 = checksumValue + case spdx.MD5: + file.FileChecksums[spdx.MD5] = spdx.Checksum2_2{Algorithm: spdx.MD5, Value: checksumValue} + case spdx.SHA1: + file.FileChecksums[spdx.SHA1] = spdx.Checksum2_2{Algorithm: spdx.SHA1, Value: checksumValue} + case spdx.SHA256: + file.FileChecksums[spdx.SHA256] = spdx.Checksum2_2{Algorithm: spdx.SHA256, Value: checksumValue} case "": return fmt.Errorf("empty checksum algorithm and value") default: |