Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
8 / 8
CRAP
100.00% covered (success)
100.00%
1 / 1
ContributionsSegment
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
8 / 8
8
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
1
 getTagsForRevision
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getRevisions
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getBefore
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getAfter
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getDeltaForRevision
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 isNewest
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 isOldest
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace MediaWiki\Revision;
4
5use MediaWiki\Message\Message;
6
7/**
8 * @newable
9 * @since 1.35
10 */
11class ContributionsSegment {
12
13    /**
14     * @var RevisionRecord[]
15     */
16    private $revisions;
17
18    /**
19     * @var string[][]
20     */
21    private $tags;
22
23    /**
24     * @var string|null
25     */
26    private $before;
27
28    /**
29     * @var string|null
30     */
31    private $after;
32
33    /**
34     * @var array
35     */
36    private $deltas;
37
38    /**
39     * @var array
40     */
41    private $flags;
42
43    /**
44     * @param RevisionRecord[] $revisions
45     * @param string[][] $tags Associative array mapping revision IDs to a map of tag names to Message objects
46     * @param string|null $before
47     * @param string|null $after
48     * @param int[] $deltas An associative array mapping a revision Id to the difference in size of this revision
49     * and its parent revision. Values may be null if the size difference is unknown.
50     * @param array $flags Is an associative array, known fields are:
51     *  - newest: bool indicating whether this segment is the newest in time
52     *  - oldest: bool indicating whether this segment is the oldest in time
53     */
54    public function __construct(
55        array $revisions,
56        array $tags,
57        ?string $before,
58        ?string $after,
59        array $deltas = [],
60        array $flags = []
61    ) {
62        $this->revisions = $revisions;
63        $this->tags = $tags;
64        $this->before = $before;
65        $this->after = $after;
66        $this->deltas = $deltas;
67        $this->flags = $flags;
68    }
69
70    /**
71     * Get tags and associated metadata for a given revision
72     *
73     * @param int $revId a revision ID
74     *
75     * @return Message[] Associative array mapping tag name to a Message object storing tag display data
76     */
77    public function getTagsForRevision( $revId ): array {
78        return $this->tags[$revId] ?? [];
79    }
80
81    /**
82     * @return RevisionRecord[]
83     */
84    public function getRevisions(): array {
85        return $this->revisions;
86    }
87
88    /**
89     * @return string|null
90     */
91    public function getBefore(): ?string {
92        return $this->before;
93    }
94
95    /**
96     * @return string|null
97     */
98    public function getAfter(): ?string {
99        return $this->after;
100    }
101
102    /**
103     * Returns the difference in size of the given revision and its parent revision.
104     * Returns null if the size difference is unknown.
105     * @param int $revid Revision id
106     * @return int|null
107     */
108    public function getDeltaForRevision( int $revid ): ?int {
109        return $this->deltas[$revid] ?? null;
110    }
111
112    /**
113     * The value of the 'newest' field of the flags passed to the constructor, or false
114     * if that field was not set.
115     *
116     * @return bool
117     */
118    public function isNewest(): bool {
119        return $this->flags['newest'] ?? false;
120    }
121
122    /**
123     * The value of the 'oldest' field of the flags passed to the constructor, or false
124     * if that field was not set.
125     *
126     * @return bool
127     */
128    public function isOldest(): bool {
129        return $this->flags['oldest'] ?? false;
130    }
131
132}