Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
66.67% covered (warning)
66.67%
6 / 9
85.71% covered (warning)
85.71%
6 / 7
CRAP
0.00% covered (danger)
0.00%
0 / 1
ZObjectPage
66.67% covered (warning)
66.67%
6 / 9
85.71% covered (warning)
85.71%
6 / 7
10.37
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
 newSuccess
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 newFatal
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getWikiPage
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getErrors
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 isOK
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getTitle
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2/**
3 * WikiLambda wrapper object for WikiPage creation status
4 *
5 * @file
6 * @ingroup Extensions
7 * @copyright 2020– Abstract Wikipedia team; see AUTHORS.txt
8 * @license MIT
9 */
10
11namespace MediaWiki\Extension\WikiLambda\ZObjectContent;
12
13use MediaWiki\Extension\WikiLambda\ZObjects\ZError;
14use MediaWiki\Page\WikiPage;
15use MediaWiki\Title\Title;
16
17class ZObjectPage {
18
19    /**
20     * @param WikiPage|null $page
21     * @param ZError|null $errors
22     */
23    private function __construct(
24        private readonly ?WikiPage $page,
25        private readonly ?ZError $errors = null
26    ) {
27    }
28
29    /**
30     * Create an instance of a successful ZObjectPage wrapping a WikiPage object
31     *
32     * @param WikiPage $page
33     * @return ZObjectPage
34     */
35    public static function newSuccess( $page ) {
36        return new self( $page );
37    }
38
39    /**
40     * Create an instance of a fatal ZObjectPage wrapping a ZError object
41     *
42     * @param ZError $errors
43     * @return ZObjectPage
44     */
45    public static function newFatal( $errors ) {
46        return new self( null, $errors );
47    }
48
49    /**
50     * Get the WikiPage of this ZObjectPage
51     *
52     * @return WikiPage|null
53     */
54    public function getWikiPage() {
55        return $this->page;
56    }
57
58    /**
59     * Get the errors of this ZObjectPage
60     *
61     * @return ZError|null
62     */
63    public function getErrors() {
64        return $this->errors;
65    }
66
67    /**
68     * Get whether this ZObjectPage has a page set
69     *
70     * @return bool
71     */
72    public function isOK(): bool {
73        return ( $this->page !== null );
74    }
75
76    /**
77     * Get the Title of this ZObjectPage if OK
78     *
79     * @return Title|null
80     */
81    public function getTitle() {
82        if ( $this->isOK() ) {
83            return $this->page->getTitle();
84        }
85        return null;
86    }
87}