Skip to content

Commit e95d7f7

Browse files
committed
Transfer script from intermediate to standard datastructures added and bugfixes
Signed-off-by: abhishekspeer <[email protected]>
1 parent c1d4836 commit e95d7f7

18 files changed

+781
-248
lines changed

v0/rdfloader/rdf2v1/Annotation.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,28 @@ import (
55
)
66

77
type Annotation struct {
8-
Annotator ValueStr
9-
AnnotationType ValueStr
10-
AnnotationDate ValueStr
11-
AnnotationComment ValueStr
8+
Annotator ValueStr
9+
AnnotationType ValueStr
10+
AnnotationDate ValueStr
11+
AnnotationComment ValueStr
12+
AnnotationSPDXIdentifier ValueStr
1213
}
1314

1415
func (p *Parser) requestAnnotation(node goraptor.Term) (*Annotation, error) {
15-
obj, err := p.requestElementType(node, typeAnnotation)
16+
obj, err := p.requestElementType(node, TypeAnnotation)
1617
if err != nil {
1718
return nil, err
1819
}
1920
return obj.(*Annotation), err
2021
}
21-
2222
func (p *Parser) MapAnnotation(an *Annotation) *builder {
23-
builder := &builder{t: typeAnnotation, ptr: an}
23+
builder := &builder{t: TypeAnnotation, ptr: an}
2424
builder.updaters = map[string]updater{
2525
"annotationDate": update(&an.AnnotationDate),
2626
"rdfs:comment": update(&an.AnnotationComment),
2727
"annotator": update(&an.Annotator),
28-
"annotationType": updateTrimPrefix(baseUri, &an.AnnotationType),
28+
"annotationType": updateTrimPrefix(BaseUri, &an.AnnotationType),
2929
}
3030
return builder
31+
3132
}

v0/rdfloader/rdf2v1/Checksum.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ type Checksum struct {
1313
}
1414

1515
func (p *Parser) requestChecksum(node goraptor.Term) (*Checksum, error) {
16-
obj, err := p.requestElementType(node, typeChecksum)
16+
obj, err := p.requestElementType(node, TypeChecksum)
1717
if err != nil {
1818
return nil, err
1919
}
2020
return obj.(*Checksum), err
2121
}
2222

