github.com/kastenhq/syft@v0.0.0-20230821225854-0710af25cdbe/syft/pkg/cataloger/java/package_url.go (about)

     1  package java
     2  
     3  import (
     4  	"github.com/anchore/packageurl-go"
     5  	"github.com/kastenhq/syft/syft/pkg"
     6  	"github.com/kastenhq/syft/syft/pkg/cataloger/common/cpe"
     7  )
     8  
     9  // PackageURL returns the PURL for the specific java package (see https://github.com/package-url/purl-spec)
    10  func packageURL(name, version string, metadata pkg.JavaMetadata) string {
    11  	var groupID = name
    12  	groupIDs := cpe.GroupIDsFromJavaMetadata(metadata)
    13  	if len(groupIDs) > 0 {
    14  		groupID = groupIDs[0]
    15  	}
    16  
    17  	pURL := packageurl.NewPackageURL(
    18  		packageurl.TypeMaven, // TODO: should we filter down by package types here?
    19  		groupID,
    20  		name,
    21  		version,
    22  		nil, // TODO: there are probably several qualifiers that can be specified here
    23  		"")
    24  	return pURL.ToString()
    25  }