Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
DatabaseCommentItem
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 5
30
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getAuthor
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTimestamp
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getHeading
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getSubscribableHeading
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace MediaWiki\Extension\DiscussionTools\ThreadItem;
4
5use DateTimeImmutable;
6use DateTimeZone;
7use MediaWiki\Page\ProperPageIdentity;
8use MediaWiki\Revision\RevisionRecord;
9
10class DatabaseCommentItem extends DatabaseThreadItem implements CommentItem {
11    use CommentItemTrait {
12        getHeading as protected traitGetHeading;
13        getSubscribableHeading as protected traitGetSubscribableHeading;
14    }
15
16    /**
17     * @param ProperPageIdentity $page
18     * @param RevisionRecord $rev
19     * @param string $name
20     * @param string $id
21     * @param DatabaseThreadItem|null $parent
22     * @param bool|string $transcludedFrom
23     * @param int $level
24     * @param string $timestamp
25     * @param string $author
26     */
27    public function __construct(
28        ProperPageIdentity $page, RevisionRecord $rev,
29        string $name, string $id, ?DatabaseThreadItem $parent, $transcludedFrom, int $level,
30        private readonly string $timestamp,
31        private readonly string $author,
32    ) {
33        parent::__construct( $page, $rev, 'comment', $name, $id, $parent, $transcludedFrom, $level );
34    }
35
36    /**
37     * @inheritDoc
38     */
39    public function getAuthor(): string {
40        return $this->author;
41    }
42
43    /**
44     * @inheritDoc
45     */
46    public function getTimestamp(): DateTimeImmutable {
47        return new DateTimeImmutable( $this->timestamp, new DateTimeZone( 'UTC' ) );
48    }
49
50    /**
51     * @inheritDoc CommentItemTrait::getHeading
52     * @suppress PhanTypeMismatchReturnSuperType
53     */
54    public function getHeading(): DatabaseHeadingItem {
55        return $this->traitGetHeading();
56    }
57
58    /**
59     * @inheritDoc CommentItemTrait::getSubscribableHeading
60     */
61    public function getSubscribableHeading(): ?DatabaseHeadingItem {
62        return $this->traitGetSubscribableHeading();
63    }
64}