2323
func (p *Parser) MapChecksum(cksum *Checksum) *builder {
24-
builder := &builder{t: typeChecksum, ptr: cksum}
24+
builder := &builder{t: TypeChecksum, ptr: cksum}
2525
key := false
2626
builder.updaters = map[string]updater{
2727
"algorithm": func(obj goraptor.Term) error {
2828
if key {
29-
return fmt.Errorf("Algorithm defined already.")
29+
return fmt.Errorf("Algorithm set already.")
3030
}
3131
algostr := termStr(obj)
3232
cksum.Algorithm.Val = ExtractChecksumAlgo(algostr)
@@ -44,11 +44,17 @@ func ExtractChecksumAlgo(str string) string {
4444
return str
4545
}
4646

47-
// Takes in the checksum, compares it's algo with a string, if matches returns the algo
48-
func AlgoIdentifier(cksum *Checksum, t string) string {
47+
func InsertChecksumAlgo(str string) string {
48+
str = strings.ToLower(str)
49+
str = "http://spdx.org/rdf/terms#checksumAlgorithm_" + str
50+
return str
51+
}
52+
53+
// Takes in the checksum, compares it's algo with a string, if matches returns the Value
54+
func AlgoValue(cksum *Checksum, t string) string {
4955
algo := ExtractChecksumAlgo(cksum.Algorithm.Val)
5056
if strings.Contains(algo, t) {
51-
return t
57+
return cksum.ChecksumValue.Val
5258
}
5359
return ""
5460
}

v0/rdfloader/rdf2v1/CreationInfo.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package rdf2v1
22

33
import (
4-
"github.com/spdx/tools-golang/v0/spdx"
4+
"spdx/tools-golang/v0/spdx"
55

66
"github.com/deltamobile/goraptor"
77
)
@@ -16,15 +16,15 @@ type CreationInfo struct {
1616

1717
func (p *Parser) requestCreationInfo(node goraptor.Term) (*CreationInfo, error) {
1818

19-
obj, err := p.requestElementType(node, typeCreationInfo)
19+
obj, err := p.requestElementType(node, TypeCreationInfo)
2020
if err != nil {
2121
return nil, err
2222
}
2323
return obj.(*CreationInfo), err
2424
}
2525

2626
func (p *Parser) MapCreationInfo(ci *CreationInfo) *builder {
27-
builder := &builder{t: typeCreationInfo, ptr: ci}
27+
builder := &builder{t: TypeCreationInfo, ptr: ci}
2828
builder.updaters = map[string]updater{
2929
"licenseListVersion": update(&ci.LicenseListVersion),
3030
"creator": updateList(&ci.Creator),

v0/rdfloader/rdf2v1/Document.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,24 +27,25 @@ type ExternalDocumentRef struct {
2727
}
2828

2929
func (p *Parser) requestDocument(node goraptor.Term) (*Document, error) {
30-
obj, err := p.requestElementType(node, typeDocument)
30+
obj, err := p.requestElementType(node, TypeDocument)
3131
if err != nil {
3232
return nil, err
3333
}
3434
return obj.(*Document), err
3535
}
3636

3737
func (p *Parser) requestExternalDocumentRef(node goraptor.Term) (*ExternalDocumentRef, error) {
38-
obj, err := p.requestElementType(node, typeExternalDocumentRef)
38+
obj, err := p.requestElementType(node, TypeExternalDocumentRef)
3939
if err != nil {
4040
return nil, err
4141
}
4242
return obj.(*ExternalDocumentRef), err
4343
}
4444

4545
func (p *Parser) MapDocument(doc *Document) *builder {
46-
builder := &builder{t: typeDocument, ptr: doc}
46+
builder := &builder{t: TypeDocument, ptr: doc}
4747
doc.DocumentNamespace = DocumentNamespace
48+
doc.SPDXID = SPDXID
4849
builder.updaters = map[string]updater{
4950
"specVersion": update(&doc.SPDXVersion),
5051
// Example: gets CC0-1.0 from "http://spdx.org/licenses/CC0-1.0"
@@ -102,7 +103,7 @@ func (p *Parser) MapDocument(doc *Document) *builder {
102103
}
103104

104105
func (p *Parser) MapExternalDocumentRef(edr *ExternalDocumentRef) *builder {
105-
builder := &builder{t: typeExternalDocumentRef, ptr: edr}
106+
builder := &builder{t: TypeExternalDocumentRef, ptr: edr}
106107
builder.updaters = map[string]updater{
107108
"externalDocumentId": update(&edr.ExternalDocumentId),
108109
"checksum": func(obj goraptor.Term) error {

v0/rdfloader/rdf2v1/ExtractedLicensingInfo.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,25 @@ import (
66

77
type ExtractedLicensingInfo struct {
88
LicenseIdentifier ValueStr
9-
LicenseName []ValueStr
9+
LicenseName ValueStr
1010
ExtractedText ValueStr
1111
LicenseComment ValueStr
1212
LicenseSeeAlso []ValueStr
1313
}
1414

1515
func (p *Parser) requestExtractedLicensingInfo(node goraptor.Term) (*ExtractedLicensingInfo, error) {
16-
obj, err := p.requestElementType(node, typeExtractedLicensingInfo)
16+
obj, err := p.requestElementType(node, TypeExtractedLicensingInfo)
1717
if err != nil {
1818
return nil, err
1919
}
2020
return obj.(*ExtractedLicensingInfo), err
2121
}
2222

2323
func (p *Parser) MapExtractedLicensingInfo(lic *ExtractedLicensingInfo) *builder {
24-
builder := &builder{t: typeExtractedLicensingInfo, ptr: lic}
24+
builder := &builder{t: TypeExtractedLicensingInfo, ptr: lic}
2525
builder.updaters = map[string]updater{
2626
"licenseId": update(&lic.LicenseIdentifier),
27-
"name": updateList(&lic.LicenseName),
27+
"name": update(&lic.LicenseName),
2828
"extractedText": update(&lic.ExtractedText),
2929
"rdfs:comment": update(&lic.LicenseComment),
3030
"rdfs:seeAlso": updateList(&lic.LicenseSeeAlso),

v0/rdfloader/rdf2v1/File.go

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,53 +5,58 @@ import (
55
)
66

77
type File struct {
8-
FileName ValueStr
9-
FileChecksum *Checksum
10-
LicenseInfoInFile []ValueStr
11-
FileCopyrightText ValueStr
12-
ExtractedLicensingInfo *ExtractedLicensingInfo
13-
DisjunctiveLicenseSet *DisjunctiveLicenseSet
14-
ConjunctiveLicenseSet *ConjunctiveLicenseSet
15-
FileContributor []ValueStr
16-
FileComment ValueStr
17-
FileLicenseComments ValueStr
18-
FileType []ValueStr
19-
FileNoticeText ValueStr
20-
Annotation []*Annotation
21-
Project []*Project
22-
SnippetLicense *License
23-
FileDependency *File
24-
FileRelationship *Relationship
8+
FileName ValueStr
9+
FileSPDXIdentifier ValueStr
10+
FileChecksum *Checksum
11+
LicenseInfoInFile []ValueStr
12+
FileCopyrightText ValueStr
13+
ExtractedLicensingInfo *ExtractedLicensingInfo
14+
DisjunctiveLicenseSet *DisjunctiveLicenseSet
15+
ConjunctiveLicenseSet *ConjunctiveLicenseSet
16+
FileContributor []ValueStr
17+
FileComment ValueStr
18+
FileLicenseComments ValueStr
19+
FileType []ValueStr
20+
FileNoticeText ValueStr
21+
Annotation []*Annotation
22+
Project []*Project
23+
SnippetLicense *License
24+
FileDependency []*File
25+
FileRelationship *Relationship
26+
FileLicenseSPDXIdentifier ValueStr
2527
}
2628
type Project struct {
27-
Homepage ValueStr
29+
HomePage ValueStr
2830
Name ValueStr
31+
URI ValueStr
2932
}
3033

3134
func (p *Parser) requestFile(node goraptor.Term) (*File, error) {
32-
obj, err := p.requestElementType(node, typeFile)
35+
obj, err := p.requestElementType(node, TypeFile)
3336
if err != nil {
3437
return nil, err
3538
}
3639
return obj.(*File), err
3740
}
3841
func (p *Parser) requestFileChecksum(node goraptor.Term) (*Checksum, error) {
39-
obj, err := p.requestElementType(node, typeChecksum)
42+
obj, err := p.requestElementType(node, TypeChecksum)
4043
if err != nil {
4144
return nil, err
4245
}
4346
return obj.(*Checksum), err
4447
}
4548

4649
func (p *Parser) requestProject(node goraptor.Term) (*Project, error) {
47-
obj, err := p.requestElementType(node, typeProject)
50+
obj, err := p.requestElementType(node, TypeProject)
4851
if err != nil {
4952
return nil, err
5053
}
5154
return obj.(*Project), err
5255
}
5356
func (p *Parser) MapFile(file *File) *builder {
54-
builder := &builder{t: typeFile, ptr: file}
57+
builder := &builder{t: TypeFile, ptr: file}
58+
file.FileSPDXIdentifier = SPDXIDFile
59+
file.FileLicenseSPDXIdentifier = SPDXIDLicense
5560
builder.updaters = map[string]updater{
5661
"fileName": update(&file.FileName),
5762
"checksum": func(obj goraptor.Term) error {
@@ -94,8 +99,8 @@ func (p *Parser) MapFile(file *File) *builder {
9499
return err
95100
},
96101
"fileDependency": func(obj goraptor.Term) error {
97-
file, err := p.requestFile(obj)
98-
file.FileDependency = file
102+
f, err := p.requestFile(obj)
103+
file.FileDependency = append(file.FileDependency, f)
99104
return err
100105
},
101106
"relationship": func(obj goraptor.Term) error {
@@ -108,9 +113,10 @@ func (p *Parser) MapFile(file *File) *builder {
108113
}
109114

110115
func (p *Parser) MapProject(pro *Project) *builder {
111-
builder := &builder{t: typeProject, ptr: pro}
116+
builder := &builder{t: TypeProject, ptr: pro}
117+
pro.URI = ProjectURI
112118
builder.updaters = map[string]updater{
113-
"doap:homepage": update(&pro.Homepage),
119+
"doap:homepage": update(&pro.HomePage),
114120
"doap:name": update(&pro.Name),
115121
}
116122
return builder

v0/rdfloader/rdf2v1/License.go

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package rdf2v1
22

3-
import "github.com/deltamobile/goraptor"
3+
import (
4+
"strings"
5+
6+
"github.com/deltamobile/goraptor"
7+
)
48

59
type License struct {
610
LicenseComment ValueStr
@@ -13,6 +17,7 @@ type License struct {
1317
StandardLicenseHeaderTemplate ValueStr
1418
LicenseId ValueStr
1519
LicenseisOsiApproved ValueStr
20+
LicenseSPDXIdentifier ValueStr
1621
}
1722
type DisjunctiveLicenseSet struct {
1823
Member []ValueStr
@@ -23,28 +28,29 @@ type ConjunctiveLicenseSet struct {
2328
}
2429

2530
func (p *Parser) requestLicense(node goraptor.Term) (*License, error) {
26-
obj, err := p.requestElementType(node, typeLicense)
31+
obj, err := p.requestElementType(node, TypeLicense)
2732
if err != nil {
2833
return nil, err
2934
}
3035
return obj.(*License), err
3136
}
3237
func (p *Parser) requestDisjunctiveLicenseSet(node goraptor.Term) (*DisjunctiveLicenseSet, error) {
33-
obj, err := p.requestElementType(node, typeDisjunctiveLicenseSet)
38+
obj, err := p.requestElementType(node, TypeDisjunctiveLicenseSet)
3439
if err != nil {
3540
return nil, err
3641
}
3742
return obj.(*DisjunctiveLicenseSet), err
3843
}
3944
func (p *Parser) requestConjunctiveLicenseSet(node goraptor.Term) (*ConjunctiveLicenseSet, error) {
40-
obj, err := p.requestElementType(node, typeConjunctiveLicenseSet)
45+
obj, err := p.requestElementType(node, TypeConjunctiveLicenseSet)
4146
if err != nil {
4247
return nil, err
4348
}
4449
return obj.(*ConjunctiveLicenseSet), err
4550
}
4651
func (p *Parser) MapLicense(lic *License) *builder {
47-
builder := &builder{t: typeLicense, ptr: lic}
52+
builder := &builder{t: TypeLicense, ptr: lic}
53+
lic.LicenseSPDXIdentifier = Str(strings.Replace(SPDXIDLicense.Val, LicenseUri, "", 1))
4854
builder.updaters = map[string]updater{
4955
"rdfs:comment": update(&lic.LicenseComment),
5056
"name": update(&lic.LicenseName),
@@ -61,17 +67,17 @@ func (p *Parser) MapLicense(lic *License) *builder {
6167
}
6268

6369
func (p *Parser) MapDisjunctiveLicenseSet(dls *DisjunctiveLicenseSet) *builder {
64-
builder := &builder{t: typeDisjunctiveLicenseSet, ptr: dls}
70+
builder := &builder{t: TypeDisjunctiveLicenseSet, ptr: dls}
71+
6572
builder.updaters = map[string]updater{
6673
"member": updateList(&dls.Member),
6774
}
6875
return builder
6976
}
7077
func (p *Parser) MapConjunctiveLicenseSet(cls *ConjunctiveLicenseSet) *builder {
71-
builder := &builder{t: typeConjunctiveLicenseSet, ptr: cls}
78+
builder := &builder{t: TypeConjunctiveLicenseSet, ptr: cls}
7279
builder.updaters = map[string]updater{
7380
"member": func(obj goraptor.Term) error {
74-
7581
lic, err := p.requestLicense(obj)
7682
cls.License = lic
7783
if err != nil {

0 commit comments

Comments
 (0)