Class CycloneDXUtils
Class containing utility methods that operate on CycloneDX BOMs.
Inherited Members
Namespace: CycloneDX.Utils
Assembly: CycloneDX.Utils.dll
Syntax
public static class CycloneDXUtils
Methods
| Edit this page View SourceComponentAnalysisIdentifier(Component)
Utility method to generate a component identifier that can be used when analysing two or more BOMs.
In general, a component BomRef
should be used to identify
a specific component within a BOM. However, it is not very
useful when trying to compare components across BOMs. For example,
when trying to identify components that have changed versions
between two BOMs.
Declaration
public static string ComponentAnalysisIdentifier(Component component)
Parameters
Type | Name | Description |
---|---|---|
Component | component |
Returns
Type | Description |
---|---|
string |
ComponentVersionDiff(Bom, Bom)
Generates a component version diff between two BOMs.
Declaration
public static Dictionary<string, DiffItem<Component>> ComponentVersionDiff(Bom fromBom, Bom toBom)
Parameters
Type | Name | Description |
---|---|---|
Bom | fromBom | |
Bom | toBom |
Returns
Type | Description |
---|---|
Dictionary<string, DiffItem<Component>> |
FlatMerge(Bom, Bom)
Performs a flat merge of two BOMs.
Useful for situations like building a consolidated BOM for a web application. Flat merge can combine the BOM for frontend code with the BOM for backend code and return a single, combined BOM.
For situations where system component hierarchy is required to be
maintained refer to the HierarchicalMerge
method.
Declaration
public static Bom FlatMerge(Bom bom1, Bom bom2)
Parameters
Type | Name | Description |
---|---|---|
Bom | bom1 | |
Bom | bom2 |
Returns
Type | Description |
---|---|
Bom |
FlatMerge(IEnumerable<Bom>)
Performs a flat merge of multiple BOMs.
Useful for situations like building a consolidated BOM for a web application. Flat merge can combine the BOM for frontend code with the BOM for backend code and return a single, combined BOM.
For situations where system component hierarchy is required to be
maintained refer to the HierarchicalMerge
method.
Declaration
public static Bom FlatMerge(IEnumerable<Bom> boms)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<Bom> | boms |
Returns
Type | Description |
---|---|
Bom |
FlatMerge(IEnumerable<Bom>, Component)
Performs a flat merge of multiple BOMs.
Useful for situations like building a consolidated BOM for a web application. Flat merge can combine the BOM for frontend code with the BOM for backend code and return a single, combined BOM.
For situations where system component hierarchy is required to be
maintained refer to the HierarchicalMerge
method.
Declaration
public static Bom FlatMerge(IEnumerable<Bom> boms, Component bomSubject)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<Bom> | boms | |
Component | bomSubject |
Returns
Type | Description |
---|---|
Bom |
GenerateSerialNumber()
Utility method to generate a valid, unique, CycloneDX formatted BOM serial number.
Declaration
public static string GenerateSerialNumber()
Returns
Type | Description |
---|---|
string |
HierarchicalMerge(IEnumerable<Bom>, Component)
Performs a hierarchical merge for multiple BOMs.
To retain system component hierarchy, top level BOM metadata component must be included in each BOM.
Declaration
public static Bom HierarchicalMerge(IEnumerable<Bom> boms, Component bomSubject)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<Bom> | boms | |
Component | bomSubject | The component described by the hierarchical merge being performed. This will be included as the top level BOM metadata component in the returned BOM. |
Returns
Type | Description |
---|---|
Bom |
MultipleComponentVersions(Bom)
Analyzes a BOM identifying when multiple versions of the same component have been included.
Declaration
public static Dictionary<string, List<Component>> MultipleComponentVersions(Bom bom)
Parameters
Type | Name | Description |
---|---|---|
Bom | bom |
Returns
Type | Description |
---|---|
Dictionary<string, List<Component>> |
RemoveInternalProperties(Bom)
Utility method to remove all properties from a BOM that are in the
internal
namespace.
This should be used on BOMs before sharing them externally to your organization.
Declaration
public static void RemoveInternalProperties(Bom bom)
Parameters
Type | Name | Description |
---|---|---|
Bom | bom |