Skip to content

Commit

Permalink
Merge pull request #45 from RishabhBhatnagar/gordf
Browse files Browse the repository at this point in the history
Update RDFLoader wrt new ExternalDocumentReference and Change Module Path of GoRdf
  • Loading branch information
swinslow committed Nov 12, 2020
2 parents 1308779 + 20e0683 commit 54a920e
Show file tree
Hide file tree
Showing 34 changed files with 474 additions and 72 deletions.
2 changes: 2 additions & 0 deletions go.mod
@@ -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
@@ -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
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
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
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
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
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
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
@@ -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
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
@@ -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
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
@@ -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
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
@@ -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
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
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
@@ -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
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
@@ -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
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
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
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
@@ -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
@@ -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
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
}

0 comments on commit 54a920e

Please sign in to comment.