Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update RDFLoader wrt new ExternalDocumentReference and Change Module Path of GoRdf #45

Merged
merged 5 commits into from
Nov 12, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
module github.com/spdx/tools-golang

go 1.13

require github.com/spdx/gordf v0.0.0-20201111095634-7098f93598fb
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/constants.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package parser2v2

import "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
import "github.com/spdx/gordf/rdfloader/parser"

var (
// NAMESPACES
Expand Down
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/license_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package parser2v2

import (
"fmt"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"strings"
)

Expand Down
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/parse_annotation.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ package parser2v2
import (
"errors"
"fmt"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/tools-golang/spdx"
)

Expand Down
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/parse_creation_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ package parser2v2

import (
"fmt"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/tools-golang/spdx"
)

Expand Down
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/parse_file.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ package parser2v2

import (
"fmt"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/tools-golang/spdx"
"strings"
)
Expand Down
6 changes: 3 additions & 3 deletions rdfloader/parser2v2/parse_file_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ package parser2v2

import (
"bufio"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
rdfloader2 "github.com/RishabhBhatnagar/gordf/rdfloader/xmlreader"
gordfWriter "github.com/RishabhBhatnagar/gordf/rdfwriter"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
rdfloader2 "github.com/spdx/gordf/rdfloader/xmlreader"
gordfWriter "github.com/spdx/gordf/rdfwriter"
"github.com/spdx/tools-golang/spdx"
"strings"
"testing"
Expand Down
4 changes: 2 additions & 2 deletions rdfloader/parser2v2/parse_license.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ package parser2v2

import (
"fmt"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
"github.com/RishabhBhatnagar/gordf/rdfwriter"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/gordf/rdfwriter"
"strings"
)

Expand Down
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/parse_license_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package parser2v2

import (
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"reflect"
"sort"
"testing"
Expand Down
4 changes: 2 additions & 2 deletions rdfloader/parser2v2/parse_other_license_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ package parser2v2

import (
"fmt"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
"github.com/RishabhBhatnagar/gordf/rdfwriter"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/gordf/rdfwriter"
"github.com/spdx/tools-golang/spdx"
)

Expand Down
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/parse_other_license_info_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package parser2v2

import (
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"reflect"
"testing"
)
Expand Down
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/parse_package.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ package parser2v2

import (
"fmt"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/tools-golang/spdx"
"strings"
)
Expand Down
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/parse_package_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package parser2v2

import (
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/tools-golang/spdx"
"reflect"
"testing"
Expand Down
4 changes: 2 additions & 2 deletions rdfloader/parser2v2/parse_relationship.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ package parser2v2

import (
"fmt"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
"github.com/RishabhBhatnagar/gordf/rdfwriter"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/gordf/rdfwriter"
"github.com/spdx/tools-golang/spdx"
"strings"
)
Expand Down
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/parse_relationship_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package parser2v2

import (
"github.com/RishabhBhatnagar/gordf/rdfwriter"
"github.com/spdx/gordf/rdfwriter"
"github.com/spdx/tools-golang/spdx"
"reflect"
"testing"
Expand Down
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/parse_review.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ package parser2v2

import (
"fmt"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/tools-golang/spdx"
)

Expand Down
4 changes: 2 additions & 2 deletions rdfloader/parser2v2/parse_snippet_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ package parser2v2

import (
"fmt"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
"github.com/RishabhBhatnagar/gordf/rdfwriter"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/gordf/rdfwriter"
"github.com/spdx/tools-golang/spdx"
"strconv"
)
Expand Down
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/parse_snippet_info_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package parser2v2

import (
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/tools-golang/spdx"
"testing"
)
Expand Down
26 changes: 13 additions & 13 deletions rdfloader/parser2v2/parse_spdx_document.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ package parser2v2

import (
"fmt"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/tools-golang/spdx"
)

Expand Down Expand Up @@ -42,9 +42,12 @@ func (parser *rdfParser2_2) parseSpdxDocumentNode(spdxDocNode *gordfParser.Node)
ci.DocumentName = objectValue
case SPDX_EXTERNAL_DOCUMENT_REF: // 2.6: externalDocumentReferences
// cardinality: min 0
var extRef string
var extRef spdx.ExternalDocumentRef2_2
extRef, err = parser.getExternalDocumentRefFromNode(subTriple.Object)
ci.ExternalDocumentReferences = append(ci.ExternalDocumentReferences, extRef)
if err != nil {
return err
}
ci.ExternalDocumentReferences[extRef.DocumentRefID] = extRef
case SPDX_CREATION_INFO: // 2.7 - 2.10:
// cardinality: exactly 1
err = parser.parseCreationInfoFromNode(ci, subTriple.Object)
Expand Down Expand Up @@ -86,31 +89,28 @@ func (parser *rdfParser2_2) parseSpdxDocumentNode(spdxDocNode *gordfParser.Node)
return nil
}

func (parser *rdfParser2_2) getExternalDocumentRefFromNode(node *gordfParser.Node) (string, error) {
var docID, checksumValue, checksumAlgorithm, spdxDocument string
var err error
func (parser *rdfParser2_2) getExternalDocumentRefFromNode(node *gordfParser.Node) (edr spdx.ExternalDocumentRef2_2, err error) {
for _, triple := range parser.nodeToTriples(node) {
switch triple.Predicate.ID {
case SPDX_EXTERNAL_DOCUMENT_ID:
// cardinality: exactly 1
docID = triple.Object.ID
edr.DocumentRefID = triple.Object.ID
case SPDX_SPDX_DOCUMENT:
// cardinality: exactly 1
// assumption: "spdxDocument" property of an external document
// reference is just a uri which doesn't follow a spdxDocument definition
spdxDocument = triple.Object.ID
edr.URI = triple.Object.ID
case SPDX_CHECKSUM:
// cardinality: exactly 1
checksumAlgorithm, checksumValue, err = parser.getChecksumFromNode(triple.Object)
edr.Alg, edr.Checksum, err = parser.getChecksumFromNode(triple.Object)
if err != nil {
return "", err
return edr, err
}
case RDF_TYPE:
continue
default:
return "", fmt.Errorf("unknown predicate ID (%s) while parsing externalDocumentReference", triple.Predicate.ID)
return edr, fmt.Errorf("unknown predicate ID (%s) while parsing externalDocumentReference", triple.Predicate.ID)
}
}
// transform the variables into string form (same as that of tag-value).
return fmt.Sprintf("%s %s %s: %s", docID, spdxDocument, checksumAlgorithm, checksumValue), nil
return edr, nil
}
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/parse_spdx_document_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package parser2v2

import (
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"testing"
)

Expand Down
8 changes: 5 additions & 3 deletions rdfloader/parser2v2/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ package parser2v2
import (
"errors"
"fmt"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfWriter "github.com/RishabhBhatnagar/gordf/rdfwriter"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
gordfWriter "github.com/spdx/gordf/rdfwriter"
"github.com/spdx/tools-golang/spdx"
)

Expand All @@ -16,7 +16,9 @@ func NewParser2_2(gordfParserObj *gordfParser.Parser, nodeToTriples map[string][
gordfParserObj: gordfParserObj,
nodeStringToTriples: nodeToTriples,
doc: &spdx.Document2_2{
CreationInfo: &spdx.CreationInfo2_2{},
CreationInfo: &spdx.CreationInfo2_2{
ExternalDocumentReferences: map[string]spdx.ExternalDocumentRef2_2{},
},
Packages: map[spdx.ElementID]*spdx.Package2_2{},
UnpackagedFiles: map[spdx.ElementID]*spdx.File2_2{},
OtherLicenses: []*spdx.OtherLicense2_2{},
Expand Down
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
package parser2v2

import (
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/tools-golang/spdx"
)

Expand Down
6 changes: 3 additions & 3 deletions rdfloader/parser2v2/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ package parser2v2
import (
"errors"
"fmt"
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
"github.com/RishabhBhatnagar/gordf/rdfwriter"
urilib "github.com/RishabhBhatnagar/gordf/uri"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/gordf/rdfwriter"
urilib "github.com/spdx/gordf/uri"
"github.com/spdx/tools-golang/spdx"
"strings"
)
Expand Down
2 changes: 1 addition & 1 deletion rdfloader/parser2v2/utils_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package parser2v2

import (
gordfParser "github.com/RishabhBhatnagar/gordf/rdfloader/parser"
gordfParser "github.com/spdx/gordf/rdfloader/parser"
"github.com/spdx/tools-golang/spdx"
"reflect"
"testing"
Expand Down
2 changes: 1 addition & 1 deletion rdfloader/rdfloader.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package rdfloader

import (
"github.com/RishabhBhatnagar/gordf/rdfloader"
"github.com/spdx/gordf/rdfloader"
"github.com/spdx/tools-golang/rdfloader/parser2v2"
"github.com/spdx/tools-golang/spdx"
"io"
Expand Down
42 changes: 40 additions & 2 deletions spdx/creation_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ type CreationInfo2_1 struct {

// 2.6: External Document References
// Cardinality: optional, one or many
ExternalDocumentReferences []string
ExternalDocumentReferences map[string]ExternalDocumentRef2_1

// 2.7: License List Version
// Cardinality: optional, one
Expand All @@ -54,6 +54,25 @@ type CreationInfo2_1 struct {
DocumentComment string
}

// ExternalDocumentRef2_1 is a reference to an external SPDX document
// as defined in section 2.6 for version 2.1 of the spec.
type ExternalDocumentRef2_1 struct {

// DocumentRefID is the ID string defined in the start of the
// reference. It should _not_ contain the "DocumentRef-" part
// of the mandatory ID string.
DocumentRefID string

// URI is the URI defined for the external document
URI string

// Alg is the type of hash algorithm used, e.g. "SHA1", "SHA256"
Alg string

// Checksum is the actual hash data
Checksum string
}

// CreationInfo2_2 is a Document Creation Information section of an
// SPDX Document for version 2.2 of the spec.
type CreationInfo2_2 struct {
Expand All @@ -80,7 +99,7 @@ type CreationInfo2_2 struct {

// 2.6: External Document References
// Cardinality: optional, one or many
ExternalDocumentReferences []string
ExternalDocumentReferences map[string]ExternalDocumentRef2_2

// 2.7: License List Version
// Cardinality: optional, one
Expand All @@ -105,3 +124,22 @@ type CreationInfo2_2 struct {
// Cardinality: optional, one
DocumentComment string
}

// ExternalDocumentRef2_2 is a reference to an external SPDX document
// as defined in section 2.6 for version 2.2 of the spec.
type ExternalDocumentRef2_2 struct {

// DocumentRefID is the ID string defined in the start of the
// reference. It should _not_ contain the "DocumentRef-" part
// of the mandatory ID string.
DocumentRefID string

// URI is the URI defined for the external document
URI string

// Alg is the type of hash algorithm used, e.g. "SHA1", "SHA256"
Alg string

// Checksum is the actual hash data
Checksum string
}