File Coverage

blib/lib/SBOM/CycloneDX/DataGovernance.pm
Criterion Covered Total %
statement 26 35 74.2
branch 0 6 0.0
condition n/a
subroutine 9 10 90.0
pod 1 1 100.0
total 36 52 69.2


line stmt bran cond sub pod time code
1             package SBOM::CycloneDX::DataGovernance;
2              
3 1     1   9612 use 5.010001;
  1         5  
4 1     1   6 use strict;
  1         3  
  1         25  
5 1     1   4 use warnings;
  1         2  
  1         51  
6 1     1   5 use utf8;
  1         2  
  1         9  
7              
8 1     1   51 use SBOM::CycloneDX::List;
  1         2  
  1         40  
9              
10 1     1   4 use Types::Standard qw(InstanceOf);
  1         4  
  1         10  
11 1     1   2123 use Types::TypeTiny qw(ArrayLike);
  1         3  
  1         35  
12              
13 1     1   631 use Moo;
  1         2  
  1         10  
14 1     1   492 use namespace::autoclean;
  1         3  
  1         11  
15              
16             extends 'SBOM::CycloneDX::Base';
17              
18             has custodians => (
19             is => 'rw',
20             isa => ArrayLike [InstanceOf ['SBOM::CycloneDX::DataGovernanceResponsibleParty']],
21             default => sub { SBOM::CycloneDX::List->new }
22             );
23              
24             has stewards => (
25             is => 'rw',
26             isa => ArrayLike [InstanceOf ['SBOM::CycloneDX::DataGovernanceResponsibleParty']],
27             default => sub { SBOM::CycloneDX::List->new }
28             );
29              
30             has owners => (
31             is => 'rw',
32             isa => ArrayLike [InstanceOf ['SBOM::CycloneDX::DataGovernanceResponsibleParty']],
33             default => sub { SBOM::CycloneDX::List->new }
34             );
35              
36             sub TO_JSON {
37              
38 0     0 1   my $self = shift;
39              
40 0           my $json = {};
41              
42 0 0         $json->{custodians} = $self->custodians if @{$self->custodians};
  0            
43 0 0         $json->{stewards} = $self->stewards if @{$self->stewards};
  0            
44 0 0         $json->{owners} = $self->owners if @{$self->owners};
  0            
45              
46 0           return $json;
47              
48             }
49              
50             1;
51              
52             =encoding utf-8
53              
54             =head1 NAME
55              
56             SBOM::CycloneDX::DataGovernance - Data Governance
57              
58             =head1 SYNOPSIS
59              
60             SBOM::CycloneDX::DataGovernance->new();
61              
62              
63             =head1 DESCRIPTION
64              
65             L provides the data governance captures information
66             regarding data ownership, stewardship, and custodianship, providing
67             insights into the individuals or entities responsible for managing,
68             overseeing, and safeguarding the data throughout its lifecycle.
69              
70             =head2 METHODS
71              
72             L inherits all methods from L
73             and implements the following new ones.
74              
75             =over
76              
77             =item SBOM::CycloneDX::DataGovernance->new( %PARAMS )
78              
79             Properties:
80              
81             =over
82              
83             =item * C, Data custodians are responsible for the safe custody,
84             transport, and storage of data.
85              
86             =item * C, Data owners are concerned with risk and appropriate access
87             to data.
88              
89             =item * C, Data stewards are responsible for data content, context,
90             and associated business rules.
91              
92             =back
93              
94             =item $data_governance->custodians
95              
96             =item $data_governance->owners
97              
98             =item $data_governance->stewards
99              
100             =back
101              
102              
103             =head1 SUPPORT
104              
105             =head2 Bugs / Feature Requests
106              
107             Please report any bugs or feature requests through the issue tracker
108             at L.
109             You will be notified automatically of any progress on your issue.
110              
111             =head2 Source Code
112              
113             This is open source software. The code repository is available for
114             public review and contribution under the terms of the license.
115              
116             L
117              
118             git clone https://github.com/giterlizzi/perl-SBOM-CycloneDX.git
119              
120              
121             =head1 AUTHOR
122              
123             =over 4
124              
125             =item * Giuseppe Di Terlizzi
126              
127             =back
128              
129              
130             =head1 LICENSE AND COPYRIGHT
131              
132             This software is copyright (c) 2025-2026 by Giuseppe Di Terlizzi.
133              
134             This is free software; you can redistribute it and/or modify it under
135             the same terms as the Perl 5 programming language system itself.
136              
137             =cut