Passed
Push — master ( c9a927...3e5f5a )
by Greg
05:29
created

Submitter::fetchGedcomRecord()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 2
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * webtrees: online genealogy
5
 * Copyright (C) 2019 webtrees development team
6
 * This program is free software: you can redistribute it and/or modify
7
 * it under the terms of the GNU General Public License as published by
8
 * the Free Software Foundation, either version 3 of the License, or
9
 * (at your option) any later version.
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
 * GNU General Public License for more details.
14
 * You should have received a copy of the GNU General Public License
15
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16
 */
17
18
declare(strict_types=1);
19
20
namespace Fisharebest\Webtrees;
21
22
use Closure;
23
use Fisharebest\Webtrees\Http\RequestHandlers\SubmitterPage;
24
25
/**
26
 * A GEDCOM submitter (SUBM) object.
27
 */
28
class Submitter extends GedcomRecord
29
{
30
    public const RECORD_TYPE = 'SUBM';
31
32
    protected const ROUTE_NAME = SubmitterPage::class;
33
34
    /**
35
     * A closure which will create a record from a database row.
36
     *
37
     * @deprecated since 2.0.4.  Will be removed in 2.1.0 - Use Factory::submitter()
38
     *
39
     * @param Tree $tree
40
     *
41
     * @return Closure
42
     */
43
    public static function rowMapper(Tree $tree): Closure
44
    {
45
        return Factory::submitter()->mapper($tree);
46
    }
47
48
    /**
49
     * Get an instance of a submitter object. For single records,
50
     * we just receive the XREF. For bulk records (such as lists
51
     * and search results) we can receive the GEDCOM data as well.
52
     *
53
     * @deprecated since 2.0.4.  Will be removed in 2.1.0 - Use Factory::submitter()
54
     *
55
     * @param string      $xref
56
     * @param Tree        $tree
57
     * @param string|null $gedcom
58
     *
59
     * @return Submitter|null
60
     */
61
    public static function getInstance(string $xref, Tree $tree, string $gedcom = null): ?Submitter
62
    {
63
        return Factory::submitter()->make($xref, $tree, $gedcom);
64
    }
65
66
    /**
67
     * Generate a private version of this record
68
     *
69
     * @param int $access_level
70
     *
71
     * @return string
72
     */
73
    protected function createPrivateGedcomRecord(int $access_level): string
74
    {
75
        return '0 @' . $this->xref . "@ SUBM\n1 NAME " . I18N::translate('Private');
76
    }
77
78
    /**
79
     * Extract names from the GEDCOM record.
80
     *
81
     * @return void
82
     */
83
    public function extractNames(): void
84
    {
85
        $this->extractNamesFromFacts(1, 'NAME', $this->facts(['NAME']));
86
    }
87
}
88