Passed
Pull Request — master (#350)
by
unknown
02:08
created

Pages   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Test Coverage

Coverage 84.62%

Importance

Changes 2
Bugs 0 Features 1
Metric Value
eloc 13
c 2
b 0
f 1
dl 0
loc 32
ccs 11
cts 13
cp 0.8462
rs 10
wmc 6

1 Method

Rating   Name   Duplication   Size   Complexity  
A getPages() 0 22 6
1
<?php
2
3
/**
4
 * @file
5
 *          This file is part of the PdfParser library.
6
 *
7
 * @author  Sébastien MALOT <[email protected]>
8
 * @date    2017-01-03
9
 *
10
 * @license LGPLv3
11
 * @url     <https://github.com/smalot/pdfparser>
12
 *
13
 *  PdfParser is a pdf library written in PHP, extraction oriented.
14
 *  Copyright (C) 2017 - Sébastien MALOT <[email protected]>
15
 *
16
 *  This program is free software: you can redistribute it and/or modify
17
 *  it under the terms of the GNU Lesser General Public License as published by
18
 *  the Free Software Foundation, either version 3 of the License, or
19
 *  (at your option) any later version.
20
 *
21
 *  This program is distributed in the hope that it will be useful,
22
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
23
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24
 *  GNU Lesser General Public License for more details.
25
 *
26
 *  You should have received a copy of the GNU Lesser General Public License
27
 *  along with this program.
28
 *  If not, see <http://www.pdfparser.org/sites/default/LICENSE.txt>.
29
 */
30
31
namespace Smalot\PdfParser;
32
33
/**
34
 * Class Pages
35
 */
36
class Pages extends PDFObject
37
{
38
    /**
39
     * @param bool $deep
40
     *
41
     * @todo Objects other than Pages or Page might need to be treated specifically in order to get Page objects out of them,
42
     * see https://github.com/smalot/pdfparser/issues/331
43
     *
44
     * @return array
45
     */
46 22
    public function getPages($deep = false)
47
    {
48 22
        if (!$this->has('Kids')) {
49
            return [];
50
        }
51
52 22
        if (!$deep) {
53
            return $this->get('Kids')->getContent();
54
        }
55
56 22
        $kids = $this->get('Kids')->getContent();
57 22
        $pages = [];
58
59 22
        foreach ($kids as $kid) {
60 22
            if ($kid instanceof self) {
61 2
                $pages = array_merge($pages, $kid->getPages(true));
62 22
            } elseif ($kid instanceof Page) {
63 22
                $pages[] = $kid;
64
            }
65
        }
66
67 22
        return $pages;
68
    }
69
}
70