Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
5.26% covered (danger)
5.26%
1 / 19
7.69% covered (danger)
7.69%
1 / 13
CRAP
0.00% covered (danger)
0.00%
0 / 1
ChangeTracker
5.26% covered (danger)
5.26%
1 / 19
7.69% covered (danger)
7.69%
1 / 13
262.73
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setId
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getId
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setIndexName
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getIndexName
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setFirstIndexed
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getFirstIndexed
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
6
 setLastIndexed
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getLastIndexed
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
6
 setLastRecordChange
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getLastRecordChange
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
6
 setDeleted
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getDeleted
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3/**
4 * Row Definition for change_tracker
5 *
6 * PHP version 8
7 *
8 * Copyright (C) Villanova University 2010.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2,
12 * as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
22 *
23 * @category VuFind
24 * @package  Db_Row
25 * @author   Demian Katz <demian.katz@villanova.edu>
26 * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
27 * @link     https://vufind.org Main Site
28 */
29
30namespace VuFind\Db\Row;
31
32use DateTime;
33use VuFind\Db\Entity\ChangeTrackerEntityInterface;
34
35/**
36 * Row Definition for change_tracker
37 *
38 * @category VuFind
39 * @package  Db_Row
40 * @author   Demian Katz <demian.katz@villanova.edu>
41 * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
42 * @link     https://vufind.org Main Site
43 *
44 * @property string  $core
45 * @property string  $id
46 * @property ?string $first_indexed
47 * @property ?string $last_indexed
48 * @property ?string $last_record_change
49 * @property ?string $deleted
50 */
51class ChangeTracker extends RowGateway implements ChangeTrackerEntityInterface
52{
53    /**
54     * Constructor
55     *
56     * @param \Laminas\Db\Adapter\Adapter $adapter Database adapter
57     */
58    public function __construct($adapter)
59    {
60        parent::__construct(['core', 'id'], 'change_tracker', $adapter);
61    }
62
63    /**
64     * Setter for identifier.
65     *
66     * @param string $id Id
67     *
68     * @return ChangeTrackerEntityInterface
69     */
70    public function setId(string $id): ChangeTrackerEntityInterface
71    {
72        $this->id = $id;
73        return $this;
74    }
75
76    /**
77     * Getter for identifier.
78     *
79     * @return string
80     */
81    public function getId(): string
82    {
83        return $this->id;
84    }
85
86    /**
87     * Setter for index name (formerly core).
88     *
89     * @param string $name Index name
90     *
91     * @return ChangeTrackerEntityInterface
92     */
93    public function setIndexName(string $name): ChangeTrackerEntityInterface
94    {
95        $this->core = $name;
96        return $this;
97    }
98
99    /**
100     * Getter for index name (formerly core).
101     *
102     * @return string
103     */
104    public function getIndexName(): string
105    {
106        return $this->core;
107    }
108
109    /**
110     * FirstIndexed setter.
111     *
112     * @param ?DateTime $dateTime Time first added to index.
113     *
114     * @return ChangeTrackerEntityInterface
115     */
116    public function setFirstIndexed(?DateTime $dateTime): ChangeTrackerEntityInterface
117    {
118        $this->first_indexed = $dateTime->format('Y-m-d H:i:s');
119        return $this;
120    }
121
122    /**
123     * FirstIndexed getter.
124     *
125     * @return ?DateTime
126     */
127    public function getFirstIndexed(): ?DateTime
128    {
129        return $this->first_indexed ? DateTime::createFromFormat('Y-m-d H:i:s', $this->first_indexed) : null;
130    }
131
132    /**
133     * LastIndexed setter.
134     *
135     * @param ?DateTime $dateTime Last time changed in index.
136     *
137     * @return ChangeTrackerEntityInterface
138     */
139    public function setLastIndexed(?DateTime $dateTime): ChangeTrackerEntityInterface
140    {
141        $this->last_indexed = $dateTime->format('Y-m-d H:i:s');
142        return $this;
143    }
144
145    /**
146     * LastIndexed getter.
147     *
148     * @return ?DateTime
149     */
150    public function getLastIndexed(): ?DateTime
151    {
152        return $this->last_indexed ? DateTime::createFromFormat('Y-m-d H:i:s', $this->last_indexed) : null;
153    }
154
155    /**
156     * LastRecordChange setter.
157     *
158     * @param ?DateTime $dateTime Last time original record was edited
159     *
160     * @return ChangeTrackerEntityInterface
161     */
162    public function setLastRecordChange(?DateTime $dateTime): ChangeTrackerEntityInterface
163    {
164        $this->last_record_change = $dateTime->format('Y-m-d H:i:s');
165        return $this;
166    }
167
168    /**
169     * LastRecordChange getter.
170     *
171     * @return ?DateTime
172     */
173    public function getLastRecordChange(): ?DateTime
174    {
175        return $this->last_record_change ? DateTime::createFromFormat('Y-m-d H:i:s', $this->last_record_change) : null;
176    }
177
178    /**
179     * Deleted setter.
180     *
181     * @param ?DateTime $dateTime Time record was removed from index
182     *
183     * @return ChangeTrackerEntityInterface
184     */
185    public function setDeleted(?DateTime $dateTime): ChangeTrackerEntityInterface
186    {
187        $this->deleted = $dateTime->format('Y-m-d H:i:s');
188        return $this;
189    }
190
191    /**
192     * Deleted getter.
193     *
194     * @return ?DateTime
195     */
196    public function getDeleted(): ?DateTime
197    {
198        return $this->deleted ? DateTime::createFromFormat('Y-m-d H:i:s', $this->deleted) : null;
199    }
200}