Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
MediaClip
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
1 / 1
 getMediaClipSubtype
n/a
0 / 0
n/a
0 / 0
0
 baseDictionary
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace Phpdftk\Pdf\Core\Multimedia;
6
7use Phpdftk\Pdf\Core\PdfDictionary;
8use Phpdftk\Pdf\Core\PdfName;
9use Phpdftk\Pdf\Core\PdfObject;
10use Phpdftk\Pdf\Core\PdfString;
11use Phpdftk\Pdf\Core\PdfVersion;
12use Phpdftk\Pdf\Core\RequiresPdfVersion;
13
14/**
15 * Media clip object (/Type /MediaClip) — ISO 32000-2 §13.2.4.
16 *
17 * Abstract base for MediaClipData (MCD) and MediaClipSection (MCS).
18 */
19#[RequiresPdfVersion(PdfVersion::V1_5)]
20abstract class MediaClip extends PdfObject
21{
22    public const PDF_TYPE = 'MediaClip';
23
24    public ?PdfString $n = null;   // /N  name
25
26    /** Returns the /S (subtype) value: "MCD" or "MCS". */
27    abstract public function getMediaClipSubtype(): string;
28
29    protected function baseDictionary(): PdfDictionary
30    {
31        $dict = new PdfDictionary();
32        $dict->set('Type', new PdfName(self::PDF_TYPE));
33        $dict->set('S', new PdfName($this->getMediaClipSubtype()));
34        if ($this->n !== null) {
35            $dict->set('N', $this->n);
36        }
37        return $dict;
38    }
39}