1<?php 2 3// AUTOMATICALLY GENERATED. DO NOT EDIT. 4// Use `composer build` to regenerate. 5 6namespace Wikimedia\IDLeDOM\Helper; 7 8trait CSSStyleRule { 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\CSSStyleRule $this'; 44 // @var \Wikimedia\IDLeDOM\CSSStyleRule $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 "selectorText": 55 return $this->getSelectorText(); 56 case "style": 57 return $this->getStyle(); 58 default: 59 break; 60 } 61 '@phan-var \Wikimedia\IDLeDOM\Helper\CSSStyleRule $this'; 62 // @var \Wikimedia\IDLeDOM\Helper\CSSStyleRule $this 63 return $this->_getMissingProp( $name ); 64 } 65 66 /** 67 * @param string $name 68 * @return bool 69 */ 70 public function __isset( string $name ): bool { 71 '@phan-var \Wikimedia\IDLeDOM\CSSStyleRule $this'; 72 // @var \Wikimedia\IDLeDOM\CSSStyleRule $this 73 switch ( $name ) { 74 case "cssText": 75 return true; 76 case "parentRule": 77 return $this->getParentRule() !== null; 78 case "parentStyleSheet": 79 return $this->getParentStyleSheet() !== null; 80 case "type": 81 return true; 82 case "selectorText": 83 return true; 84 case "style": 85 return true; 86 default: 87 break; 88 } 89 return false; 90 } 91 92 /** 93 * @param string $name 94 * @param mixed $value 95 */ 96 public function __set( string $name, $value ): void { 97 '@phan-var \Wikimedia\IDLeDOM\CSSStyleRule $this'; 98 // @var \Wikimedia\IDLeDOM\CSSStyleRule $this 99 switch ( $name ) { 100 case "cssText": 101 $this->setCssText( $value ); 102 return; 103 case "selectorText": 104 $this->setSelectorText( $value ); 105 return; 106 case "style": 107 $this->setStyle( $value ); 108 return; 109 default: 110 break; 111 } 112 '@phan-var \Wikimedia\IDLeDOM\Helper\CSSStyleRule $this'; 113 // @var \Wikimedia\IDLeDOM\Helper\CSSStyleRule $this 114 $this->_setMissingProp( $name, $value ); 115 } 116 117 /** 118 * @param string $name 119 */ 120 public function __unset( string $name ): void { 121 '@phan-var \Wikimedia\IDLeDOM\CSSStyleRule $this'; 122 // @var \Wikimedia\IDLeDOM\CSSStyleRule $this 123 switch ( $name ) { 124 case "cssText": 125 break; 126 case "parentRule": 127 break; 128 case "parentStyleSheet": 129 break; 130 case "type": 131 break; 132 case "selectorText": 133 break; 134 case "style": 135 break; 136 default: 137 return; 138 } 139 $trace = debug_backtrace(); 140 while ( 141 count( $trace ) > 0 && 142 $trace[0]['function'] !== "__unset" 143 ) { 144 array_shift( $trace ); 145 } 146 trigger_error( 147 'Undefined property' . 148 ' via ' . ( $trace[0]['function'] ?? '' ) . '(): ' . $name . 149 ' in ' . ( $trace[0]['file'] ?? '' ) . 150 ' on line ' . ( $trace[0]['line'] ?? '' ), 151 E_USER_NOTICE 152 ); 153 } 154 155 /** 156 * @param string $val 157 */ 158 public function setStyle( string $val ): void { 159 '@phan-var \Wikimedia\IDLeDOM\CSSStyleRule $this'; 160 // @var \Wikimedia\IDLeDOM\CSSStyleRule $this 161 $this->getStyle()->setCssText( $val ); 162 } 163 164} 165