1<?php
2
3// AUTOMATICALLY GENERATED.  DO NOT EDIT.
4// Use `composer build` to regenerate.
5
6namespace Wikimedia\IDLeDOM\Helper;
7
8trait CSSImportRule {
9
10	// Underscore is used to avoid conflicts with DOM-reserved names
11	// phpcs:disable PSR2.Methods.MethodDeclaration.Underscore
12	// phpcs:disable MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName
13
14	/**
15	 * Handle an attempt to get a non-existing property on this
16	 * object.  The default implementation raises an exception
17	 * but the implementor can choose a different behavior:
18	 * return null (like JavaScript), dynamically create the
19	 * property, etc.
20	 * @param string $prop the name of the property requested
21	 * @return mixed
22	 */
23	abstract protected function _getMissingProp( string $prop );
24
25	/**
26	 * Handle an attempt to set a non-existing property on this
27	 * object.  The default implementation raises an exception
28	 * but the implementor can choose a different behavior:
29	 * ignore the operation (like JavaScript), dynamically create
30	 * the property, etc.
31	 * @param string $prop the name of the property requested
32	 * @param mixed $value the value to set
33	 */
34	abstract protected function _setMissingProp( string $prop, $value ): void;
35
36	// phpcs:enable
37
38	/**
39	 * @param string $name
40	 * @return mixed
41	 */
42	public function __get( string $name ) {
43		'@phan-var \Wikimedia\IDLeDOM\CSSImportRule $this';
44		// @var \Wikimedia\IDLeDOM\CSSImportRule $this
45		switch ( $name ) {
46			case "cssText":
47				return $this->getCssText();
48			case "parentRule":
49				return $this->getParentRule();
50			case "parentStyleSheet":
51				return $this->getParentStyleSheet();
52			case "type":
53				return $this->getType();
54			case "href":
55				return $this->getHref();
56			case "media":
57				return $this->getMedia();
58			case "styleSheet":
59				return $this->getStyleSheet();
60			default:
61				break;
62		}
63		'@phan-var \Wikimedia\IDLeDOM\Helper\CSSImportRule $this';
64		// @var \Wikimedia\IDLeDOM\Helper\CSSImportRule $this
65		return $this->_getMissingProp( $name );
66	}
67
68	/**
69	 * @param string $name
70	 * @return bool
71	 */
72	public function __isset( string $name ): bool {
73		'@phan-var \Wikimedia\IDLeDOM\CSSImportRule $this';
74		// @var \Wikimedia\IDLeDOM\CSSImportRule $this
75		switch ( $name ) {
76			case "cssText":
77				return true;
78			case "parentRule":
79				return $this->getParentRule() !== null;
80			case "parentStyleSheet":
81				return $this->getParentStyleSheet() !== null;
82			case "type":
83				return true;
84			case "href":
85				return true;
86			case "media":
87				return true;
88			case "styleSheet":
89				return true;
90			default:
91				break;
92		}
93		return false;
94	}
95
96	/**
97	 * @param string $name
98	 * @param mixed $value
99	 */
100	public function __set( string $name, $value ): void {
101		'@phan-var \Wikimedia\IDLeDOM\CSSImportRule $this';
102		// @var \Wikimedia\IDLeDOM\CSSImportRule $this
103		switch ( $name ) {
104			case "cssText":
105				$this->setCssText( $value );
106				return;
107			case "media":
108				$this->setMedia( $value );
109				return;
110			default:
111				break;
112		}
113		'@phan-var \Wikimedia\IDLeDOM\Helper\CSSImportRule $this';
114		// @var \Wikimedia\IDLeDOM\Helper\CSSImportRule $this
115		$this->_setMissingProp( $name, $value );
116	}
117
118	/**
119	 * @param string $name
120	 */
121	public function __unset( string $name ): void {
122		'@phan-var \Wikimedia\IDLeDOM\CSSImportRule $this';
123		// @var \Wikimedia\IDLeDOM\CSSImportRule $this
124		switch ( $name ) {
125			case "cssText":
126				break;
127			case "parentRule":
128				break;
129			case "parentStyleSheet":
130				break;
131			case "type":
132				break;
133			case "href":
134				break;
135			case "media":
136				break;
137			case "styleSheet":
138				break;
139			default:
140				return;
141		}
142		$trace = debug_backtrace();
143		while (
144			count( $trace ) > 0 &&
145			$trace[0]['function'] !== "__unset"
146		) {
147			array_shift( $trace );
148		}
149		trigger_error(
150			'Undefined property' .
151			' via ' . ( $trace[0]['function'] ?? '' ) . '(): ' . $name .
152			' in ' . ( $trace[0]['file'] ?? '' ) .
153			' on line ' . ( $trace[0]['line'] ?? '' ),
154			E_USER_NOTICE
155		);
156	}
157
158	/**
159	 * @param ?string $val
160	 */
161	public function setMedia( ?string $val ): void {
162		'@phan-var \Wikimedia\IDLeDOM\CSSImportRule $this';
163		// @var \Wikimedia\IDLeDOM\CSSImportRule $this
164		$this->getMedia()->setMediaText( $val );
165	}
166
167}
168