Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
C128a
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 setContent
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2/**
3 * Jingga
4 *
5 * PHP Version 8.1
6 *
7 * @package   phpOMS\Utils\Barcode
8 * @copyright Dennis Eichhorn
9 * @license   OMS License 2.0
10 * @version   1.0.0
11 * @link      https://jingga.app
12 */
13declare(strict_types=1);
14
15namespace phpOMS\Utils\Barcode;
16
17/**
18 * Code 128a class.
19 *
20 * @package phpOMS\Utils\Barcode
21 * @license OMS License 2.0
22 * @link    https://jingga.app
23 * @since   1.0.0
24 *
25 * @SuppressWarnings(PHPMD.CamelCasePropertyName)
26 * @SuppressWarnings(PHPMD.CamelCaseVariableName)
27 */
28class C128a extends BarAbstract
29{
30    /**
31     * Checksum.
32     *
33     * @var int
34     * @since 1.0.0
35     */
36    protected static int $CHECKSUM = 103;
37
38    /**
39     * Char weighted array.
40     *
41     * @var string[]
42     * @since 1.0.0
43     */
44    protected static array $CODEARRAY = [
45        ' '     => '212222', '!' => '222122', '"' => '222221', '#' => '121223', '$' => '121322', '%' => '131222',
46        '&'     => '122213', '\'' => '122312', '(' => '132212', ')' => '221213', '*' => '221312', '+' => '231212',
47        ','     => '112232', '-' => '122132', '.' => '122231', '/' => '113222', '0' => '123122', '1' => '123221',
48        '2'     => '223211', '3' => '221132', '4' => '221231', '5' => '213212', '6' => '223112', '7' => '312131',
49        '8'     => '311222', '9' => '321122', ':' => '321221', ';' => '312212', '<' => '322112', '=' => '322211',
50        '>'     => '212123', '?' => '212321', '@' => '232121', 'A' => '111323', 'B' => '131123', 'C' => '131321',
51        'D'     => '112313', 'E' => '132113', 'F' => '132311', 'G' => '211313', 'H' => '231113', 'I' => '231311',
52        'J'     => '112133', 'K' => '112331', 'L' => '132131', 'M' => '113123', 'N' => '113321', 'O' => '133121',
53        'P'     => '313121', 'Q' => '211331', 'R' => '231131', 'S' => '213113', 'T' => '213311', 'U' => '213131',
54        'V'     => '311123', 'W' => '311321', 'X' => '331121', 'Y' => '312113', 'Z' => '312311', '[' => '332111',
55        '\\'    => '314111', ']' => '221411', '^' => '431111', '_' => '111224', 'NUL' => '111422', 'SOH' => '121124',
56        'STX'   => '121421', 'ETX' => '141122', 'EOT' => '141221', 'ENQ' => '112214', 'ACK' => '112412',
57        'BEL'   => '122114', 'BS' => '122411', 'HT' => '142112', 'LF' => '142211', 'VT' => '241211', 'FF' => '221114',
58        'CR'    => '413111', 'SO' => '241112', 'SI' => '134111', 'DLE' => '111242', 'DC1' => '121142',
59        'DC2'   => '121241', 'DC3' => '114212', 'DC4' => '124112', 'NAK' => '124211', 'SYN' => '411212',
60        'ETB'   => '421112', 'CAN' => '421211', 'EM' => '212141', 'SUB' => '214121', 'ESC' => '412121',
61        'FS'    => '111143', 'GS' => '111341', 'RS' => '131141', 'US' => '114113', 'FNC 3' => '114311',
62        'FNC 2' => '411113', 'SHIFT' => '411311', 'CODE C' => '113141', 'CODE B' => '114131', 'FNC 4' => '311141',
63        'FNC 1' => '411131', 'Start A' => '211412', 'Start B' => '211214', 'Start C' => '211232',
64        'Stop'  => '2331112',
65    ];
66
67    /**
68     * Code start.
69     *
70     * @var string
71     * @since 1.0.0
72     */
73    protected static string $CODE_START = '211412';
74
75    /**
76     * Code end.
77     *
78     * @var string
79     * @since 1.0.0
80     */
81    protected static string $CODE_END = '2331112';
82
83    /**
84     * {@inheritdoc}
85     */
86    public function setContent(string $content) : void
87    {
88        parent::setContent(\strtoupper($content));
89    }
90}