File Coverage

blib/lib/SBOM/CycloneDX/Enum/ComponentType.pm
Criterion Covered Total %
statement 20 20 100.0
branch n/a
condition n/a
subroutine 7 7 100.0
pod 1 1 100.0
total 28 28 100.0


line stmt bran cond sub pod time code
1             package SBOM::CycloneDX::Enum::ComponentType;
2              
3 16     16   279 use 5.010001;
  16         63  
4 16     16   85 use strict;
  16         33  
  16         383  
5 16     16   65 use warnings;
  16         29  
  16         817  
6 16     16   89 use utf8;
  16         68  
  16         138  
7              
8 16     16   757 use Exporter 'import';
  16         30  
  16         3693  
9             our (@EXPORT_OK, %EXPORT_TAGS, %ENUM);
10              
11             BEGIN {
12              
13 16     16   214 %ENUM = (
14             APPLICATION => 'application',
15             FRAMEWORK => 'framework',
16             LIBRARY => 'library',
17             CONTAINER => 'container',
18             PLATFORM => 'platform',
19             OPERATING_SYSTEM => 'operating-system',
20             DEVICE => 'device',
21             DEVICE_DRIVER => 'device-driver',
22             FIRMWARE => 'firmware',
23             FILE => 'file',
24             MACHINE_LEARNING_MODEL => 'machine-learning-model',
25             DATA => 'data',
26             CRYPTOGRAPHIC_ASSET => 'cryptographic-asset',
27             );
28              
29 16         97 require constant;
30 16         2725 constant->import(\%ENUM);
31              
32 16         177 @EXPORT_OK = sort keys %ENUM;
33 16         1780 %EXPORT_TAGS = (all => \@EXPORT_OK);
34              
35             }
36              
37 17     17 1 216 sub values { sort values %ENUM }
38              
39              
40             1;
41              
42             =encoding utf-8
43              
44             =head1 NAME
45              
46             SBOM::CycloneDX::Enum::ComponentType - Component Type
47              
48             =head1 SYNOPSIS
49              
50             use SBOM::CycloneDX::Enum qw(COMPONENT_TYPE);
51              
52             say COMPONENT_TYPE->APPLICATION;
53              
54              
55             use SBOM::CycloneDX::Enum::ComponentType;
56              
57             say SBOM::CycloneDX::Enum::ComponentType->LIBRARY;
58              
59              
60             use SBOM::CycloneDX::Enum::ComponentType qw(:all);
61              
62             say OPERATING_SYSTEM;
63              
64              
65             =head1 DESCRIPTION
66              
67             L is ENUM package used by L.
68              
69             Specifies the type of component. For software components, classify as application
70             if no more specific appropriate classification is available or cannot be determined
71             for the component.
72              
73              
74             =head1 CONSTANTS
75              
76             =over
77              
78             =item * C, A software application. Refer to L
79             for information about applications.
80              
81             =item * C, A software framework. Refer to L
82             for information on how frameworks vary slightly from libraries.
83              
84             =item * C, A software library. Refer to L
85             for information about libraries. All third-party and open source reusable
86             components will likely be a library. If the library also has key features of a
87             framework, then it should be classified as a framework. If not, or is unknown,
88             then specifying library is recommended.",
89              
90             =item * C, A packaging and/or runtime format, not specific to any
91             particular technology, which isolates software inside the container from software
92             outside of a container through virtualization technology. Refer to L.
93              
94             =item * C, A runtime environment that interprets or executes software.
95             This may include runtimes such as those that execute bytecode, just-in-time
96             compilers, interpreters, or low-code/no-code application platforms.
97              
98             =item * C, A software operating system without regard to
99             deployment model (i.e. installed on physical hardware, virtual machine, image,
100             etc). Refer to L.
101              
102             =item * C, A hardware device such as a processor or chip-set. A hardware
103             device containing firmware SHOULD include a component for the physical hardware
104             itself and another component of type 'firmware' or 'operating-system' (whichever
105             is relevant), describing information about the software running on the device.
106             See also the list of L.
107              
108             =item * C, A special type of software that operates or controls a
109             particular type of device. Refer to L.
110              
111             =item * C, A special type of software that provides low-level control
112             over a device's hardware. Refer to L.
113              
114             =item * C, A computer file. Refer to L
115             for information about files.
116              
117             =item * C, A model based on training data that can make
118             predictions or decisions without being explicitly programmed to do so.
119              
120             =item * C, A collection of discrete values that convey information.
121              
122             =item * C, A cryptographic asset including algorithms,
123             protocols, certificates, keys, tokens, and secrets.
124              
125             =back
126              
127             =head1 SUPPORT
128              
129             =head2 Bugs / Feature Requests
130              
131             Please report any bugs or feature requests through the issue tracker
132             at L.
133             You will be notified automatically of any progress on your issue.
134              
135             =head2 Source Code
136              
137             This is open source software. The code repository is available for
138             public review and contribution under the terms of the license.
139              
140             L
141              
142             git clone https://github.com/giterlizzi/perl-SBOM-CycloneDX.git
143              
144              
145             =head1 AUTHOR
146              
147             =over 4
148              
149             =item * Giuseppe Di Terlizzi
150              
151             =back
152              
153              
154             =head1 LICENSE AND COPYRIGHT
155              
156             This software is copyright (c) 2025-2026 by Giuseppe Di Terlizzi.
157              
158             This is free software; you can redistribute it and/or modify it under
159             the same terms as the Perl 5 programming language system itself.
160              
161             =cut