1<?php 2 3// AUTOMATICALLY GENERATED. DO NOT EDIT. 4// Use `composer build` to regenerate. 5 6namespace Wikimedia\IDLeDOM\Helper; 7 8trait CSSMarginRule { 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\CSSMarginRule $this'; 44 // @var \Wikimedia\IDLeDOM\CSSMarginRule $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 "name": 55 return $this->getName(); 56 case "style": 57 return $this->getStyle(); 58 default: 59 break; 60 } 61 '@phan-var \Wikimedia\IDLeDOM\Helper\CSSMarginRule $this'; 62 // @var \Wikimedia\IDLeDOM\Helper\CSSMarginRule $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\CSSMarginRule $this'; 72 // @var \Wikimedia\IDLeDOM\CSSMarginRule $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 "name": 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\CSSMarginRule $this'; 98 // @var \Wikimedia\IDLeDOM\CSSMarginRule $this 99 switch ( $name ) { 100 case "cssText": 101 $this->setCssText( $value ); 102 return; 103 case "style": 104 $this->setStyle( $value ); 105 return; 106 default: 107 break; 108 } 109 '@phan-var \Wikimedia\IDLeDOM\Helper\CSSMarginRule $this'; 110 // @var \Wikimedia\IDLeDOM\Helper\CSSMarginRule $this 111 $this->_setMissingProp( $name, $value ); 112 } 113 114 /** 115 * @param string $name 116 */ 117 public function __unset( string $name ): void { 118 '@phan-var \Wikimedia\IDLeDOM\CSSMarginRule $this'; 119 // @var \Wikimedia\IDLeDOM\CSSMarginRule $this 120 switch ( $name ) { 121 case "cssText": 122 break; 123 case "parentRule": 124 break; 125 case "parentStyleSheet": 126 break; 127 case "type": 128 break; 129 case "name": 130 break; 131 case "style": 132 break; 133 default: 134 return; 135 } 136 $trace = debug_backtrace(); 137 while ( 138 count( $trace ) > 0 && 139 $trace[0]['function'] !== "__unset" 140 ) { 141 array_shift( $trace ); 142 } 143 trigger_error( 144 'Undefined property' . 145 ' via ' . ( $trace[0]['function'] ?? '' ) . '(): ' . $name . 146 ' in ' . ( $trace[0]['file'] ?? '' ) . 147 ' on line ' . ( $trace[0]['line'] ?? '' ), 148 E_USER_NOTICE 149 ); 150 } 151 152 /** 153 * @param string $val 154 */ 155 public function setStyle( string $val ): void { 156 '@phan-var \Wikimedia\IDLeDOM\CSSMarginRule $this'; 157 // @var \Wikimedia\IDLeDOM\CSSMarginRule $this 158 $this->getStyle()->setCssText( $val ); 159 } 160 161} 162