Skip to content

Commit 1d9d60d

Browse files
committed
feat: add bom.definitions
for #697 Signed-off-by: Hakan Dilek <[email protected]>
1 parent c72d5f4 commit 1d9d60d

File tree

3 files changed

+581
-0
lines changed

3 files changed

+581
-0
lines changed

cyclonedx/model/bom.py

+20
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
from .bom_ref import BomRef
4242
from .component import Component
4343
from .contact import OrganizationalContact, OrganizationalEntity
44+
from .definition import DefinitionRepository, _DefinitionRepositoryHelper
4445
from .dependency import Dependable, Dependency
4546
from .license import License, LicenseExpression, LicenseRepository
4647
from .service import Service
@@ -72,6 +73,7 @@ def __init__(
7273
manufacturer: Optional[OrganizationalEntity] = None,
7374
# Deprecated as of v1.6
7475
manufacture: Optional[OrganizationalEntity] = None,
76+
definitions: Optional[DefinitionRepository] = None,
7577
) -> None:
7678
self.timestamp = timestamp or _get_now_utc()
7779
self.tools = tools or [] # type:ignore[assignment]
@@ -88,6 +90,7 @@ def __init__(
8890
'`bom.metadata.manufacture` is deprecated from CycloneDX v1.6 onwards. '
8991
'Please use `bom.metadata.component.manufacturer` instead.',
9092
DeprecationWarning)
93+
self.definitions = definitions
9194

9295
@property
9396
@serializable.type_mapping(serializable.helpers.XsdDateTime)
@@ -282,6 +285,23 @@ def properties(self) -> 'SortedSet[Property]':
282285
def properties(self, properties: Iterable[Property]) -> None:
283286
self._properties = SortedSet(properties)
284287

288+
@property
289+
@serializable.type_mapping(_DefinitionRepositoryHelper)
290+
@serializable.view(SchemaVersion1Dot6)
291+
@serializable.xml_sequence(90)
292+
def definitions(self) -> Optional[DefinitionRepository]:
293+
"""
294+
The repository for definitions
295+
296+
Returns:
297+
`DefinitionRepository`
298+
"""
299+
return self._definitions
300+
301+
@definitions.setter
302+
def definitions(self, definitions: DefinitionRepository) -> None:
303+
self._definitions = definitions
304+
285305
def __eq__(self, other: object) -> bool:
286306
if isinstance(other, BomMetaData):
287307
return hash(other) == hash(self)

0 commit comments

Comments
 (0)