1<?php
2/**
3 * This file is part of FPDI
4 *
5 * @package   setasign\Fpdi
6 * @copyright Copyright (c) 2020 Setasign GmbH & Co. KG (https://www.setasign.com)
7 * @license   http://opensource.org/licenses/mit-license The MIT License
8 */
9
10namespace setasign\Fpdi\PdfParser\Type;
11
12/**
13 * Class representing an indirect object reference
14 *
15 * @package setasign\Fpdi\PdfParser\Type
16 */
17class PdfIndirectObjectReference extends PdfType
18{
19    /**
20     * Helper method to create an instance.
21     *
22     * @param int $objectNumber
23     * @param int $generationNumber
24     * @return self
25     */
26    public static function create($objectNumber, $generationNumber)
27    {
28        $v = new self;
29        $v->value = (int) $objectNumber;
30        $v->generationNumber = (int) $generationNumber;
31
32        return $v;
33    }
34
35    /**
36     * Ensures that the passed value is a PdfIndirectObject instance.
37     *
38     * @param mixed $value
39     * @return self
40     * @throws PdfTypeException
41     */
42    public static function ensure($value)
43    {
44        return PdfType::ensureType(self::class, $value, 'Indirect reference value expected.');
45    }
46
47    /**
48     * The generation number.
49     *
50     * @var int
51     */
52    public $generationNumber;
53}
54